This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, next has been updated via dc3c6687c9c78f7e94f06f6c327d8f14777da179 (commit) via b7aff3d7143174d379570319aaad65afabbf76d3 (commit) via 621e8d148b27125db48f50f0b11bd75454d909bb (commit) via e9e998099e2b82dd84062a0d2d9ce24bdc7a294c (commit) via 30491c6ac70ce55d4bfbcec5aee6096808b3c193 (commit) via b5890e73693cb323b115cf5245964177cb902f64 (commit) via 412a1f43ce7a91ef891a18991bbd865bfe150e4b (commit) via 9c9c9cb6134918b8a09bf35e6f01225ad8e39566 (commit) via d0c91170ca82e919432c56c13cc5b494a4e30693 (commit) via 7fbb77189640acfe14e77772e95fbea48c902353 (commit) via 1ada718c392cfdbe6c989ee44c15188f7f639f7b (commit) via 68e89a2f2828084bbe7a8fa15a16ae9626d4c74e (commit) via 0f9894afa1e2c534f671c87efac4a1ec9997d637 (commit) via 8c252e6aa83f0a45d248dc59ae2bbc2ca717b229 (commit) via 7d44bfeef1614ca2ae0e60ddd020f004a3f3b071 (commit) via f536ab266173dd7d6ec5ddd984e0a458c1aedbc2 (commit) via aeefcc9caa329cfd1ca8b8cdafdc845aab7507b2 (commit) via 82f7d1b4d8f2d504ed750da549416a1110814cc6 (commit) via 2d0e29fcfb429f057901b2799fc88bb30a3be2f0 (commit) via f64223d9ec9f2b0aa57ab4fae8680039de212d30 (commit) via 3547adad97669b65c9b11eb69aa36fd41a2484d0 (commit) via 986ba0d12789e4a91d3cfb923822e2f366c9070a (commit) via 2a747e37a86f44c5da8dbf67c4135772df29f24e (commit) via 7514fe47f6b2caf5a1dfc80de3a539975b753b21 (commit) via 2505d2763efef1c2339f84f8130594c0ee7feaec (commit) via c82aa2ec9e0dee2d3ed1b5f3ca3c8fc158404228 (commit) via fcd014e0afcb8370106ab0044a9911f9ce7c225a (commit) via b7e621e1b1e3575ce5b10edfc6b99314c75864a0 (commit) via e3d82d27a0e3f8ed83cbaeca2166c53d9eede5f1 (commit) via 6f5487d711a868f116618b1b1d7d7be74a23637f (commit) via a9344b774b54495dcdd811f5854a0f2f640bb06c (commit) via 38d3b742e70306d88795d25916f443a1b8d4932d (commit) via 57ba5e812641d5bcd94e3e1bf55a7af375de853c (commit) via d00b3548852f478a566ffa6dc9dc4b89e86c58a3 (commit) via 4d74a20df062b9449fc4bda89da7d2e8ace49552 (commit) via 3932f02ba33e0f0b7686db4bd6f4609ae7e3d370 (commit) via 9efba5f773a19b0b402bd7b4454d911f304e7d3b (commit) via 6fc0703674ad8f77445e1e997ddd990b24123854 (commit) via 73ede29f00320a187c49f2708e37aaea70bc1b8c (commit) via c8ee899dbc37aee41df8298bdf3fb5102cd89b27 (commit) via 5b579ad60c2bfed1e451ba096880734061e81e9f (commit) via 77a516cd6a74a7bfdf069a6fe0586f59594c04fd (commit) via f9a3c1c8c9d8068f4b8d7e1d3f4e732195553b52 (commit) via bc8ecbd6ae95d54ef0d9e99d564e09265e97bc9a (commit) via 62f34bba1e6b8814a584f371199ad567f9944fa5 (commit) via 7cc8a0e526d20b2bf75a68ff208a3dbf0723c552 (commit) via dfcb2b9f9af53947ab6bfb8ad51e2a30ea034045 (commit) via 5ef70cca5dc565fd8521cdae7e995763f9bcb60f (commit) via 2aaa32f72786004ef4a5eff2c0bd018691606085 (commit) via ec5a7d21f63e0132ae97368bd269cf257530022e (commit) via f7edf97ae7044ff6d2fe25d3863c04d559197cbe (commit) via 0afd84931ea1a0712fafb85aac8976069b465c90 (commit) via 86048afb5a45fdb0a39051bcefd80edbbd52b8a9 (commit) via cc37572cf7f17795c07c546bef0f731c1b3c4db3 (commit) via bfe4320c6b9b5065db13008753a8d5e48c6eacd7 (commit) via b84989af49f116d25d039b46ce825c0f98a06ee4 (commit) via ff92ff172269bbf8bed44a1f7cf36891d7843352 (commit) via 0a644b4a04bbba6e94a8f5afed8eeca028fd6de3 (commit) via 84394ec6dd2512e12b46b1546e4b2dae721457a8 (commit) via e084eea001b33fd4e16924c5caf7dc4742036670 (commit) via 0da15c03d707ae58bd12b62a389b5970d4e57ce4 (commit) via a9d40c03dbd5f486e0efba0c1a0fa406a15b78e9 (commit) via 4ede29562fce127f88c20cec3bcdf9c6ac5bb988 (commit) via 4b74791b5da0a95fa9cef99faf2eea467985dce8 (commit) via 55f084930912949f0d841cb2143d884d436c02d9 (commit) via 748cfb0b8f5daba5cc0e6655ab93f0d32d3232b5 (commit) via 9063a04e94587fc38f410ec2234275417de201ad (commit) via 42dbdb2088b7877ad1626d19db47089e07996b37 (commit) via 59cbe38697db109f4860e1117b8307b588957b6c (commit) via 4436bc0e2fa74e48b638838ea295fc307f0fc85b (commit) via d9f2ad84895b03abe10607d20d33ac4878eea561 (commit) via df5a6ef76f2fad5aa08ec2959348f9eed9a48d70 (commit) via 4e36e1791f368d6e612bc70bc5a5d6ffe1692338 (commit) via 4d5247bdd079493da9989941278d4172cde3bfbf (commit) via 943a96faed4fb515259c18d04b330ba622490b7b (commit) via 33f297c92b917e9ffff0f18cbee5b0f2e5bd34cd (commit) via 9b574b13de88735968287db83bf1936087f9e59a (commit) via 0008a2d7566f88d83aa75cdd8c2f35909475a69c (commit) via 33c56b4f5853524a2c8dabc4d36ff602d6bf6314 (commit) via 2106b71eb555e29ff85d9bab0d1312642b730f59 (commit) via 4ed7ef4620637d6047edc4fd713e753d3a7f254e (commit) via 918bacacbd707105f0c49f5fa0917d011bde0a7f (commit) via 010ea13643caa3aac57e7b9829273cb27bf93198 (commit) via 96cbae14d7ad23028eea2701210a312003d4b199 (commit) via 921d7f2c3d51b8f49cf4a2db88c50b01a7949513 (commit) via 2d0e4dd2ef2340d8036f7e9e24c79730ee6a8c8c (commit) via 4bf6a597fead7f5bf3d868593be4d9e366a1f3e8 (commit) via 043cfbc01fb23eb3f64fd290043fd3bfd21eb263 (commit) via 30aef1726ce7d9e0b8241cabcc30e7904c31b12a (commit) via 4c2910e91b036dbb58109681bed0facd49cb3f26 (commit) via e9850821d41da0ee5a524d85d01b1809e1b3af7a (commit) via 99bfa85c8936a503a01402b1d7251a80d2fc5497 (commit) via fd6299ba8a493e1394d8fac8c1b8a26e51b444f8 (commit) via d9a0d20113711a83a1a12845e81fe0144f22d330 (commit) via f76b104cf3d3be62ebc7c3e38734e6ab0c6d5e2c (commit) via a51528487b0d04de80f4e79555595445de9d23cc (commit) via efca40b5cc923da6fc169d3bb2eaa2f39708330b (commit) via 31d488a4f688903fd27269a18bdb84d53e9ef6d6 (commit) via 961f3dbcd8675f8b62ecd2404a709e47ec2ae343 (commit) via 4250f386ce7b1d66a87fed6fcfa84ac65471be48 (commit) via 9d1058a434c0047843b21e420622087bf00cc208 (commit) via e602416f94ba818557644647bb6f55503e33ccf1 (commit) via bf7746ef83f0afeb6764b23336783e4a0e221eff (commit) via f5e106c42ab1fcb54f2d4c2605dfbe213b5b792a (commit) via af8750fdc2c974899c35114a7340f51a09516bd9 (commit) via d2d87f2ca06349f63d025e12dafda1b910956e40 (commit) via 4ad0b5b680e7d72f391434a9bad0a2dfc61fee92 (commit) via afd5d8f76e725ac910c238e94f2282f78bce5da7 (commit) via 277060a472c826541885b40392e0d5a96ba1cf97 (commit) via b0cffde30e2451500555853fe4acde983ab7735f (commit) via 91a81810e8395c84ba223e7d744e3a770facafc4 (commit) via c380ac83d3fe8f1fe4e73bbb2a63238f43ad0581 (commit) via 26922c33eb91951c79c5b6a5e959a5adbf20bc9b (commit) via c7edc1c70a5565cbb28a87c650b7cbb735923300 (commit) via 623758aa652d6b6066ea01e5f6e12378e7504ba8 (commit) via 0317493a26a8da8e87a3c39ad69122aa6f008261 (commit) via cff7f5a19ad66d3bdb9ee22df5b0ba3eb4639cc7 (commit) via ce8c87bdf710ba0ef8942f64558448817bf64029 (commit) via 52ca3c809334e1ab6bd5a75f2f66d2c49f7e228f (commit) via 09eb51c98575d4aea2a11aed7a6fd682ded38d77 (commit) via 633b0df5eed38a34ea165589f8906714f6c7b76d (commit) via 783bf6afa5f4dcd7d12f563cc1eef6ac841353d5 (commit) via 902a15be1df0b63b10f1b8e7fbdc7779650a0e65 (commit) via 8d28e3d092f85a8cdb57ebab5a5532a0b1df96f2 (commit) via fda1f52ff3b2e031700f92af71a72a00ce41d992 (commit) via cbb3a8f91e2e7aa220b5bc9e9773fa4547f0ce85 (commit) via 4e156911cc45c2788bfa7e04561e2a7e550c68b8 (commit) via 5ca9ea6a28511653ca1c6d42725c15723ef89104 (commit) via ce7c5249bfbad7b5a1ac6106621cc27a75d3ad4c (commit) via 1fbb415adad359bb9d07467214af904dc0e4b422 (commit) via 3bdc1a4e426950914554fbe97e0d8ecf8d529d5c (commit) via 49da7d797547095ee8a13b079c63661e8e4aa1ad (commit) via 95e9415ada2cd29399eec02c2748ca22792ec0a4 (commit) via 73cb6627fc3d44ecade787f3fd80cc91d53a42f8 (commit) via d0f8bbc13e5d1158b86a58c1744a81e36c899aa8 (commit) via f4d5310decf8cd8f16d92bfe0457cc8fb87fc663 (commit) via f0dc00d80f0b97059df52b624e1a982a6dad5bcd (commit) via 9566c8f52cd96ae3dee000f72028eb80a31bca16 (commit) via f4b373993fb60809901e7c45d690f569b0d8867c (commit) via 75474c3c493c3f2f4a4ab793910557fffc4182d3 (commit) via 9027a25d92afbbb4486c17deac66b4c439e80520 (commit) via 4234ca5d64f8e34c40ee48c58599f00cb3a15862 (commit) via 0051027b79220c17a8eb5e05dcf79e1549c94489 (commit) via 935f311ed9dc4c67d7e603f6b08a45d1225422c8 (commit) via 8a39dd30e3d7f8386d15db6960926d75148610be (commit) via fe9f7588151c5f98a73f5718cd19b1743ff1d6c2 (commit) via dd2ef3b2370e89a79dc01ada8aa1f00d8f0615ee (commit) via 121628ea689844c3e6618d0e7ae4b83f8b3cbea6 (commit) via 3f653a29ae0e030a36fe4a49652fc0411eed782c (commit) via f14e224b1c98924dd46f50fa3539c7b799ebc35d (commit) via 802d795488a1387e8b564201894d3db39681d08b (commit) via b3f7b96824062f9fa3d9222a4b7e117ae20c949f (commit) via a4b9426b0f5f965128fc745013e26b3d1cd316a9 (commit) via ff972c82761ab198819dc268b154b7b4cc0b06df (commit) via c3f00878dded2e80bfaba67627d2826ad8d49f89 (commit) via 697a4d5217b10429a40a5224ac65b680485dc080 (commit) via f880f8a22528ff0e896eb2a3e1bfdaa676493966 (commit) via 926241aea24a60dce858c863aac39d6be83b23df (commit) via eb6389d09de11b2aad940d5bbacb5e2a28ce79fa (commit) via 865c76157580b18551df1033781fbf3b8fccc8e6 (commit) via ceda40f2bcd67c7e0b3215e0c32eec21ca59811c (commit) via af731c7dc5e4d947893bcd1427d14195665bcb4f (commit) via 1dc44471365cccef7ab2b3ec766c0d0c26f86475 (commit) via 63e3da5935ee846b9e1e29f624bd299518194d35 (commit) via 22fc183e08240d59230459c9bca1004e27c7e381 (commit) via 651d442ecfe233b2a07773a606f49acf12991184 (commit) via d72a820484dae4d4118e345537795bc69b20b8ac (commit) via 660f97283578616426bac2333a14c527770c2c0f (commit) via 36f101c73350fbfc736ecddb741a514927dd980e (commit) via 8e8fb1dada5cf710ffc4199f436618e4a2664e41 (commit) via b7d9509c3aebab95d559a3a7ad64f9d9655a3c07 (commit) via 1dbe439b83315f413c94f7c1726cdd44d7f2f838 (commit) via 33a1b286084cf0745aced5f17c86e39b41859c40 (commit) via ea6d6642a9520469dd845b52a860017844f7c67b (commit) via 61719727b43fb4e323da652eaa6619778e70f799 (commit) via fd71513f75bfe0af6cb1e69ccb8df75957d131da (commit) via 349b93f67401d79548620da0bd9f695a36ae2823 (commit) via ba263fbbb9d10ceab94ffe6640e164e7c9423e51 (commit) via 481988c68d1380d918f42cb109a72c854826ffc7 (commit) via aa8512fac63ff7451392d3d8d8114a286ec638e9 (commit) via f7165e5aed61866f8d82141c9ac152468a964f4c (commit) via 33c4c29b5e32c818e1c0fc925424950f8cd613f6 (commit) via 3d2c3affcd2992461fac5bba54dbff551eaafb72 (commit) via a538898a469237653e1f0ada0238e7f4168a1991 (commit) via 63efc01c84a5f559858d0d46cb7c5a2212486567 (commit) via dfe0a20def8732831647dfe551551f7c85c14f27 (commit) via ec8c14746c56ec725896d94663ba844260d9c0f2 (commit) via 8dafd717bcbbc22d27d365134f31d9007a11111e (commit) via 0206795e57d0b0f0caabec7de4efe54fff1bc6b5 (commit) via 230eeac04df6b58407d087a211d9d4a096e0b97b (commit) via 6db53091a36311e217188cb4ede6a2add82070c2 (commit) via 66aeb7b5042c7188fedc66abea1e224c39836ed2 (commit) via 55e16317fd80f4fe4d4e46180bfb8b50cccde44a (commit) via 5c3da078b3deb53b001a4bc91f50216807ab9bcc (commit) via 2f90f73a98e0f8649fb51028a152f994d815c715 (commit) via 37677cf0d1f3306316e08d9244b4e8184d6d2876 (commit) via 12f8cdd5895b4b87342c93247299984df5ef9a45 (commit) via 0f90adc0aa54d8a79b2a0b6061bcbf5ff5c98422 (commit) via 4176a1badace1fd2c06c375f9c2d7562edee870a (commit) via 4c7fe35f9edfe8e4626195758fb6774bdc418d04 (commit) via bb234c63ef0fd15a68044db3b172247884cbaa34 (commit) via dcbb8e4f41d6541663ae64f00a05b66e5e01f7cc (commit) via 0dc552342b48c1737f20e4a591b21b9812f0c624 (commit) via 03f02bcd20f9e5c1cb0743bfe88ba02c6ad01dac (commit) via 71f51934d73bc5d252a46776cbb9ce76a5398fb3 (commit) via 8298e1ddc3089e21d3643199148b558be6716079 (commit) via 632e0a3e5ecad92110fcb114bfa20e607b853dcb (commit) via 1ad5c2fa0713024dce7c14c7b5bd008e3f128cf3 (commit) via 8ecb64505dc79a02c6599bd728f8393eb1146da9 (commit) via 8789de86786951f4a6e8f625a4f8ebdb5b6727c4 (commit) via c0f99754df9ad6cbdc4675d5568ac94a6ede20c3 (commit) via 454d47a9944ae5ef1e9206b76b92ac931af0333d (commit) via 33230038e9071622f150102c5615c6e1db478311 (commit) via f7075c3a3798475a00a86ad0c12a7a8ca6e2ddc5 (commit) via 30f68903d339fdb2e1a0b3ff62b6b770fee9ca36 (commit) via 562e14b01f02f811ed4c5c98e563aa2de2d9caf4 (commit) via 3c037075d0f6c296225500651d89b03b3c65d9e2 (commit) via a8b113e73d9e8b71eb57621109d7c4a6b46c34e2 (commit) via 5f037986b7b1b1f3b012ea0c50e44c77e92cfef2 (commit) via 484269ceacaad3deb817e1e9dc0af444633d1400 (commit) via ce2dbe92ce5f0655670d38502a65c0c53542e361 (commit) via dd6c9bb9c3c9031358aa61b629bf38b568d96676 (commit) via 724908c6802b0750fcb96891e14a0e79c786dc9f (commit) via 2b230b77f5710aae3a8bf345b31d76d51c747829 (commit) via 0c41633ee1379d6646f04f53ab015992892132b2 (commit) via d24c586a953bb14e293fda10928759a4a0ca62fd (commit) via 14ef7de4399c294f5eea5e8a1ac74946d01c2bc0 (commit) via 0520e6a5d0030f0cc153d070e424dc4f4f69e47a (commit) via 83d8e3a6db7a1519e855f668917f4ba927b9111e (commit) via 9bfde8ed40d238df4c1ab9195531f8b5e22d65a2 (commit) via 8a5ef45f1520cd947c02b5dbbafb22163ec6c098 (commit) via e3181add8e3c5cc5c37ee67e0d1053e79557c382 (commit) via 3fc43cd15b10fd13b9c4abc7d5dd159fa1d5343b (commit) via b2c242219166e1e45704b7d8dafe910d728f6327 (commit) via 30f08bcf80c4c016cdc1f025cc2fbd5533ef20b9 (commit) via fac3861429d1b4c57c18ff13236d363d87fd31c0 (commit) via 39962c6e3d83f88f63587f0ce2c1fb8c8cd7f2e1 (commit) via 33e64584dd14decbeec39f0bdd4f4b2029b45e9b (commit) via 7506baa2ebd5a6ceb92596f463f493f45a97661c (commit) via 7d5e022df4b37f157f8528cbce892e273f1b4836 (commit) via 3a162dc14f98444dd91493285c677dc295aa4c4f (commit) via 5d4d41b18c80f236b4dc796e1394ef0035cb034d (commit) via e39ac92dd298fee0e546638c36f568978398a5f1 (commit) via be33adfb3d958259695d8b8ce2803181fbf78be2 (commit) via 50ce309b6ab17dc61648e7d6654117d5e1661cd7 (commit) via fe2bae3b747530a37cbe37247aa1d974f15f51a6 (commit) via a8ec686f17764d2c4e62692e7ffc94ad9cbdff53 (commit) via 3a3759c625c593e70a7bea479c11834152681565 (commit) via 8a2cf24a1f5de1e236d5514863b1f57cdd343f27 (commit) via 82b837cff888157358cfbfbf1a29e3dce5956ca9 (commit) via 342a91ae257e461d3d0fe3a2da51a724c6f99a20 (commit) via 784098e4db6b4aca11b4b39d0fec17f8a2d3ad0c (commit) via 0c733ab7502e5eb10e5ecbd4f9ad4196670fe175 (commit) via 2be048cedc75c8e09233a819d3eae5107a4ab452 (commit) via 02cb636c8b0abfeb8805d058e29d1a3f8d53ce9a (commit) via 5558ca2a9614c8d4393dc9287e4c0e7f7f014a95 (commit) via cdb3536bc82e410b4678a4740c198ecf74ec8bd3 (commit) via 09efb767f43718512311357a5634d00c8ad8c32e (commit) via ea04338b4d3702faf7619b0ed08d8441bbc9d60e (commit) via 0037264780e516ef1cd85c1a73b178097b3201d6 (commit) via e99dcbdbab9ae7a301d8a4871c18bc81fe5469c8 (commit) via 35ca8e0203c4d94178f2186d0c0b73f8ec48bc50 (commit) via 27d4d4817e29bee8b8afb33bfda767be3587b31f (commit) via a8ccb45cb78acf76e7d9518254f5d363605fc823 (commit) via 44ed2a42f02738b7955614461f868eda655eebbd (commit) via 504fc5af26cb3e208e2f9f60b1eae98ade71d751 (commit) via 385394fefaf5e8455ef114964d1813322b7ea938 (commit) via 1350598261d8f5d6b040e0fb9d30cb89f260dadb (commit) via d30819033d52eea130bde7d118255d9606654bf8 (commit) via 0fc392d65d513df573573dec57ccf06af2c29a9f (commit) via 5702b0cee557ec11ecda43a2482f72f212bffa84 (commit) via a5d81233a3a6638f6138c21d6174f73f99eb93fe (commit) via 147446202ff649e7371cc45d040626d7ab262cf4 (commit) via 80469a89354a686b5fc56066828ed763f81e55a4 (commit) via b474c1ca151c323ae5f8a4b402960cfa0f21c6cf (commit) via 5c3fa3223a4de6eb3a62d1c97c52f1762faa07f4 (commit) via 35e188494d9723b977c010eedbac98820e7176a6 (commit) via ba109afd0d551909be86bb11d797f1db80ce56f6 (commit) via 1ee33ddadf2737588ea50326bbc5995e93864aa3 (commit) via 6ee9053548341eceba9e0126a8e903872384a961 (commit) via 1187d46e65e9938fab90fb463a8c3ee15e4a646a (commit) via 9659f59a86ebe76e860370cb7480198ea4323e71 (commit) via 6f0fd5e1789e59ec1aad25bea560494c5750a4b9 (commit) via d0d3fe9d266c265697250dabba0bfdac316314ff (commit) via 7d3b1f7eafe2122c3b9cc0c46448846158a6abf7 (commit) via 7db6ad6acb8ba4339cb26970bf261942e90b65c0 (commit) via 49192c7b313d0fae39f16479594c06ca06684060 (commit) via 14bcb9a23d6d96fedaf0d5d71f65a8e7a8e6a4eb (commit) via a15f7d0dd53d686bd77e5a94eadc0ea9853feace (commit) via d8afe3e2c0690899e2efa6742b13a619c4f92298 (commit) via dd4796fbea96922f3bf58bcf866cf9ea7aaa70f0 (commit) via ac14b325e03276f9e17e334b03a3d3129903bac7 (commit) via 340a567eae8e9a1be908c13e67626d278f32224c (commit) via cbc6219852bbb1162469e5a002e1c923e7e4fad9 (commit) via f8cbcb7c8ac944c54c57023fe7951ac1770941c2 (commit) via 7b82bee7c4886652ef64f639fd877daa727d1348 (commit) via 84ac1131b1789de9c0ff76a24190b508c4101806 (commit) via ab4876ad4221acad2e62bbb7fe7f92ba45099806 (commit) via 89f8ad0e9966e0d78cbafcb6eedce4ed7bd4b133 (commit) via cb92b363cf92326475df69ccee1684f3ae47b997 (commit) via 12b901f84668f0b4bfd9e3376547e644a83a6126 (commit) via 11ab2c7d9a5b91cbc3092defe1a32572acd0ba6d (commit) via 68f6312ac54728c20c08d1f100bc948e6f6a689e (commit) via c03d4a5e8a37c6fcbee55c5b7efa8930f9c98351 (commit) via bee56a2d5d1d901b93b2a72d5d855a2b3bb49f2b (commit) via 2a6e9ae967cd13e136cb563622236c979ba788c6 (commit) via e9a056234592750a42ff82c12e858069b32ab82e (commit) via daf400fa4d61a02eb17e24d29be01d2bbaa35f31 (commit) via 85860aff263c41a74ff274fca2998e941b9134f6 (commit) via 47a83092b5a6f2fa13d1c95de75b7bea4eb90da2 (commit) via 69460bba8037c6e8663a03eb93e35ce63df08939 (commit) via 901aa8b943e6442e4b3540a73fe7c79c9a9cd419 (commit) via cd1f97623535245443576e293da49c8ed0618b88 (commit) via 8b69a1135ec1d68e83e62b336266770148a5c45f (commit) via cc9a325708fa2efb9063758ce1bed05c6958b65b (commit) via 663e748907b0cf5fd854e4a4f4417db554708797 (commit) via 39e360b26c3815adfb32ead9ea5e782898ca97c2 (commit) via 9c89c64de19f43d77e2bc720fef2b58486472878 (commit) via b91712acc50b41b654c60f2754245cfe0c3751a8 (commit) via f3604e1192ef09ef43537d55d49cfc635d5d6f88 (commit) via 16e27e9acb53d78d2f9c631ee4f32fccf29791d8 (commit) via 64c5bbc453a4ca7419d8ab795efd7ab38d1885d0 (commit) via 85f129fe3cac3f5161a6451e137084d91282472a (commit) via 8039a71099eafbec9fb280ce9caff2c069bdff7f (commit) via 6d8eb5dec7bf36f9b1bd53c9354d980aea315d89 (commit) via 6921f0ea0a62b09fd3bb9772ffc50b86b49bef97 (commit) via 11760a707510a5173f41c58551e03438043f36d6 (commit) via b161bfa8683402036e0d3e08159aafda5d4c4310 (commit) via f0befbc3782b2a68fa96bb2e6534f0f6fa6af7f3 (commit) via 8cdfbf5aeb365378deb2ff2b5f18a83a2fcfe82c (commit) via 1da42d53f71991f27603b220e33ac49368410949 (commit) via 4e6ae999c6740a38876fdbf3b2bd6f4f51d23051 (commit) via 989d0fd7172efa96382a10cb1ee16e608355af29 (commit) via 4a75efa5a79a81a9f459e9dc113e474cd2e53df6 (commit) via 2d5447bb1b9eed087c1f18a25c15e9370e62408e (commit) via 0e43079789de38841b822b591dbff3be8cd37228 (commit) via 0eadfdad4a4031c28f5811b4b80ceba8865b17a0 (commit) via 6bcb5ffe56238dc7e4107f3deba8d1b943253250 (commit) via 93e0855b6f0fbf51bf2ae8a59b74cf713d4e970e (commit) via 85d6e8a91011d06cf0a913b7c204e522e6a62c77 (commit) via 278280da9606d394ec7c39127ffadc26a5a3d3d0 (commit) via add7654e19ba28b6e7e3a38bf7ddbecd77909551 (commit) via d8d7dd3bd8aa6b849dd191588e63947aa4444007 (commit) via ba338177a02f6c95f938c76b886a970ebd977456 (commit) via d50ef220b67c53688eaf1cc08ff8cd7f4fc4bbf5 (commit) via 0c7d0c0883fd0fd6ab45fe1657074f9a8d99b562 (commit) via f18c38312cb4156858fad253f84d66cfe01811da (commit) via c9493d6c4f307954c7280f5d31c46d6e352b2893 (commit) via 8777989d464a11f6f538ec22c2463d0c9c18c7ad (commit) via 86a921ee47cc1bd24ff01139b4867dc577c3e564 (commit) via fda8c915d66a8cabe813cc05afc1f2d560e74fab (commit) via 79bb8c75f29a5321692ae0f02b7b2ca3cbe2d94c (commit) via 769185b58ec52fcc9eaedab5df42b1b25057d0c7 (commit) via a1e89f481d13a59a38854a3921f3c0d85a26f4dd (commit) via b64c3fc8a3cc9f789348d331d1e4ba78a032f612 (commit) via 9f35ee8aec9805103c64305e0d4ea7b70c201d9d (commit) via 64d2fbd918240bc5c7d0bb7e3e7394892447a50a (commit) via 0b1b223aa097c3de563c67b36cc84d8ad6dca6da (commit) via f99356520c523e101d4010be6cd3d07f4cb34cbf (commit) via ec6fd189ee94eb5fb8f969ff71b9ffae9e13a37c (commit) via a5cb9aca7838837e41f34b5d29c3584f708444f0 (commit) via afe4656c72c71715bb264ef63849826e3bc0a399 (commit) via 290c9cf89b07f4d873bc098f2160ae6008b4bab0 (commit) via fa9ef0a616a8c5f536c9f6f5d9a10a088bea5488 (commit) via 0b7f6aa4d9d0f6c17d668620000c4496eb96e34c (commit) via 568438067cfef263b683f97b9350776f62396e04 (commit) via 11bc3c64204db4115ccb7c086faeb8ff233e45ba (commit) via 5b0bc4ca3d5609bed04a34284b5f746616f768f1 (commit) via 2dcea58cc2faf39bd170cef7366f05e940c62751 (commit) via 1293811896219e090e48e1bc5a5a1dfdde1ee839 (commit) via 555637d15601156dcbd0eb20a2e77014c6b504ea (commit) via 2b875b3985b17e2fa316825dbd490a94e0de74d6 (commit) via 52e54c1c9a0f530edca461da31279113647fe787 (commit) via 42ec14cf2b98fd599fbeb16a67a1dd7f4fb3e558 (commit) via ab89cb2253f0a46cc05e239afbb62155dfd47fd1 (commit) via 6b6ef098ae40a7a2dc8df4b0ffd700cf0cf7527d (commit) via 30a4e8278711dec69f3ca41b46038cff1cc9f2c9 (commit) via bfc84eb1537ff5f495da2e540d9a62867a05ae0c (commit) via 3af3ecd319bdcf8db27e9ca14af72383b4754567 (commit) via 433b7aa8e95f4b075fd259257c61c96a29e03830 (commit) via 64e822fb45db06af7a7e7ddc94961840d5bd1158 (commit) via 90f8339a42506ca95dacb820914881bc922f19db (commit) via 6e62882de69ad42efcb4c3c2097abb5d5c54666c (commit) via 58bda09b683311db948fb5be06b1521386286f03 (commit) via 95c86656e70af668d25f0a33afb3913ee5e2ded0 (commit) via 1a3dbe91b2456323c1fe53797da673b4d0f87e17 (commit) via 2e053370ab64a3f516fc7f9e4897c5b48eae580d (commit) via b128fe7e69304ee26a293d508e31bd7f63c12f2d (commit) via d039a7e99e00c349fd9ac934121097aca1c8f2f4 (commit) via e6e9a8117677eca8319982ce56aa72e93c9b407e (commit) via 73c39dd4bda322d7d9240651c6db003bff477670 (commit) via 5c86caac7d382baf69b1731611e81a2b88750f2b (commit) via 6b0d7d6bc3e5870a8f0ada33e2ab3170f942db9e (commit) via 4598f16cfddf949149f4b00f554d8991a192a84f (commit) via 08facb3b223363379e0077989cc44fe85a6e1552 (commit) via 196539512a8458c5b4b9d2b499d0ec36beacc561 (commit) via ba25f014b2a1c2132cead53511f8adad9f6ef896 (commit) via 5ae3072a47b8c2296d3b6bd25516284bf97b3cdc (commit) via b3cc5fbdb9f800b809c3bcd2f1d72fdd5c2b7e62 (commit) via 9f6da934a3b635f5c9f96ab737977dad2582e498 (commit) via b4f94285ff8ef9b347ee6f3e6fdb53e998ef63dd (commit) via 71ed067612b0819e3708b5565ada17888594b357 (commit) via ee1d2d13eec82becb9df17e511672682a27feae2 (commit) via f7bb003150fc1d4fba360224b31314629737ec2f (commit) via 7a302dd0fe1487d764bc30ee2479713d2288040a (commit) via 0203401cf5dcd2fc005eb33a593b625f56258463 (commit) via f29eb7ec93f05b553f4bb168b30827ff06de11c4 (commit) via 03dd9a2949d953e15bdaceab07af5649bfb21bd5 (commit) via a1fdbdac799c8b65f6e38465d76d4fc34847ad8f (commit) via 9b966c6a0bb6c889aac3b07aae08973014334c24 (commit) via 78403883e23271c9a7ab2bdfeeaf64cc20fd11b4 (commit) via a4c7bf6b73e5a2faae948188591d50cedbf18de3 (commit) via 40d505ea08931038fba56ee3a8da5053ad7ed389 (commit) via 5b6acb88c607b2b9a46365281e611706c0c12109 (commit) via ad5338015f68bca7bb5987c7e44218fe21377dad (commit) via f93635e375efaae2c8077d467e8811128325142b (commit) via 7f46e14b81e701cf3c37b3dd6c058942ed83b84d (commit) via bcd9852e2ee73b741f5996ecc05ba3758d330fb8 (commit) via 753bb74ce55d5107d3e8001ed5c15f462261aab3 (commit) via 2ad3c084eef6d82a8690e5d488d84c61e892ef4e (commit) via ec36876e6ade2e04d29963d8dcfab5d5bf580a99 (commit) via 7603ec4e1620aeaf0f2b102af887b4c3c022677c (commit) via 285de10662731bb67e946e7e112bb4cf892173bf (commit) via 4c27368a7bc135dc4443711c4eeabec0885ce1ff (commit) via 42e4fa805ec8c3bbc085d2d9d8746afd97062009 (commit) via d02853e73cd65332ebeda9490e3306931ebd7406 (commit) via 065c9931acf1296f287e9f783ec0a4668289c886 (commit) via e2eb09157ee4e40b383319cfcf16ad69fc5d73d5 (commit) via 0d655f6cd52ceada1e5bb6e157b22eb0280e71ee (commit) via 3bb77d08a689ef0b4ebaa88f48a684fe85ec580d (commit) via 16ba0c00d0d7b223682ab161c23af71315f6826a (commit) via fadcfb73203c97e7062828eb77360b4382555943 (commit) via 6adacba0552880f002b892796ce44467dd413c21 (commit) via a0a5efd7684e90f8dd8e465f1b54ec4fd043ae4d (commit) via 83dfa1d7b2e5946a9405a27dba9b3a81d958baee (commit) via 26b34186b3788b9ee58246e5b09748ea7b6df6b3 (commit) via 70c11aa670816d5cba6cd8e8cb89079e52b8fd2c (commit) via c9f6beac597ed25f7174bed63c24221fdf0d1346 (commit) via d0a1fbbe550aeabef272d841d58fc050bb9475e0 (commit) via 71670b91cccc3500d03605673f3966d669c93d70 (commit) via 439d2a5743d68a7b6108a8db2db91aefd9fac37c (commit) via 1accb4ad4cfaad4ef1af7cf7da1435de21a91698 (commit) via 96711574bec47c5ffec3bd26c0b4056e07d2ef0e (commit) via 6233483ba7d92b83a80e5a4759f83248198eb2f2 (commit) via 318685daf4a9d404a98b24f2175e505525547b31 (commit) via 2aeb4b256eb99c8971da60a5dff6bd3929270798 (commit) via c4979a81c8d27fed69b4f360cc67845bac85549a (commit) via 99093fa51667deb09c2ca4dd9cbad1d3469d738a (commit) via b0c1baa588d38afe11314c931ae62ee02047125f (commit) via 5a9e26d83150750f8a7d1420007752df2639fb65 (commit) via 76479e2746eacd39fa6548a21aacada19d112476 (commit) via 5a038beb35666e5e5a030481130766b5e832ef23 (commit) via e24a59271eb7b1a9ce5b2169acf408ddc5c22270 (commit) via f0fbffeb3af455f52fedc58050aff714127c05ea (commit) via 309783b9d569e30c9ecc7c76e2e1c2aef57b981b (commit) via 65e77163342164e18d115f8dfa550f07dd216869 (commit) via c2741b14ef385f334d2afdb67e5ec70f19cc2418 (commit) via ec9f81be0cee42529ac57c4f106144dfc1a934ec (commit) via 0a379f8fe60459b0d1234fe724c1af802beffbb3 (commit) via db045705a7e58166040f9c6ac8e7ca364bc051b8 (commit) via 68c2cbedf02c33787a03f83b6f102249183d3824 (commit) via 90e4ec2a88ac967600b8c692f7001314ca6d14c3 (commit) via 035ace2cbb99efe4873f77a34bd151f8d78ce21d (commit) via 5a6804a2472af03dd6744bb3385408d369659931 (commit) via 7284262a5e94fa4cc15742fa7c7a3a0252d9e9ee (commit) via d1a84dd38dd404018bfb418ee49b7605574090c5 (commit) via 4accbf93699f6fd76079eb3d75ca82039e01012c (commit) via 93d772a59e671d2d4fa8bd58a9de0fa5bb9b43f1 (commit) via 1a78fe5e2dd19a6c7959ec52e175ee7a70cc29e8 (commit) via 4fa404af2a60ab9faf760e087f9d267f7707dae3 (commit) via 6a5c29e7507385451b5ba27deb0fa95398c728b5 (commit) via 305a7b38889a50d9288e6c28b61612952f640d8f (commit) via cd0fc28d5152c4bfe35ac1cb7b7d615b60e4ef5f (commit) via 7676ceba65ca2f190ee4bde1b54618fd69eb1d6a (commit) via 865f26ac3242fb39c6b83b19a7a52d83e7a91dfc (commit) via ff441c487d7fc99a20d06dc6d6e99ea4f7c10c69 (commit) via 5494904e15e19596c097c2522f1d2d17908823fb (commit) via 8d862ed59a04ccac2b95384932f881e60e65d76b (commit) via defd8d008f9f28a3b91964b6fb7a4bfd11ace778 (commit) via d94384214e360013d4b43c6a32125d18d9f275ad (commit) via ff6f40b1f52970e0ba0c78942c1ae728b62e04bd (commit) via 0ec5f231e48a95758debda6f25a703d9140bd880 (commit) via 095cbf430f983bdde07187169566997d8285f32d (commit) via f8b12375c7667d6895ff6d9d2178e0abefbd3b90 (commit) via 303c90a4c16cbc4f1453b4b1a8fa4c47449830a7 (commit) via 27ba58fb46cc5c91618d6c5e70d521b0a381afe8 (commit) via d69bf6191aaae1a92ff7dd6012135b15509bc7b4 (commit) via 409cd018c51fc4b866b2c8ae78597bc88c3b5c17 (commit) via 270c0c0ef03de6b912aeee63d117df6fb64a37e4 (commit) via 716ddc41d3eee198a11f6da1d168d9c4226b4f2c (commit) via f2ce8e838fc8dbaeede744d8704240e3ab02036c (commit) via 7419447856e77681e49ba0808d0e3039800a9abc (commit) via e5acf30472378efba41c02638323d371315292bd (commit) via 7b906cb23ae0220adb9916cad34c2d90dbb7bdca (commit) via a0010abd6f0f6ced89c35e7c9e6780d6f32243fd (commit) via 2b59ba3c87c24dee693be35be00b7bb2ccd26813 (commit) via a72fac881bf4181f487e3edcc356b5dea74ed7ca (commit) via d7fcd5daa3addc8916a7c6be78c449a6ced6c3b3 (commit) via d5a11b8405bc93f516fa0449f26dd1246fed131f (commit) via 35f95ba741115576b9d5d695183d24f8b9523327 (commit) via 8e9a041324f2d9197c06e4053864e77a9e9cc799 (commit) via 52c5ec837f1b8ebbb93d1477dcb345ea921b84a7 (commit) via 3ad23ee1d98c45520122c32bfeb92ef80a2e612a (commit) via 15ffeb1bdd298d8f525a11352489d8c84dc9fffb (commit) via f1defee0b31798b403bb07c72d9dab54f70f2086 (commit) via 6f1467d7b13400b9d3d849d7956c0d3c100dc0f2 (commit) via a0e8bf8f365b7d24f622a8250da4a67948b946bb (commit) via daa3a950046faa04f88f988a42165b1f9b59ffe2 (commit) via 4234cbe2ef4d9a1313e08c34a46d61242486fdad (commit) via d33aa4523bd69c06d632fa3bc8710c048a8e25dd (commit) via e2b79cd11e413ab74126a2475f7de46a331da865 (commit) via a1a94abed1f608a1cb906471c740e6011ec27f61 (commit) via 19ba0366261403217c533b21e27e74f1a60af4a4 (commit) via 2fce30e6a80d48eeef528853bfdf995b06eb0c92 (commit) via 26f185ecc1e3a4f8afc0a8490de0441295b20a30 (commit) via cf4d6bb76cd51b978ef84a570c3766e7d43a3d16 (commit) via 8d0aa7108271be3a3e7cfb99e3b1b560cbab9b07 (commit) via 949d5c527a9a41e0ddb4a339d84ef48904c3da98 (commit) via 2ac39db92e9b6117d64940f8b0572a24afa07b33 (commit) via 30156b054ef332d8b1ece6fc5d9e0cdbc947ca14 (commit) via 80759d65f4a14e69b80b2afa9336c92991390b4b (commit) via fc621876dc2a994ab5b1d3aeef8c55e6430b511e (commit) via fd69d6f6dc9e41d9c2484152cb976a245f27e604 (commit) via c0b99a4cedf534fa1cdc1437a74a66b73afe3346 (commit) via bb5f0bf8f323014563b944086913756a28a43427 (commit) via 12f5ace887f4d040a22749a753b349df9f32e023 (commit) via 811a52519104150ebe845f391d936f83b4001135 (commit) via 5c2146b3c81677877bdf4648a24d4afe932027d8 (commit) via 2d708949db00588d1a50739d1f9586c4a2192a80 (commit) via 8f8b00b326f9c25fedeb0054702f44ac4e91a038 (commit) via b751cd7a4cce6e4c71b7c1dee41c71760be65137 (commit) via eb95ce89a8effefa0c6aa27bf6f048926d21fed0 (commit) via b119578f023df75a015505239751246c23f9a523 (commit) via 0c2cf9e2145737cc6af6f6147f322d9ce60465f6 (commit) via f195a8d763c82635bc1458bd9cd8d13cf45c95a2 (commit) via 4f585d559f2bea5002cdb57f171732cfd8675bec (commit) via 5bee9a9df5739810da488bf5bf71da4fe82be484 (commit) via dc21519f683d5bb0f7e5a9dfcfb4806afb895217 (commit) via ddc492dd30283a3108d1436f849abedad345d6b5 (commit) via 990b0904f3ab0b7562832bad825c915af6939a09 (commit) via f06d592af1fb93744dca80fbd23efdd0de7c60e4 (commit) via caca013c1165230eea388ed4a770f6663ad5608e (commit) via 3027c6bb963cc8f736aca51bc99391bbd00c677f (commit) via 8c60701a4f856689e5bfae2ff2b6c5b7c0f0fdad (commit) via f78d627af390360e60e9878c274bf7ef1855ef71 (commit) via debe3af56492731d6589a9005de8516e3037f88f (commit) via 34aa915f08448c558311a630150c17283d7fe2ad (commit) via 776a1761d0ec5cb1d28e8a546bc6af818892183a (commit) via 9168da6fcc7af41f347ca9fa374500db90994458 (commit) via 29ae57a7fe60cb345fbebb80f76e52c31b5cd163 (commit) via 987b75bcd497233d7f4588efcc6af5c78236caec (commit) via ab4fe66fc95d7e048e44accf5d7750d8bbf03555 (commit) via 43215686ce938ebacf037d14edba46817cf470c2 (commit) via 93c2de1c663566438a15cfeae0c03028201b8690 (commit) via 653a71b9514dc8a88e7d2247d1d709245afe748c (commit) via 6143bc300e2d83a7ed9b7c6a1d8bf019d62a8ae1 (commit) via 357b3fe80df5e54fd327ebb543fd56de859f0c4b (commit) via 4affc3e88997fd395f7b9be00b2cc51539d19122 (commit) via cb051c577c4da9f42c0235383f2455c020bcab51 (commit) via 34f30c5f926e1ca90451cc42d72af230f66406ea (commit) via 2e99ab8bf8a1dc79d1c411281bd82a19acf1c9dc (commit) via b88c88291bc62a7e8bc1ed784182a158d425a11f (commit) via 1ca546126e98aa23155de0238e929e446ac40d94 (commit) via 6584a984a0b149715b9f51451ab82216f42d0e0c (commit) via 595a90f00334fba2c10518998244ac157b76d8f6 (commit) via f8bf364f0d758902de954f8e43bf372d3259929e (commit) via e1efb8199d378a6e8461b11f1ce748492e48bcca (commit) via bb12dd7b69825c7dfa88a4353e0bb39d179ae7a2 (commit) via 47cd046aede256dccbd844dc1e580b47d3dd4c45 (commit) via d5f1422d81ea54a1b56e57dcb4aadde95611111d (commit) via 51ab1de143a9bfcbc15c4d8bf7a6689e44a607b7 (commit) via 815eaff433559a26418be66f6400929d8ce3f0ef (commit) via 1e5553305203cee8b5b83dab82da16ac7b9f8713 (commit) via 3b9a23ce076e25548f4affde5b61eb37f71442fe (commit) via afc611d448aee8eaaefa018dfb6acd4c6d6227a1 (commit) via c0359d6dfbba1124c5b2da60bc56947e7f21769a (commit) via b85d2a9819e5708b1716976c112b6043abe49881 (commit) via 7326051edb1ebec404e0b81bd85292285d7a5b6b (commit) via 4d2e7a35d9592cd2ddae0467b5a0f036fa105476 (commit) via a648546338f22138b5fe26c19b25a5686d23b0b9 (commit) via 7f25a65fc1d53178453ad8cb820a9251a8755402 (commit) via e17121fee73ba9adcc2d102d0127695613b780e8 (commit) via b044bb056937ea59df3b9e244d9d01540fed869e (commit) via fc83b09d437a0137b2c2db6ec07b4bdb8f98b051 (commit) via 72586f0ff0bad5d1e9f75ab02dfc3e7595b47ded (commit) via f1934a05ad64ae5dd78568eece018cdb452b2326 (commit) via cb4439f3943662742f8010d41aff47ac06bb1804 (commit) via d4cb89d2d111e219520f4e1294e2e0985f918dac (commit) via 43d8be093c2dcad28164745d451f8d2351b9b95f (commit) via 1a8fde0e845eab654aeee6dc5b780c3e4596cb4d (commit) via a0fb1099efded1fe13a7e7fb51a97097776a06a8 (commit) via 2af92cf5acf6d3b0ef52528a0e83a29353ff3c83 (commit) via ac9e77e3ba748c96c670f1215abb4c5bdebe66b4 (commit) via 0ac6c61d3770cbc1fd19e3c5332ab76124cd643f (commit) via f557ea1e596033a79ab1f6df4d57fd90c15a2271 (commit) via c12392c0ef3aa71cda43fe38cfd22e4afab5cc5e (commit) via 4f3bd0ca20de32b0020f9be926254d2a201d226a (commit) via 8442c93764a38c903fe683ae9533a4d906a2b038 (commit) via 60607a6c75730e94b115cd2351c910bf022648dc (commit) via 3f09f5309c82ebf8b8518a16aedea8e0aad5e66e (commit) via 3b2ad4a1bddd2185da6bd500be39ee19694399a7 (commit) via 533a2da388be0f83732a07b5a40ec2792fd2fad5 (commit) via 674f4e9d515233f5356fc502c862b28829736fde (commit) via ff4770c79ba800a03fea65ffd5153f75e63cf2b8 (commit) via fb0ce57589a8ba724d3c446b612181f6d7f3b8c5 (commit) via e41b651b4a3b79bb072ac94835e96432ac1968dd (commit) via d9b691e18e59323e14dd37428fe9857ab95246b4 (commit) via 8762442c4ece6aaf6b863a7c86aaefb9e47c8be3 (commit) via ed9ab82c61464a3a719f9662416b58cc83dbf4fd (commit) via 690b0bd7618c2b0e7284beaebcf771c02daced1d (commit) via d2c4a3cab92b07ebf0a01dc745d642429efd8159 (commit) via 2181b55552b061ad76dd4126a0c6a0f15de0b288 (commit) via 05d4f131e9f96a27249f1e833923ba2790dbd49a (commit) via c31f18b6a901bf02dc9e5e1c8474487a23e4c71e (commit) via 7c50b0483420028e1dc5f9b75ea0510b6c775567 (commit) via e1eef9d53e80503c97f86587d1f8e0fb99195a96 (commit) via 4682d02723a3650847c74e1fbfe8d38b75474cec (commit) via bac7013b21485ce8a6263bd19a7ba65440ec3336 (commit) via c400fe4c84dbb3c32e38d961f24275b29bc73d8f (commit) via cb6148989124a4df35fe4ab256b03106a5121357 (commit) via 6fab5bca2a3fc22aa08e7b6691e9f81a259d35ca (commit) via 3e79f33fc28e1f33a1b7599205ab86ae455d44c8 (commit) via 04abd8d95822b660e65cc1a85dac55f2791ae27f (commit) via eff2dbf8336c3935535a5f5565bfc27c4fccd4bb (commit) via e3c589276a90cfd67070e5e3f8007fc7ead6058f (commit) via 139a1ab9475c73f4c773d83de17346aca2e4eb8c (commit) via 6945e46310ca87cd42ca537293db33a77dc35dbe (commit) via 931e1fed53d8b5b74dbf2c2bedafc0399cccc7fe (commit) via dc82656bf97fef330f5f34ee237426fb53d86708 (commit) via aff15defbc1ade178a1fbbf1fa1b592033d4fb77 (commit) via 53f4c74d9bd0eebf70b4540b688be6d6c3e556ab (commit) via 9468a6f71372b680f642cc2c71466db8ce30a186 (commit) via ed31c098f5306caf1bf0abefaf7814ccb6636362 (commit) via be9be7cb5bf598e7d0781559ecd88ad702b58db2 (commit) via 94ea1f03464ab9434189ec270baa83fc2f2dcadd (commit) via 6f348fcb9d96d8372fbfca50675736e81eec6661 (commit) via 08e1c65d856ef4931dd641cdffe75ff75238e286 (commit) via 98cee89f94b5a7eedbfeaef1a4f1dcbc2c0c73d5 (commit) via ed618226bb7f03b3a12155d8f2d1bcdb58adb566 (commit) via d526a95bf105e787d8432af4bf9d4ba1f165d781 (commit) via bc912c6e0c34bfd81a915b3f2774fc6b848990ff (commit) via e09884e04f0aab0c9b4f2f3d22f9f653e93d0cb9 (commit) via f7e649ddfbd915136ae5acdad388d0b517e5ea85 (commit) via a60dbb4b6aef3c4753f3206812ff80d34235e066 (commit) via 829697d076d1b74a2499bd3bda6b70cfa56d6b49 (commit) via 6be32fe50454ded7ecbec877db3a05bd87bdcc05 (commit) via 28640b7365b6bcd73fd760300c1f994a331fc993 (commit) via 82e136591e5dbe3366f2a8d3f9129b98603ad620 (commit) via f0da8d53d02633030dafe6ad301488e8946ffccd (commit) via 218b3341b6fd9da564ee876c08d8bf2c1b0ec78d (commit) via fb61ec6715f8bcf9005477563a6449f51725f286 (commit) via 8343fd125091b3530a76609e8ec17dbf9f63ed69 (commit) via f833ef4660862fce522799582957a64b2159ea72 (commit) via 54d6863787ca89d11e59efc1e9d345fd5b9a5eb9 (commit) via 6b681c40d2d1cf9f0a1d6b8cedcce90809680e1d (commit) via 93b75f31ad920a2aa96206c2053b70affa135a42 (commit) via 6397b6e78974f316d9358841120f8e8bb34007f3 (commit) via e800ca53b20429a09054c8113517061279258ab8 (commit) via 9efd8d1c7eb134c71465396a1bdcc5ae52497d80 (commit) via a6edca5a899eca09c3ccd8cd22c2b7a3223fcdd3 (commit) via 2669161dab909e57a6642c2dea8d5a70900f4f12 (commit) via ddcec9d339162ee49d7973f815e03d8da5e973cd (commit) via f2ab6fba4afa7bc13a7549fade339eebc63c537b (commit) via bedb72f3d42cf71be128cf7c803baa53495af6e3 (commit) via 05612a544bf60d233704be5995241d2354dbde91 (commit) via d58677779f0a678a5495a4b198fc4dfd2fcc6893 (commit) via fccf52cf7eb362d88dca279b4fd4464dba92d6ce (commit) via 21b9a50c68d9c42e56a525c9745f638266469a39 (commit) via 472136c9271f162ab65b224225fe3e478a77ccb4 (commit) via ef6f983b1724f9b3ac4d5d4f5ba45288985c44fc (commit) via a0f267b92c63d8f1ac374073847766873e5fc445 (commit) via c773075074acff71cb574f67fd450f86bf7f6dc1 (commit) via f69ea1c7c59cdeb664cbc93eae60a538191ed44b (commit) via 7874d8200d10669bc7ab8c69c119fa62cbc8c69c (commit) via f38e0c4de02235f31fbff715af6dde0fcd62a78f (commit) via b3f4a4efcf1c8dae2804a879b7f59559935f4b26 (commit) via 8cb1afc817acdf6228a13ed097b514c4ed4cfb6c (commit) via a7d7f5a3da6ed8905c01c7987acaeadbdca9aa5c (commit) via dc33c23b1fa602ab80e7b0b4422ca2019caa24fc (commit) via 36e9534f244f05b93119f4b6ddae47717acdc062 (commit) via a9b3ae26a3e158c3c94cdb169ae55b6af4eb40d4 (commit) via d47bb8a1adbaadcc1e50231be850853f2d097249 (commit) via dafaa4142779c7f9a63b481f23df4cec95c5f03c (commit) via fd4d137dbe29bab16761f5fa90ee200a6725fe19 (commit) via 443a6e8a5f95fbea7dbb9efe254f166be7e38b35 (commit) via ec329c069981d096bc38a1787ca1b04722dc40ed (commit) via 97e2e7b4b72dc635f3b8cb79d16198ad4a966f50 (commit) via 223d3b1dca93f96ed104990bd256a664150360e5 (commit) via a615cab30e57f39cc891d75a195e1df4bf4e21f3 (commit) via d998784149c62299aa7c417b7a7919c3d9abdcf7 (commit) via 8013bd0ac28ac8daee7bae5ebcfe4c9fd8154310 (commit) via 92e4ae9db1334acf481a60656004b289b0accf80 (commit) via 88f18201c74a911303b8ba023830c5e068794a21 (commit) via e2619c15215a9f86773e3bb84056b1f651261ec6 (commit) via 770140a7bfb302261d1e79d3b9add20be6b2b7ed (commit) via 3f8d9da3000a6f2268fc2c3c9b724d593a079f8e (commit) via 5b375ca7e640361701497ae451a4892e7ec5334e (commit) via 3f6bba6dbb92a41ccbe5f63753c98cb6658e06bf (commit) via 25dd450cbae6159727dfeff231da9573a075b4f9 (commit) via 31fef6cc2d8c19fb7b5a86529b4b98bc2d4fd85f (commit) via d603d1dee0376f6816e9643c8a332780cd112d93 (commit) via 5aa8edf6f794691843e13f0febfb29ee0ccf18d7 (commit) via 515863e299fd11273cf06cc3d2a5ecd673553a1f (commit) via 30d80ed42a716aa35c5827a4ec513e2925638da9 (commit) via f83227921516681f642ce29e4f9121d6341e1d99 (commit) via 6ca0b0f5fbfdfe4875a38b7ffc47d2af56efd9ec (commit) via af768a7e80bb8fb3b25bfd8f13a4a0561927f9e2 (commit) via 96502a5a67692ae5fb06b9a83799c64040ced1df (commit) via 289d82ad6e87b8b22b6cb90d3b16fb1a6721734c (commit) via ba6f69f76943a83fece4a12fb632f9ad166edff3 (commit) via d9a4000ba84beb88853a43a7301633b590c79abb (commit) via e638799b12ce108b6a13cfb3e8a180c56f4d3b9c (commit) via 1031c2e4a919e510e09dc975ce1567493841d2c5 (commit) via e28356b92834e75f09756de76e3cb139e9b72e9c (commit) via 562d24b8169ac043b2ab4ebf160862b25e88097e (commit) via 5dd84c259d95ee2fc2967326388d5cc73af4eabc (commit) via 12a43202a6fb6a9b80664ebcf01792928c57c016 (commit) via b324de14db6c48823e570a285c91bb18593f02ff (commit) via 15add1c8afbbc8eed5dd9d9649049109dbce8d58 (commit) via 7bf83f9d39d3101ac096b42d0fc43a8caef97c5e (commit) via 6128ded855eefc07abc6904490cfed055e35647b (commit) via f80db6a4ceb985e14a5bc85134bafbd0b3c34416 (commit) via be5698ef6688c770f422011875b2d6451af017d8 (commit) via e5a058c131806586e53c44d5ecca7e1d4a926f84 (commit) via 046d88c2d0f5718a8efbd5cbee5e2f4e1b5f4dbd (commit) via c178bf21c1e6d68be2fca6763e8e4b8493304d32 (commit) via d928d79566cd802f85cd38bcd8bd76f4bb112547 (commit) via 6563800485c11292341c931ccf8aadb281eaa2c8 (commit) via e3580608b3cd6695980e2ace6eae4f969d71e070 (commit) via d0815ce43f84bf53f31f2a51ba4fb768d6c12e4d (commit) via 0b54aaede3702dcaf76e3d4b50fd5ca591e8fe13 (commit) via aa8647835d948bf7261fb49ba26054b8789b61d8 (commit) via 35fb91640a78eb4c58c0ecab50f317d8bd4341da (commit) via 4e62b47f3371f261d3a295faab9083063b5fbad1 (commit) via 5d7faa4518d894f90218c216bb2fb86e69f46b2a (commit) via d7127db8fb715f13b87cbce980137c2879a1d64e (commit) via c7043621fc4cf73f30749d21310a8569fbf1c78f (commit) via 6ba1cd4ceba9d4b343e5afb47e206e7a507f226c (commit) via 3f8fe51ef093987c5633a9564648b1d3fe2e5087 (commit) via d13a936349b048eb5515699fea46c7242b9c95ac (commit) via 2cee24627a50955ee1ab6b1414ce9d5aa7feeb2c (commit) via 6c8699612cdb1fec557f02b2e4ee22750e7b1ff7 (commit) via cd9d9d8a13405e380ad0422d2b47f48d9ef1f8a4 (commit) via 12dcfbbdbe38f8b81a3969f70516511ec779d011 (commit) via 8f204435d41f19c0e79b3ab0fb364606b8eb1522 (commit) via 0918e51633a3c1582ce075b6e6dc71d0a07566be (commit) via 5de39dea9c1ebbdf7c2a9407dafd3900677ac9db (commit) via 13e5dda402cac2e441d029459e152750c2493e7f (commit) via 5e9707230693d7f3e180ec6a711f54dd0c224ab7 (commit) via bfac6bd4dc79788c16d66b29b84d3ecb6d105653 (commit) via ed73b87ece9ecefd829dde86cc3a559172d3bbcd (commit) via 0013abb07c6dda5f4a67ec2a2025e8d1007c4417 (commit) via bfee206c989a77ae56701aec25a435262dcda1ee (commit) via 5edf47ffbac2f7a8a668c8b64addd767c3df306b (commit) via 7772ae734e9bc926c19adfbd9333471cdf300f6f (commit) via fb70d3d54035db1c7427f8d42570980199455190 (commit) via 937d4e0892956a054f012f9f6d4ce5b1e03227f0 (commit) via 20c00d4bdf1114b983c71d2557dcdb0b067e87e0 (commit) via d6bdebd47d1c163dae1fbde6b6758d58ec66d67b (commit) via 8f1634ffbc7b3d039088bf80c85c3bcf2eeaf56c (commit) via 53f3a4c82dcbcc95118635bf89e67876ccb79206 (commit) via 2b9460abfa947eb91b391e4e97daa95ee7bc87fc (commit) via 0b14d3d9b14ee36a01a67d83591ede814cc9f92d (commit) via 5b7ed8bbae95651ff9098b90466bb815d2361f5f (commit) via 6adcf1569cf30ca399ae0aacb9e86c06fff4ffc6 (commit) via e974ced8c5a280554d4034e60647188e109fe9a1 (commit) via 210ee67b5354f513a71a74df2633e2d3e0ddad95 (commit) via 7bd9d462de4035d508b108ab0bedc3fda87e1326 (commit) via 0f869e32d4ea1f56e84cb61578964adf6eec7659 (commit) via 85dc70c746cd8fe0b602c0e98f2cc4b2232507ec (commit) via 70d38e5089fcd9de5a595dc5e08563104eba65ea (commit) via e3afaf8890558beb5e399efe2f8fa6cbd9123b91 (commit) via f1ec713da7db766dc3593c99b9b5c5cbc6efdb86 (commit) via f3fb9b64ac9a15703827454e7f67bc6754af9c5c (commit) via 47a40c972633d9e817d58d5f0212ba47006b4973 (commit) via 45cfd811310ad839d8cc6b7358cd9074bf43ae80 (commit) via a57a5709a40580f68c4b2ecfd13d3a989ad7d4da (commit) via 4b147d950b148500c5ec04a9f13e04f8b2e1ad96 (commit) via ed62bbfb521de113f824228fed88f2f8f962035a (commit) via 04f24153fcb06d29411569d19784430e16eee237 (commit) via 8d1beadce31786cc87afc01880d731c8a19e120f (commit) via 3b81fad442d9078bc9131e731ce2034656bcb165 (commit) via 5238a8719d75273e5e52f083c0c10cbe9e3ea312 (commit) via 5a9fd5dbd1af37c5ecf3608333486716cf43354b (commit) via 25c4997947301c3be6407fece18e4ef652e59285 (commit) via 61068ee1a4b6d4c029da662f4d8f3bcfa1734909 (commit) via 43902ae5a274e33f0e0bd14787bac49aa827bcc8 (commit) via 9edb1d7a8e5e70c1ebe3d8f4197770e1c1c5d4e3 (commit) via 879462965387442e12cbade08cc20e3498c7672a (commit) via 99e698d03387f4ad40db1d2bd737c0d6cdc55a23 (commit) via 93a5f4a5821f92be219be12696de86ff8641395c (commit) via 8b3dd79147c3804e5f8944eef5c22380788ac348 (commit) via 8f0b047b4ba13521dfd782d0d164a2efec12cba1 (commit) via e0800c21db6316f0a41461f2e02fc7565d7c1a49 (commit) via cf576a12e54b51f563dccc77b783fce7de6b5768 (commit) via 99e5d97623e86562756166eba2cb8e504fad3646 (commit) via d7dc9718d31def634485a1b975a8a8e2a4c8bd4f (commit) via 8910ee647c5aaae0d05e61ca61939a7cfb60ac83 (commit) via 2833f5678e79bdd178d71edf947c5b37f5ccc6d7 (commit) via 27f4a6b159d9b040feffa8b06784fc71965fac2e (commit) via af49e3672351be5c1bad9958dfbd70bb638ffb45 (commit) via bcbf1b8ebe50b470c8ad6e63cb9519c3fea37499 (commit) via 7f9d1c39693c49b767a40dd226b47adf83ffbef1 (commit) via 36196d0d6439f83e8aaff92f186dba32f8f47eeb (commit) via bc3297257288edb70f77c74009669ddb901492ff (commit) via 9ee07ee5d2744bb7a55769bc6afb9ce21addb853 (commit) via d1f01304ffd334ee6ccf42a62f20de72ccc2bbde (commit) via e44fa0792b3d40b482da5213ebb1c3a9f00f7965 (commit) via 02da9f7bafcfc563b2d15b8741145631ea9c6a45 (commit) via 68ae5e591c993092e7f8f20abffb7d7d328ed1b1 (commit) via 992394d55cd19659a6717f2917e27d5a93a73e37 (commit) via 275a92e800636d0ba00daeb65b432d1dcf6c7bed (commit) via 1aec05a64e69852338ffd6e1b49e0d9beb9e5fda (commit) via 2da264ec63eb3091704a6b71cc7f83dc6f07a892 (commit) via 8dc23ff4fcc6b9f07cdd48abe7991419d255d363 (commit) via 8139398721023908ae3145d18839d2712ce522c8 (commit) via 54cb7ff0199cc9a7833038597fee4bfc7dbfeab5 (commit) via b526909163c325956f16fdd90287465aa78ffd17 (commit) via b9648e583305cc03907e9dde6c459fd8ba71cd0c (commit) via 485aac63955b1171f5f74525f345fdc4f94663fd (commit) via bbc14c234d62afe1cd8b0730265d5c3a57111744 (commit) via 9dafa928db040447cd888d6cd901130bdecfaebd (commit) via 62fc8511664c6646d706aa42927bac53ac6a5b5f (commit) via af8bc0d0a8c6a93277d9bfb6ef959f2cc8005b7d (commit) via fd10a52ca2860678368d162ce6b52b8c1cf25d0e (commit) via c0ec19967e4dc75b6e719177af6e258a7b4fd858 (commit) via 3d016366b8c38ed77038f4c1178d8b7afa466115 (commit) via 92788c464b2129302c4fa8b1b3dfec2f329bafdd (commit) via 7f5b2820698c2249b3d8496ec80315be86617f0a (commit) via 74e7001436c27096cd035452bd051a88795ef04f (commit) via 6be0579b189df15a1e6775462c0945c41043801b (commit) via e534554162a34ae47d135f3df251caac14502628 (commit) via 9bdb6b504536142e57acf9d967dc29aea47f09cf (commit) via adf41e6f3733955207801ef06665272aaddefd90 (commit) via c04f132d4947c6fbd41f9c18bc6590bd647e1786 (commit) via 231499fcc85bfb6ae4fbb03fbaca2873984be103 (commit) via d24a34cbdc529fcb9122ed7f99bc48c4a83263bb (commit) via 55674e0d3877ac07f71e26e0d07dacc6baf5759f (commit) via 14f7cb87b993267a1d76098ab9fa088533af1e18 (commit) via 2a81ab0d7701a7afd049d3ca5a28dc4e0fbffd20 (commit) via 111c99ddfa3632a8c2788b9c6d70c5e6d8a1dfd4 (commit) from b447d23666fa4ffc5a063cc1712ae750caed4e0d (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit dc3c6687c9c78f7e94f06f6c327d8f14777da179 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Jan 11 14:23:25 2014 +0100
fifteen: set to core76.
commit b7aff3d7143174d379570319aaad65afabbf76d3 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Jan 11 14:21:02 2014 +0100
util-linux: remove extern fstrim and eject packages.
commit 621e8d148b27125db48f50f0b11bd75454d909bb Merge: 2d0e29f e9e9980 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Jan 11 14:20:16 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit e9e998099e2b82dd84062a0d2d9ce24bdc7a294c Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 11 13:16:05 2014 +0100
fifteen: Ship recompiled version of PHP.
According to http://forum.ipfire.org/index.php?topic=9668.msg63198#msg63198, it is required to recompile PHP after the mysql alignment fixes.
commit 30491c6ac70ce55d4bfbcec5aee6096808b3c193 Merge: 68e89a2 b5890e7 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 11 13:08:27 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
Conflicts: html/html/themes/ipfire/include/css/style.css
commit b5890e73693cb323b115cf5245964177cb902f64 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 11 13:06:00 2014 +0100
theme: Move table styles to bottom of the CSS file.
commit 412a1f43ce7a91ef891a18991bbd865bfe150e4b Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 11 13:04:45 2014 +0100
theme: Make table borders lighter.
commit 9c9c9cb6134918b8a09bf35e6f01225ad8e39566 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 11 13:03:06 2014 +0100
theme: Fix padding at the top of page header.
commit d0c91170ca82e919432c56c13cc5b494a4e30693 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 11 12:58:05 2014 +0100
theme: Change default font to DejaVu Sans.
commit 7fbb77189640acfe14e77772e95fbea48c902353 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 11 12:55:30 2014 +0100
theme: Change HTML doctype to HTML5.
This is really not valid HTML5 code, nor is it XHTML 1.1 Strict.
commit 1ada718c392cfdbe6c989ee44c15188f7f639f7b Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 11 12:51:21 2014 +0100
theme: Set width to 960px.
commit 68e89a2f2828084bbe7a8fa15a16ae9626d4c74e Merge: 8c252e6 0f9894a Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 11 12:46:56 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 0f9894afa1e2c534f671c87efac4a1ec9997d637 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 11 12:45:04 2014 +0100
theme: Fix size and colouring of the headlines.
commit 8c252e6aa83f0a45d248dc59ae2bbc2ca717b229 Author: Erik Kapfer erik.kapfer@ipfire.org Date: Sat Jan 11 12:38:53 2014 +0100
OpenVPN: Check if port is smaller than 1024.
Bug #10459.
commit 7d44bfeef1614ca2ae0e60ddd020f004a3f3b071 Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 11 06:05:29 2014 +0100
changes pagetitle in vpnmain.cgi
commit f536ab266173dd7d6ec5ddd984e0a458c1aedbc2 Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 11 05:51:44 2014 +0100
language changes in Menu and on statuspage (index.cgi)
commit aeefcc9caa329cfd1ca8b8cdafdc845aab7507b2 Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 11 05:30:46 2014 +0100
Firewall: modified firewall-groups so that they can be empty even if used in rules
Now one can create a group, use it in a rule and then delete every entry from the group. (The firewallrule then will be displayed yellow and disabled).
commit 82f7d1b4d8f2d504ed750da549416a1110814cc6 Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 11 05:32:16 2014 +0100
Edited stylecss so that TR:first-child td {} has a top border (for firewall rulecreation)
commit 2d0e29fcfb429f057901b2799fc88bb30a3be2f0 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Jan 11 08:36:17 2014 +0100
fifteen: rename /etc/modprobe.d config files.
commit f64223d9ec9f2b0aa57ab4fae8680039de212d30 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Jan 11 02:44:27 2014 +0100
linux-firmware: update to 52d77db.
commit 3547adad97669b65c9b11eb69aa36fd41a2484d0 Merge: 986ba0d 2a747e3 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Jan 10 20:31:03 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 986ba0d12789e4a91d3cfb923822e2f366c9070a Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Jan 10 20:30:13 2014 +0100
usb_modesitch: update to 2.01 and database 20131113.
commit 2a747e37a86f44c5da8dbf67c4135772df29f24e Author: Kim Wölfel xaver4all@gmx.de Date: Fri Jan 10 16:19:43 2014 +0100
guardian: React on BF attacks for SSH at pre-auth stage.
See #10457.
commit 7514fe47f6b2caf5a1dfc80de3a539975b753b21 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Jan 10 15:59:33 2014 +0100
convert-outgoingfw: Fix permissions of p2protocols configuration file.
World access can not be granted to this file. It must be writable by nobody and can be read by all users.
commit 2505d2763efef1c2339f84f8130594c0ee7feaec Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Jan 9 23:51:03 2014 +0100
kernel: update to 3.10.26.
commit c82aa2ec9e0dee2d3ed1b5f3ca3c8fc158404228 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jan 9 18:46:03 2014 +0100
theme: Decrease font size of h2 elements.
commit fcd014e0afcb8370106ab0044a9911f9ce7c225a Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jan 9 18:45:55 2014 +0100
Update translations.
commit b7e621e1b1e3575ce5b10edfc6b99314c75864a0 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 16:53:09 2014 +0100
some corrections for titles EN
commit e3d82d27a0e3f8ed83cbaeca2166c53d9eede5f1 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 16:52:29 2014 +0100
correct title of hdd graph site
commit 6f5487d711a868f116618b1b1d7d7be74a23637f Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 16:50:46 2014 +0100
deleted title of backup.cgi
commit a9344b774b54495dcdd811f5854a0f2f640bb06c Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 16:29:36 2014 +0100
language changes second part
commit 38d3b742e70306d88795d25916f443a1b8d4932d Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 16:28:57 2014 +0100
language changes 2. part
commit 57ba5e812641d5bcd94e3e1bf55a7af375de853c Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 16:28:08 2014 +0100
layout of p2p-block.cgi title
commit d00b3548852f478a566ffa6dc9dc4b89e86c58a3 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 16:27:30 2014 +0100
Layout of optionsfw.cgi - title
commit 4d74a20df062b9449fc4bda89da7d2e8ace49552 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 16:26:40 2014 +0100
Layout of fwhosts title
commit 3932f02ba33e0f0b7686db4bd6f4609ae7e3d370 Merge: 9efba5f 9063a04 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 16:23:39 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen-layout
commit 9efba5f773a19b0b402bd7b4454d911f304e7d3b Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:11:25 2014 +0100
Language changes for new layout
commit 6fc0703674ad8f77445e1e997ddd990b24123854 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:10:47 2014 +0100
Language changes for new Layout DE
commit 73ede29f00320a187c49f2708e37aaea70bc1b8c Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:09:50 2014 +0100
Layout changes firewalllog.dat
commit c8ee899dbc37aee41df8298bdf3fb5102cd89b27 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:08:41 2014 +0100
Layout changes firewalllogport.dat
commit 5b579ad60c2bfed1e451ba096880734061e81e9f Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:08:00 2014 +0100
Layout changes firewalllogip.dat
commit 77a516cd6a74a7bfdf069a6fe0586f59594c04fd Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:06:16 2014 +0100
Layout changes wireless.cgi
commit f9a3c1c8c9d8068f4b8d7e1d3f4e732195553b52 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:05:36 2014 +0100
LAyout changes optionsfw.cgi
commit bc8ecbd6ae95d54ef0d9e99d564e09265e97bc9a Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:05:00 2014 +0100
Layout changes fwhosts.cgi
commit 62f34bba1e6b8814a584f371199ad567f9944fa5 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:03:27 2014 +0100
Layout changes firewall.cgi
commit 7cc8a0e526d20b2bf75a68ff208a3dbf0723c552 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:02:49 2014 +0100
Layout changes ids.cgi
commit dfcb2b9f9af53947ab6bfb8ad51e2a30ea034045 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:02:15 2014 +0100
Layout changes extrahd.cgi
commit 5ef70cca5dc565fd8521cdae7e995763f9bcb60f Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:01:34 2014 +0100
Layout changes qos.cgi
commit 2aaa32f72786004ef4a5eff2c0bd018691606085 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:00:57 2014 +0100
Layout changes time.cgi
commit ec5a7d21f63e0132ae97368bd269cf257530022e Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 15:00:23 2014 +0100
Layout changes ddns.cgi
commit f7edf97ae7044ff6d2fe25d3863c04d559197cbe Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:59:46 2014 +0100
Layout changes ovpnmain.cgi
commit 0afd84931ea1a0712fafb85aac8976069b465c90 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:59:10 2014 +0100
Layout changes vpnmain.cgi
commit 86048afb5a45fdb0a39051bcefd80edbbd52b8a9 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:56:21 2014 +0100
Layout changes wakeonlan.cgi
commit cc37572cf7f17795c07c546bef0f731c1b3c4db3 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:55:11 2014 +0100
Layout changes mac.cgi
commit bfe4320c6b9b5065db13008753a8d5e48c6eacd7 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:54:24 2014 +0100
Layout changes aliases.cgi
commit b84989af49f116d25d039b46ce825c0f98a06ee4 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:53:45 2014 +0100
Layout changes routing.cgi
commit ff92ff172269bbf8bed44a1f7cf36891d7843352 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:53:09 2014 +0100
Layout changes dnsforward.cgi
commit 0a644b4a04bbba6e94a8f5afed8eeca028fd6de3 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:52:33 2014 +0100
Layout changes hosts.cgi
commit 84394ec6dd2512e12b46b1546e4b2dae721457a8 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:51:55 2014 +0100
LAyout changes connscheduler.cgi
commit e084eea001b33fd4e16924c5caf7dc4742036670 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:51:19 2014 +0100
LAyout changes dhcp.cgi
commit 0da15c03d707ae58bd12b62a389b5970d4e57ce4 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:50:41 2014 +0100
Layout changes urlfilter.cgi
commit a9d40c03dbd5f486e0efba0c1a0fa406a15b78e9 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:50:04 2014 +0100
Layout changes services.cgi
commit 4ede29562fce127f88c20cec3bcdf9c6ac5bb988 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:49:23 2014 +0100
Layout changes backup.cgi
commit 4b74791b5da0a95fa9cef99faf2eea467985dce8 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:48:44 2014 +0100
Layout chnages credits.cgi
commit 55f084930912949f0d841cb2143d884d436c02d9 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:47:57 2014 +0100
LAyout changes gui.cgi
commit 748cfb0b8f5daba5cc0e6655ab93f0d32d3232b5 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 14:47:12 2014 +0100
Layout changes remote.cgi
commit 9063a04e94587fc38f410ec2234275417de201ad Merge: df5a6ef 42dbdb2 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jan 9 13:31:25 2014 +0100
Merge branch 'master' into fifteen
Conflicts: config/backup/backup.pl
commit df5a6ef76f2fad5aa08ec2959348f9eed9a48d70 Merge: 4e36e17 9b574b1 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jan 9 12:17:55 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 4e36e1791f368d6e612bc70bc5a5d6ffe1692338 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jan 9 12:17:39 2014 +0100
theme: Fix coding style of the rounded tables.
commit 943a96faed4fb515259c18d04b330ba622490b7b Merge: 4bf6a59 9b574b1 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 9 10:15:29 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen-layout
commit 9b574b13de88735968287db83bf1936087f9e59a Merge: 0008a2d 33c56b4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Jan 8 23:02:07 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 0008a2d7566f88d83aa75cdd8c2f35909475a69c Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Jan 8 22:58:50 2014 +0100
fifteen: add shutdown.cgi menu entry to updater.
commit 33c56b4f5853524a2c8dabc4d36ff602d6bf6314 Merge: 918baca 2106b71 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jan 8 22:39:15 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 2106b71eb555e29ff85d9bab0d1312642b730f59 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Jan 8 18:09:09 2014 +0100
fifteen: convert some settings at update.
commit 4ed7ef4620637d6047edc4fd713e753d3a7f254e Merge: 010ea13 96cbae1 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Jan 8 17:20:07 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 918bacacbd707105f0c49f5fa0917d011bde0a7f Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 8 16:00:08 2014 +0100
fifteen-theme: modified round theme for tables
commit 010ea13643caa3aac57e7b9829273cb27bf93198 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Jan 8 16:01:50 2014 +0100
fifteen: add pakfire to updater.
commit 96cbae14d7ad23028eea2701210a312003d4b199 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jan 8 15:46:31 2014 +0100
Update apache2 rootfile.
commit 921d7f2c3d51b8f49cf4a2db88c50b01a7949513 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jan 8 15:45:33 2014 +0100
Update translations.
commit 2d0e4dd2ef2340d8036f7e9e24c79730ee6a8c8c Author: Alexander Marx alexander.marx@ipfire.org Date: Wed Jan 8 15:44:55 2014 +0100
Layout index: added shutdown.cgi and menuentry. Also redesigned Layout
commit 4bf6a597fead7f5bf3d868593be4d9e366a1f3e8 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 8 15:35:19 2014 +0100
statuspage: some fixes of last commit
commit 043cfbc01fb23eb3f64fd290043fd3bfd21eb263 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 8 15:10:54 2014 +0100
Layout index: added shutdown.cgi and menuentry. Also redesigned Layout
commit 30aef1726ce7d9e0b8241cabcc30e7904c31b12a Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jan 8 15:08:03 2014 +0100
theme: Don't show headlines in bigger font.
commit 4c2910e91b036dbb58109681bed0facd49cb3f26 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jan 8 15:07:42 2014 +0100
theme: Fix CSS coding style.
commit e9850821d41da0ee5a524d85d01b1809e1b3af7a Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 8 11:11:21 2014 +0100
fifteen-theme: made vpnmain.cgi tables themeable
commit 99bfa85c8936a503a01402b1d7251a80d2fc5497 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 8 11:10:46 2014 +0100
fifteen-theme: made ovpnmain.cgi tables themeable
Conflicts: html/cgi-bin/ovpnmain.cgi
commit fd6299ba8a493e1394d8fac8c1b8a26e51b444f8 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 8 10:10:35 2014 +0100
deleted xtaccess and outgoinggrp.cgi from html/cgi directory
commit d9a0d20113711a83a1a12845e81fe0144f22d330 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 8 09:31:39 2014 +0100
fifteen-theme: made wirelessclient.cgi table themeable
commit f76b104cf3d3be62ebc7c3e38734e6ab0c6d5e2c Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 8 09:30:02 2014 +0100
fifteen-theme: made tor.cgi table themeable
commit a51528487b0d04de80f4e79555595445de9d23cc Merge: efca40b 961f3db Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jan 8 15:01:24 2014 +0100
Merge commit '961f3dbcd8675f8b62ecd2404a709e47ec2ae343' into fifteen
commit efca40b5cc923da6fc169d3bb2eaa2f39708330b Merge: e602416 31d488a Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jan 8 15:01:10 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 31d488a4f688903fd27269a18bdb84d53e9ef6d6 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Jan 8 10:05:47 2014 +0100
fifteen: add kernel and it's intallation to updater.
commit 961f3dbcd8675f8b62ecd2404a709e47ec2ae343 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 8 09:29:20 2014 +0100
fifteen-theme: made samba.cgi tables themeable
commit 4250f386ce7b1d66a87fed6fcfa84ac65471be48 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 8 09:24:57 2014 +0100
fifteen-theme: made country.cgi table themeable
commit 9d1058a434c0047843b21e420622087bf00cc208 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Jan 7 23:41:53 2014 +0100
fifteen: add changed packages and files to updater.
commit e602416f94ba818557644647bb6f55503e33ccf1 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Jan 7 21:13:56 2014 +0100
Fix inpossible download of hostcert on french language.
The french tranlsation string for download host certificate contains a single quote character which breaks the used HTML code. As a result of this it wasn't possibe to download the host certificate via the WUI with selected french language.
Fixes #10405.
commit bf7746ef83f0afeb6764b23336783e4a0e221eff Merge: 26922c3 f5e106c Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Jan 7 20:22:53 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit f5e106c42ab1fcb54f2d4c2605dfbe213b5b792a Merge: 277060a af8750f Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Jan 7 17:55:57 2014 +0100
Merge remote-tracking branch 'ms/ipsec-dpd' into fifteen
commit af8750fdc2c974899c35114a7340f51a09516bd9 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Jan 7 17:54:10 2014 +0100
Update translations.
commit d2d87f2ca06349f63d025e12dafda1b910956e40 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Jan 7 17:50:44 2014 +0100
IPsec: Make connection configuration more pleasant for the eye.
commit 4ad0b5b680e7d72f391434a9bad0a2dfc61fee92 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Jan 7 17:08:35 2014 +0100
IPsec: Move IKE protocol option to advanced settings page.
commit afd5d8f76e725ac910c238e94f2282f78bce5da7 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Jan 7 17:00:30 2014 +0100
IPsec: Allow to disable DPD.
commit 277060a472c826541885b40392e0d5a96ba1cf97 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Jan 7 16:14:30 2014 +0100
mysql: Fix compiling with -fno-strict-aliasing.
commit b0cffde30e2451500555853fe4acde983ab7735f Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 11:41:19 2014 +0100
fifteen-theme: added some css for tables in style.css
commit 91a81810e8395c84ba223e7d744e3a770facafc4 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 11:34:32 2014 +0100
fifteen-theme: made services.cgi tables themeable
commit c380ac83d3fe8f1fe4e73bbb2a63238f43ad0581 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 11:14:13 2014 +0100
fifteen-theme: made wakeonlan.cgi table themeable
commit 26922c33eb91951c79c5b6a5e959a5adbf20bc9b Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Jan 7 11:10:53 2014 +0100
initrd: don't remove binary moduldeps.
kmod needs this now.
commit c7edc1c70a5565cbb28a87c650b7cbb735923300 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 11:08:53 2014 +0100
fifteen-theme: made aliases.cgi table themeable
commit 623758aa652d6b6066ea01e5f6e12378e7504ba8 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 11:04:26 2014 +0100
fifteen-theme: made routing.cgi table themeable
commit 0317493a26a8da8e87a3c39ad69122aa6f008261 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 10:59:21 2014 +0100
fifteen-theme: made dnsforward.cgi table themeable
commit cff7f5a19ad66d3bdb9ee22df5b0ba3eb4639cc7 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 10:38:05 2014 +0100
fifteen-theme: made hosts.cgi tables themeable
commit ce8c87bdf710ba0ef8942f64558448817bf64029 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 10:31:12 2014 +0100
fifteen-theme: made connscheduler tables themeable
commit 52ca3c809334e1ab6bd5a75f2f66d2c49f7e228f Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 10:22:22 2014 +0100
fifteen-theme: made tables in dhcp-server themeable
commit 09eb51c98575d4aea2a11aed7a6fd682ded38d77 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 09:53:46 2014 +0100
fifteen-theme: made ddns table themeable
commit 633b0df5eed38a34ea165589f8906714f6c7b76d Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 09:38:36 2014 +0100
fifteen-theme: made wireless tables themeable
commit 783bf6afa5f4dcd7d12f563cc1eef6ac841353d5 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 09:35:49 2014 +0100
fifteen-theme: made p2p-block tables themeable
commit 902a15be1df0b63b10f1b8e7fbdc7779650a0e65 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 09:34:01 2014 +0100
fifteen-theme: made all tables in firewall-groups themeable
commit 8d28e3d092f85a8cdb57ebab5a5532a0b1df96f2 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 09:27:24 2014 +0100
fifteen-theme: made firewall-tables themeable
commit fda1f52ff3b2e031700f92af71a72a00ce41d992 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 7 09:23:37 2014 +0100
fifteen-theme: made all log tables themeable
With this commit it is possible to make css designs to all tables in the logs.
commit cbb3a8f91e2e7aa220b5bc9e9773fa4547f0ce85 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Jan 7 01:37:00 2014 +0100
IPsec: Fix and enhance DPD configuration.
Also the action option has now moved to the advanced settings page and the design has been improved.
commit 4e156911cc45c2788bfa7e04561e2a7e550c68b8 Author: Alexander Marx alexander.marx@ipfire.org Date: Tue Jan 7 00:38:36 2014 +0100
IPsec: Add DPD configuration options to advanced settings.
commit 5ca9ea6a28511653ca1c6d42725c15723ef89104 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jan 6 22:12:35 2014 +0100
fifteen: Add openvpn.
This needs to be shipped any way because of the updated openssl library and the changed set of ciphers that comes with that.
commit ce7c5249bfbad7b5a1ac6106621cc27a75d3ad4c Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jan 6 22:11:47 2014 +0100
openvpn: Support Camellia cipher.
commit 1fbb415adad359bb9d07467214af904dc0e4b422 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jan 6 21:53:58 2014 +0100
apache2: Fix directory permissions of themes.
commit 3bdc1a4e426950914554fbe97e0d8ecf8d529d5c Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jan 6 19:10:27 2014 +0100
openssl: Update to 1.0.1f.
commit 49da7d797547095ee8a13b079c63661e8e4aa1ad Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 6 13:18:05 2014 +0100
Firewall: added check if firewallrules need to be updated when editing services or servicegroups
commit 95e9415ada2cd29399eec02c2748ca22792ec0a4 Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 6 13:23:48 2014 +0100
firewall: Fix colouring when IPsec VPN subnets are denoted in CIDR.
commit 73cb6627fc3d44ecade787f3fd80cc91d53a42f8 Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 6 05:58:40 2014 +0100
SQUID: fixed length of FAKE_REFERRER field
commit d0f8bbc13e5d1158b86a58c1744a81e36c899aa8 Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 6 05:19:44 2014 +0100
Firewall: reaktivated targetport-check. now there's an errromessage in case of wrong portnumber
commit f4d5310decf8cd8f16d92bfe0457cc8fb87fc663 Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 6 05:03:40 2014 +0100
Firewall: deleted subnet from source and target addresses if manually used
commit f0dc00d80f0b97059df52b624e1a982a6dad5bcd Author: Alexander Marx amarx@ipfire.org Date: Sun Jan 5 21:45:54 2014 +0100
Firewall: fix last commit.
commit 9566c8f52cd96ae3dee000f72028eb80a31bca16 Author: Alexander Marx amarx@ipfire.org Date: Sun Jan 5 16:00:47 2014 +0100
Firewall: Bugfix - when creating a rule which leads to an error, the rule action (Accept/Drop/Reject) is set to default
commit f4b373993fb60809901e7c45d690f569b0d8867c Merge: 75474c3 9027a25 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Jan 6 08:56:31 2014 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 75474c3c493c3f2f4a4ab793910557fffc4182d3 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Jan 6 08:53:30 2014 +0100
apache: Add message for generating host certs.
On rpi this need 3.5 minutes so it is better to show that this need a while.
commit 9027a25d92afbbb4486c17deac66b4c439e80520 Merge: 4234ca5 935f311 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 21:16:17 2014 +0100
Merge remote-tracking branch 'ms/fifteen-theme' into fifteen
commit 4234ca5d64f8e34c40ee48c58599f00cb3a15862 Author: Alexander Marx amarx@ipfire.org Date: Sun Jan 5 15:18:24 2014 +0100
Firewall: cleanup of unused JS variables.
commit 0051027b79220c17a8eb5e05dcf79e1549c94489 Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 3 09:13:33 2014 +0100
Firewall: Bugfix - when creating a SNAT rule and using a service or servicegroup there was an errormessage displayed
commit 935f311ed9dc4c67d7e603f6b08a45d1225422c8 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 21:07:41 2014 +0100
Add an alternative default theme with rounded corners.
commit 8a39dd30e3d7f8386d15db6960926d75148610be Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 19:38:14 2014 +0100
fifteen: Add all updated themes and CGI files to the updater.
commit fe9f7588151c5f98a73f5718cd19b1743ff1d6c2 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 19:36:06 2014 +0100
ipfire theme: Show hostname in title by default.
commit dd2ef3b2370e89a79dc01ada8aa1f00d8f0615ee Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 19:32:23 2014 +0100
ipfire-theme: Update path to jQuery.
commit 121628ea689844c3e6618d0e7ae4b83f8b3cbea6 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 19:31:32 2014 +0100
GUI: Remove the blend effects option.
commit 3f653a29ae0e030a36fe4a49652fc0411eed782c Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 19:25:46 2014 +0100
ipfire-legacy theme: Update web resource paths.
commit f14e224b1c98924dd46f50fa3539c7b799ebc35d Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 19:18:55 2014 +0100
ipfire theme: Update file paths to web resource files.
commit 802d795488a1387e8b564201894d3db39681d08b Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 19:06:08 2014 +0100
header.pl: Include required perl module.
commit b3f7b96824062f9fa3d9222a4b7e117ae20c949f Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 19:02:09 2014 +0100
ipfire theme: Remove lowercase stylization.
commit a4b9426b0f5f965128fc745013e26b3d1cd316a9 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 18:58:27 2014 +0100
Rename ipfire-new theme to ipfire.
commit ff972c82761ab198819dc268b154b7b4cc0b06df Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 18:58:02 2014 +0100
Rename old default theme to ipfire-legacy.
commit c3f00878dded2e80bfaba67627d2826ad8d49f89 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 18:51:22 2014 +0100
ipfire-new: Update footer.
commit 697a4d5217b10429a40a5224ac65b680485dc080 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 18:15:40 2014 +0100
ipfire-new: Cleanup CSS code.
Lots of code that was either redudant, unused or unnecessary has been removed or has been cleaned up.
commit f880f8a22528ff0e896eb2a3e1bfdaa676493966 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 15:10:27 2014 +0100
ipfire-new: Re-indent CSS file.
commit 926241aea24a60dce858c863aac39d6be83b23df Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 14:59:24 2014 +0100
speedmeter: Convert bytes to bits.
I assumed that it was computes in bits (hence the variable names).
commit eb6389d09de11b2aad940d5bbacb5e2a28ce79fa Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 14:50:34 2014 +0100
ipfire-new: Fix positioning of the page headline.
commit 865c76157580b18551df1033781fbf3b8fccc8e6 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 14:40:06 2014 +0100
speedmeter: Show speeds in Bit/s, kBit/s, MBit/s, ...
Also clean up the dirty HTML code.
commit ceda40f2bcd67c7e0b3215e0c32eec21ca59811c Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 14:15:11 2014 +0100
ipfire-new: Fix encoding of refreshInetInfo.js.
commit af731c7dc5e4d947893bcd1427d14195665bcb4f Author: Alexander Marx alexander.marx@ipfire.org Date: Sun Jan 5 14:04:59 2014 +0100
New theme for the IPFire web user interface
commit 1dc44471365cccef7ab2b3ec766c0d0c26f86475 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 02:42:21 2014 +0100
general-functions.pl: Format output of age().
The output of the age() function was a bit messy with some translations. It was now much simplified and it now shows the time in a standardized format.
commit 63e3da5935ee846b9e1e29f624bd299518194d35 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 02:18:43 2014 +0100
vpnmain.cgi: Re-design algorithm selection.
commit 22fc183e08240d59230459c9bca1004e27c7e381 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 01:34:40 2014 +0100
IPsec: Add MODP-2048 subgroups.
commit 651d442ecfe233b2a07773a606f49acf12991184 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 01:27:53 2014 +0100
IPsec: Add Brainpool elliptic curves.
commit d72a820484dae4d4118e345537795bc69b20b8ac Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Jan 5 01:11:10 2014 +0100
IPsec: Add Camellia cipher for IKE and ESP.
commit 660f97283578616426bac2333a14c527770c2c0f Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 4 18:31:10 2014 +0100
darkdos theme: Fix link to jquery.
commit 36f101c73350fbfc736ecddb741a514927dd980e Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 4 18:29:47 2014 +0100
Add darkdos theme to IPFire 2.15.
commit 8e8fb1dada5cf710ffc4199f436618e4a2664e41 Author: Logan Schmidt logo3801@gmail.com Date: Wed Nov 6 02:06:54 2013 -0600
Added new theme: darkdos
Red styled theme inspired by maniac's theme.
commit b7d9509c3aebab95d559a3a7ad64f9d9655a3c07 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 4 17:20:15 2014 +0100
openvpn: Use AES-256-CBC as default cipher.
Applies to new installations, only.
commit 1dbe439b83315f413c94f7c1726cdd44d7f2f838 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jan 4 16:21:56 2014 +0100
toolchain: Fix compiling due to Stack Protector changes.
commit 33a1b286084cf0745aced5f17c86e39b41859c40 Merge: fd71513 ea6d664 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Jan 4 11:49:01 2014 +0100
Merge remote-tracking branch 'origin/master' into fifteen
commit fd71513f75bfe0af6cb1e69ccb8df75957d131da Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Dec 30 19:36:46 2013 +0100
Set version to 2.15 beta1.
commit 349b93f67401d79548620da0bd9f695a36ae2823 Merge: ba263fb b447d23 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Dec 30 13:55:34 2013 +0100
Merge remote-tracking branch 'origin/next' into fifteen
Conflicts: config/rootfiles/core/70/exclude config/rootfiles/core/70/meta config/rootfiles/core/71/exclude config/rootfiles/core/71/meta config/rootfiles/core/72/filelists/strongswan config/rootfiles/core/72/meta config/rootfiles/core/73/exclude config/rootfiles/core/73/meta config/rootfiles/core/fifteen/exclude config/rootfiles/core/fifteen/filelists/strongswan config/rootfiles/core/fifteen/meta config/rootfiles/oldcore/70/exclude config/rootfiles/oldcore/70/meta config/rootfiles/oldcore/71/exclude config/rootfiles/oldcore/71/meta config/rootfiles/oldcore/72/filelists/strongswan config/rootfiles/oldcore/72/meta config/rootfiles/oldcore/73/exclude config/rootfiles/oldcore/73/filelists/GeoIP config/rootfiles/oldcore/73/filelists/hwdata config/rootfiles/oldcore/73/filelists/openssh config/rootfiles/oldcore/73/filelists/php config/rootfiles/oldcore/73/meta
commit ba263fbbb9d10ceab94ffe6640e164e7c9423e51 Merge: 481988c 1d0a260 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Dec 30 13:45:10 2013 +0100
Merge remote-tracking branch 'origin/next' into fifteen
commit 481988c68d1380d918f42cb109a72c854826ffc7 Merge: aa8512f f7165e5 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Dec 30 10:35:25 2013 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit aa8512fac63ff7451392d3d8d8114a286ec638e9 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Dec 30 10:34:33 2013 +0100
firstsetup: init udev hwdb at first boot.
commit f7165e5aed61866f8d82141c9ac152468a964f4c Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Dec 29 20:56:16 2013 +0100
openssl-compat: Enable cryptodev again.
This is compiled in and therefore not an externally loadable engine.
commit 33c4c29b5e32c818e1c0fc925424950f8cd613f6 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Dec 29 20:46:41 2013 +0100
openssl: Don't propose too weak ciphers.
commit 3d2c3affcd2992461fac5bba54dbff551eaafb72 Merge: a538898 63efc01 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Dec 29 20:32:47 2013 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit a538898a469237653e1f0ada0238e7f4168a1991 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Dec 29 20:14:01 2013 +0100
bluetooth: update udev rules.
commit 63efc01c84a5f559858d0d46cb7c5a2212486567 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Dec 28 17:06:38 2013 +0100
pakfire: Prevent an infinite loop with empty server list.
commit dfe0a20def8732831647dfe551551f7c85c14f27 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Dec 27 13:37:40 2013 +0100
fifteen: Add openssl and depending packages to core update.
commit ec8c14746c56ec725896d94663ba844260d9c0f2 Merge: 8dafd71 6db5309 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Dec 27 13:32:38 2013 +0100
Merge branch 'openssl-update' into fifteen
commit 8dafd717bcbbc22d27d365134f31d9007a11111e Author: Alexander Marx amarx@ipfire.org Date: Fri Dec 27 11:09:34 2013 +0100
Firewall: remove old firewall scripts in update.sh
commit 0206795e57d0b0f0caabec7de4efe54fff1bc6b5 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Dec 27 11:29:10 2013 +0100
sslh: Move binary to /usr/sbin.
commit 230eeac04df6b58407d087a211d9d4a096e0b97b Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Dec 27 11:11:29 2013 +0100
sslh: Cleanup initscript.
Calling setxtaccess has been removed and never have been used at this place. Also, it is checked if the external IP address was properly read from file.
commit 6db53091a36311e217188cb4ede6a2add82070c2 Author: Erik Kapfer erik.kapfer@ipfire.org Date: Mon Dec 23 17:38:41 2013 +0100
fetchmail: Update to 6.3.26.
commit 66aeb7b5042c7188fedc66abea1e224c39836ed2 Author: Erik Kapfer erik.kapfer@ipfire.org Date: Mon Dec 23 17:38:41 2013 +0100
git: Update to 1.8.5.2.
commit 55e16317fd80f4fe4d4e46180bfb8b50cccde44a Author: Erik Kapfer erik.kapfer@ipfire.org Date: Mon Dec 23 17:38:41 2013 +0100
wget: Update to 1.14.
commit 5c3da078b3deb53b001a4bc91f50216807ab9bcc Author: Erik Kapfer erik.kapfer@ipfire.org Date: Mon Dec 23 17:38:41 2013 +0100
Net-SSLeay: Update to 1.55.
commit 2f90f73a98e0f8649fb51028a152f994d815c715 Author: Erik Kapfer erik.kapfer@ipfire.org Date: Mon Dec 23 17:23:17 2013 +0100
imspector: Fix build with openssl 1.0.1.
commit 37677cf0d1f3306316e08d9244b4e8184d6d2876 Merge: 0f90adc 12f8cdd Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Dec 25 20:44:24 2013 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into openssl-update
commit 12f8cdd5895b4b87342c93247299984df5ef9a45 Author: Alexander Marx amarx@ipfire.org Date: Tue Dec 24 09:11:49 2013 +0100
Firewall: editedt update.sh to get rid of errormessages
commit 0f90adc0aa54d8a79b2a0b6061bcbf5ff5c98422 Author: Erik Kapfer erik.kapfer@ipfire.org Date: Mon Dec 23 17:23:17 2013 +0100
openssl: Update to 1.0.1e.
Contains also the old openssl-0.9.8 libs for compatibility purposes.
commit 4176a1badace1fd2c06c375f9c2d7562edee870a Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Dec 25 15:12:34 2013 +0100
openvpn: Fix verify script.
Former versions of openvpn called the script where the arguments in the certificate's common name where separated by /. Now, those are separated by ", " (comma, space).
commit 4c7fe35f9edfe8e4626195758fb6774bdc418d04 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Dec 24 10:05:07 2013 +0100
fifteen: fix rootfile.
commit bb234c63ef0fd15a68044db3b172247884cbaa34 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Dec 23 22:28:27 2013 +0100
partresize: fix partresize for new arm image layout.
commit dcbb8e4f41d6541663ae64f00a05b66e5e01f7cc Merge: 30f6890 0dc5523 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Dec 23 22:27:58 2013 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 0dc552342b48c1737f20e4a591b21b9812f0c624 Merge: 03f02bc 71f5193 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Dec 23 22:25:13 2013 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 03f02bcd20f9e5c1cb0743bfe88ba02c6ad01dac Merge: 562e14b 3323003 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Dec 23 22:24:23 2013 +0100
Merge remote-tracking branch 'stevee/imx6q-wandboard-rbased' into fifteen
commit 71f51934d73bc5d252a46776cbb9ce76a5398fb3 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Dec 23 15:18:47 2013 +0100
fifteen: Add url-filter.cgi to updater.
This file has been updated for core update 73, but unfortunately was forgotten to be put into the updater.
commit 8298e1ddc3089e21d3643199148b558be6716079 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Dec 23 15:18:12 2013 +0100
fifteen: Add credits.cgi to core update.
commit 632e0a3e5ecad92110fcb114bfa20e607b853dcb Author: Alexander Marx amarx@ipfire.org Date: Mon Dec 23 15:14:25 2013 +0100
Firewall: added amarx to credits.cgi
commit 1ad5c2fa0713024dce7c14c7b5bd008e3f128cf3 Merge: 8789de8 8ecb645 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Dec 23 14:59:56 2013 +0100
Merge remote-tracking branch 'amarx/firewall-beta10' into fifteen
commit 8ecb64505dc79a02c6599bd728f8393eb1146da9 Author: Alexander Marx amarx@ipfire.org Date: Mon Dec 23 14:52:33 2013 +0100
Firewall: Edited update.sh for fifteen core update
commit 8789de86786951f4a6e8f625a4f8ebdb5b6727c4 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Dec 23 14:36:19 2013 +0100
fifteen: Adjust path to firewall converter scripts.
commit c0f99754df9ad6cbdc4675d5568ac94a6ede20c3 Author: Alexander Marx amarx@ipfire.org Date: Mon Dec 23 11:05:04 2013 +0100
Firewall: now it is possible to connect from one ipfire to a green network of another openvpn connected ipfire
Please take care to put this into the docu! One can create DROP rules if the remote ipfire should NOT be able to connect to the others internal networks. Therefor you have to take the green interface IP as SOURCE!
commit 454d47a9944ae5ef1e9206b76b92ac931af0333d Author: Alexander Marx amarx@ipfire.org Date: Mon Dec 23 08:08:27 2013 +0100
Firewall: changed outgoingfw converter to reflect new counters
commit 33230038e9071622f150102c5615c6e1db478311 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sat Dec 21 17:15:44 2013 +0100
Kernel: Provide a working kernel configuration for wandboard.
commit f7075c3a3798475a00a86ad0c12a7a8ca6e2ddc5 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sat Dec 21 17:15:03 2013 +0100
Kernel: Add support for PCI Express on wandboard.
When manualy a PCI Express Slot has been soldered to the board, any kind of PCI-E hardware can be used after loading the pcie_imx kernel module.
commit 30f68903d339fdb2e1a0b3ff62b6b770fee9ca36 Merge: 562e14b 5cd3a05 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Dec 21 10:05:39 2013 +0100
Merge remote-tracking branch 'origin/next' into fifteen
commit 562e14b01f02f811ed4c5c98e563aa2de2d9caf4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Dec 20 23:31:40 2013 +0100
kernel: update to 3.10.25.
commit 3c037075d0f6c296225500651d89b03b3c65d9e2 Author: Alexander Marx amarx@ipfire.org Date: Fri Dec 20 12:53:46 2013 +0100
Firewall: when DNAT external port is given and dest port is empty, theres now an errormessage displayed
commit a8b113e73d9e8b71eb57621109d7c4a6b46c34e2 Author: Alexander Marx amarx@ipfire.org Date: Fri Dec 20 11:56:18 2013 +0100
Firewall: Now servicegroups and networkgroups can be renamed
commit 5f037986b7b1b1f3b012ea0c50e44c77e92cfef2 Author: Alexander Marx amarx@ipfire.org Date: Fri Dec 20 09:40:24 2013 +0100
Firewall: added JS to automatically select radiobuttons in fwhosts
commit 484269ceacaad3deb817e1e9dc0af444633d1400 Author: Alexander Marx amarx@ipfire.org Date: Thu Dec 19 17:32:37 2013 +0100
FIrewall: Rewrote complete counters for firewall-groups (hosts,networks, network-groups)
commit ce2dbe92ce5f0655670d38502a65c0c53542e361 Author: Alexander Marx amarx@ipfire.org Date: Thu Dec 19 17:26:12 2013 +0100
Firewall: Bugfix - When editing a DNAT rule and setting prot to "all" the port from previus rule was not resettet
commit dd6c9bb9c3c9031358aa61b629bf38b568d96676 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Dec 19 22:46:48 2013 +0100
collectd initskript: parse new lm_sensors config.
commit 724908c6802b0750fcb96891e14a0e79c786dc9f Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Dec 19 22:45:34 2013 +0100
lm_sensors: update to 3.3.4.
commit 2b230b77f5710aae3a8bf345b31d76d51c747829 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu Dec 19 21:42:56 2013 +0100
Kernel: Add SATA support on imx6 wandboard.
The imx6q wandboard has a soldered SATA port which can be used by loading the ahci_imx kernel module.
commit 0c41633ee1379d6646f04f53ab015992892132b2 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu Dec 19 21:34:09 2013 +0100
Kernel: Add support for wifi and bluetooth on imx6 wandboards.
commit d24c586a953bb14e293fda10928759a4a0ca62fd Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu Dec 19 21:31:39 2013 +0100
Kernel: Add terminal driver support on imx platforms.
commit 14ef7de4399c294f5eea5e8a1ac74946d01c2bc0 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu Dec 19 21:29:11 2013 +0100
Kernel: Add CK01 clock support for imx6 wandboard.
commit 0520e6a5d0030f0cc153d070e424dc4f4f69e47a Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu Dec 19 21:26:15 2013 +0100
Kernel: In case of busy i2c try again to get ACK on imx platforms.
commit 83d8e3a6db7a1519e855f668917f4ba927b9111e Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu Dec 19 21:15:30 2013 +0100
Kernel: Add initial support for compulab utilite.
commit 9bfde8ed40d238df4c1ab9195531f8b5e22d65a2 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu Dec 19 21:11:54 2013 +0100
Kernel: Add initial support for imx6q wandboard.
The required entries for the device tree are taken from kernel 3.12.
commit 8a5ef45f1520cd947c02b5dbbafb22163ec6c098 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Nov 12 21:54:12 2013 +0100
Rework of flash-images.
commit e3181add8e3c5cc5c37ee67e0d1053e79557c382 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sat Nov 16 16:12:55 2013 -0500
uboot: Update to 2013.10.
commit 3fc43cd15b10fd13b9c4abc7d5dd159fa1d5343b Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Dec 19 10:55:57 2013 +0100
xen-downloader: build only on i586.
commit b2c242219166e1e45704b7d8dafe910d728f6327 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Dec 18 11:29:48 2013 +0100
kernel: update to 3.10.24.
commit 30f08bcf80c4c016cdc1f025cc2fbd5533ef20b9 Merge: fac3861 33e6458 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Dec 16 12:31:19 2013 +0100
Merge remote-tracking branch 'amarx/difflang' into fifteen
commit fac3861429d1b4c57c18ff13236d363d87fd31c0 Author: Alexander Marx amarx@ipfire.org Date: Thu Dec 12 15:44:45 2013 +0100
Firewall: Bugfix: in /etc/init.d/firewall the REDNAT chain was affected BEFORE NAT_SOURCE. Outgoing SNAT rules where not working though
commit 39962c6e3d83f88f63587f0ce2c1fb8c8cd7f2e1 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Dec 16 12:28:08 2013 +0100
iptables: Update to 1.4.21.
commit 33e64584dd14decbeec39f0bdd4f4b2029b45e9b Author: Alexander Marx amarx@ipfire.org Date: Fri Dec 13 08:03:23 2013 +0100
TOOLS: new script langdiff added. With this script one can check a languagefile against another and gets a txtfile conatining the missing lines.
commit 7506baa2ebd5a6ceb92596f463f493f45a97661c Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Dec 12 21:05:56 2013 +0100
wirelesscrtl: Add --wait to iptables command line.
With a huge number of access rules, inserting all rules into the kernel took a long while in which other iptables tried to access the kernel's ruleset as well, which then lead to resource conflicts.
Since iptables 1.4.20, the --wait parameter is supported that will wait for a global xtables lock and then proceed.
commit 7d5e022df4b37f157f8528cbce892e273f1b4836 Merge: 5d4d41b 3a162dc Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Dec 10 13:31:38 2013 +0100
Merge remote-tracking branch 'amarx/firewall-fifteen-beta9' into fifteen
commit 3a162dc14f98444dd91493285c677dc295aa4c4f Author: Alexander Marx amarx@ipfire.org Date: Tue Dec 10 12:21:48 2013 +0100
Firewall: rebuild complete counter procedure in firewall-groups. This way the counters are on the fly generated and stable. also this is a prequisite to the new option that firewall-servicegroups can be rolled out by installation
commit 5d4d41b18c80f236b4dc796e1394ef0035cb034d Merge: e39ac92 9fa1849 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Dec 10 00:15:01 2013 +0100
Merge branch 'next' into fifteen
commit e39ac92dd298fee0e546638c36f568978398a5f1 Merge: be33adf 50ce309 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Dec 9 17:13:34 2013 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit be33adfb3d958259695d8b8ce2803181fbf78be2 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Dec 9 17:10:59 2013 +0100
kernel: update to 3.10.23.
commit 50ce309b6ab17dc61648e7d6654117d5e1661cd7 Author: Alexander Marx amarx@ipfire.org Date: Mon Dec 9 11:06:50 2013 +0100
Firewall: added DNS (UDP,TCP) to default services
commit fe2bae3b747530a37cbe37247aa1d974f15f51a6 Author: Alexander Marx amarx@ipfire.org Date: Mon Dec 9 09:33:21 2013 +0100
Firewall: Fix BETA8 - It was not possible to delete single services from servicegroups
commit a8ec686f17764d2c4e62692e7ffc94ad9cbdff53 Merge: 82b837c 3a3759c Author: Alexander Marx amarx@ipfire.org Date: Mon Dec 9 09:29:50 2013 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into firewall-fifteen1
commit 3a3759c625c593e70a7bea479c11834152681565 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Dec 8 16:07:35 2013 +0100
mountkernfs: fix mount of /sys and /proc without initrd.
commit 8a2cf24a1f5de1e236d5514863b1f57cdd343f27 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Dec 8 16:03:25 2013 +0100
kernel: enable grsecurity on rpi kernel.
commit 82b837cff888157358cfbfbf1a29e3dce5956ca9 Author: Alexander Marx amarx@ipfire.org Date: Fri Dec 6 08:47:11 2013 +0100
Firewall: Added new feature: Now protocols can be added to servicegroups (GRE,AH,ESP,IPIP,IPV6)
commit 342a91ae257e461d3d0fe3a2da51a724c6f99a20 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Dec 5 19:46:25 2013 +0100
kernel: update to 3.10.22.
commit 784098e4db6b4aca11b4b39d0fec17f8a2d3ad0c Author: Alexander Marx amarx@ipfire.org Date: Thu Dec 5 15:51:15 2013 +0100
Firewall: forgot to delete a development test string
commit 0c733ab7502e5eb10e5ecbd4f9ad4196670fe175 Author: Alexander Marx amarx@ipfire.org Date: Mon Dec 2 07:56:01 2013 +0100
Firewall: Bugfix: Fixed wrong language strings in outgoing FW rules when using std networks or ipfire
commit 2be048cedc75c8e09233a819d3eae5107a4ab452 Author: Alexander Marx amarx@ipfire.org Date: Fri Nov 29 13:41:57 2013 +0100
Firewall: FIxed wrong language strings in outgoing Firewall
commit 02cb636c8b0abfeb8805d058e29d1a3f8d53ce9a Author: Alexander Marx amarx@ipfire.org Date: Tue Nov 26 13:34:08 2013 +0100
Firewall: Fixes commit http://git.ipfire.org/?p=people/amarx/ipfire-2.x.git;a=commitdiff;h=e19a36c4...
Now all "active" Strings from all languagefiles are checked against the old rule to find out if logging is enabled
Conflicts: config/firewall/convert-outgoingfw
commit 5558ca2a9614c8d4393dc9287e4c0e7f7f014a95 Author: Alexander Marx amarx@ipfire.org Date: Tue Nov 26 13:02:08 2013 +0100
Firewall: fixes commit http://git.ipfire.org/?p=people/amarx/ipfire-2.x.git;a=commitdiff;h=1ed4b214...
Conflicts: html/cgi-bin/firewall.cgi
commit cdb3536bc82e410b4678a4740c198ecf74ec8bd3 Author: Alexander Marx amarx@ipfire.org Date: Tue Nov 26 11:45:05 2013 +0100
Firewall: BUGFIX: RUles.pl did not create LOGGING rules properly.
commit 09efb767f43718512311357a5634d00c8ad8c32e Merge: ea04338 0037264 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Dec 1 14:09:02 2013 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit ea04338b4d3702faf7619b0ed08d8441bbc9d60e Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Dec 1 14:08:08 2013 +0100
rootfile fixes for arm.
commit 0037264780e516ef1cd85c1a73b178097b3201d6 Merge: e99dcbd 532b997 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Nov 30 12:45:31 2013 +0100
Merge branch 'next' into fifteen
Conflicts: doc/language_issues.tr
commit e99dcbdbab9ae7a301d8a4871c18bc81fe5469c8 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Nov 29 23:37:39 2013 +0100
kernel: update to 3.10.21.
commit 35ca8e0203c4d94178f2186d0c0b73f8ec48bc50 Author: Alexander Marx amarx@ipfire.org Date: Thu Nov 21 07:43:53 2013 +0100
Firewall: Bugfix: Last rule for outgoing showed wrong color, Bugfix:When using a rule with sourceport and afterwards editing this rule to use service or servicegroup, there was an errormessage.
commit 27d4d4817e29bee8b8afb33bfda767be3587b31f Author: Alexander Marx amarx@ipfire.org Date: Wed Nov 20 16:01:46 2013 +0100
Firewall: refined dmz-converter. RUles are now converted with defined protocol instead of "all" protocol
commit a8ccb45cb78acf76e7d9518254f5d363605fc823 Author: Alexander Marx amarx@ipfire.org Date: Wed Nov 20 14:28:42 2013 +0100
Firewall: Fixed xtaccess converter. The protocol in the old rules are now converted correctly
commit 44ed2a42f02738b7955614461f868eda655eebbd Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Nov 21 14:14:41 2013 +0100
linux-pae: rebuild module deps before initrd build.
commit 504fc5af26cb3e208e2f9f60b1eae98ade71d751 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Nov 21 13:50:03 2013 +0100
rootfile updates.
commit 385394fefaf5e8455ef114964d1813322b7ea938 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Nov 21 13:49:15 2013 +0100
kernel: update to 3.10.20.
commit 1350598261d8f5d6b040e0fb9d30cb89f260dadb Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Nov 21 08:10:21 2013 +0100
remove old openssh updater rootfile.
commit d30819033d52eea130bde7d118255d9606654bf8 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Nov 21 00:01:21 2013 +0100
usbutils: update to 007.
commit 0fc392d65d513df573573dec57ccf06af2c29a9f Merge: 5702b0c 303b81f Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Nov 20 21:43:20 2013 +0100
Merge branch 'master' into fifteen
commit 5702b0cee557ec11ecda43a2482f72f212bffa84 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Nov 20 17:15:31 2013 +0100
install: create /var/run folder on rootfs.
commit a5d81233a3a6638f6138c21d6174f73f99eb93fe Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Nov 20 07:37:51 2013 +0100
setup: change persistent network rules for new udev.
commit 147446202ff649e7371cc45d040626d7ab262cf4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Nov 20 07:37:01 2013 +0100
udev: disable new netdev names and systemd log prefix.
commit 80469a89354a686b5fc56066828ed763f81e55a4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Nov 18 23:36:10 2013 +0100
initskripts: updates for new udev.
commit b474c1ca151c323ae5f8a4b402960cfa0f21c6cf Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Nov 18 23:34:00 2013 +0100
stage2: add /run symlink to /var/run.
commit 5c3fa3223a4de6eb3a62d1c97c52f1762faa07f4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Nov 18 23:30:27 2013 +0100
dracut: fixes for new udev and missing scsi_wait.
commit 35e188494d9723b977c010eedbac98820e7176a6 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Nov 18 23:27:37 2013 +0100
udev: update to 208.
commit ba109afd0d551909be86bb11d797f1db80ce56f6 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Nov 18 19:00:51 2013 +0100
kmod: replace module-init-tools by kmod-13.
newer udev depend on kmod.
commit 1ee33ddadf2737588ea50326bbc5995e93864aa3 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Nov 17 18:51:04 2013 +0100
util-linux: update to 2.24.
this is needed for newer udev versions but need some initskript changes. The updater and arm rootfile is not finished yet.
commit 6ee9053548341eceba9e0126a8e903872384a961 Author: Alexander Marx amarx@ipfire.org Date: Wed Nov 13 10:44:42 2013 +0100
Firewall: Fixed portfw-converter (rules where not converted correctly) And Standard network "IPsec RW" now has brackets around the Ip (when set)
commit 1187d46e65e9938fab90fb463a8c3ee15e4a646a Merge: 9659f59 6f0fd5e Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Nov 14 11:41:18 2013 +0100
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 9659f59a86ebe76e860370cb7480198ea4323e71 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Nov 14 11:40:36 2013 +0100
configroot: Fix recursively including /var/ipfire/backup.
This issue has been introduced in a72fac88.
commit 6f0fd5e1789e59ec1aad25bea560494c5750a4b9 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Nov 13 14:05:27 2013 +0100
kernel: update to 3.10.19.
commit d0d3fe9d266c265697250dabba0bfdac316314ff Merge: 7d3b1f7 1a386bb Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Nov 13 14:05:15 2013 +0100
Merge remote-tracking branch 'origin/next' into fifteen
Conflicts: lfs/samba lfs/strongswan
commit 7d3b1f7eafe2122c3b9cc0c46448846158a6abf7 Author: Alexander Marx amarx@ipfire.org Date: Tue Nov 12 16:24:29 2013 +0100
Firewall: new errormessage for maximum number of ports in servicegroups
commit 7db6ad6acb8ba4339cb26970bf261942e90b65c0 Author: Alexander Marx amarx@ipfire.org Date: Tue Nov 12 16:04:55 2013 +0100
Firewall: appended check of maximum ports per protocol. portranges 100:200 count as 2 ports
commit 49192c7b313d0fae39f16479594c06ca06684060 Author: Alexander Marx amarx@ipfire.org Date: Tue Nov 12 15:08:58 2013 +0100
Firewall: The maximum of definable services in a servicegroup is limited to 13 per protocol (tcp,udp) because iptables can only handle max 13 services in Multiport
commit 14bcb9a23d6d96fedaf0d5d71f65a8e7a8e6a4eb Author: Alexander Marx amarx@ipfire.org Date: Tue Nov 12 09:27:16 2013 +0100
Firewall: New feature: Now it is possible to define a custom service with a portrange. When using this service in a rule or in a servciegroup, the rule is applied correctly.
commit a15f7d0dd53d686bd77e5a94eadc0ea9853feace Author: Alexander Marx amarx@ipfire.org Date: Mon Nov 11 10:23:39 2013 +0100
Firewall: Bugfix: the routine to check if a vpn net or host was deleted did not work as expected. Now it even works when source and target contain a vpn host or net
commit d8afe3e2c0690899e2efa6742b13a619c4f92298 Author: Alexander Marx amarx@ipfire.org Date: Sun Nov 10 09:28:02 2013 +0100
Firewall: fixed colors of target column when using standard networks
When using RED, OpenVPN-Dyn or IPsec RW as target, the column was not colored.
commit dd4796fbea96922f3bf58bcf866cf9ea7aaa70f0 Author: Erik Kapfer erik.kapfer@ipfire.org Date: Sun Nov 3 21:29:04 2013 +0100
langs: Fix typo
commit ac14b325e03276f9e17e334b03a3d3129903bac7 Merge: 340a567 3359057 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Nov 9 14:19:52 2013 +0100
Merge branch 'master' into fifteen
commit 340a567eae8e9a1be908c13e67626d278f32224c Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Nov 8 14:55:23 2013 +0100
Ship paxctl with the distribution.
commit cbc6219852bbb1162469e5a002e1c923e7e4fad9 Author: Alexander Marx amarx@ipfire.org Date: Tue Nov 5 13:47:56 2013 +0100
Firewall: Fix typo in backup script which stops the conversion of old firewallrules
commit f8cbcb7c8ac944c54c57023fe7951ac1770941c2 Author: Alexander Marx amarx@ipfire.org Date: Mon Nov 4 08:04:44 2013 +0100
Firewall: Bugfix: When creating a servcie in firewall-groups and selecting a protocol other than icmp, the enty in the ruletable shows correct values PLUS the "all icmp-types" under ICMP. Now the ICMP FIeld is emtpy when selecting another protocol than icmp
commit 7b82bee7c4886652ef64f639fd877daa727d1348 Author: Alexander Marx amarx@ipfire.org Date: Fri Nov 8 13:40:24 2013 +0100
Firewall: Bugfix: When creating a rule and using brackets in comment, the rule is denied because of invalid characters in String. But when creating a rule with just valid characters (witjout brackets) and then editing the rule it is possible to use brackets without errormessage. Now brackets are allowed.
commit 84ac1131b1789de9c0ff76a24190b508c4101806 Author: Alexander Marx amarx@ipfire.org Date: Mon Nov 4 07:31:31 2013 +0100
Firewall: remove /var/ipfire/portfw as it is not used anymore
commit ab4876ad4221acad2e62bbb7fe7f92ba45099806 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Nov 8 13:38:09 2013 +0100
firewall: Don't require to enable the RW server for N2N networks.
The firewall rules for OpenVPN have not been applied for N2N connections when the road warrior server was disabled.
commit 89f8ad0e9966e0d78cbafcb6eedce4ed7bd4b133 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Nov 4 21:26:52 2013 +0100
kernel: update to 3.10.18.
commit cb92b363cf92326475df69ccee1684f3ae47b997 Merge: 12b901f 11ab2c7 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 31 15:35:34 2013 +0100
Merge remote-tracking branch 'amarx/firewall-fifteen' into fifteen
commit 12b901f84668f0b4bfd9e3376547e644a83a6126 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 31 15:34:40 2013 +0100
firewall: Fix wrong symbol for variable.
commit 11ab2c7d9a5b91cbc3092defe1a32572acd0ba6d Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 30 15:49:21 2013 +0100
Firewall: added IP-Address to dropdown in DNAT part and now all ip-addresses are in brackets
commit 68f6312ac54728c20c08d1f100bc948e6f6a689e Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 30 13:41:33 2013 +0100
Firewall: Show IP-Adresses in NAT-Source dropdown
commit c03d4a5e8a37c6fcbee55c5b7efa8930f9c98351 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 29 18:45:40 2013 +0100
firewall: Simplify code which shows the last rule.
Also change headings of the rule sections.
commit bee56a2d5d1d901b93b2a72d5d855a2b3bb49f2b Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 29 16:57:58 2013 +0100
firewall: NAT section: Don't show irrelevant controls.
commit 2a6e9ae967cd13e136cb563622236c979ba788c6 Merge: e9a0562 daf400f Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 29 16:23:35 2013 +0100
Merge remote-tracking branch 'amarx/firewall-fifteen' into fifteen
commit e9a056234592750a42ff82c12e858069b32ab82e Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 29 16:22:13 2013 +0100
P2P block: Add notice that the user will reload the firewall ruleset.
commit daf400fa4d61a02eb17e24d29be01d2bbaa35f31 Author: Alexander Marx amarx@ipfire.org Date: Tue Oct 29 08:34:42 2013 +0100
Firewall: fixed untranslated Strings
commit 85860aff263c41a74ff274fca2998e941b9134f6 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Oct 28 20:35:36 2013 +0100
firewall: Fix rendering issue of the rule table.
commit 47a83092b5a6f2fa13d1c95de75b7bea4eb90da2 Merge: 901aa8b 69460bb Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Oct 27 13:12:12 2013 +0100
Merge branch 'next' into fifteen
commit 69460bba8037c6e8663a03eb93e35ce63df08939 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Oct 27 13:09:30 2013 +0100
cups: Update to 1.7.0.
commit 901aa8b943e6442e4b3540a73fe7c79c9a9cd419 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Oct 25 11:40:06 2013 +0200
firewall: Fix layout of protocol selection.
commit cd1f97623535245443576e293da49c8ed0618b88 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 24 22:16:49 2013 +0200
cups: Use libusb.
commit 8b69a1135ec1d68e83e62b336266770148a5c45f Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 24 22:11:41 2013 +0200
libusbx: New package.
commit cc9a325708fa2efb9063758ce1bed05c6958b65b Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 24 19:41:17 2013 +0200
strongswan: Rootfile update.
commit 663e748907b0cf5fd854e4a4f4417db554708797 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 24 18:14:22 2013 +0200
gutenprint: Update to 5.2.9.
commit 39e360b26c3815adfb32ead9ea5e782898ca97c2 Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 24 16:24:45 2013 +0200
Firewall: added missing translation for short IPv6 protcol in ruletable
commit 9c89c64de19f43d77e2bc720fef2b58486472878 Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 24 16:04:26 2013 +0200
Firewall: rename Protocol 41 in Dropdown and ruletable ->Now "IPv6 Encapsulation (protocol 41)" in dropdown and "IPv6 Encap" in ruletable
commit b91712acc50b41b654c60f2754245cfe0c3751a8 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 24 15:21:42 2013 +0200
foomatic: Update to 4.0.9/4.0.17 (20131023).
commit f3604e1192ef09ef43537d55d49cfc635d5d6f88 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 24 15:21:33 2013 +0200
cups: Update to 1.6.4.
commit 16e27e9acb53d78d2f9c631ee4f32fccf29791d8 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 24 15:20:57 2013 +0200
make.sh: Build dbus before cups and foomatic.
commit 64c5bbc453a4ca7419d8ab795efd7ab38d1885d0 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 24 15:12:09 2013 +0200
mpage: New package.
Required for foomatic 4.x.
commit 85f129fe3cac3f5161a6451e137084d91282472a Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 24 14:16:03 2013 +0200
Firewall: fix deleted files from core fifteen firewall
commit 8039a71099eafbec9fb280ce9caff2c069bdff7f Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 24 09:42:42 2013 +0200
Firewall: renamed forwardfwctrl to firewallctrl
commit 6d8eb5dec7bf36f9b1bd53c9354d980aea315d89 Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 24 09:24:12 2013 +0200
Firewall: Renamed directory /var/ipfire/forward to /var/ipfire/firewall
commit 6921f0ea0a62b09fd3bb9772ffc50b86b49bef97 Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 24 08:15:48 2013 +0200
Firewall: renamed /config/forwardfw to config/firewall
commit 11760a707510a5173f41c58551e03438043f36d6 Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 24 07:59:42 2013 +0200
Firewall: Added protocols IPv6 (41) and IPIP (94)
commit b161bfa8683402036e0d3e08159aafda5d4c4310 Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 17 17:14:19 2013 +0200
FIREWALL: renamed forwardfw.cgi in firewall.cgi
commit f0befbc3782b2a68fa96bb2e6534f0f6fa6af7f3 Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 23 16:06:54 2013 +0200
Firewall: Make it possible to use NAT rules with servicegroups.
commit 8cdfbf5aeb365378deb2ff2b5f18a83a2fcfe82c Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 23 16:05:50 2013 +0200
Firewall: Make it possible to use NAT without Ports specified
commit 1da42d53f71991f27603b220e33ac49368410949 Merge: 278280d 4e6ae99 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 22 21:10:25 2013 +0200
Merge branch 'firewall-fifteen' into fifteen
commit 4e6ae999c6740a38876fdbf3b2bd6f4f51d23051 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 22 21:09:01 2013 +0200
firewall: Add proper descriptions/translations for NAT.
commit 989d0fd7172efa96382a10cb1ee16e608355af29 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 22 20:21:33 2013 +0200
firewall: Straighten the format of the rule table.
Lots of markup and code cleanup.
commit 4a75efa5a79a81a9f459e9dc113e474cd2e53df6 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 22 19:08:35 2013 +0200
p2p-block.cgi: Fix coding style.
commit 2d5447bb1b9eed087c1f18a25c15e9370e62408e Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 22 18:58:15 2013 +0200
P2P block: Fix strings.
commit 0e43079789de38841b822b591dbff3be8cd37228 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 22 18:53:48 2013 +0200
firewall: Cleanup rules reloading.
This has been messed up a lot because there were multiple files which indicated that a reload is needed; shell commands were used to create and remove the indicator file; some functions were duplicated.
commit 0eadfdad4a4031c28f5811b4b80ceba8865b17a0 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 22 17:39:56 2013 +0200
firewall: Predefine value for checkboxes.
It turns out, that this is not good style, but as the rest of the CGI depends on it, we need to stick with this.
commit 6bcb5ffe56238dc7e4107f3deba8d1b943253250 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 22 17:23:23 2013 +0200
firewall: Move NAT port field to the protocol section.
commit 93e0855b6f0fbf51bf2ae8a59b74cf713d4e970e Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 22 16:59:16 2013 +0200
firewall: Fix collapsing the NAT menu.
Also removing a lot of redundant HTML code and invalid attributes.
commit 85d6e8a91011d06cf0a913b7c204e522e6a62c77 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 22 16:44:43 2013 +0200
firewall: Update the re-read button.
Change to a more meaningful description and remove the big green box.
commit 278280da9606d394ec7c39127ffadc26a5a3d3d0 Merge: add7654 b64c3fc Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Oct 19 15:05:42 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit add7654e19ba28b6e7e3a38bf7ddbecd77909551 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Oct 19 15:05:14 2013 +0200
kernel: update to 3.10.17.
commit d8d7dd3bd8aa6b849dd191588e63947aa4444007 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 17 17:58:45 2013 +0200
firewall: Don't show rule activation checkbox when creating a rule.
Almost certainly, the user wants the new rule to be active when it is created. We should put as few input elements as possible on the rule creation page.
commit ba338177a02f6c95f938c76b886a970ebd977456 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 17 17:39:43 2013 +0200
Update translations.
commit d50ef220b67c53688eaf1cc08ff8cd7f4fc4bbf5 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 17 17:39:12 2013 +0200
firewall: Fix invalid HTML syntax.
commit 0c7d0c0883fd0fd6ab45fe1657074f9a8d99b562 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 17 17:33:46 2013 +0200
firewall: Simplify rule action selection.
Instead of two clicks, this is now changable with only one click. The color coding should make the decision easier and warn to not make unwanted configurations.
commit f18c38312cb4156858fad253f84d66cfe01811da Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 17 16:49:07 2013 +0200
firewall: Make time constraints selection collapsable.
commit c9493d6c4f307954c7280f5d31c46d6e352b2893 Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 17 14:27:41 2013 +0200
Firewall: Language changes, JQuery code cleanup
commit 8777989d464a11f6f538ec22c2463d0c9c18c7ad Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 17 12:10:34 2013 +0200
Firewall: some languagefile changes
commit 86a921ee47cc1bd24ff01139b4867dc577c3e564 Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 17 11:27:48 2013 +0200
Firewall: Some changes in Strings and languagefiles
commit fda8c915d66a8cabe813cc05afc1f2d560e74fab Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 16 14:55:20 2013 +0200
Firewall: Fixed JQuery code for fwhosts. This is BETA2 base
commit 79bb8c75f29a5321692ae0f02b7b2ca3cbe2d94c Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 16 14:27:08 2013 +0200
Firewall: completed michaels JQuery code and some language changes. This is BETA2-base
commit 769185b58ec52fcc9eaedab5df42b1b25057d0c7 Merge: a1e89f4 b64c3fc Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 16 14:22:38 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into firewall-fifteen
commit a1e89f481d13a59a38854a3921f3c0d85a26f4dd Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 15 21:06:32 2013 +0200
firewall: Simplify protocol selection.
Plausibility checks and removed checkboxed need to be made functional again. Also proper styling is missing.
commit b64c3fc8a3cc9f789348d331d1e4ba78a032f612 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 15 16:52:55 2013 +0200
linux: Compile the kernel and modules in parallel.
This makes a little bit more use of multiple CPU cores when compiling.
commit 9f35ee8aec9805103c64305e0d4ea7b70c201d9d Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 15 16:51:01 2013 +0200
fifteen: Add new jquery to update.
commit 64d2fbd918240bc5c7d0bb7e3e7394892447a50a Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 15 16:49:43 2013 +0200
Remove shipped version of jquery.
commit 0b1b223aa097c3de563c67b36cc84d8ad6dca6da Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 15 16:48:10 2013 +0200
webif: Use new version of jquery.
commit f99356520c523e101d4010be6cd3d07f4cb34cbf Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 15 16:46:15 2013 +0200
jquery: Add extra jquery package.
Because this is easier to keep up to date.
commit ec6fd189ee94eb5fb8f969ff71b9ffae9e13a37c Author: Alexander Marx amarx@ipfire.org Date: Tue Oct 15 15:45:51 2013 +0200
Firewall: Jquery with errors for michael...
commit a5cb9aca7838837e41f34b5d29c3584f708444f0 Author: Alexander Marx amarx@ipfire.org Date: Tue Oct 15 12:05:13 2013 +0200
Firewall: Try to clean up JS code part 1
commit afe4656c72c71715bb264ef63849826e3bc0a399 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 15 11:50:48 2013 +0200
DDNS: Sort providers alphabetically.
commit 290c9cf89b07f4d873bc098f2160ae6008b4bab0 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon Oct 14 19:07:18 2013 +0200
DDNS: Add support for udmedia.de.
This commit adds support for the dynamic dns service provider udmedia.de and was requested by a user on the forum.
Details can be found here: http://forum.ipfire.org/index.php?topic=9097.0
Fixes #10432.
commit fa9ef0a616a8c5f536c9f6f5d9a10a088bea5488 Merge: 11bc3c6 0b7f6aa Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Oct 14 14:56:20 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 0b7f6aa4d9d0f6c17d668620000c4496eb96e34c Merge: 5684380 9a6b4cb Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Oct 14 14:13:39 2013 +0200
Merge branch 'next' into fifteen
commit 568438067cfef263b683f97b9350776f62396e04 Merge: 5b0bc4c 8dc1770 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Oct 14 14:12:04 2013 +0200
Merge branch 'next' into fifteen
commit 11bc3c64204db4115ccb7c086faeb8ff233e45ba Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Oct 14 10:12:49 2013 +0200
kernel: updated to 3.10.16.
commit 5b0bc4ca3d5609bed04a34284b5f746616f768f1 Merge: 2dcea58 3af3ecd Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Oct 12 21:01:13 2013 +0200
Merge commit '3af3ecd319bdcf8db27e9ca14af72383b4754567' into fifteen
commit 2dcea58cc2faf39bd170cef7366f05e940c62751 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Oct 12 18:47:16 2013 +0200
misc-progs: Re-indent setuid.c.
commit 1293811896219e090e48e1bc5a5a1dfdde1ee839 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Oct 12 18:25:33 2013 +0200
misc-progs: Convert to right file encoding.
commit 555637d15601156dcbd0eb20a2e77014c6b504ea Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Oct 12 18:25:14 2013 +0200
misc-progs: Sync STRING_SIZE.
commit 2b875b3985b17e2fa316825dbd490a94e0de74d6 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Oct 12 18:23:40 2013 +0200
misc-progs: Remove own copy of strlcat.
Add compatibility define that uses strncat.
commit 52e54c1c9a0f530edca461da31279113647fe787 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Oct 12 18:22:51 2013 +0200
misc-progs: Move network stuff to own header file.
commit 42ec14cf2b98fd599fbeb16a67a1dd7f4fb3e558 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Oct 12 16:23:41 2013 +0200
misc-progs: Remove unused functions.
commit ab89cb2253f0a46cc05e239afbb62155dfd47fd1 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Oct 12 16:20:20 2013 +0200
misc-progs: Fix invalid command line argument parsing.
Fixes #10431.
commit 6b6ef098ae40a7a2dc8df4b0ffd700cf0cf7527d Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Oct 12 16:07:42 2013 +0200
fifteen: Add glibc to update.
commit 30a4e8278711dec69f3ca41b46038cff1cc9f2c9 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Oct 12 16:03:05 2013 +0200
glibc: Update patchset.
Import latest patches from RHEL6.
commit bfc84eb1537ff5f495da2e540d9a62867a05ae0c Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 9 16:20:54 2013 +0200
Firewall: added JavaScript for services (hide icmp-types when no ICMP selected)
commit 3af3ecd319bdcf8db27e9ca14af72383b4754567 Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 9 10:31:35 2013 +0200
Firewall: fix rules.pl when using custom hosts/networks and services no rule was applied because no protokoll could be found Also extended JS code to correctly show ICMP Types only, if NO Targetport is selcted
commit 433b7aa8e95f4b075fd259257c61c96a29e03830 Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 9 08:23:57 2013 +0200
Firewall: fixed typo in en.pl "Add new hetwork"-> "Add new network"
commit 64e822fb45db06af7a7e7ddc94961840d5bd1158 Author: Alexander Marx amarx@ipfire.org Date: Tue Oct 8 10:24:56 2013 +0200
Firewall: Bugfix: when deleting services from a servicegroup,it was possible to delete the last service even if the group was used in a rule.
commit 90f8339a42506ca95dacb820914881bc922f19db Author: Alexander Marx amarx@ipfire.org Date: Tue Oct 8 10:08:09 2013 +0200
Firewall: Bugfix: WHen using servicegroup with only ICMP services, the ruletable was broken. Also fixed another useless if clause in rules.pl
commit 6e62882de69ad42efcb4c3c2097abb5d5c54666c Author: Alexander Marx amarx@ipfire.org Date: Mon Oct 7 14:54:57 2013 +0200
Firewall: fix senseless if clause in rulecreation
commit 58bda09b683311db948fb5be06b1521386286f03 Merge: 95c8665 e6e9a81 Author: Alexander Marx amarx@ipfire.org Date: Mon Oct 7 07:25:42 2013 +0200
Merge branch 'firewall-fifteen' of ssh://git.ipfire.org/pub/git/people/amarx/ipfire-2.x into firewall-fifteen
commit 95c86656e70af668d25f0a33afb3913ee5e2ded0 Merge: 9f6da93 1a3dbe9 Author: Alexander Marx amarx@ipfire.org Date: Mon Oct 7 07:25:19 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into firewall-fifteen
commit 1a3dbe91b2456323c1fe53797da673b4d0f87e17 Merge: 2e05337 1bd3de8 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Oct 6 18:42:53 2013 +0200
Merge remote-tracking branch 'origin/next' into fifteen
commit 2e053370ab64a3f516fc7f9e4897c5b48eae580d Merge: b128fe7 189cf12 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Oct 6 17:06:28 2013 +0200
Merge remote-tracking branch 'origin/next' into fifteen
commit b128fe7e69304ee26a293d508e31bd7f63c12f2d Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Oct 6 08:59:35 2013 +0200
setup: add nic identify function.
commit d039a7e99e00c349fd9ac934121097aca1c8f2f4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Oct 5 22:22:17 2013 +0200
kernel: update to 3.10.15.
commit e6e9a8117677eca8319982ce56aa72e93c9b407e Author: Alexander Marx amarx@ipfire.org Date: Sat Oct 5 13:50:35 2013 +0200
Firewall: added some more plausichecks and additional errormessages
commit 73c39dd4bda322d7d9240651c6db003bff477670 Merge: 03dd9a2 5c86caa Author: Alexander Marx amarx@ipfire.org Date: Sat Oct 5 13:31:22 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into firewall-fifteen
commit 5c86caac7d382baf69b1731611e81a2b88750f2b Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Oct 4 17:00:27 2013 +0200
kernel: build VLAN_8021Q as modul.
commit 6b0d7d6bc3e5870a8f0ada33e2ab3170f942db9e Merge: 4598f16 be5b660 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Oct 4 16:55:20 2013 +0200
Merge remote-tracking branch 'origin/next' into fifteen
commit 4598f16cfddf949149f4b00f554d8991a192a84f Merge: 08facb3 5ae3072 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Oct 4 14:53:03 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 08facb3b223363379e0077989cc44fe85a6e1552 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Oct 4 14:52:44 2013 +0200
vim: Update to 7.4.
commit 196539512a8458c5b4b9d2b499d0ec36beacc561 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Oct 4 13:39:26 2013 +0200
network-vlans: Remove " from configuration values.
" is an invalid character.
commit ba25f014b2a1c2132cead53511f8adad9f6ef896 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Oct 4 13:36:48 2013 +0200
network-vlans: Use ip link command instead of vconfig.
This patch gets rid of using vconfig for configuring VLAN devices. ip link is much more suitable for that and creates the interface with the right name and MAC address in just one step.
commit 5ae3072a47b8c2296d3b6bd25516284bf97b3cdc Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Oct 4 08:37:49 2013 +0200
remove php from core73.
fifteen branch will not build with this file.
commit b3cc5fbdb9f800b809c3bcd2f1d72fdd5c2b7e62 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Oct 4 08:36:46 2013 +0200
samba: bump package version.
commit 9f6da934a3b635f5c9f96ab737977dad2582e498 Merge: b4f9428 03dd9a2 Author: Alexander Marx amarx@ipfire.org Date: Fri Oct 4 08:09:18 2013 +0200
Merge branch 'firewall-fifteen' of ssh://git.ipfire.org/pub/git/people/amarx/ipfire-2.x into firewall-fifteen
commit b4f94285ff8ef9b347ee6f3e6fdb53e998ef63dd Merge: bcd9852 71ed067 Author: Alexander Marx amarx@ipfire.org Date: Fri Oct 4 07:17:15 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into firewall-fifteen
commit 71ed067612b0819e3708b5565ada17888594b357 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Oct 3 19:05:21 2013 +0200
rsync: updated to 3.1.0.
commit ee1d2d13eec82becb9df17e511672682a27feae2 Merge: f7bb003 0203401 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Oct 3 14:51:30 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit f7bb003150fc1d4fba360224b31314629737ec2f Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Oct 3 14:50:33 2013 +0200
wirelessctrl: fix blue access "enabled" checkbox.
commit 7a302dd0fe1487d764bc30ee2479713d2288040a Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Oct 3 14:50:11 2013 +0200
memtest: disable parallel build.
commit 0203401cf5dcd2fc005eb33a593b625f56258463 Merge: 7840388 2d685e1 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Oct 3 14:26:33 2013 +0200
Merge remote-tracking branch 'origin/next' into fifteen
Conflicts: doc/language_issues.es doc/language_issues.fr doc/language_issues.nl doc/language_issues.pl doc/language_issues.tr doc/language_missings
commit f29eb7ec93f05b553f4bb168b30827ff06de11c4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Oct 3 13:44:56 2013 +0200
vdr: remove unknown config keys.
commit 03dd9a2949d953e15bdaceab07af5649bfb21bd5 Author: Alexander Marx amarx@ipfire.org Date: Thu Oct 3 12:01:19 2013 +0200
Firewall: fixed JS code for toggeling div areas
commit a1fdbdac799c8b65f6e38465d76d4fc34847ad8f Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Oct 3 11:53:35 2013 +0200
configroot: enable log off wireless packet drop.
commit 9b966c6a0bb6c889aac3b07aae08973014334c24 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Oct 3 11:52:59 2013 +0200
memtest: enable smp as default.
commit 78403883e23271c9a7ab2bdfeeaf64cc20fd11b4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Oct 2 22:43:07 2013 +0200
vdr: update to 2.0.3.
commit a4c7bf6b73e5a2faae948188591d50cedbf18de3 Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 2 21:28:50 2013 +0200
Firewall: Reorganized layout of rulecreationpage
Protocol is now an extra area containing protocol, ICMP-Type and source/target ports
commit 40d505ea08931038fba56ee3a8da5053ad7ed389 Merge: 753bb74 5b6acb8 Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 2 21:15:22 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into firewall-fifteen
commit 5b6acb88c607b2b9a46365281e611706c0c12109 Author: Arne Fitzenreiter Arne_F@ipfire.org Date: Wed Oct 2 16:24:24 2013 +0200
Fix empty system-release.
commit ad5338015f68bca7bb5987c7e44218fe21377dad Author: Arne Fitzenreiter Arne_F@ipfire.org Date: Wed Oct 2 14:39:16 2013 +0200
stage2: rootfile update.
commit f93635e375efaae2c8077d467e8811128325142b Author: Arne Fitzenreiter Arne_F@ipfire.org Date: Wed Oct 2 14:38:39 2013 +0200
memtest: update to 5.01.
commit 7f46e14b81e701cf3c37b3dd6c058942ed83b84d Author: Arne Fitzenreiter Arne_F@ipfire.org Date: Wed Oct 2 11:00:56 2013 +0200
kernel: update to 3.10.14.
commit bcd9852e2ee73b741f5996ecc05ba3758d330fb8 Merge: 285de10 ec36876 Author: Alexander Marx amarx@ipfire.org Date: Wed Oct 2 07:22:10 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into firewall-fifteen
commit 753bb74ce55d5107d3e8001ed5c15f462261aab3 Merge: 2ad3c08 ec36876 Author: Alexander Marx amarx@ipfire.org Date: Tue Oct 1 20:30:30 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into firewall-fifteen
commit 2ad3c084eef6d82a8690e5d488d84c61e892ef4e Merge: 3bb77d0 285de10 Author: Alexander Marx amarx@ipfire.org Date: Tue Oct 1 20:30:06 2013 +0200
Merge branch 'firewall-fifteen' of ssh://git.ipfire.org/pub/git/people/amarx/ipfire-2.x into firewall-fifteen
commit ec36876e6ade2e04d29963d8dcfab5d5bf580a99 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 1 17:45:00 2013 +0200
wirelessctrl: Fix evaluation of configuration settings.
commit 7603ec4e1620aeaf0f2b102af887b4c3c022677c Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Oct 1 17:20:41 2013 +0200
pakfire: Don't remove existing content from /opt/pakfire.
commit 285de10662731bb67e946e7e112bb4cf892173bf Author: Alexander Marx amarx@ipfire.org Date: Tue Oct 1 07:45:58 2013 +0200
Firewall: fixed rules.pl (no INPUT rules where created when using port and prot "all") This is a bug which was raised due to the last commit
commit 4c27368a7bc135dc4443711c4eeabec0885ce1ff Merge: fadcfb7 42e4fa8 Author: Alexander Marx amarx@ipfire.org Date: Tue Oct 1 07:44:29 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into firewall-fifteen
commit 42e4fa805ec8c3bbc085d2d9d8746afd97062009 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 30 21:28:52 2013 +0200
cdrom: Update /etc/system-release when needed.
commit d02853e73cd65332ebeda9490e3306931ebd7406 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 30 21:16:03 2013 +0200
Create /etc/system-release in stage2.
commit 065c9931acf1296f287e9f783ec0a4668289c886 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 30 21:08:44 2013 +0200
Write /opt/pakfire/db/core/mine in stage2.
commit e2eb09157ee4e40b383319cfcf16ad69fc5d73d5 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 30 21:00:15 2013 +0200
Remove /var/ipfire/firebuild.
This file provides lots of bogous information and information about the build system that is not of much interest.
commit 0d655f6cd52ceada1e5bb6e157b22eb0280e71ee Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 30 20:52:23 2013 +0200
as86: Remove unused package.
Was needed to build mbr.
commit 3bb77d08a689ef0b4ebaa88f48a684fe85ec580d Merge: 16ba0c0 fadcfb7 Author: Alexander Marx amarx@ipfire.org Date: Mon Sep 30 20:04:38 2013 +0200
Merge branch 'firewall-fifteen' of ssh://git.ipfire.org/pub/git/people/amarx/ipfire-2.x into firewall-fifteen
commit 16ba0c00d0d7b223682ab161c23af71315f6826a Merge: 71670b9 83dfa1d Author: Alexander Marx amarx@ipfire.org Date: Mon Sep 30 20:04:05 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into firewall-fifteen
commit fadcfb73203c97e7062828eb77360b4382555943 Author: Alexander Marx amarx@ipfire.org Date: Mon Sep 30 15:43:51 2013 +0200
Firewall: moved nat part between source and target and moved protocol dropdown behind target area
commit 6adacba0552880f002b892796ce44467dd413c21 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 30 12:14:09 2013 +0200
tor: Increase number of max. open file descriptors.
commit a0a5efd7684e90f8dd8e465f1b54ec4fd043ae4d Merge: 2aeb4b2 83dfa1d Author: Alexander Marx amarx@ipfire.org Date: Mon Sep 30 11:06:42 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into firewall-fifteen
commit 83dfa1d7b2e5946a9405a27dba9b3a81d958baee Author: Arne Fitzenreiter Arne_F@ipfire.org Date: Sun Sep 29 22:26:14 2013 +0200
clamav: disable PaX mprotect for freshclam.
commit 26b34186b3788b9ee58246e5b09748ea7b6df6b3 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Sep 29 14:38:41 2013 +0200
make.sh: Automatically determine parallelism flags.
commit 70c11aa670816d5cba6cd8e8cb89079e52b8fd2c Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 29 13:09:50 2013 +0200
clamav: disable PaX mprotect for clamd.
commit c9f6beac597ed25f7174bed63c24221fdf0d1346 Author: Arne Fitzenreiter Arne_F@ipfire.org Date: Sun Sep 29 09:46:42 2013 +0200
kernel: update to 3.10.13.
commit d0a1fbbe550aeabef272d841d58fc050bb9475e0 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Sep 28 11:14:34 2013 +0000
clamav: Fix building on ARM.
Disable using fanotify:
CC fan.o In file included from fan.c:38: fan-syscalllib.h:14:3: error: #error "System call numbers not defined for this architecture" In file included from fan.c:38: fan-syscalllib.h: In function 'fanotify_init': fan-syscalllib.h:19: error: '__NR_fanotify_init' undeclared (first use in this function) fan-syscalllib.h:19: error: (Each undeclared identifier is reported only once fan-syscalllib.h:19: error: for each function it appears in.) fan-syscalllib.h: In function 'fanotify_mark': fan-syscalllib.h:25: error: '__NR_fanotify_mark' undeclared (first use in this function) make[3]: *** [fan.o] Error 1 make[3]: Leaving directory `/usr/src/clamav-0.98/clamd' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/usr/src/clamav-0.98' make[1]: *** [all] Error 2 make[1]: Leaving directory `/usr/src/clamav-0.98' make: *** [/usr/src/log/clamav-0.98] Error 2
commit 71670b91cccc3500d03605673f3966d669c93d70 Merge: 439d2a5 2aeb4b2 Author: Alexander Marx amarx@ipfire.org Date: Fri Sep 27 15:18:05 2013 +0200
Merge branch 'firewall-fifteen' of ssh://git.ipfire.org/pub/git/people/amarx/ipfire-2.x into firewall-fifteen
commit 439d2a5743d68a7b6108a8db2db91aefd9fac37c Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Sep 27 15:01:10 2013 +0200
mysql: Update to 5.0.96.
commit 1accb4ad4cfaad4ef1af7cf7da1435de21a91698 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Sep 27 15:00:58 2013 +0200
lzo: Update rootfile.
commit 96711574bec47c5ffec3bd26c0b4056e07d2ef0e Author: Alexander Marx amarx@ipfire.org Date: Thu Sep 26 16:18:54 2013 +0200
Forward Firewall: BUGFIX: when using ICMP services in firewallrules and then changing the service, the rule was broken
commit 6233483ba7d92b83a80e5a4759f83248198eb2f2 Author: Alexander Marx amarx@ipfire.org Date: Thu Sep 26 14:09:24 2013 +0200
Forward Firewall: Bugfix: When creating a rule which results in an error, the counters in the firewallgroups where increased. Bugfix: When using icmp-type "all" there was no rule created
Conflicts: html/cgi-bin/forwardfw.cgi
commit 318685daf4a9d404a98b24f2175e505525547b31 Merge: 99093fa c4979a8 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Sep 27 10:40:24 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 2aeb4b256eb99c8971da60a5dff6bd3929270798 Author: Alexander Marx amarx@ipfire.org Date: Fri Sep 27 10:16:52 2013 +0200
Firewall: Bugfix: wrong counter when using selfdefinded services in a rule that could not be applied Bugfix: When using ICMP-ALL in a rule, the rule was not applied Bugfix: When using selfdefined services (icmp) and group them together. Then when using these services/groups in a rule and afterwards changing the service, the edited service was not applied
commit c4979a81c8d27fed69b4f360cc67845bac85549a Author: Arne Fitzenreiter Arne_F@ipfire.org Date: Fri Sep 27 07:42:36 2013 +0200
samba: update to 3.6.19.
commit 99093fa51667deb09c2ca4dd9cbad1d3469d738a Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Sep 27 01:46:44 2013 +0200
Use hardened compiler flags.
commit b0c1baa588d38afe11314c931ae62ee02047125f Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Sep 27 01:46:21 2013 +0200
libxml2: Add package to fifteen update.
commit 5a9e26d83150750f8a7d1420007752df2639fb65 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Sep 27 01:45:13 2013 +0200
mbr: Remove package, which is not needed any more.
This package was needed to add the MBR to flash images, which are not available in IPFire 2.15 any more.
commit 76479e2746eacd39fa6548a21aacada19d112476 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Sep 27 00:55:07 2013 +0200
transmission: Don't use C++ exception handling.
commit 5a038beb35666e5e5a030481130766b5e832ef23 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Sep 27 00:48:55 2013 +0200
iotop: New package.
commit e24a59271eb7b1a9ce5b2169acf408ddc5c22270 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Sep 26 22:34:35 2013 +0200
openvmtools: Build without -fPIC.
commit f0fbffeb3af455f52fedc58050aff714127c05ea Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Sep 26 22:34:01 2013 +0200
cpufrequtils: Build without -fPIC.
commit 309783b9d569e30c9ecc7c76e2e1c2aef57b981b Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Sep 26 22:13:13 2013 +0200
ffmpeg: Don't use -fPIC and don't use strict aliasing.
commit 65e77163342164e18d115f8dfa550f07dd216869 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Sep 26 19:54:08 2013 +0200
cyrus-sasl: Run autoconf before build.
commit c2741b14ef385f334d2afdb67e5ec70f19cc2418 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Sep 26 19:52:34 2013 +0200
libxml2: Update to 2.6.32.
commit ec9f81be0cee42529ac57c4f106144dfc1a934ec Merge: 90e4ec2 0a379f8 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Sep 26 16:12:15 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 0a379f8fe60459b0d1234fe724c1af802beffbb3 Author: Arne Fitzenreiter Arne_F@ipfire.org Date: Sun Sep 22 16:34:07 2013 +0200
clamav: update to 0.98.
commit db045705a7e58166040f9c6ac8e7ca364bc051b8 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Sep 21 12:19:06 2013 +0200
kernel: increase nr of cpu's of the legacy intel kernel.
commit 68c2cbedf02c33787a03f83b6f102249183d3824 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Sep 21 11:40:57 2013 +0200
kernel: update to 3.10.12.
commit 90e4ec2a88ac967600b8c692f7001314ca6d14c3 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Sep 17 19:57:28 2013 +0200
lzo: Update to 2.06.
Eliminates the requirement of a executable stack.
commit 035ace2cbb99efe4873f77a34bd151f8d78ce21d Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Sep 17 17:29:19 2013 +0200
coreutils: Use PIE version of LFS uname patch.
commit 5a6804a2472af03dd6744bb3385408d369659931 Merge: 7284262 4accbf9 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 15 18:42:33 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 7284262a5e94fa4cc15742fa7c7a3a0252d9e9ee Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 15 18:41:16 2013 +0200
kernel: add arm7 multiplatform kernel.
not booting on panda yet.
commit d1a84dd38dd404018bfb418ee49b7605574090c5 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 15 18:39:50 2013 +0200
kernel: config changes on kirkwood and rpi kernel.
commit 4accbf93699f6fd76079eb3d75ca82039e01012c Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 15 15:59:34 2013 +0200
kernel: disable magic sysrq.
commit 93d772a59e671d2d4fa8bd58a9de0fa5bb9b43f1 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Sep 14 22:22:58 2013 +0200
xen-image-maker: add FSTYPE variable because ct'-server not support ext4.
commit 1a78fe5e2dd19a6c7959ec52e175ee7a70cc29e8 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Sep 14 12:38:39 2013 +0200
firstsetup: add missing "fi".
commit 4fa404af2a60ab9faf760e087f9d267f7707dae3 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Sep 12 17:14:24 2013 +0200
kernel: build mediastack as modul.
if this is compiled into the kernel it is impossible to update the drivers later without a full kernel update.
commit 6a5c29e7507385451b5ba27deb0fa95398c728b5 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Sep 12 10:48:15 2013 +0200
kernel: enable misdn support on intel kernels.
commit 305a7b38889a50d9288e6c28b61612952f640d8f Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Sep 12 00:55:41 2013 +0200
xen-legacy-kernel: removed.
commit cd0fc28d5152c4bfe35ac1cb7b7d615b60e4ef5f Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Sep 12 00:53:27 2013 +0200
xen-image: replace image by a download and image buildskript.
This skript download the iso and pae-kernel and build the image.
commit 7676ceba65ca2f190ee4bde1b54618fd69eb1d6a Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Sep 12 00:51:50 2013 +0200
firstsetup: don't overwrite meta-linux-pae if already present.
commit 865f26ac3242fb39c6b83b19a7a52d83e7a91dfc Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Sep 11 13:25:49 2013 +0200
images: make iso to hybrid image and removed usb-images.
now the iso can transfered to an usb stick and install ipfire.
commit ff441c487d7fc99a20d06dc6d6e99ea4f7c10c69 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Sep 9 00:13:10 2013 +0200
toolchain: version 7.
commit 5494904e15e19596c097c2522f1d2d17908823fb Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Sep 9 00:12:53 2013 +0200
xz: update to 5.0.5.
commit 8d862ed59a04ccac2b95384932f881e60e65d76b Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 8 20:50:29 2013 +0200
gcc: add forgotten patch.
commit defd8d008f9f28a3b91964b6fb7a4bfd11ace778 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 8 20:48:34 2013 +0200
gcc: fix toolchain build with texinfo-5.x.
commit d94384214e360013d4b43c6a32125d18d9f275ad Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 8 16:08:52 2013 +0200
binutils: fix toolchain build with texinfo-5.x.
commit ff6f40b1f52970e0ba0c78942c1ae728b62e04bd Merge: 0ec5f23 095cbf4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 8 15:26:47 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 0ec5f231e48a95758debda6f25a703d9140bd880 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 8 15:26:14 2013 +0200
kernel: update to 3.10.11.
commit 095cbf430f983bdde07187169566997d8285f32d Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Sep 7 16:38:23 2013 +0200
Multiple CGI files: Check if BLUE or ORANGE are actually configured.
commit f8b12375c7667d6895ff6d9d2178e0abefbd3b90 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Sep 7 16:23:50 2013 +0200
speed.cgi: Suppress error messages if not connected to the internet.
commit 303c90a4c16cbc4f1453b4b1a8fa4c47449830a7 Merge: 27ba58f 270c0c0 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Sep 7 16:11:10 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 27ba58fb46cc5c91618d6c5e70d521b0a381afe8 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Sep 7 16:10:02 2013 +0200
wirelessctrl: Silence error messages when no BLUE device is configured.
commit d69bf6191aaae1a92ff7dd6012135b15509bc7b4 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Sep 7 15:21:40 2013 +0200
wirelessctrl: Re-indent the code.
commit 409cd018c51fc4b866b2c8ae78597bc88c3b5c17 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Sep 7 15:04:41 2013 +0200
optionsfw: Use saner defaults for DROPPROXY and DROPSAMBA.
commit 270c0c0ef03de6b912aeee63d117df6fb64a37e4 Merge: f2ce8e8 716ddc4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Sep 7 14:46:45 2013 +0200
Merge branch 'fifteen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into fifteen
commit 716ddc41d3eee198a11f6da1d168d9c4226b4f2c Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Sep 7 14:21:05 2013 +0200
Re-add 'wlanap country' string that has accidentially been dropped.
commit f2ce8e838fc8dbaeede744d8704240e3ab02036c Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Sep 6 23:26:49 2013 +0200
kernel: enabled gpio button events.
commit 7419447856e77681e49ba0808d0e3039800a9abc Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Sep 6 13:06:09 2013 +0200
kernel: updated rpi and kirkwood config.
commit e5acf30472378efba41c02638323d371315292bd Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Sep 5 23:36:54 2013 +0200
rpi_firmware: update to d4f5315.
commit 7b906cb23ae0220adb9916cad34c2d90dbb7bdca Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Sep 3 16:55:35 2013 +0200
cfgroot: Fix typo in path.
commit a0010abd6f0f6ced89c35e7c9e6780d6f32243fd Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 2 22:47:34 2013 +0200
fireinfo: Import latest changes from upstream.
commit 2b59ba3c87c24dee693be35be00b7bb2ccd26813 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 2 22:35:05 2013 +0200
Fix spelling of 'iptables'.
commit a72fac881bf4181f487e3edcc356b5dea74ed7ca Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 2 22:28:07 2013 +0200
More rootfiles fixes for configroot files.
commit d7fcd5daa3addc8916a7c6be78c449a6ced6c3b3 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 2 22:22:26 2013 +0200
configroot: Fix permissions of executable files.
This must always be owned by root and must not be editable and executable by the world.
commit d5a11b8405bc93f516fa0449f26dd1246fed131f Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 2 22:16:30 2013 +0200
Fix rootfile: /var/ipfire/forward and /var/ipfire/fwhosts were not writable.
commit 35f95ba741115576b9d5d695183d24f8b9523327 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 2 22:04:42 2013 +0200
firewall: Remove version information.
commit 8e9a041324f2d9197c06e4053864e77a9e9cc799 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 2 21:52:35 2013 +0200
openvpnctrl: Silence PID file error message.
commit 52c5ec837f1b8ebbb93d1477dcb345ea921b84a7 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 2 21:51:22 2013 +0200
firewall: Rewrite policy script.
Restructure the code; add fallback options if no configuration is set; reliably check if BLUE or ORANGE are used.
commit 3ad23ee1d98c45520122c32bfeb92ef80a2e612a Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Sep 2 21:05:47 2013 +0200
openvpnctrl: Suppress silly error messages and cleanup coding style.
commit 15ffeb1bdd298d8f525a11352489d8c84dc9fffb Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Sep 2 10:55:49 2013 +0200
probenic.sh: add usb support for kernel 3.10.
commit f1defee0b31798b403bb07c72d9dab54f70f2086 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Sep 2 10:51:57 2013 +0200
kernel: enable console on framebuffer.
commit 6f1467d7b13400b9d3d849d7956c0d3c100dc0f2 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Sep 2 00:08:07 2013 +0200
w_scan: set output format to vdr 2.0.
commit a0e8bf8f365b7d24f622a8250da4a67948b946bb Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 1 20:52:33 2013 +0200
kernel: enable /dev/port.
commit daa3a950046faa04f88f988a42165b1f9b59ffe2 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 1 20:52:06 2013 +0200
configroot: fix merge problem.
commit 4234cbe2ef4d9a1313e08c34a46d61242486fdad Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Sep 1 15:46:09 2013 +0200
kernel: update config.
Enable some framebuffer, change some staging driver.
commit d33aa4523bd69c06d632fa3bc8710c048a8e25dd Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Aug 31 15:34:49 2013 +0200
kernel: add more subsystem patches.
commit e2b79cd11e413ab74126a2475f7de46a331da865 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Aug 31 15:08:03 2013 +0200
kernel: update to 3.10.10.
enabled all DVB Devices and add some patches.
commit a1a94abed1f608a1cb906471c740e6011ec27f61 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Aug 31 11:17:14 2013 +0200
grub: disable pax mprotect for grub.
commit 19ba0366261403217c533b21e27e74f1a60af4a4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Aug 31 11:16:21 2013 +0200
paxclt: add tool to set PT_PAX_FLAGS.
commit 2fce30e6a80d48eeef528853bfdf995b06eb0c92 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Aug 31 11:14:10 2013 +0200
binutils: add PT_PAX_FLAGS patch.
commit 26f185ecc1e3a4f8afc0a8490de0441295b20a30 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 28 16:08:10 2013 +0200
Update rootfiles.
commit cf4d6bb76cd51b978ef84a570c3766e7d43a3d16 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 28 14:07:06 2013 +0200
Add new firewall to fifteen.
commit 8d0aa7108271be3a3e7cfb99e3b1b560cbab9b07 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 28 13:43:05 2013 +0200
firewall: Convert filewall rules when updating to fifteen.
commit 949d5c527a9a41e0ddb4a339d84ef48904c3da98 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 28 13:38:12 2013 +0200
Create core update "fifteen".
commit 2ac39db92e9b6117d64940f8b0572a24afa07b33 Merge: 30156b0 eb95ce8 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 28 11:33:20 2013 +0200
Merge remote-tracking branch 'amarx/firewall' into fifteen
commit 30156b054ef332d8b1ece6fc5d9e0cdbc947ca14 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 28 11:18:37 2013 +0200
Restore disabled rootfiles.
commit 80759d65f4a14e69b80b2afa9336c92991390b4b Merge: fc62187 ddc492d Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 28 11:14:17 2013 +0200
Merge remote-tracking branch 'ms/arm-freescale' into fifteen
Conflicts: make.sh
commit fc621876dc2a994ab5b1d3aeef8c55e6430b511e Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 28 11:11:44 2013 +0200
keepalived: Fix compiling the package.
commit fd69d6f6dc9e41d9c2484152cb976a245f27e604 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 28 11:05:04 2013 +0200
miniupnpd: Update to 1.8.
Also fix compiling with the new kernel.
commit c0b99a4cedf534fa1cdc1437a74a66b73afe3346 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 28 09:43:44 2013 +0200
bridge-utils: Fix compiling package.
commit bb5f0bf8f323014563b944086913756a28a43427 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Aug 27 20:28:07 2013 +0200
kernel: update to 3.10.9.
use intel config from IPFire 3.x branch. arm cfg is not present yet and some patches are missing.
commit 12f5ace887f4d040a22749a753b349df9f32e023 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Aug 27 20:24:43 2013 +0200
w_scan: update to 20130331.
commit 811a52519104150ebe845f391d936f83b4001135 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Aug 27 20:23:30 2013 +0200
hostapd: remove old linux-header hack.
commit 5c2146b3c81677877bdf4648a24d4afe932027d8 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Aug 27 20:21:23 2013 +0200
iw: update to 3.10.
commit 2d708949db00588d1a50739d1f9586c4a2192a80 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Aug 27 20:20:47 2013 +0200
libnl: update to 1.1.4.
commit 8f8b00b326f9c25fedeb0054702f44ac4e91a038 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Aug 27 20:19:58 2013 +0200
iptables: updated to 1.4.20.
commit b751cd7a4cce6e4c71b7c1dee41c71760be65137 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Aug 27 20:18:53 2013 +0200
move core70-73 to oldcore.
commit eb95ce89a8effefa0c6aa27bf6f048926d21fed0 Author: Alexander Marx amarx@ipfire.org Date: Wed Aug 14 14:19:36 2013 +0200
Forward Firewall: ip addresses in firewall-groups (groups) are now colorized
commit b119578f023df75a015505239751246c23f9a523 Author: Alexander Marx amarx@ipfire.org Date: Wed Aug 14 12:51:21 2013 +0200
Forward Firewall: Now all customhosts are colored correctly in ruletable. Also the ip addresses in firewall-groups (hosts) are colored correctly if they are part of green,orange,blue,openvpn or ipsec
commit 0c2cf9e2145737cc6af6f6147f322d9ce60465f6 Author: Alexander Marx amarx@ipfire.org Date: Wed Aug 14 09:06:38 2013 +0200
Forward Firewall: BUGFIX: when having more than 10 hosts/networks in a firewall-groups group, the table was not shown correctly
commit f195a8d763c82635bc1458bd9cd8d13cf45c95a2 Author: Alexander Marx amarx@ipfire.org Date: Tue Aug 13 16:00:32 2013 +0200
Forward Firewall: BUG: when creating a new group in firewall-groups with the same name as an existing group, the line "no rule defined" was added. BUG: THe line "no rules defined" is now "no entries in this group".
commit 4f585d559f2bea5002cdb57f171732cfd8675bec Author: Alexander Marx amarx@ipfire.org Date: Tue Aug 13 13:58:48 2013 +0200
Forward Firewall: Modified the Message to reread firewallrules in p2p-block.cgi. This is now the same as in forwardfw.cgi and fwhost.cgi
commit 5bee9a9df5739810da488bf5bf71da4fe82be484 Author: Alexander Marx amarx@ipfire.org Date: Tue Aug 13 13:47:27 2013 +0200
Forward Firewall: edited GPL-header
commit dc21519f683d5bb0f7e5a9dfcfb4806afb895217 Author: Alexander Marx amarx@ipfire.org Date: Tue Aug 13 12:44:01 2013 +0200
Forward Firewall: added GPL header to all files
commit ddc492dd30283a3108d1436f849abedad345d6b5 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Aug 12 16:58:37 2013 +0000
u-boot: Build images for Pandaboard and Wandboard.
commit 990b0904f3ab0b7562832bad825c915af6939a09 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Aug 12 15:22:22 2013 +0000
u-boot-panda: Don't install mkimage from this version of u-boot.
commit f06d592af1fb93744dca80fbd23efdd0de7c60e4 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Aug 12 15:10:10 2013 +0000
Rename u-boot package to u-boot-panda.
commit caca013c1165230eea388ed4a770f6663ad5608e Author: Alexander Marx amarx@ipfire.org Date: Mon Aug 12 15:53:16 2013 +0200
Forward Firewall: added /var/ipfire/forward/bin to backup-exclude script
commit 3027c6bb963cc8f736aca51bc99391bbd00c677f Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Aug 12 14:45:07 2013 +0200
initscripts: Reset links that reload the firewall after RED connected.
commit 8c60701a4f856689e5bfae2ff2b6c5b7c0f0fdad Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Aug 12 14:42:16 2013 +0200
forwardctrl: Remove unused and possibly dangerous flush option.
Also remove unused header files.
commit f78d627af390360e60e9878c274bf7ef1855ef71 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Aug 12 14:39:34 2013 +0200
Firewall: Fix spelling of service names in custom services.
commit debe3af56492731d6589a9005de8516e3037f88f Merge: 9e78ce6 34aa915 Author: Alexander Marx amarx@ipfire.org Date: Mon Aug 12 13:30:45 2013 +0200
Merge remote-tracking branch 'ms/firewall-new' into firewall
commit 34aa915f08448c558311a630150c17283d7fe2ad Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Aug 9 14:50:50 2013 +0200
Update translations.
commit 776a1761d0ec5cb1d28e8a546bc6af818892183a Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Aug 5 09:32:46 2013 +0200
general-functions.pl: Fix overwritten substitutions.
commit 9168da6fcc7af41f347ca9fa374500db90994458 Author: Alexander Marx amarx@ipfire.org Date: Fri Aug 2 07:55:44 2013 +0200
Forward Firewall: deleted unused warning message regarding mac addresses
commit 29ae57a7fe60cb345fbebb80f76e52c31b5cd163 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jul 31 15:47:25 2013 +0200
firewall: Language updates (English and German).
commit 987b75bcd497233d7f4588efcc6af5c78236caec Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jul 31 14:31:18 2013 +0200
firewall: Add TOR chains.
commit ab4fe66fc95d7e048e44accf5d7750d8bbf03555 Author: Alexander Marx amarx@ipfire.org Date: Wed Jul 31 08:28:29 2013 +0200
Forward Firewall: Network addresses are now allowed as source and the ip addressfield has now size 18.
commit 43215686ce938ebacf037d14edba46817cf470c2 Author: Alexander Marx amarx@ipfire.org Date: Tue Jul 30 12:32:25 2013 +0200
Forward Firewall: changed rule coloring. Now whole field is colored instead of just borders. Back Button in firewall groups /hostgroups showed a white site
commit 93c2de1c663566438a15cfeae0c03028201b8690 Author: Alexander Marx amarx@ipfire.org Date: Thu Jul 25 10:36:36 2013 +0200
Forward Firewall: Bugfix: ICMP rules where applied double
commit 653a71b9514dc8a88e7d2247d1d709245afe748c Author: Alexander Marx amarx@ipfire.org Date: Thu Jul 25 07:33:20 2013 +0200
Forward FIrewall: Bugfix: When using predefined services in rulecreation, the rule was not applied. Bugfix: when in rulecreationpage and pressing "back" the site gets white.
commit 6143bc300e2d83a7ed9b7c6a1d8bf019d62a8ae1 Author: Alexander Marx amarx@ipfire.org Date: Wed Jul 24 08:06:24 2013 +0200
Forward FIrewall: BUGFIX: when setting outgoing to blocked and creating a rule, the last rule changes to "accept"
commit 357b3fe80df5e54fd327ebb543fd56de859f0c4b Author: Alexander Marx amarx@ipfire.org Date: Thu Jul 18 13:15:10 2013 +0200
Forward Firewall: renamed IPFire to Firewall in SNAT area
commit 4affc3e88997fd395f7b9be00b2cc51539d19122 Author: Alexander Marx amarx@ipfire.org Date: Fri Jul 12 13:30:14 2013 +0200
Forward Firewall: show default rule when input is empty
commit cb051c577c4da9f42c0235383f2455c020bcab51 Author: Alexander Marx amarx@ipfire.org Date: Fri Jul 12 11:40:04 2013 +0200
Forward Firewall: language fixes on last rule in ruletable
commit 34f30c5f926e1ca90451cc42d72af230f66406ea Author: Alexander Marx amarx@ipfire.org Date: Fri Jul 12 11:05:57 2013 +0200
Forward Firewall: set default options for optionsfw and minor change on optionsfw.cgi
commit 2e99ab8bf8a1dc79d1c411281bd82a19acf1c9dc Author: Alexander Marx amarx@ipfire.org Date: Fri Jul 12 08:01:01 2013 +0200
Forward Firewall: added some javascript to automatically select radiobuttons when dropdowns are changed
commit b88c88291bc62a7e8bc1ed784182a158d425a11f Author: Alexander Marx amarx@ipfire.org Date: Thu Jul 11 17:15:15 2013 +0200
Forward Firewall: added some java Script to automatically select radiobuttons when dropdowns are changed. Some cleanup of the code
commit 1ca546126e98aa23155de0238e929e446ac40d94 Author: Alexander Marx amarx@ipfire.org Date: Thu Jul 11 07:43:42 2013 +0200
Forward Firewall: deleted configfile "nat" in ovpnmain.cgi for portfw check. File "nat" no longer exists. Now the portfw rules are in file "config"
commit 6584a984a0b149715b9f51451ab82216f42d0e0c Author: Alexander Marx amarx@ipfire.org Date: Wed Jul 10 13:51:46 2013 +0200
Forward Firewall: just increased version number
commit 595a90f00334fba2c10518998244ac157b76d8f6 Author: Alexander Marx amarx@ipfire.org Date: Wed Jul 10 13:49:52 2013 +0200
Forward Firewall: The default rule table (at the end of Forward) shows only default values depending on the network configuration
commit f8bf364f0d758902de954f8e43bf372d3259929e Author: Alexander Marx amarx@ipfire.org Date: Tue Jul 9 14:59:55 2013 +0200
Forward Firewall: fixed check for already existing rules.
commit e1efb8199d378a6e8461b11f1ce748492e48bcca Author: Alexander Marx amarx@ipfire.org Date: Tue Jul 9 14:58:30 2013 +0200
Forward Firewall: deleted postrouting block in firewall (not used anywhere)
commit bb12dd7b69825c7dfa88a4353e0bb39d179ae7a2 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jul 8 15:53:30 2013 +0200
iptables: Cleanup creating SNAT/DNAT chains.
commit 47cd046aede256dccbd844dc1e580b47d3dd4c45 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jul 8 15:50:02 2013 +0200
iptables: Remove OPENSSL{PHYSICAL,VIRTUAL} chains which are unused.
commit d5f1422d81ea54a1b56e57dcb4aadde95611111d Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jul 8 15:47:57 2013 +0200
iptables: Jump into the firewall rulesets after everything else has been done.
commit 51ab1de143a9bfcbc15c4d8bf7a6689e44a607b7 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jul 8 15:41:15 2013 +0200
iptables: Create OVPNNAT chain after CUSTOM* chains.
commit 815eaff433559a26418be66f6400929d8ce3f0ef Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jul 8 15:38:39 2013 +0200
iptables: Create guardian's chains after the CUSTOM* chains.
commit 1e5553305203cee8b5b83dab82da16ac7b9f8713 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jul 8 15:36:45 2013 +0200
iptables: Cleanup creating the OVPNBLOCK chain.
This should happen after the CUSTOM* chains.
commit 3b9a23ce076e25548f4affde5b61eb37f71442fe Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jul 8 15:25:48 2013 +0200
iptables: Block all loopback packets on non-loopback interfaces.
commit afc611d448aee8eaaefa018dfb6acd4c6d6227a1 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jul 8 15:21:04 2013 +0200
iptables: Create LOOPBACK chain.
This chain accepts all communication on the loopback interface without running it through the entire connection tracking first.
Packets on lo can never be blocked and must always be accepted. The firewall has to trust itself anyway.
commit c0359d6dfbba1124c5b2da60bc56947e7f21769a Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jul 8 15:17:56 2013 +0200
iptables: Only jump into BADTCP for TCP packets.
This saves us from evaluating lots of rules for non-TCP packets.
commit b85d2a9819e5708b1716976c112b6043abe49881 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Jul 8 15:14:15 2013 +0200
iptables: Replace state module by conntrack module.
The state module is deprecated in recent releases of iptables and should not be used any more.
Additionally, this patch adds an extra chain for all connection tracking rules, so we can keep the entire ruleset more small and clean.
commit 7326051edb1ebec404e0b81bd85292285d7a5b6b Author: Alexander Marx amarx@ipfire.org Date: Fri Jul 5 12:15:05 2013 +0200
Forward Firewall: Updated outgoingfw-converter. redesign of the ruletable's defaultrules
commit 4d2e7a35d9592cd2ddae0467b5a0f036fa105476 Author: Alexander Marx amarx@ipfire.org Date: Thu Jul 4 12:37:34 2013 +0200
Forward Firewall: some textalignment in last rule row
commit a648546338f22138b5fe26c19b25a5686d23b0b9 Author: Alexander Marx amarx@ipfire.org Date: Thu Jul 4 12:19:50 2013 +0200
Forward Firewall: added "default-rules-table" at the end of forward ruletable
commit 7f25a65fc1d53178453ad8cb820a9251a8755402 Author: Alexander Marx amarx@ipfire.org Date: Wed Jul 3 14:38:40 2013 +0200
Forward Firewall: moved default rules from FORWARDFW to POLICYFWD
commit e17121fee73ba9adcc2d102d0127695613b780e8 Author: Alexander Marx amarx@ipfire.org Date: Wed Jul 3 11:26:44 2013 +0200
Forward Firewall: removed nat part from rules.pl (file nat not existent anymore)
commit b044bb056937ea59df3b9e244d9d01540fed869e Author: Alexander Marx amarx@ipfire.org Date: Wed Jul 3 10:13:06 2013 +0200
Forward Firewall: Bugfixes wrong interface in ruletable,when selecting alias firewall interface
commit fc83b09d437a0137b2c2db6ec07b4bdb8f98b051 Author: Alexander Marx amarx@ipfire.org Date: Wed Jul 3 09:26:39 2013 +0200
Forward Firewall: some bugfixes
commit 72586f0ff0bad5d1e9f75ab02dfc3e7595b47ded Author: Alexander Marx amarx@ipfire.org Date: Tue Jul 2 15:43:44 2013 +0200
Forward Firewall: colorize ip addresses when possible in firewall groups. subnetmask now in cidr format
commit f1934a05ad64ae5dd78568eece018cdb452b2326 Author: Alexander Marx amarx@ipfire.org Date: Tue Jul 2 14:55:46 2013 +0200
Forward Firewall: delted subnets from hosts in firewallgroups, colorized all ip-addresses from the firewall-groups if possible. Some minor changes in forwardfw.cgi
commit cb4439f3943662742f8010d41aff47ac06bb1804 Author: Alexander Marx amarx@ipfire.org Date: Tue Jul 2 08:21:38 2013 +0200
Forward Firewall: Bugfix of last commit. Added "Interface" to source or target that uses "Firewall" interfaces
commit d4cb89d2d111e219520f4e1294e2e0985f918dac Author: Alexander Marx amarx@ipfire.org Date: Tue Jul 2 08:03:25 2013 +0200
Forward Firewall: When using "Firewall" as source or target, the ruletable looks confusing. Theres "RED" in source and target. Now theres "INTERFACE RED".
commit 43d8be093c2dcad28164745d451f8d2351b9b95f Author: root amarx@ipfire.org Date: Tue Jul 2 04:16:52 2013 +0200
Forward Firewall: some language changes de.pl and en.pl as well as forwardfw.cgi and fwhost.cgi
commit 1a8fde0e845eab654aeee6dc5b780c3e4596cb4d Author: Alexander Marx amarx@ipfire.org Date: Mon Jul 1 16:38:14 2013 +0200
Forward Firewall: changed some names and added subnets to dropdowns
commit a0fb1099efded1fe13a7e7fb51a97097776a06a8 Author: Alexander Marx amarx@ipfire.org Date: Fri Jun 28 09:36:31 2013 +0200
Forward Firewall: Design changes 1) source has a new option "firewall" with dropdown for interfaces 2) source default networks->deleted IPFire, all ip's now in brackets 3) deleted warning message in Target that a mac is not usable 4) changes for "apply" button 5) in ruletable the protocol is now right beneath the ruletype column 6) changed target dropdown "INTERNET" to "RED" 7) renamed OpenVPN N-2N to OpenVPN Net-to-Net 8) set missing default firewall options 9) little changes on the en and de lang files
commit 2af92cf5acf6d3b0ef52528a0e83a29353ff3c83 Author: Alexander Marx amarx@ipfire.org Date: Thu Jun 27 07:28:06 2013 +0200
Forward Firewall: added new line at bottom of all ruletables with the "final rule"
commit ac9e77e3ba748c96c670f1215abb4c5bdebe66b4 Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 26 15:25:50 2013 +0200
Forward Firewall: added missing fields to the converters (for dnat)
commit 0ac6c61d3770cbc1fd19e3c5332ab76124cd643f Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 26 13:54:18 2013 +0200
UPNP: changed firewall chain from PORTFW to UPNPFW
commit f557ea1e596033a79ab1f6df4d57fd90c15a2271 Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 26 13:43:53 2013 +0200
Forward Firewall: removed PORTFWACCESS flushing from rules.pl
commit c12392c0ef3aa71cda43fe38cfd22e4afab5cc5e Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 26 13:30:30 2013 +0200
Forward Firewall: removed NAT table and txt file.
commit 4f3bd0ca20de32b0020f9be926254d2a201d226a Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 26 10:29:02 2013 +0200
Forward Firewall: changed layout of "apply-button" (after rules where changed. When using single hosts in rules, the prefix is no longer shown in the ruletable. Default settings for firewall-options changed
commit 8442c93764a38c903fe683ae9533a4d906a2b038 Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 26 09:42:38 2013 +0200
Forward Firewall: removed dmz from forwardfw.cgi
commit 60607a6c75730e94b115cd2351c910bf022648dc Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 26 09:07:05 2013 +0200
Forward Firewall: removed DMZ from rules.pl (does no longer exist, is forward now
commit 3f09f5309c82ebf8b8518a16aedea8e0aad5e66e Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 26 07:56:35 2013 +0200
Forward Firewall: convert-dmz now puts converted files into /var/ipfire/forward/config instead of /var/ipfire/forward/dmz
commit 3b2ad4a1bddd2185da6bd500be39ee19694399a7 Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 26 07:38:15 2013 +0200
Forward Firewall: moved "firewall default behaviour" from firewall page to firewall-options page. Some changes in languagefiles de and en.
commit 533a2da388be0f83732a07b5a40ec2792fd2fad5 Author: Alexander Marx amarx@ipfire.org Date: Tue Jun 25 12:35:01 2013 +0200
Forward Firewall: reorganised ruletable layout
commit 674f4e9d515233f5356fc502c862b28829736fde Author: Alexander Marx amarx@ipfire.org Date: Thu Jun 20 11:23:43 2013 +0200
Forward Firewall: on every reload of the new firewall-rules the firewall.local is also reloaded
commit ff4770c79ba800a03fea65ffd5153f75e63cf2b8 Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 19 13:31:40 2013 +0200
Forward Firewall: changed /etc/init.d/firewall. deleted stop routine and rearranged iptables_init and restart routine Now it should be possible to use /etc/init.d/firewall restart without errors
commit fb0ce57589a8ba724d3c446b612181f6d7f3b8c5 Author: Alexander Marx amarx@ipfire.org Date: Mon Jun 17 12:45:57 2013 +0200
Forward Firewall: cleanup unused code
commit e41b651b4a3b79bb072ac94835e96432ac1968dd Author: Alexander Marx amarx@ipfire.org Date: Mon Jun 17 10:21:24 2013 +0200
Forward Firewall: changed order of LOG and DROP rules for INPUT Chain
commit d9b691e18e59323e14dd37428fe9857ab95246b4 Author: Alexander Marx amarx@ipfire.org Date: Thu Jun 13 10:17:18 2013 +0200
Forward Firewall: added checks if manual ip (src/tgt) is part of a OpenVPN to colour the rules accordingly
commit 8762442c4ece6aaf6b863a7c86aaefb9e47c8be3 Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 12 15:17:12 2013 +0200
Forward Firewall: INPUT Firewall added "ALL" with ip 0.0.0.0
commit ed9ab82c61464a3a719f9662416b58cc83dbf4fd Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 12 15:05:31 2013 +0200
Forward Firewall 0.9.9.7: reordered INPUT POLICY.
commit 690b0bd7618c2b0e7284beaebcf771c02daced1d Author: Alexander Marx amarx@ipfire.org Date: Wed Jun 12 13:00:20 2013 +0200
Forward Firewall: added OVPNBLOCK and fixed rules.pl to correctly get ip address of red iface
commit d2c4a3cab92b07ebf0a01dc745d642429efd8159 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jun 12 14:14:53 2013 +0200
openvpnctrl: Cleanup flushChain functions.
commit 2181b55552b061ad76dd4126a0c6a0f15de0b288 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jun 12 12:50:33 2013 +0200
openvpnctl: Flush BLOCK and SNAT chain when needed.
commit 05d4f131e9f96a27249f1e833923ba2790dbd49a Author: Alexander Marx amarx@ipfire.org Date: Tue Jun 11 15:53:31 2013 +0200
Forward Firewall: Implemented INPUT Firewall (extended external access)
Now you are able to define INPUT Rules on every interface ip
commit c31f18b6a901bf02dc9e5e1c8474487a23e4c71e Author: Michael Tremer michael.tremer@ipfire.org Date: Fri May 31 13:31:48 2013 +0200
openvpnctrl: Block all transfer subnets.
commit 7c50b0483420028e1dc5f9b75ea0510b6c775567 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu May 30 21:55:26 2013 +0200
openvpnctrl: Remove unneeded code.
commit e1eef9d53e80503c97f86587d1f8e0fb99195a96 Author: Alexander Marx amarx@ipfire.org Date: Mon May 27 10:33:50 2013 +0200
Forward Firewall: BUGFIX: When creating DMZ Rules with MANUAL IP as source and afterwards editing the rule, the rule was copied and not just edited. BUGFIX: When using SNAT (outbound) the rule does not seem to work. The NAT_SOURCE chain was on wron position in POSTROUTING
commit 4682d02723a3650847c74e1fbfe8d38b75474cec Author: Alexander Marx amarx@ipfire.org Date: Wed May 22 07:43:46 2013 +0200
Forward Firewall: extended the customservices list
commit bac7013b21485ce8a6263bd19a7ba65440ec3336 Author: Alexander Marx amarx@ipfire.org Date: Wed May 8 08:19:03 2013 +0200
Forward Firewall: BUGFIX - when using source Protocol and NO target protocol only the target protocol is shown in ruletable.(But rule is applied correctly)
commit c400fe4c84dbb3c32e38d961f24275b29bc73d8f Author: Alexander Marx amarx@ipfire.org Date: Tue May 7 12:02:17 2013 +0200
Forward Firewall: fixed wrong log Entries INPUT_DROP when connected via Web or ssh
commit cb6148989124a4df35fe4ab256b03106a5121357 Author: Alexander Marx amarx@ipfire.org Date: Thu May 2 15:55:14 2013 +0200
Forward Firewall: restored old settings in graphs.pl. With new Monofont the columnsize is ok now
commit 6fab5bca2a3fc22aa08e7b6691e9f81a259d35ca Author: Alexander Marx amarx@ipfire.org Date: Tue Apr 30 09:58:01 2013 +0200
Forward Firewall: edited rules.pl so that in the rules the ip addresses from the remote ovpn N2N subnet are used instead of the openvpn subnet(because its only used as transfer net)
commit 3e79f33fc28e1f33a1b7599205ab86ae455d44c8 Author: Alexander Marx amarx@ipfire.org Date: Tue Apr 30 08:13:54 2013 +0200
Forward Firewall: reordered some rules to get rid of INPUT_DROP messages in log when connected to webinterface
commit 04abd8d95822b660e65cc1a85dac55f2791ae27f Author: Alexander Marx amarx@ipfire.org Date: Mon Apr 29 16:12:14 2013 +0200
Forward Firewall: bugfix: counter failure when adding one host to more than 1 Group
commit eff2dbf8336c3935535a5f5565bfc27c4fccd4bb Author: Alexander Marx amarx@ipfire.org Date: Fri Apr 26 10:24:34 2013 +0200
Forward Firewall: changed sort-order to Sort::Naturally. This Perl Module will be available since core 68.
commit e3c589276a90cfd67070e5e3f8007fc7ead6058f Author: Alexander Marx amarx@ipfire.org Date: Wed Apr 24 11:49:11 2013 +0200
Forward Firewall: if ipsec rw net is set to green subnet, the rules are colored green instead of purple
commit 139a1ab9475c73f4c773d83de17346aca2e4eb8c Author: Alexander Marx amarx@ipfire.org Date: Tue Apr 23 14:21:52 2013 +0200
Forward Firewall: removed devel-tags
commit 6945e46310ca87cd42ca537293db33a77dc35dbe Author: Alexander Marx amarx@ipfire.org Date: Tue Apr 23 14:14:58 2013 +0200
Forward Firewall: rewrote portcheck routine in ovpnmain so that checks for portforwardingports are made against /var/ipfire/forward/nat instead of /var/ipfire/portfw/config
commit 931e1fed53d8b5b74dbf2c2bedafc0399cccc7fe Author: Alexander Marx amarx@ipfire.org Date: Fri Apr 19 13:12:56 2013 +0200
Forward Firewall: added some plausi checks. Now it is checked if someone enters an manual ip address that is a openvpn client. The colors are set correctly in ruletable when someone enters a manual ip which belongs to an IPsec Network, IPsec Roadwarrior (if iprange set) or openvpn n2n
commit dc82656bf97fef330f5f34ee237426fb53d86708 Author: Alexander Marx amarx@ipfire.org Date: Wed Apr 17 12:02:13 2013 +0200
Forward Firewall: 0.9.9.4a - Bugfix typo in firewallscript, DMZ Link on startpage now leads to firewall instead of dmzpinholes
commit aff15defbc1ade178a1fbbf1fa1b592033d4fb77 Author: Alexander Marx amarx@ipfire.org Date: Mon Apr 15 20:29:15 2013 +0200
Forward Firewall: rules for collectd now in firewall-policy instead of /etc/init.d/firewall
commit 53f4c74d9bd0eebf70b4540b688be6d6c3e556ab Author: Alexander Marx amarx@ipfire.org Date: Mon Apr 15 15:02:50 2013 +0200
Forward Firewall: some changes in firewall script to make collectd work
commit 9468a6f71372b680f642cc2c71466db8ce30a186 Author: Alexander Marx amarx@ipfire.org Date: Mon Apr 15 12:00:35 2013 +0200
Forward Firewall: Firewall Hits graph now with stacked values
commit ed31c098f5306caf1bf0abefaf7814ccb6636362 Author: Alexander Marx amarx@ipfire.org Date: Mon Apr 15 09:50:39 2013 +0200
Forward Firewall: added drop rules to firewall's stop script so that collectd is working
commit be9be7cb5bf598e7d0781559ecd88ad702b58db2 Author: Alexander Marx amarx@ipfire.org Date: Mon Apr 15 05:50:20 2013 +0200
Forward Firewall: enabled /var/ipfire/optionsfw/settings in configroot
commit 94ea1f03464ab9434189ec270baa83fc2f2dcadd Author: Alexander Marx amarx@ipfire.org Date: Sun Apr 14 15:10:13 2013 +0200
Forward Firewall: fixed firewall hits statistik and extended it to show input,output,forward,newnotsyn and portscan seperately.
commit 6f348fcb9d96d8372fbfca50675736e81eec6661 Author: Alexander Marx amarx@ipfire.org Date: Fri Apr 12 12:39:57 2013 +0200
Forward Firewall: edited include file of backup.
commit 08e1c65d856ef4931dd641cdffe75ff75238e286 Author: Alexander Marx amarx@ipfire.org Date: Thu Apr 11 17:33:22 2013 +0200
Forward Firewall: added SNAT multiport support
commit 98cee89f94b5a7eedbfeaef1a4f1dcbc2c0c73d5 Author: Alexander Marx amarx@ipfire.org Date: Thu Apr 11 10:50:29 2013 +0200
Forward Firewall: Added multiport support to DNAT/Portforwarding
Now it is possible to use multiple ports under DNAT when TARGET has no Port, one Port or one Portrange defined
commit ed618226bb7f03b3a12155d8f2d1bcdb58adb566 Author: Alexander Marx amarx@ipfire.org Date: Mon Apr 8 15:32:49 2013 +0200
Forward Firewall: little changes in ruletable layout. (Headline)
commit d526a95bf105e787d8432af4bf9d4ba1f165d781 Author: Alexander Marx amarx@ipfire.org Date: Thu Apr 4 14:18:04 2013 +0200
Forward Firewall: some changes in en.pl and de.pl. Also adapted "apply" button in fwhosts.cgi
commit bc912c6e0c34bfd81a915b3f2774fc6b848990ff Author: Alexander Marx amarx@ipfire.org Date: Thu Apr 4 13:02:50 2013 +0200
Forward Firewall: Version 0.9.9.2
1) Some changes in en.pl 2) DNAT now supports REJECT/DROP rules 3) Bugfix: comma in remark customservicegroup 4) improved installer
commit e09884e04f0aab0c9b4f2f3d22f9f653e93d0cb9 Author: Alexander Marx amarx@ipfire.org Date: Tue Apr 2 11:24:22 2013 +0200
Forward Firewall: some fixes:
1) Counter was not correctly decreased when deleting a network from a customgroup 2) Convert-outgoingfw improved 3) Backup didn't set filepermissions correctly
commit f7e649ddfbd915136ae5acdad388d0b517e5ea85 Author: Alexander Marx amarx@ipfire.org Date: Tue Apr 2 08:43:18 2013 +0200
Forward Firewall: some typos in dmz-converter
commit a60dbb4b6aef3c4753f3206812ff80d34235e066 Author: Alexander Marx amarx@ipfire.org Date: Tue Apr 2 05:40:50 2013 +0200
Forward Firewall: added dmz-converter.
Also extended backup.pl script to support old backups. Now it is possible to restore old backups into new firewall. On restore, all config files of new firewall will be destroyed and the 4 converters will recreate them.
commit 829697d076d1b74a2499bd3bda6b70cfa56d6b49 Author: Alexander Marx amarx@ipfire.org Date: Mon Apr 1 06:26:58 2013 +0200
Forward Firewall: enabled Portranges for DNAT
commit 6be32fe50454ded7ecbec877db3a05bd87bdcc05 Author: Alexander Marx amarx@ipfire.org Date: Sun Mar 31 16:18:12 2013 +0200
Forward Firewall: bugfix: DNAT now correctly creates rules, when customservice defined as target
commit 28640b7365b6bcd73fd760300c1f994a331fc993 Author: Alexander Marx amarx@ipfire.org Date: Wed Mar 27 12:36:19 2013 +0100
Forward Firewall: fix NAT-rules: iptables rule was not applied correctly in PORTFWACCESS
commit 82e136591e5dbe3366f2a8d3f9129b98603ad620 Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 26 08:35:45 2013 +0100
Forward Firewall: bugfix
1) When editing a NAT rule, error message "port already used" fixed
commit f0da8d53d02633030dafe6ad301488e8946ffccd Author: Alexander Marx amarx@ipfire.org Date: Fri Mar 22 07:55:17 2013 +0100
Forward Firewall: Version update forwardfw.cgi
commit 218b3341b6fd9da564ee876c08d8bf2c1b0ec78d Author: Alexander Marx amarx@ipfire.org Date: Thu Mar 21 17:34:30 2013 +0100
Forward Firewall: cleanup of initscript. Fixes double log entries when INPUT is set to REJECT
commit fb61ec6715f8bcf9005477563a6449f51725f286 Author: Alexander Marx amarx@ipfire.org Date: Thu Mar 21 14:36:29 2013 +0100
Forward Firewall: Bugfix: blue was allowed to connect to everywhere if forward firewall was open
commit 8343fd125091b3530a76609e8ec17dbf9f63ed69 Author: Alexander Marx amarx@ipfire.org Date: Thu Mar 21 10:35:07 2013 +0100
Forward Firewall: Fix converter-outgoingfw. Produced wrong counters while converting
commit f833ef4660862fce522799582957a64b2159ea72 Author: Alexander Marx amarx@ipfire.org Date: Thu Mar 21 07:47:28 2013 +0100
Forward Firewall: fixed layout of deleted host in custom group changed version nr in forwardfw.cgi
commit 54d6863787ca89d11e59efc1e9d345fd5b9a5eb9 Author: Alexander Marx amarx@ipfire.org Date: Thu Mar 21 07:34:05 2013 +0100
Forward Firewall: fixed converter bug: Remark is "0" and Alias ip is taken as ip instead of name
commit 6b681c40d2d1cf9f0a1d6b8cedcce90809680e1d Author: Alexander Marx amarx@ipfire.org Date: Wed Mar 20 11:03:29 2013 +0100
Forward Firewall: 0.9.8.7 Implemented SNAT/DNAT
reorganized firewall chains
commit 93b75f31ad920a2aa96206c2053b70affa135a42 Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 19 12:56:38 2013 +0100
Forward Firewall: clean up some files
Fix iptables loop wirelessctrl Fix firewall chain order Fix policies (added comment for statistic)
commit 6397b6e78974f316d9358841120f8e8bb34007f3 Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 19 05:39:53 2013 +0100
Forward Firewall: deleted portfw from buildsystem
commit e800ca53b20429a09054c8113517061279258ab8 Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 19 05:23:54 2013 +0100
Forward Firewall: delete old Portforwarding from Firewall-menu
commit 9efd8d1c7eb134c71465396a1bdcc5ae52497d80 Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 19 05:15:20 2013 +0100
Forward Firewall: delete old portforwarding from system and fix for wlan-firewall part 1 (loop)
commit a6edca5a899eca09c3ccd8cd22c2b7a3223fcdd3 Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 19 04:48:23 2013 +0100
Forward Firewall: support for SNAT/DNAT in GUI and rules.pl
commit 2669161dab909e57a6642c2dea8d5a70900f4f12 Author: Alexander Marx amarx@ipfire.org Date: Sun Mar 17 13:49:57 2013 +0100
Forward Firewall: Added support for DNAT/SNAT to forwardfw.cgi
commit ddcec9d339162ee49d7973f815e03d8da5e973cd Author: Alexander Marx amarx@ipfire.org Date: Thu Mar 14 16:24:52 2013 +0100
Forward Firewall: Firewall sets Internetdevice correctly now (was always red0)
commit f2ab6fba4afa7bc13a7549fade339eebc63c537b Author: Alexander Marx amarx@ipfire.org Date: Thu Mar 14 06:11:28 2013 +0100
Forward Firewall: 1) Custom Hosts: now 17 chars can be entered into IP/MAC field 2) Forwardfw: Bugfix: When no alias is set and IPFIRE is selected as target, no target address is recognised 3) Forwardfw: Now source and Target addressfield (manual) are set to 17 chars maxlegth. 4) Converter: Bugfix: When starting converter from commandline, all hosts are entered into groups again.
commit bedb72f3d42cf71be128cf7c803baa53495af6e3 Author: Alexander Marx amarx@ipfire.org Date: Wed Mar 13 08:50:32 2013 +0100
Forward Firewall: moved ruleaction-dropdown from top to target area. some layout changes in forwardfw.cgi (when no alias exists, the dropdown after ipfire is not shown)
commit 05612a544bf60d233704be5995241d2354dbde91 Author: Alexander Marx amarx@ipfire.org Date: Wed Mar 13 06:02:35 2013 +0100
Forward Firewall: fix converter for outgoingfw. remarkfield (new) was not implemented here fwhosts: Some layout changes in tables (cellspacing='0')
commit d58677779f0a678a5495a4b198fc4dfd2fcc6893 Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 12 14:51:34 2013 +0100
Forward Firewall: forgot to delete devel-comment
commit fccf52cf7eb362d88dca279b4fd4464dba92d6ce Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 12 14:46:16 2013 +0100
Forward Firewall: fixed a bug in convert-outgoingfw. THe hosts are created with wrong amount of fields in hasharray. Also fixed a bug which sets wrong firewall mode for FORWARD when outgoing rules are used.
commit 21b9a50c68d9c42e56a525c9745f638266469a39 Author: Alexander Marx amarx@ipfire.org Date: Fri Mar 8 08:58:22 2013 +0100
Forward Firewall: changes in de languagefile
commit 472136c9271f162ab65b224225fe3e478a77ccb4 Author: Alexander Marx amarx@ipfire.org Date: Fri Mar 8 08:38:41 2013 +0100
Forward Firewall: Fix ruletimes. Now the timevalues which are entered in the gui are saved to the rulefile. Wenn rule.pl is called, the script calculates the difference to UTC time and sets the iptables times accordingly.
With this approach there's no need to save if the times are created in summertime or wintertime.
commit ef6f983b1724f9b3ac4d5d4f5ba45288985c44fc Author: Alexander Marx amarx@ipfire.org Date: Thu Mar 7 10:01:24 2013 +0100
Forward Firewall: put rule OUTGOING ACCEPT Related, established into /etc/init.d/firewall deleted ACCEPT OUTGOINGFW related,established from POLICYOUT
commit a0f267b92c63d8f1ac374073847766873e5fc445 Author: Alexander Marx amarx@ipfire.org Date: Thu Mar 7 07:43:28 2013 +0100
Forward Firewall: removed --kerneltz from rules.pl. New function timeconvert in forwardfw.cgiu takes care of timeconversion now
commit c773075074acff71cb574f67fd450f86bf7f6dc1 Author: Alexander Marx amarx@ipfire.org Date: Thu Mar 7 06:35:03 2013 +0100
Forward Firewall: Try to implement a timeconverter for Rules. New function timeconvert should convert localtime agains gmtime.
commit f69ea1c7c59cdeb664cbc93eae60a538191ed44b Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 5 11:33:21 2013 +0100
Forward Firewall: New Version 0.9.8.2
commit 7874d8200d10669bc7ab8c69c119fa62cbc8c69c Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 5 11:21:13 2013 +0100
Forward Firewall: wrong <font> Tag leads to a sidemenu with small font
commit f38e0c4de02235f31fbff715af6dde0fcd62a78f Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 5 09:47:21 2013 +0100
Forward Firewall: added --kerneltz option to timeframe
commit b3f4a4efcf1c8dae2804a879b7f59559935f4b26 Author: Alexander Marx amarx@ipfire.org Date: Tue Mar 5 06:00:07 2013 +0100
Forward Firewall: Fixed ruletable (view of protocols)
commit 8cb1afc817acdf6228a13ed097b514c4ed4cfb6c Author: Alexander Marx amarx@ipfire.org Date: Mon Mar 4 20:56:20 2013 +0100
Forward Firewall: Bugfix: When having more than 1 ICMP rule in a group, the rule is not created.
Also changed (INPUT) to (Input) in firewall-options
commit a7d7f5a3da6ed8905c01c7987acaeadbdca9aa5c Author: Alexander Marx amarx@ipfire.org Date: Sun Mar 3 20:29:29 2013 +0100
Forward Firewall: Added versionnumber on bottom right of firewall.
commit dc33c23b1fa602ab80e7b0b4422ca2019caa24fc Author: Alexander Marx amarx@ipfire.org Date: Sun Mar 3 20:12:34 2013 +0100
Forward Firewall: Updated strongswan patch provided my Michael. (Changes _updown script from FORWARD ACCEPT to RETURN)
commit 36e9534f244f05b93119f4b6ddae47717acdc062 Author: Alexander Marx amarx@ipfire.org Date: Sun Mar 3 06:12:01 2013 +0100
Forward Firewall: Added configoption in Buildsystem -< POLICY2='DROP' (for POLICYIN)
commit a9b3ae26a3e158c3c94cdb169ae55b6af4eb40d4 Author: Alexander Marx amarx@ipfire.org Date: Sun Mar 3 05:59:42 2013 +0100
Forward Firewall: /etc/init.d/firewall now creates POLICYIN
commit d47bb8a1adbaadcc1e50231be850853f2d097249 Author: Alexander Marx amarx@ipfire.org Date: Sun Mar 3 05:14:22 2013 +0100
Forward Firewall: Added Firewall-Options for INPUT Policy (DROP/REJECT) and built a new INPUT-POLICY in firewall-policy.
commit dafaa4142779c7f9a63b481f23df4cec95c5f03c Author: Alexander Marx amarx@ipfire.org Date: Sat Mar 2 12:43:16 2013 +0100
Forward Firewall: update _updown on build
commit fd4d137dbe29bab16761f5fa90ee200a6725fe19 Author: Alexander Marx amarx@ipfire.org Date: Sat Mar 2 06:11:16 2013 +0100
Forward Firewall: deleted outgoingfwmac, is now useless
commit 443a6e8a5f95fbea7dbb9efe254f166be7e38b35 Author: Alexander Marx amarx@ipfire.org Date: Fri Mar 1 10:43:25 2013 +0100
Forward Firewall: deleted creation of OVPNFORWARD and the accept rule.
commit ec329c069981d096bc38a1787ca1b04722dc40ed Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 28 09:49:45 2013 +0100
Forward FIrewall: fixed typo
commit 97e2e7b4b72dc635f3b8cb79d16198ad4a966f50 Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 28 08:27:16 2013 +0100
Forward Firewall: LAyout change: All dropdowns now have same size
commit 223d3b1dca93f96ed104990bd256a664150360e5 Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 28 08:13:13 2013 +0100
Forward Firewall: chnaged "Internet" to "INTERNET" in dropdown (Target)
commit a615cab30e57f39cc891d75a195e1df4bf4e21f3 Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 28 07:30:24 2013 +0100
Forward Firewall: reordered Firewall Menu and changed header.pl to reflect the new menuposition for Blue Access
commit d998784149c62299aa7c417b7a7919c3d9abdcf7 Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 28 06:05:32 2013 +0100
Forward Firewall: added an option to firewall-options to show all dropdowns on rulecreation site.
commit 8013bd0ac28ac8daee7bae5ebcfe4c9fd8154310 Author: Alexander Marx amarx@ipfire.org Date: Wed Feb 27 14:23:20 2013 +0100
Forward Firewall: Changed layout of rulecreation. Now only the dropdowns for configured networks are shown on the site Also changed fwhosts.cgi (custom groups) to the same feature
commit 92e4ae9db1334acf481a60656004b289b0accf80 Author: Alexander Marx amarx@ipfire.org Date: Wed Feb 27 05:35:41 2013 +0100
Forward Firewall: Some changes in langagefiles and layout in fwhosts.cgi
commit 88f18201c74a911303b8ba023830c5e068794a21 Author: Alexander Marx amarx@ipfire.org Date: Tue Feb 26 15:33:27 2013 +0100
Forward Firewall: changed menu to show access to blue correctly
commit e2619c15215a9f86773e3bb84056b1f651261ec6 Author: Alexander Marx amarx@ipfire.org Date: Tue Feb 26 14:40:16 2013 +0100
FOrward Firewall: Typo
commit 770140a7bfb302261d1e79d3b9add20be6b2b7ed Author: Alexander Marx amarx@ipfire.org Date: Tue Feb 26 14:34:30 2013 +0100
Forward Firewall: removed some text in p2p-block and changed dropdown to radiobutton in optionsfw
commit 3f8d9da3000a6f2268fc2c3c9b724d593a079f8e Author: Alexander Marx amarx@ipfire.org Date: Tue Feb 26 13:41:23 2013 +0100
Forward Firewall: reordered 50-firewall.menu
commit 5b375ca7e640361701497ae451a4892e7ec5334e Author: Alexander Marx amarx@ipfire.org Date: Tue Feb 26 06:16:14 2013 +0100
Forward Firewall: added a 1px heigh line after each rule. so the coloured borders are looking better
commit 3f6bba6dbb92a41ccbe5f63753c98cb6658e06bf Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 25 21:40:09 2013 +0100
Forward Firewall: Forgot to delete a dev-comment
commit 25dd450cbae6159727dfeff231da9573a075b4f9 Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 25 21:25:53 2013 +0100
Forward Firewall: Bugfix: Error appending or writing comments in rule
commit 31fef6cc2d8c19fb7b5a86529b4b98bc2d4fd85f Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 25 13:56:48 2013 +0100
Forward Firewall: rules.pl supports now DMZ rules. These rules are applied first
commit d603d1dee0376f6816e9643c8a332780cd112d93 Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 25 13:22:43 2013 +0100
Forward Firewall: disabled some dev-comments
commit 5aa8edf6f794691843e13f0febfb29ee0ccf18d7 Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 25 13:11:13 2013 +0100
Forward Firewall: some changes for ISO
commit 515863e299fd11273cf06cc3d2a5ecd673553a1f Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 25 13:03:54 2013 +0100
Forward Firewall: Some further layout changes. 1) New textfile for DMZ rules 2) Tablegroups are shown on firewall site 3) Option in firewall-options to disable emtpy ruletables 4) Infotext on P2P-Block site
commit 30d80ed42a716aa35c5827a4ec513e2925638da9 Author: Alexander Marx amarx@ipfire.org Date: Sat Feb 23 20:28:47 2013 +0100
Forward Firewall: added p2p-block.cgi to apache2
commit f83227921516681f642ce29e4f9121d6341e1d99 Author: Alexander Marx amarx@ipfire.org Date: Sat Feb 23 06:33:15 2013 +0100
Forward Firewall: minor changes an ruletable
commit 6ca0b0f5fbfdfe4875a38b7ffc47d2af56efd9ec Author: Alexander Marx amarx@ipfire.org Date: Sat Feb 23 06:21:42 2013 +0100
Forward Firewall: made colored borders in ruletable thinner (1px) and changed remarkline
commit af768a7e80bb8fb3b25bfd8f13a4a0561927f9e2 Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 22 13:04:30 2013 +0100
Forward Firewall: removed cellspacing and black lines between rules in ruletable
commit 96502a5a67692ae5fb06b9a83799c64040ced1df Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 22 11:27:30 2013 +0100
Forward Firewall: New Firewall-option "show remark in ruletable"
commit 289d82ad6e87b8b22b6cb90d3b16fb1a6721734c Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 22 10:12:59 2013 +0100
FORWARD Firewall: edited ruletable to look better on IE
commit ba6f69f76943a83fece4a12fb632f9ad166edff3 Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 22 10:01:27 2013 +0100
Forward Firewall: added newlines between groups in tablerule
commit d9a4000ba84beb88853a43a7301633b590c79abb Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 22 09:50:22 2013 +0100
Forward Firewall: show default policy left aligned
commit e638799b12ce108b6a13cfb3e8a180c56f4d3b9c Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 22 09:33:05 2013 +0100
Forward Firewall: fixed Table in servicegroups and hostgroups
commit 1031c2e4a919e510e09dc975ce1567493841d2c5 Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 22 09:12:25 2013 +0100
Forward Firewall: added color for target "internet" (RED)
commit e28356b92834e75f09756de76e3cb139e9b72e9c Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 22 08:28:48 2013 +0100
Forward Firewall: added default option SHOWCOLOR to options and refined default behaviour of firewall in forwardfw.cgi
commit 562d24b8169ac043b2ab4ebf160862b25e88097e Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 22 06:43:11 2013 +0100
Forward Firewall: Some minor changes in Language file timeframe:->timeframe
commit 5dd84c259d95ee2fc2967326388d5cc73af4eabc Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 22 06:25:26 2013 +0100
FOrward Firewall: Minor Layout changes
commit 12a43202a6fb6a9b80664ebcf01792928c57c016 Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 21 21:53:52 2013 +0100
Forward Firewall: bugfix converter->default forward mode is now set correctly some layout changes
commit b324de14db6c48823e570a285c91bb18593f02ff Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 21 16:40:47 2013 +0100
Forward Firewall: fix wlan clients now working with forwardfw
commit 15add1c8afbbc8eed5dd9d9649049109dbce8d58 Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 21 15:00:03 2013 +0100
Forward Firewall: changes in rule layout. new Option in firewall-options: it is now possible to select if the colors are shown in ruletable
commit 7bf83f9d39d3101ac096b42d0fc43a8caef97c5e Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 21 10:26:55 2013 +0100
Forward Firewall: moved p2p-block to a seperate cgi and deleted it from forwardfw.cgi
commit 6128ded855eefc07abc6904490cfed055e35647b Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 21 09:34:07 2013 +0100
Forward Firewall: convert-outgoingfw now supports outgoing rules
commit f80db6a4ceb985e14a5bc85134bafbd0b3c34416 Author: Alexander Marx amarx@ipfire.org Date: Tue Feb 19 16:30:41 2013 +0100
Forward Firewall: Bugfix: on update of network or hostst and changing remark to invalid value, the remark was saved
commit be5698ef6688c770f422011875b2d6451af017d8 Author: Alexander Marx amarx@ipfire.org Date: Tue Feb 19 15:41:03 2013 +0100
FORWARD FIREWALL: Some Typos in language Files
commit e5a058c131806586e53c44d5ecca7e1d4a926f84 Author: Alexander Marx amarx@ipfire.org Date: Tue Feb 19 15:24:24 2013 +0100
FORWARD FIREWALL: added remark in custom networks
commit 046d88c2d0f5718a8efbd5cbee5e2f4e1b5f4dbd Author: Alexander Marx amarx@ipfire.org Date: Tue Feb 19 06:48:00 2013 +0100
Forward Firewall: outgoing converter is now ble to set default policy correctly
commit c178bf21c1e6d68be2fca6763e8e4b8493304d32 Author: Alexander Marx amarx@ipfire.org Date: Tue Feb 19 06:34:48 2013 +0100
Forward Firewall: added Policymode for OUTGOING to converterscript
commit d928d79566cd802f85cd38bcd8bd76f4bb112547 Author: Alexander Marx amarx@ipfire.org Date: Tue Feb 19 06:29:32 2013 +0100
Forward Firewall: some exentions for remarks
commit 6563800485c11292341c931ccf8aadb281eaa2c8 Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 18 21:20:51 2013 +0100
Forward Firewall: Fixed typo
commit e3580608b3cd6695980e2ace6eae4f969d71e070 Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 18 21:13:07 2013 +0100
Forward Firewall: added remark field to custom hosts and host table
commit d0815ce43f84bf53f31f2a51ba4fb768d6c12e4d Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 18 16:10:42 2013 +0100
Forward Firewall: Fix 80,81,83 (Forum) Apply Button now on group and rule site remark can be delted - and . are allowed in Hostname
commit 0b54aaede3702dcaf76e3d4b50fd5ca591e8fe13 Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 18 12:28:30 2013 +0100
Forward Firewall: when creating a second group of services, the cached port and protocol from first group are shown in table
commit aa8647835d948bf7261fb49ba26054b8789b61d8 Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 18 10:41:19 2013 +0100
Forward Firewall: Finalize integration of OUTGOING into firewall
commit 35fb91640a78eb4c58c0ecab50f317d8bd4341da Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 18 05:36:18 2013 +0100
Forward Firewall: Fixed Firewall-options (preselection of new Dropdown) for outgoing firewall default behaviour (DROp/REJECT)
commit 4e62b47f3371f261d3a295faab9083063b5fbad1 Author: Alexander Marx amarx@ipfire.org Date: Sun Feb 17 21:53:18 2013 +0100
FORWARD Firewall: integrating OUTGOING Firewall Part 2
commit 5d7faa4518d894f90218c216bb2fb86e69f46b2a Author: Alexander Marx amarx@ipfire.org Date: Sun Feb 17 13:58:35 2013 +0100
Forward Firewall: First part of adding OUTGOING to th efirewall
commit d7127db8fb715f13b87cbce980137c2879a1d64e Author: Alexander Marx amarx@ipfire.org Date: Sun Feb 17 07:03:43 2013 +0100
Forward Firewall: Savepoint2.MOved checks if rule has changed to function saverule to take care that rules are only deleted if there's no error
commit c7043621fc4cf73f30749d21310a8569fbf1c78f Author: Alexander Marx amarx@ipfire.org Date: Sun Feb 17 06:34:39 2013 +0100
Forward Firewall: savepoint 1. Trying to add OUTGOING to the firewall. actual working:
Create OUTGOING Rules, change external access or foward rules to outgoing ones. Missing: rules.pl need to be updated
commit 6ba1cd4ceba9d4b343e5afb47e206e7a507f226c Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 15 13:28:27 2013 +0100
Forward Firewall: ; is now allowed in Ruleremark
commit 3f8fe51ef093987c5633a9564648b1d3fe2e5087 Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 15 13:24:34 2013 +0100
Forward Firewall: When editing a group and deleting an entry, the next mode is also update
commit d13a936349b048eb5515699fea46c7242b9c95ac Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 15 08:15:51 2013 +0100
Forward Firewall: Last rule in servicegroup is not deletable if group is used
commit 2cee24627a50955ee1ab6b1414ce9d5aa7feeb2c Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 15 06:21:00 2013 +0100
Forward Firewall: Changed "apply" button to be more eye-catching (red font) also some minor bugfixes (The last entry in a used group can not be deleted)
commit 6c8699612cdb1fec557f02b2e4ee22750e7b1ff7 Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 14 17:23:11 2013 +0100
Forward Firewall: added extra button for changing remark
commit cd9d9d8a13405e380ad0422d2b47f48d9ef1f8a4 Author: Alexander Marx amarx@ipfire.org Date: Wed Feb 13 13:31:55 2013 +0100
Forward Firewall: added "apply" button to groupmanagement. Now the user can make all changes and finally click apply button to reread firewallrules. Also added a comment in de.pl and en.pl which should remiond the user to click the button.
commit 12dcfbbdbe38f8b81a3969f70516511ec779d011 Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 11 05:51:42 2013 +0100
Forward Firewall: Portfw now working and firewall closed correctly
commit 8f204435d41f19c0e79b3ab0fb364606b8eb1522 Author: Alexander Marx amarx@ipfire.org Date: Sun Feb 10 10:53:16 2013 +0100
Forward Firewall: When a group has only one entry and the group is used, it is not possiblle to delete the group
commit 0918e51633a3c1582ce075b6e6dc71d0a07566be Author: Alexander Marx amarx@ipfire.org Date: Sat Feb 9 13:46:25 2013 +0100
Forward Firewall: fixed repositioning function and Networks or broadcasts are now allowed as target
commit 5de39dea9c1ebbdf7c2a9407dafd3900677ac9db Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 8 11:03:06 2013 +0100
Forward Firewall: If editing an external access rule and producing an error, the FORWARD Rule with same ID is displayed instead of INPUT rule
commit 13e5dda402cac2e441d029459e152750c2493e7f Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 8 10:33:04 2013 +0100
Forward Firewall: when editing a group the rules where not read correctly, because of wrong COUNT
commit 5e9707230693d7f3e180ec6a711f54dd0c224ab7 Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 8 08:07:45 2013 +0100
Forward Firewall: Fixes Problem when editing a host and afterwards pressing F5, a emtpy entry was created in customhosts
commit bfac6bd4dc79788c16d66b29b84d3ecb6d105653 Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 8 06:00:41 2013 +0100
Forward Firewall: when a service is used in a servicegroup, it was not updated when editing the service
commit ed73b87ece9ecefd829dde86cc3a559172d3bbcd Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 7 15:24:19 2013 +0100
Forward Firewall: some code optimizations
commit 0013abb07c6dda5f4a67ec2a2025e8d1007c4417 Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 7 13:17:25 2013 +0100
Forward Firewall: changed sortorder of servicedropdown in servicegrouping. catched F5 when editing a host-Now no entry is saved in customhosts table theres only the IP shown (deleted subnet)
commit bfee206c989a77ae56701aec25a435262dcda1ee Author: Alexander Marx amarx@ipfire.org Date: Thu Feb 7 12:12:11 2013 +0100
Forward Firewall: When changing a service which is used in a rule, the rule was destroyed. Now the configfiles of the firewall are adapted as needed.
commit 5edf47ffbac2f7a8a668c8b64addd767c3df306b Author: Alexander Marx amarx@ipfire.org Date: Wed Feb 6 15:14:15 2013 +0100
Forward Firewall: Bugfix: now the Protocols are corrected in the tablerule if a servicegroup was used
commit 7772ae734e9bc926c19adfbd9333471cdf300f6f Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 4 15:36:37 2013 +0100
Forward Firewall: extended the accepted chars for group and servicenames NOw / () and _ are allowed, too
commit fb70d3d54035db1c7427f8d42570980199455190 Author: Alexander Marx amarx@ipfire.org Date: Mon Feb 4 11:21:33 2013 +0100
Forward Firewall: changed sortorder of customhosts and bugfix when remark is changed
commit 937d4e0892956a054f012f9f6d4ce5b1e03227f0 Author: Alexander Marx amarx@ipfire.org Date: Fri Feb 1 13:18:15 2013 +0100
Forward Firewall: redefined layout of customservicegroups and some layout changes
commit 20c00d4bdf1114b983c71d2557dcdb0b067e87e0 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 31 20:52:56 2013 +0100
Forward Firewall: BUGFIX-CustomGroup sort order
commit d6bdebd47d1c163dae1fbde6b6758d58ec66d67b Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 31 08:45:04 2013 +0100
Forward Firewall: fixed icmp-types and deleted dmzholes chain
commit 8f1634ffbc7b3d039088bf80c85c3bcf2eeaf56c Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 31 07:33:47 2013 +0100
Forward Firewall: firewall policy dropdown - resized
commit 53f3a4c82dcbcc95118635bf89e67876ccb79206 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 31 05:48:20 2013 +0100
Forward Firewall: Typo in en.pl
commit 2b9460abfa947eb91b391e4e97daa95ee7bc87fc Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 31 05:17:41 2013 +0100
Forward Firewall: changed firewall modes from mode1,mode2 to "allowed" and "blocked". Also new descriptiontext.
commit 0b14d3d9b14ee36a01a67d83591ede814cc9f92d Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 30 16:28:18 2013 +0100
Forward Firewall: fixed portforward rules. Now possible even if firewall in mode1
commit 5b7ed8bbae95651ff9098b90466bb815d2361f5f Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 30 15:24:57 2013 +0100
Forward Firewall: Tablegroup DMZ and WLAN now only show the own rules
commit 6adcf1569cf30ca399ae0aacb9e86c06fff4ffc6 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 30 13:34:54 2013 +0100
Forward Firewall: set standard rules for blue in mode 2
commit e974ced8c5a280554d4034e60647188e109fe9a1 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 30 10:27:38 2013 +0100
Forward Firewall: when resetting firewall, an error was generated in log, because there's no reread file
commit 210ee67b5354f513a71a74df2633e2d3e0ddad95 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 30 09:14:01 2013 +0100
Forward Firewall: deleted mode0, added default Mode2 and fixed /etc/init.d/firewall to reload the rules correctly on reload. Also made it possible to create broadcastrules (To drop broadcastpackets)
commit 7bd9d462de4035d508b108ab0bedc3fda87e1326 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 30 06:22:59 2013 +0100
Forward Firewall: Deleted MODE0 from WEB Interface and added a table for DMZ-Rules.
commit 0f869e32d4ea1f56e84cb61578964adf6eec7659 Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 28 06:12:51 2013 +0100
Forward FIrewall: tried to sort servicegroups the right way...not perfect now
commit 85dc70c746cd8fe0b602c0e98f2cc4b2232507ec Author: Alexander Marx amarx@ipfire.org Date: Sun Jan 27 13:20:33 2013 +0100
Forward Firewall: Fixed a bug in servicegroup-Tableview
commit 70d38e5089fcd9de5a595dc5e08563104eba65ea Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 26 21:11:21 2013 +0100
Forward Firewall: fixed converterbug and added ruleposition to new rules in forwardfw.cgi
commit e3afaf8890558beb5e399efe2f8fa6cbd9123b91 Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 26 19:49:24 2013 +0100
Forward Firewall: bugfix: network ip was treated like single host
commit f1ec713da7db766dc3593c99b9b5c5cbc6efdb86 Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 25 12:18:28 2013 +0100
Forward Firewall: minor chnages just layout
commit f3fb9b64ac9a15703827454e7f67bc6754af9c5c Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 24 17:37:34 2013 +0100
FOrward Firewall: disabled p2p table border
commit 47a40c972633d9e817d58d5f0212ba47006b4973 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 24 14:20:01 2013 +0100
Forward Firewall: set P2Protocols default to "off"
commit 45cfd811310ad839d8cc6b7358cd9074bf43ae80 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 24 12:50:33 2013 +0100
Forward Firewall: deleted 22-outgoingfwctrl
commit a57a5709a40580f68c4b2ecfd13d3a989ad7d4da Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 24 05:25:58 2013 +0100
Forward Firewall: changed Layout of P2P table
commit 4b147d950b148500c5ec04a9f13e04f8b2e1ad96 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 23 15:06:21 2013 +0100
Forward Firewall: deleted symlink to outgoingfwctrl from lfs/initscripts
commit ed62bbfb521de113f824228fed88f2f8f962035a Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 23 05:51:30 2013 +0100
Forward Firewall: changed sortorder in group tables
commit 04f24153fcb06d29411569d19784430e16eee237 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 22 12:28:14 2013 +0100
Forward Firewall: edited language file en.pl and changed 'protocol:' to 'protocol' because in de.pl it is also just 'Protokoll'
commit 8d1beadce31786cc87afc01880d731c8a19e120f Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 22 05:42:46 2013 +0100
Forward Firewall:
1) fixed outgoingfw converter: now checkbox for logging is converted corectly 2) edited p2p_block: now a checked prot is allowed
commit 3b81fad442d9078bc9131e731ce2034656bcb165 Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 21 21:47:32 2013 +0100
Forward Firewall: converter now creates cdir format from ip-addresses
commit 5238a8719d75273e5e52f083c0c10cbe9e3ea312 Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 21 21:26:44 2013 +0100
Forward Firewall: minor improvements, if an outgoingrule has a given port and prot "all", there are two new rules generated for UDP and TCP. If an outgoingrule has only "all" as prot, but no port, there's only one new rule created
commit 5a9fd5dbd1af37c5ecf3608333486716cf43354b Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 21 14:49:21 2013 +0100
Forward Firewall: extended converter
commit 25c4997947301c3be6407fece18e4ef652e59285 Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 21 05:54:20 2013 +0100
Forward Firewall: edited colspan for timeframe from 6 to 7 edited de.pl and changed "Port(s) manuel" to "Port(s) manuell"
commit 61068ee1a4b6d4c029da662f4d8f3bcfa1734909 Author: Alexander Marx amarx@ipfire.org Date: Sun Jan 20 20:36:11 2013 +0100
Forward Firewall: Some more checks to check remark if rule was edited
commit 43902ae5a274e33f0e0bd14787bac49aa827bcc8 Author: Alexander Marx amarx@ipfire.org Date: Sun Jan 20 13:18:47 2013 +0100
Forward Firewall: Bugfix: when editing a rule it was possible to enter invalid chars in remark
commit 9edb1d7a8e5e70c1ebe3d8f4197770e1c1c5d4e3 Author: Alexander Marx amarx@ipfire.org Date: Sun Jan 20 05:54:04 2013 +0100
Forward Firewall: edited Backup.pl. If someone put /var/ipfire/outgoing into /var/ipfire/backup/include, the rules are backed up and need to be restored. Now the backup takes care of this and checks if there are old rules to convert.
commit 879462965387442e12cbade08cc20e3498c7672a Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 19 21:21:18 2013 +0100
Forward Firewall: edited convert-outgoingfw. When a Protocol ESP or GRE is used AND a Port is selected (in old system), the rule was not converted successfully.
commit 99e698d03387f4ad40db1d2bd737c0d6cdc55a23 Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 19 20:51:12 2013 +0100
Forward Firewall: Minor changes...
1) improved convert-outgoingfw. source was wrong when tun+ interface 2) target had always a ":" in ruletable 3) convert-outgoingfw bugfix: ports where not cleared for next rule
commit 93a5f4a5821f92be219be12696de86ff8641395c Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 19 14:09:50 2013 +0100
Forward Firewall: implemented ne column in ruletable "protocol"
commit 8b3dd79147c3804e5f8944eef5c22380788ac348 Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 19 07:24:08 2013 +0100
Forward Firewall: deleted comments from converterscript
commit 8f0b047b4ba13521dfd782d0d164a2efec12cba1 Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 19 07:15:25 2013 +0100
Forward Firewall: implemented multiport support for source and target ports
commit e0800c21db6316f0a41461f2e02fc7565d7c1a49 Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 18 10:58:33 2013 +0100
Forward Firewall: Edited Backup.pl so that any old backups get converted to new firewall. Afterwards the directories /var/ipfire/outgoing and /var/ipfire/xtaccess are removed!
commit cf576a12e54b51f563dccc77b783fce7de6b5768 Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 18 10:18:25 2013 +0100
Forward Firewall: Bugfix: when editing an rule, the default ACTION (ACCEPT,DROP,REJECT) was set depending on Firewallmode. Now it checks, if a rule is edited and value is set to rule action
commit 99e5d97623e86562756166eba2cb8e504fad3646 Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 18 10:00:21 2013 +0100
Forward Firewall: removed newline when processing rules.pl
commit d7dc9718d31def634485a1b975a8a8e2a4c8bd4f Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 18 09:40:59 2013 +0100
Forward Firewall: edited rules.pl, so thatrules are created when source and target are 0.0.0.0/0.0.0.0
commit 8910ee647c5aaae0d05e61ca61939a7cfb60ac83 Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 18 09:23:13 2013 +0100
Forward Firewall: Removed console output from outgoingfw-converter
commit 2833f5678e79bdd178d71edf947c5b37f5ccc6d7 Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 18 08:53:51 2013 +0100
Forward Firewall: changed LOG directory to /var/log/converters
commit 27f4a6b159d9b040feffa8b06784fc71965fac2e Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 18 08:35:25 2013 +0100
Forward Firewall: added converters for old exaccess rules and old rules from outgoingfw and old firewallgroups. Also fixed a Bug: Day SUN was not checked when in rule-edit mode
commit af49e3672351be5c1bad9958dfbd70bb638ffb45 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 16 06:12:34 2013 +0100
Forward Firewall: edited p2pblock call in rules.pl
commit bcbf1b8ebe50b470c8ad6e63cb9519c3fea37499 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 15 13:07:59 2013 +0100
Forward Firewall: Bugfix: when usinf ESP or AH as target protocol, no rules where created
commit 7f9d1c39693c49b767a40dd226b47adf83ffbef1 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 15 12:37:27 2013 +0100
Forward Firewall: added p2protocols to /var/ipfire/forward/ for p2pblocking options
commit 36196d0d6439f83e8aaff92f186dba32f8f47eeb Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 15 12:31:09 2013 +0100
Forward Firewall: added P2P Block Option
commit bc3297257288edb70f77c74009669ddb901492ff Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 15 05:04:33 2013 +0100
Forward Firewall: set standard config for Firewall
commit 9ee07ee5d2744bb7a55769bc6afb9ce21addb853 Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 15 04:56:26 2013 +0100
Forward Firewall: updated de.pl
commit d1f01304ffd334ee6ccf42a62f20de72ccc2bbde Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 14 14:15:18 2013 +0100
Forward Firewall: Added AH Protocol and fixed a bug
commit e44fa0792b3d40b482da5213ebb1c3a9f00f7965 Author: Alexander Marx amarx@ipfire.org Date: Mon Jan 14 13:56:36 2013 +0100
Forward Firewall: BUGFIX: When editing a rule and changing position, no other changes where saved. added the DMZHOLES Rule to init.d/firewall (but chnaged DMZHOLES to FORWARDFW
commit 02da9f7bafcfc563b2d15b8741145631ea9c6a45 Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 12 10:51:51 2013 +0100
Forward Firewall: refined routine to check if an existing rule is equal to a new one
commit 68ae5e591c993092e7f8f20abffb7d7d328ed1b1 Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 12 10:22:49 2013 +0100
Forward Firewall: fixed routine for rulepositioning
commit 992394d55cd19659a6717f2917e27d5a93a73e37 Author: Alexander Marx amarx@ipfire.org Date: Sat Jan 12 08:07:33 2013 +0100
Forward Firewall: changed hash sorting to get right ruleorder in Iptables
commit 275a92e800636d0ba00daeb65b432d1dcf6c7bed Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 11 13:33:34 2013 +0100
Forward Firewall: hopefully fixed delte-bug. When deleting a rule, it was possible that the rulenumbers get "holes"
commit 1aec05a64e69852338ffd6e1b49e0d9beb9e5fda Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 11 13:21:43 2013 +0100
Forward Firewall: when adding custom hosts or networks the cursor is now in first textfield
commit 2da264ec63eb3091704a6b71cc7f83dc6f07a892 Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 11 08:48:20 2013 +0100
Forward Firewall: added possibility to change ruleposition
commit 8dc23ff4fcc6b9f07cdd48abe7991419d255d363 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 10 12:55:56 2013 +0100
Forward Firewall: adapted initscripts/firewall and wirelessctrl.c
Now the Wirelesschains should work with new firewall.
commit 8139398721023908ae3145d18839d2712ce522c8 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 10 12:17:30 2013 +0100
Forward Firewall: edited /src/initscripts/init.d/firewall and misc-progs/wirelessctrl.c
added WIRELESSFORWARD to FORWARDFW (instead of FORWARD) so that rules work commented out DMZHOLES lines in wirelessctrl.c to get rid of booterrormessages (There's no DMZHOLES anymore)
commit 54cb7ff0199cc9a7833038597fee4bfc7dbfeab5 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 10 09:58:38 2013 +0100
Forward Firewall: added check for mac rules
commit b526909163c325956f16fdd90287465aa78ffd17 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 10 09:41:04 2013 +0100
Forward Firewall: BUGFIX: MAC source addresses where not created as rules
commit b9648e583305cc03907e9dde6c459fd8ba71cd0c Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 9 14:54:31 2013 +0100
Forward Firewall: added Red interface to get_std_network function
commit 485aac63955b1171f5f74525f345fdc4f94663fd Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 9 14:48:35 2013 +0100
Forward Firewall: Deleted /var/ipfire/outgoing from /config/rootfiles/common/configroot
commit bbc14c234d62afe1cd8b0730265d5c3a57111744 Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 9 14:44:10 2013 +0100
Forward Firewall: Deleted config/cfgroot/p2protocols
commit 9dafa928db040447cd888d6cd901130bdecfaebd Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 9 14:42:52 2013 +0100
Forward Firewall: Deleted /var/ipfire/outgoing from configroot and aaded default values to /var/ipfire/optionsfw/settings
commit 62fc8511664c6646d706aa42927bac53ac6a5b5f Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 9 10:22:32 2013 +0100
Forward Firewall: fixed 12 Bugs from forum.
1) Added more possible chars in remark: : / . 2) Added "Internet" to std networks to be able to define internetaccess 3) When renaming a custom address, the firewallrules get updated 4) Ports are now ignored when using GRE as Protocol 5) When saving a customservice, the cursor is now in first textfield 6) Added a customservices file to installation with predefined services 7) Added ESP as protocol 8) Fixed counterproblem 9) Dropdownboxes for customservices and groups now sorted 10) Firewallrules now sorted in right order 11) fixed a Bug when defining manual address in source and target, the hint message is no longer displayed 12) When defining an external access rule, the last forwardrule was deleted
commit af8bc0d0a8c6a93277d9bfb6ef959f2cc8005b7d Author: Alexander Marx amarx@ipfire.org Date: Wed Jan 9 09:08:12 2013 +0100
Forward Firewall: added a customservices file with default values
commit fd10a52ca2860678368d162ce6b52b8c1cf25d0e Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 8 11:20:39 2013 +0100
Forward firewall: commented out line in init.d/firewall that all Forward traffic from green is allowed and put it in rules.pl. Now rules.pl allows this traffic when firewall is set to Mode0 or Mode2
commit c0ec19967e4dc75b6e719177af6e258a7b4fd858 Author: Alexander Marx amarx@ipfire.org Date: Sun Jan 6 20:43:23 2013 +0100
Forward Firewall: fixed default entries in /var/ipfire/optionsfw/settings.
commit 3d016366b8c38ed77038f4c1178d8b7afa466115 Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 4 13:25:06 2013 +0100
Forward Firewall: changed languagefiles for loggingoptions in optionsfw.cgi
commit 92788c464b2129302c4fa8b1b3dfec2f329bafdd Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 4 09:44:42 2013 +0100
Forward Firewall: deleted /var/ipfire/outgoing from backup
commit 7f5b2820698c2249b3d8496ec80315be86617f0a Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 4 07:55:24 2013 +0100
Forward Firewall: Changed Buttons and Layout of fwhosts.cgi
commit 74e7001436c27096cd035452bd051a88795ef04f Author: Alexander Marx amarx@ipfire.org Date: Fri Jan 4 05:37:19 2013 +0100
Forward Firewall: Replaced 'drop output' with 'drop forward' in languagefiles. This is for the loggingoption in the firewall options.
commit 6be0579b189df15a1e6775462c0945c41043801b Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 3 17:30:11 2013 +0100
Forward Firewall: replaced Outgoing-Logging with ForwardFW Logging. And changed Options in optionsfw.cgi from outgoing to forward
commit e534554162a34ae47d135f3df251caac14502628 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 3 13:29:35 2013 +0100
Forward Firewall: Fixed Bug: When deleting a rule, only the last entry in the list is deleted
commit 9bdb6b504536142e57acf9d967dc29aea47f09cf Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 3 12:26:44 2013 +0100
Forward Firewall: Deleted outgoingfw.cgi,outgoinggroups.cgi and xtaccess.cgi from /config/rootfils7common/apache2
commit adf41e6f3733955207801ef06665272aaddefd90 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 3 12:17:06 2013 +0100
Forward Firewall: removed outgoingfw.cgi from /config/rootfiles/core/66/filelists/files
commit c04f132d4947c6fbd41f9c18bc6590bd647e1786 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 3 12:00:09 2013 +0100
Forward Firewall: removed outgoingfwctrl from /config/rootfiles/misc-progs
commit 231499fcc85bfb6ae4fbb03fbaca2873984be103 Author: Alexander Marx amarx@ipfire.org Date: Thu Jan 3 08:14:28 2013 +0100
Forward Firewall: build iso with new firewall
commit d24a34cbdc529fcb9122ed7f99bc48c4a83263bb Author: Alexander Marx amarx@ipfire.org Date: Tue Jan 1 06:17:06 2013 +0100
Forward Firewall: changed remarkfield to have maximum 255 chars. Changed Layout from viewtablerule.
Signed-off-by: Alexander Marx amarx@ipfire.org
commit 55674e0d3877ac07f71e26e0d07dacc6baf5759f Author: Alexander Marx amarx@ipfire.org Date: Sat Dec 29 07:09:37 2012 +0100
Forward Firewall: fixed Typos
Signed-off-by: Alexander Marx amarx@ipfire.org
commit 14f7cb87b993267a1d76098ab9fa088533af1e18 Author: Alexander Marx amarx@ipfire.org Date: Fri Dec 28 13:29:34 2012 +0100
Forward Firewall: fixed rules.pl error when using manual target address
Signed-off-by: Alexander Marx amarx@ipfire.org
commit 2a81ab0d7701a7afd049d3ca5a28dc4e0fbffd20 Author: Alexander Marx amarx@ipfire.org Date: Fri Dec 28 08:26:07 2012 +0100
Forward Firewall: added new files
commit 111c99ddfa3632a8c2788b9c6d70c5e6d8a1dfd4 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Aug 9 14:02:02 2013 +0200
Forward Firewall: applied all changes as diff and added new files. Also deleted c files from xtaccess and setdmzholes.
Signed-off-by: Alexander Marx amarx@ipfire.org
Conflicts: config/backup/include lfs/configroot lfs/usb-stick
-----------------------------------------------------------------------
Summary of changes: config/backup/backup.pl | 66 +- config/backup/exclude | 1 + config/backup/include | 9 +- config/cfgroot/ethernet-vlans | 12 +- config/cfgroot/general-functions.pl | 181 +- config/cfgroot/graphs.pl | 37 +- config/cfgroot/header.pl | 54 +- config/cfgroot/p2protocols | 9 - config/collectd/collectd.conf | 5 +- config/etc/fstab | 4 - config/etc/inittab | 2 +- config/etc/modprobe.d/{cfg80211 => cfg80211.conf} | 0 .../etc/modprobe.d/{pcspeaker => pcspeaker.conf} | 0 config/firewall/convert-dmz | 193 + config/firewall/convert-outgoingfw | 679 ++ config/firewall/convert-portfw | 165 + config/firewall/convert-xtaccess | 141 + config/firewall/firewall-lib.pl | 257 + config/firewall/firewall-policy | 124 + config/firewall/p2protocols | 9 + config/firewall/rules.pl | 664 ++ config/fwhosts/customservices | 34 + config/fwhosts/icmp-types | 36 + config/guardian/guardian.pl | 6 +- .../kernel/kernel.config.armv5tel-ipfire-kirkwood | 3641 ++++++---- config/kernel/kernel.config.armv5tel-ipfire-multi | 5170 ++++++++++++++ config/kernel/kernel.config.armv5tel-ipfire-omap | 3582 ---------- config/kernel/kernel.config.armv5tel-ipfire-rpi | 2159 ++++-- config/kernel/kernel.config.i586-ipfire | 3927 +++++++---- config/kernel/kernel.config.i586-ipfire-pae | 3947 +++++++---- config/kernel/kernel.config.i586-ipfire-xen | 3749 ---------- config/menu/10-system.menu | 6 + config/menu/40-services.menu | 2 +- config/menu/50-firewall.menu | 64 +- config/outgoingfw/defaultservices | 34 - config/outgoingfw/outgoingfw.pl | 286 - config/rootfiles/common/Net_SSLeay | 2 + config/rootfiles/common/apache2 | 9 +- config/rootfiles/common/armv5tel/dracut | 4 +- config/rootfiles/common/armv5tel/initscripts | 4 +- config/rootfiles/common/armv5tel/installer | 3 - config/rootfiles/common/armv5tel/linux | 6 +- config/rootfiles/common/armv5tel/linux-kirkwood | 7 +- config/rootfiles/common/armv5tel/linux-multi | 2822 ++++++++ config/rootfiles/common/armv5tel/linux-omap | 1479 ---- config/rootfiles/common/armv5tel/lm_sensors | 2 +- config/rootfiles/common/armv5tel/rpi-firmware | 7 +- config/rootfiles/common/armv5tel/u-boot | 16 +- .../common/armv5tel/{u-boot => u-boot-panda} | 1 - config/rootfiles/common/armv5tel/util-linux | 223 +- config/rootfiles/common/as86 | 5 - config/rootfiles/common/compat-drivers | 2 - config/rootfiles/common/configroot | 59 +- config/rootfiles/common/cyrus-sasl | 91 +- config/rootfiles/common/dosfstools | 3 + config/rootfiles/common/dvb-firmwares | 1 + config/rootfiles/common/eject | 14 - config/rootfiles/common/fireinfo | 14 +- config/rootfiles/common/fstrim | 2 - config/rootfiles/common/i586/dracut | 3 +- config/rootfiles/common/i586/initscripts | 4 +- config/rootfiles/common/i586/linux | 1630 +++-- config/rootfiles/common/i586/linux-headers | 63 +- config/rootfiles/common/i586/lm_sensors | 2 +- config/rootfiles/common/i586/mISDN | 23 - config/rootfiles/common/i586/util-linux | 234 +- config/rootfiles/common/iptables | 53 +- config/rootfiles/common/jquery | 1 + config/rootfiles/common/kmod | 13 + config/rootfiles/common/libnl | 3 +- config/rootfiles/common/libusbx | 8 + config/rootfiles/common/libxml2 | 428 +- config/rootfiles/common/linux-firmware | 277 +- config/rootfiles/common/lzo | 8 + config/rootfiles/common/mbr | 2 - config/rootfiles/common/misc-progs | 6 +- config/rootfiles/common/module-init-tools | 21 - config/rootfiles/common/mpage | 9 + config/rootfiles/common/mysql | 280 - config/rootfiles/common/mysql-libs | 10 + config/rootfiles/common/openssl | 1116 +-- config/rootfiles/common/openssl-compat | 2 + config/rootfiles/common/pakfire | 3 - config/rootfiles/common/paxctl | 2 + config/rootfiles/common/stage2 | 11 +- config/rootfiles/common/strongswan | 1 + config/rootfiles/common/udev | 95 +- config/rootfiles/common/usb_modeswitch | 1 + config/rootfiles/common/usb_modeswitch_data | 22 +- config/rootfiles/common/usbutils | 13 +- config/rootfiles/common/vim | 2522 +++---- config/rootfiles/common/wget | 7 +- config/rootfiles/common/xz | 2 +- config/rootfiles/core/75/filelists/files | 3 + config/rootfiles/core/75/update.sh | 3 + config/rootfiles/core/{75 => 76}/exclude | 0 .../{oldcore/32 => core/76}/filelists/Net_SSLeay | 0 .../{oldcore/44 => core/76}/filelists/apache2 | 0 .../66 => core/76}/filelists/armv5tel/binutils | 0 .../66 => core/76}/filelists/armv5tel/dracut | 0 .../{oldcore/66 => core/76}/filelists/armv5tel/gcc | 0 .../66 => core/76}/filelists/armv5tel/glibc | 0 .../core/76/filelists/armv5tel/initscripts | 1 + .../76}/filelists/armv5tel/linux-kirkwood | 0 .../core/76/filelists/armv5tel/linux-multi | 1 + .../66 => core/76}/filelists/armv5tel/linux-rpi | 0 .../core/76/filelists/armv5tel/lm_sensors | 1 + .../66 => core/76}/filelists/armv5tel/rpi-firmware | 0 .../66 => core/76}/filelists/armv5tel/u-boot | 0 .../66 => core/76}/filelists/armv5tel/util-linux | 0 .../{oldcore/66 => core/76}/filelists/bridge-utils | 0 .../{oldcore/66 => core/76}/filelists/coreutils | 0 .../{oldcore/36 => core/76}/filelists/cyrus-sasl | 0 .../{oldcore/38 => core/76}/filelists/dosfstools | 0 .../66 => core/76}/filelists/dvb-firmwares | 0 .../{oldcore/38 => core/76}/filelists/e2fsprogs | 0 config/rootfiles/core/76/filelists/files | 28 + .../{oldcore/44 => core/76}/filelists/fireinfo | 0 config/rootfiles/core/76/filelists/firewall | 27 + .../66 => core/76}/filelists/i586/binutils | 0 .../{oldcore/66 => core/76}/filelists/i586/dracut | 0 .../{oldcore/53 => core/76}/filelists/i586/gcc | 0 .../{oldcore/53 => core/76}/filelists/i586/glibc | 0 .../{oldcore/66 => core/76}/filelists/i586/grub | 0 .../rootfiles/core/76/filelists/i586/initscripts | 1 + .../{oldcore/66 => core/76}/filelists/i586/linux | 0 config/rootfiles/core/76/filelists/i586/lm_sensors | 1 + .../66 => core/76}/filelists/i586/util-linux | 0 .../{oldcore/28 => core/76}/filelists/iptables | 0 .../rootfiles/{oldcore/28 => core/76}/filelists/iw | 0 config/rootfiles/core/76/filelists/jquery | 1 + config/rootfiles/core/76/filelists/kmod | 1 + .../{oldcore/28 => core/76}/filelists/libnl | 0 config/rootfiles/core/76/filelists/libusbx | 1 + config/rootfiles/core/76/filelists/libxml2 | 1 + .../28 => core/76}/filelists/linux-firmware | 0 config/rootfiles/core/76/filelists/lzo | 1 + .../{oldcore/66 => core/76}/filelists/misc-progs | 0 config/rootfiles/core/76/filelists/mysql-libs | 1 + config/rootfiles/core/76/filelists/net-tools | 1 + .../{oldcore/28 => core/76}/filelists/openssl | 0 config/rootfiles/core/76/filelists/openssl-compat | 1 + .../{oldcore/53 => core/76}/filelists/openvpn | 0 config/rootfiles/core/76/filelists/pakfire | 4 + config/rootfiles/core/76/filelists/paxctl | 1 + .../{oldcore/47 => core/76}/filelists/php | 0 .../{oldcore/66 => core/76}/filelists/setup | 0 .../{oldcore/72 => core/76}/filelists/strongswan | 0 .../{oldcore/28 => core/76}/filelists/udev | 0 .../34 => core/76}/filelists/usb_modeswitch | 0 .../44 => core/76}/filelists/usb_modeswitch_data | 0 .../{oldcore/66 => core/76}/filelists/usbutils | 0 .../{oldcore/44 => core/76}/filelists/vim | 0 .../{oldcore/66 => core/76}/filelists/wget | 0 .../rootfiles/{oldcore/38 => core/76}/filelists/xz | 0 config/rootfiles/core/{75 => 76}/meta | 0 config/rootfiles/core/76/update.sh | 385 ++ config/rootfiles/oldcore/66/filelists/files | 1 - config/rootfiles/packages/clamav | 8 +- config/rootfiles/packages/cups | 1086 ++- config/rootfiles/packages/foomatic | 4081 ++++++++++- config/rootfiles/packages/git | 37 +- config/rootfiles/packages/gutenprint | 55 +- config/rootfiles/packages/iotop | 20 + config/rootfiles/packages/linux-pae | 1636 +++-- config/rootfiles/packages/linux-xen | 1946 ------ config/rootfiles/packages/mysql | 96 +- config/rootfiles/packages/nfs | 3 +- config/rootfiles/packages/sslh | 4 +- config/rpi-firmware/config.txt | 1 - config/u-boot/boot.scr | Bin 290 -> 340 bytes config/u-boot/boot.script | 7 +- config/udev/{blacklist => blacklist.conf} | 0 config/udev/udev.conf | 4 + config/vdr/etc/setup.conf | 2 - config/vim/vimrc | 42 + config/w_scan/w_scan_start | 10 +- config/xen-image/README | 13 +- config/xen-image/ipfire.cfg | 2 +- config/xen-image/xen-image-maker.sh | 196 + doc/language_issues.de | 122 +- doc/language_issues.en | 119 +- doc/language_issues.es | 255 +- doc/language_issues.fr | 255 +- doc/language_issues.nl | 255 +- doc/language_issues.pl | 255 +- doc/language_issues.ru | 255 +- doc/language_issues.tr | 255 +- doc/language_missings | 793 ++- html/cgi-bin/aliases.cgi | 32 +- html/cgi-bin/backup.cgi | 6 +- html/cgi-bin/connscheduler.cgi | 57 +- html/cgi-bin/country.cgi | 59 +- html/cgi-bin/credits.cgi | 6 +- html/cgi-bin/ddns.cgi | 53 +- html/cgi-bin/dhcp.cgi | 53 +- html/cgi-bin/dmzholes.cgi | 446 -- html/cgi-bin/dnsforward.cgi | 36 +- html/cgi-bin/extrahd.cgi | 4 - html/cgi-bin/firewall.cgi | 2835 ++++++++ html/cgi-bin/fwhosts.cgi | 2527 +++++++ html/cgi-bin/gui.cgi | 56 +- html/cgi-bin/hosts.cgi | 35 +- html/cgi-bin/ids.cgi | 18 +- html/cgi-bin/index.cgi | 341 +- html/cgi-bin/logs.cgi/firewalllog.dat | 45 +- html/cgi-bin/logs.cgi/firewalllogip.dat | 91 +- html/cgi-bin/logs.cgi/firewalllogport.dat | 84 +- html/cgi-bin/logs.cgi/log.dat | 18 +- html/cgi-bin/logs.cgi/proxylog.dat | 25 +- html/cgi-bin/logs.cgi/urlfilter.dat | 33 +- html/cgi-bin/mac.cgi | 10 +- html/cgi-bin/optionsfw.cgi | 155 +- html/cgi-bin/outgoingfw.cgi | 849 --- html/cgi-bin/outgoinggrp.cgi | 466 -- html/cgi-bin/ovpnmain.cgi | 374 +- html/cgi-bin/p2p-block.cgi | 154 + html/cgi-bin/portfw.cgi | 1177 ---- html/cgi-bin/proxy.cgi | 4 +- html/cgi-bin/qos.cgi | 19 +- html/cgi-bin/remote.cgi | 4 +- html/cgi-bin/routing.cgi | 35 +- html/cgi-bin/samba.cgi | 22 +- html/cgi-bin/services.cgi | 75 +- html/cgi-bin/shutdown.cgi | 88 + html/cgi-bin/speed.cgi | 5 +- html/cgi-bin/time.cgi | 21 +- html/cgi-bin/tor.cgi | 8 +- html/cgi-bin/upnp.cgi | 2 +- html/cgi-bin/urlfilter.cgi | 4 +- html/cgi-bin/vpnmain.cgi | 640 +- html/cgi-bin/wakeonlan.cgi | 42 +- html/cgi-bin/wireless.cgi | 73 +- html/cgi-bin/wirelessclient.cgi | 24 +- html/cgi-bin/xtaccess.cgi | 377 - html/html/include/jquery-1.9.1.min.js | 5 - .../themes/{maniac => darkdos}/images/IPFire.png | Bin html/html/themes/darkdos/images/b1.gif | Bin 0 -> 2446 bytes html/html/themes/darkdos/images/b2.gif | Bin 0 -> 1124 bytes html/html/themes/darkdos/images/b3.gif | Bin 0 -> 839 bytes html/html/themes/darkdos/images/b4.gif | Bin 0 -> 839 bytes html/html/themes/{maniac => darkdos}/images/b5.gif | Bin html/html/themes/{maniac => darkdos}/images/b6.gif | Bin .../themes/{ipfire => darkdos}/images/spacer.gif | Bin html/html/themes/darkdos/include/colors.txt | 25 + .../{maniac => darkdos}/include/functions.pl | 14 +- .../themes/{ipfire => darkdos}/include/style.css | 79 +- .../themes/{ipfire => ipfire-legacy}/images/n1.gif | Bin .../themes/{ipfire => ipfire-legacy}/images/n2.gif | Bin .../themes/{ipfire => ipfire-legacy}/images/n3.gif | Bin .../themes/{ipfire => ipfire-legacy}/images/n4.gif | Bin .../themes/{ipfire => ipfire-legacy}/images/n5.gif | Bin .../themes/{ipfire => ipfire-legacy}/images/n6.gif | Bin .../{ipfire => ipfire-legacy}/images/spacer.gif | Bin .../{ipfire => ipfire-legacy}/include/colors.txt | 0 .../{ipfire => ipfire-legacy}/include/functions.pl | 14 +- .../{ipfire => ipfire-legacy}/include/style.css | 14 +- html/html/themes/ipfire/images/tux2.png | Bin 0 -> 9640 bytes .../themes/ipfire/include/css/style-rounded.css | 82 + html/html/themes/ipfire/include/css/style.css | 321 + html/html/themes/ipfire/include/functions.pl | 529 +- .../themes/ipfire/include/js/refreshInetInfo.js | 69 + html/html/themes/maniac/include/functions.pl | 12 +- langs/de/cgi-bin/de.pl | 268 +- langs/de/install/lang_de.c | 6 + langs/en/cgi-bin/en.pl | 277 +- langs/en/install/lang_en.c | 6 + langs/es/cgi-bin/es.pl | 6 +- langs/es/install/lang_es.c | 6 + langs/fr/cgi-bin/fr.pl | 4 +- langs/fr/install/lang_fr.c | 6 + langs/nl/cgi-bin/nl.pl | 4 +- langs/nl/install/lang_nl.c | 6 + langs/pl/cgi-bin/pl.pl | 4 +- langs/pl/install/lang_pl.c | 6 + langs/ru/cgi-bin/ru.pl | 4 +- langs/ru/install/lang_ru.c | 6 + langs/tr/install/lang_tr.c | 6 + lfs/Net_SSLeay | 9 +- lfs/apache2 | 5 +- lfs/binutils | 8 +- lfs/bluetooth | 3 + lfs/bridge-utils | 2 + lfs/cdrom | 5 + lfs/clamav | 20 +- lfs/configroot | 82 +- lfs/cpufrequtils | 2 + lfs/cups | 20 +- lfs/cyrus-sasl | 3 +- lfs/dracut | 11 +- lfs/eject | 77 - lfs/fetchmail | 21 +- lfs/ffmpeg | 3 + lfs/fireinfo | 9 +- lfs/flash-images | 57 +- lfs/foomatic | 57 +- lfs/gcc | 6 + lfs/git | 13 +- lfs/glibc | 43 +- lfs/grub | 3 + lfs/guardian | 2 +- lfs/gutenprint | 7 +- lfs/hostapd | 4 - lfs/imspector | 10 +- lfs/initrd | 4 +- lfs/initscripts | 9 +- lfs/{as86 => iotop} | 19 +- lfs/iptables | 40 +- lfs/iw | 6 +- lfs/{iw => jquery} | 16 +- lfs/keepalived | 3 +- lfs/{keepalived => kmod} | 39 +- lfs/libnl | 11 +- lfs/{fstrim => libusbx} | 16 +- lfs/libxml2 | 6 +- lfs/linux | 150 +- lfs/linux-firmware | 11 +- lfs/linux2 | 252 - lfs/lm_sensors | 6 +- lfs/lzo | 4 +- lfs/mISDN | 4 +- lfs/mbr | 78 - lfs/memtest | 12 +- lfs/miniupnpd | 6 +- lfs/{Net_SSLeay => mpage} | 15 +- lfs/mysql | 9 +- lfs/net-tools | 4 +- lfs/openssl | 69 +- lfs/{openssl => openssl-compat} | 32 +- lfs/openvmtools | 2 + lfs/openvpn | 1 + lfs/pakfire | 1 - lfs/{iw => paxctl} | 15 +- lfs/rpi-firmware | 4 +- lfs/rsync | 8 +- lfs/sslh | 6 +- lfs/stage2 | 10 + lfs/strongswan | 3 +- lfs/transmission | 2 + lfs/u-boot | 58 +- lfs/udev | 53 +- lfs/usb-stick | 101 - lfs/usb_modeswitch | 6 +- lfs/usb_modeswitch_data | 6 +- lfs/usbutils | 16 +- lfs/util-linux | 19 +- lfs/vdr | 10 +- lfs/vim | 27 +- lfs/w_scan | 6 +- lfs/wget | 23 +- lfs/xen-image | 147 +- lfs/xz | 8 +- make.sh | 160 +- src/initscripts/init.d/apache | 4 +- src/initscripts/init.d/collectd | 8 +- src/initscripts/init.d/firewall | 336 +- src/initscripts/init.d/firstsetup | 10 +- src/initscripts/init.d/mountfs | 7 +- src/initscripts/init.d/mountkernfs | 4 +- src/initscripts/init.d/network | 4 +- src/initscripts/init.d/network-vlans | 14 +- src/initscripts/init.d/partresize | 11 +- src/initscripts/init.d/sslh | 23 +- src/initscripts/init.d/tor | 7 + src/initscripts/init.d/udev | 19 +- src/initscripts/init.d/udev_retry | 2 +- src/install+setup/install/main.c | 1 + src/install+setup/install/probenic.sh | 6 + src/install+setup/libsmooth/libsmooth.h | 2 +- src/install+setup/libsmooth/netstuff.c | 19 +- src/install+setup/setup/networking.c | 2 + src/misc-progs/Makefile | 19 +- src/misc-progs/backupctrl.c | 39 +- src/misc-progs/fireinfoctrl.c | 46 +- .../{outgoingfwctrl.c => firewallctrl.c} | 17 +- src/misc-progs/getconntracktable.c | 62 +- src/misc-progs/iowrap.c | 88 +- src/misc-progs/ipfiredeath.c | 50 +- src/misc-progs/ipfirerebirth.c | 50 +- src/misc-progs/ipfirereboot.c | 234 +- src/misc-progs/ipsecctrl.c | 2 + src/misc-progs/netutil.h | 48 + src/misc-progs/openvpnctrl.c | 178 +- src/misc-progs/pakfire.c | 14 +- src/misc-progs/rebuildhosts.c | 2 + src/misc-progs/setaliases.c | 6 +- src/misc-progs/setdmzholes.c | 162 - src/misc-progs/setportfw.c | 369 - src/misc-progs/setuid.c | 373 +- src/misc-progs/setuid.h | 50 +- src/misc-progs/setxtaccess.c | 168 - src/misc-progs/smartctrl.c | 29 +- src/misc-progs/syslogdctrl.c | 2 + src/misc-progs/wirelessctrl.c | 311 +- src/paks/linux-pae/install.sh | 8 +- src/paks/linux-xen/install.sh | 80 - src/paks/linux-xen/uninstall.sh | 26 - src/paks/linux-xen/update.sh | 26 - .../binutils-2.22-pt-pax-flags-20111121.patch | 1859 +++++ src/patches/bridge-utils-1.5-compile-fix-1.patch | 31 + src/patches/coreutils-5.96-uname-1.patch | 58 +- src/patches/dracut-006_add_run_symlink.patch | 13 + src/patches/dracut-006_remove_scsi_wait.patch | 12 + src/patches/fireinfo-2.1.7-testing.patch | 4358 ++++++++++++ src/patches/gcc-4.4.7-texinfo-5.patch | 89 + src/patches/glibc/glibc-rh804630.patch | 23 - src/patches/glibc/glibc-rh804686.patch | 87 + src/patches/glibc/glibc-rh806404.patch | 12 + src/patches/glibc/glibc-rh809726.patch | 89 + src/patches/glibc/glibc-rh823909.patch | 25 + src/patches/glibc/glibc-rh826149.patch | 80 + src/patches/glibc/glibc-rh827362.patch | 250 + src/patches/glibc/glibc-rh830127.patch | 403 ++ src/patches/glibc/glibc-rh832516.patch | 19 + src/patches/glibc/glibc-rh832694.patch | 22 + .../{glibc-rh833716.patch => glibc-rh833717.patch} | 0 src/patches/glibc/glibc-rh837026.patch | 30 - src/patches/glibc/glibc-rh837695.patch | 54 + src/patches/glibc/glibc-rh837918.patch | 7183 ++++++++++++++++++++ src/patches/glibc/glibc-rh841787.patch | 42 + src/patches/glibc/glibc-rh843673.patch | 31 + src/patches/glibc/glibc-rh846342.patch | 48 + src/patches/glibc/glibc-rh847932.patch | 364 + src/patches/glibc/glibc-rh848082.patch | 88 + src/patches/glibc/glibc-rh849203.patch | 195 + src/patches/glibc/glibc-rh849651.patch | 343 + src/patches/glibc/glibc-rh852445.patch | 105 + src/patches/glibc/glibc-rh861167.patch | 86 + src/patches/glibc/glibc-rh863453.patch | 81 + src/patches/glibc/glibc-rh864322.patch | 12 + src/patches/glibc/glibc-rh929388.patch | 21 + src/patches/glibc/glibc-rh970992.patch | 190 + src/patches/glibc/glibc-rh989558-2.patch | 107 + src/patches/glibc/glibc-rh989558.patch | 181 + src/patches/imq_kernel3.10.23.patch | 1568 +++++ src/patches/imspector-20101008-ssl.patch | 11 + .../linux-3.10-compulab-utilite-support.patch | 96 + .../dts/0001-imx6qdl-wandboard-dts-backport.patch | 6354 +++++++++++++++++ ...6qdl-wandboard-add-gpio-lines-to-wandboar.patch | 41 + ...ts-imx6qdl-wandboard-Add-support-for-i2c1.patch | 33 + ...dboard-add-binding-for-wand-rfkill-driver.patch | 52 + ...0005-ARM-dts-imx6qdl-add-pcie-device-node.patch | 38 + .../wandboard/imx/0001-i2c-imx-retry-on-NAK.patch | 38 + ...002-i.MX6-Wandboard-add-CKO1-clock-output.patch | 29 + ...03-thermal-add-imx-thermal-driver-support.patch | 489 ++ ...i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch | 341 + .../imx/0005-Add-IMX6Q-AHCI-support.patch | 85 + .../imx/0006-imx-Add-IMX53-AHCI-support.patch | 25 + ...mx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch | 33 + ...update-the-sata-bits-definitions-of-gpr13.patch | 150 + ...mx-add-ahci-sata-support-on-imx-platforms.patch | 316 + ...0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch | 24 + .../wandboard/imx/0011-add-pcie-designware.patch | 636 ++ .../wandboard/imx/0012-pcie-backport-fixes.patch | 17 + ...ide-support-for-parsing-PCI-DT-ranges-pro.patch | 194 + ...6q-Add-PCIe-bits-to-GPR-syscon-definition.patch | 37 + ...mx6-Add-support-for-i.MX6-PCIe-controller.patch | 616 ++ .../wandboard/imx/0016-imx6-pci-tweaks.patch | 24 + ...Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch | 70 + ...clock-and-Kconfig-update-for-PCIe-support.patch | 38 + src/patches/linux-2.6-silence-acpi-blacklist.patch | 25 + src/patches/linux-2.6.30-no-pcspkr-modalias.patch | 12 + src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch | 1039 +++ .../linux-3.10-smsc95xx-add_mac_addr_param.patch | 82 + .../linux-3.10.10-arm_kirkwood_setups.patch | 704 ++ ...3.10.10-mv_cesa_disable_failing_hmac_sha1.patch | 19 + src/patches/linux-3.10.9-ledtrig-netdev-1.patch | 478 ++ src/patches/linux-3.7-disable-compat_vdso.patch | 46 + src/patches/linux-3.9-dvbsky-wot2.patch | 6161 +++++++++++++++++ src/patches/mpage25-config.patch | 46 + src/patches/net-tools-1.60-kernel_headers-3.patch | 55 + ..._layer7_2.22_kernel3.10-no_proc_interface.patch | 2166 ++++++ src/patches/openssl-1.0.0-beta5-enginesdir.patch | 52 + src/patches/openssl-1.0.1-beta2-build.patch | 109 + src/patches/openssl-1.0.1e-cryptodev.patch | 712 ++ .../openssl-1.0.1e-fix_parallel_build-1.patch | 340 + src/patches/openssl-1.0.1e-weak-ciphers.patch | 12 + ..._ipfire.patch => strongswan-5.0.2_ipfire.patch} | 50 +- src/patches/udev-208_remove_systemd_log.patch | 12 + src/patches/util-linux-2.12r-cramfs-1.patch | 93 - .../util-linux-2.12r-umount-no-special.patch | 11 - src/patches/util-linux-buildfix.patch | 272 - src/patches/vim-7.2-fixes-4.patch | 5414 --------------- src/patches/vim-7.2-mandir-1.patch | 82 - src/patches/wget-1.14-texi2pod-1.patch | 32 + lfs/linux-xen => src/scripts/convert-ovpn | 46 +- src/scripts/setddns.pl | 37 +- tools/langdiff.pl | 57 + tools/make-functions | 21 +- 489 files changed, 81828 insertions(+), 35687 deletions(-) delete mode 100644 config/cfgroot/p2protocols rename config/etc/modprobe.d/{cfg80211 => cfg80211.conf} (100%) rename config/etc/modprobe.d/{pcspeaker => pcspeaker.conf} (100%) create mode 100755 config/firewall/convert-dmz create mode 100755 config/firewall/convert-outgoingfw create mode 100755 config/firewall/convert-portfw create mode 100755 config/firewall/convert-xtaccess create mode 100755 config/firewall/firewall-lib.pl create mode 100755 config/firewall/firewall-policy create mode 100644 config/firewall/p2protocols create mode 100755 config/firewall/rules.pl create mode 100644 config/fwhosts/customservices create mode 100755 config/fwhosts/icmp-types create mode 100644 config/kernel/kernel.config.armv5tel-ipfire-multi delete mode 100644 config/kernel/kernel.config.armv5tel-ipfire-omap delete mode 100644 config/kernel/kernel.config.i586-ipfire-xen delete mode 100644 config/outgoingfw/defaultservices delete mode 100644 config/outgoingfw/outgoingfw.pl delete mode 100644 config/rootfiles/common/armv5tel/installer create mode 100644 config/rootfiles/common/armv5tel/linux-multi delete mode 100644 config/rootfiles/common/armv5tel/linux-omap copy config/rootfiles/common/armv5tel/{u-boot => u-boot-panda} (83%) delete mode 100644 config/rootfiles/common/as86 delete mode 100644 config/rootfiles/common/compat-drivers delete mode 100644 config/rootfiles/common/eject delete mode 100644 config/rootfiles/common/fstrim delete mode 100644 config/rootfiles/common/i586/mISDN create mode 100644 config/rootfiles/common/jquery create mode 100644 config/rootfiles/common/kmod create mode 100644 config/rootfiles/common/libusbx delete mode 100644 config/rootfiles/common/mbr delete mode 100644 config/rootfiles/common/module-init-tools create mode 100644 config/rootfiles/common/mpage delete mode 100644 config/rootfiles/common/mysql create mode 100644 config/rootfiles/common/mysql-libs create mode 100644 config/rootfiles/common/openssl-compat create mode 100644 config/rootfiles/common/paxctl copy config/rootfiles/core/{75 => 76}/exclude (100%) copy config/rootfiles/{oldcore/32 => core/76}/filelists/Net_SSLeay (100%) copy config/rootfiles/{oldcore/44 => core/76}/filelists/apache2 (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/binutils (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/dracut (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/gcc (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/glibc (100%) create mode 120000 config/rootfiles/core/76/filelists/armv5tel/initscripts copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/linux-kirkwood (100%) create mode 120000 config/rootfiles/core/76/filelists/armv5tel/linux-multi copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/linux-rpi (100%) create mode 120000 config/rootfiles/core/76/filelists/armv5tel/lm_sensors copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/rpi-firmware (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/u-boot (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/armv5tel/util-linux (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/bridge-utils (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/coreutils (100%) copy config/rootfiles/{oldcore/36 => core/76}/filelists/cyrus-sasl (100%) copy config/rootfiles/{oldcore/38 => core/76}/filelists/dosfstools (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/dvb-firmwares (100%) copy config/rootfiles/{oldcore/38 => core/76}/filelists/e2fsprogs (100%) create mode 100644 config/rootfiles/core/76/filelists/files copy config/rootfiles/{oldcore/44 => core/76}/filelists/fireinfo (100%) create mode 100644 config/rootfiles/core/76/filelists/firewall copy config/rootfiles/{oldcore/66 => core/76}/filelists/i586/binutils (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/i586/dracut (100%) copy config/rootfiles/{oldcore/53 => core/76}/filelists/i586/gcc (100%) copy config/rootfiles/{oldcore/53 => core/76}/filelists/i586/glibc (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/i586/grub (100%) create mode 120000 config/rootfiles/core/76/filelists/i586/initscripts copy config/rootfiles/{oldcore/66 => core/76}/filelists/i586/linux (100%) create mode 120000 config/rootfiles/core/76/filelists/i586/lm_sensors copy config/rootfiles/{oldcore/66 => core/76}/filelists/i586/util-linux (100%) copy config/rootfiles/{oldcore/28 => core/76}/filelists/iptables (100%) copy config/rootfiles/{oldcore/28 => core/76}/filelists/iw (100%) create mode 120000 config/rootfiles/core/76/filelists/jquery create mode 120000 config/rootfiles/core/76/filelists/kmod copy config/rootfiles/{oldcore/28 => core/76}/filelists/libnl (100%) create mode 120000 config/rootfiles/core/76/filelists/libusbx create mode 120000 config/rootfiles/core/76/filelists/libxml2 copy config/rootfiles/{oldcore/28 => core/76}/filelists/linux-firmware (100%) create mode 120000 config/rootfiles/core/76/filelists/lzo copy config/rootfiles/{oldcore/66 => core/76}/filelists/misc-progs (100%) create mode 120000 config/rootfiles/core/76/filelists/mysql-libs create mode 120000 config/rootfiles/core/76/filelists/net-tools copy config/rootfiles/{oldcore/28 => core/76}/filelists/openssl (100%) create mode 120000 config/rootfiles/core/76/filelists/openssl-compat copy config/rootfiles/{oldcore/53 => core/76}/filelists/openvpn (100%) create mode 100644 config/rootfiles/core/76/filelists/pakfire create mode 120000 config/rootfiles/core/76/filelists/paxctl copy config/rootfiles/{oldcore/47 => core/76}/filelists/php (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/setup (100%) rename config/rootfiles/{oldcore/72 => core/76}/filelists/strongswan (100%) copy config/rootfiles/{oldcore/28 => core/76}/filelists/udev (100%) copy config/rootfiles/{oldcore/34 => core/76}/filelists/usb_modeswitch (100%) copy config/rootfiles/{oldcore/44 => core/76}/filelists/usb_modeswitch_data (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/usbutils (100%) copy config/rootfiles/{oldcore/44 => core/76}/filelists/vim (100%) copy config/rootfiles/{oldcore/66 => core/76}/filelists/wget (100%) copy config/rootfiles/{oldcore/38 => core/76}/filelists/xz (100%) copy config/rootfiles/core/{75 => 76}/meta (100%) create mode 100644 config/rootfiles/core/76/update.sh create mode 100644 config/rootfiles/packages/iotop delete mode 100644 config/rootfiles/packages/linux-xen rename config/udev/{blacklist => blacklist.conf} (100%) create mode 100644 config/udev/udev.conf create mode 100644 config/vim/vimrc create mode 100644 config/xen-image/xen-image-maker.sh delete mode 100644 html/cgi-bin/dmzholes.cgi create mode 100644 html/cgi-bin/firewall.cgi create mode 100644 html/cgi-bin/fwhosts.cgi delete mode 100644 html/cgi-bin/outgoingfw.cgi delete mode 100644 html/cgi-bin/outgoinggrp.cgi create mode 100644 html/cgi-bin/p2p-block.cgi delete mode 100644 html/cgi-bin/portfw.cgi create mode 100644 html/cgi-bin/shutdown.cgi mode change 100755 => 100644 html/cgi-bin/tor.cgi delete mode 100644 html/cgi-bin/xtaccess.cgi delete mode 100644 html/html/include/jquery-1.9.1.min.js copy html/html/themes/{maniac => darkdos}/images/IPFire.png (100%) create mode 100644 html/html/themes/darkdos/images/b1.gif create mode 100644 html/html/themes/darkdos/images/b2.gif create mode 100644 html/html/themes/darkdos/images/b3.gif create mode 100644 html/html/themes/darkdos/images/b4.gif copy html/html/themes/{maniac => darkdos}/images/b5.gif (100%) copy html/html/themes/{maniac => darkdos}/images/b6.gif (100%) copy html/html/themes/{ipfire => darkdos}/images/spacer.gif (100%) create mode 100644 html/html/themes/darkdos/include/colors.txt copy html/html/themes/{maniac => darkdos}/include/functions.pl (95%) copy html/html/themes/{ipfire => darkdos}/include/style.css (76%) rename html/html/themes/{ipfire => ipfire-legacy}/images/n1.gif (100%) copy html/html/themes/{ipfire => ipfire-legacy}/images/n2.gif (100%) copy html/html/themes/{ipfire => ipfire-legacy}/images/n3.gif (100%) rename html/html/themes/{ipfire => ipfire-legacy}/images/n4.gif (100%) copy html/html/themes/{ipfire => ipfire-legacy}/images/n5.gif (100%) copy html/html/themes/{ipfire => ipfire-legacy}/images/n6.gif (100%) rename html/html/themes/{ipfire => ipfire-legacy}/images/spacer.gif (100%) copy html/html/themes/{ipfire => ipfire-legacy}/include/colors.txt (100%) copy html/html/themes/{ipfire => ipfire-legacy}/include/functions.pl (96%) rename html/html/themes/{ipfire => ipfire-legacy}/include/style.css (91%) create mode 100644 html/html/themes/ipfire/images/tux2.png create mode 100644 html/html/themes/ipfire/include/css/style-rounded.css create mode 100644 html/html/themes/ipfire/include/css/style.css create mode 100644 html/html/themes/ipfire/include/js/refreshInetInfo.js delete mode 100644 lfs/eject rename lfs/{as86 => iotop} (91%) copy lfs/{iw => jquery} (89%) copy lfs/{keepalived => kmod} (83%) rename lfs/{fstrim => libusbx} (90%) delete mode 100644 lfs/linux2 delete mode 100644 lfs/mbr copy lfs/{Net_SSLeay => mpage} (89%) copy lfs/{openssl => openssl-compat} (84%) copy lfs/{iw => paxctl} (91%) delete mode 100644 lfs/usb-stick rename src/misc-progs/{outgoingfwctrl.c => firewallctrl.c} (57%) create mode 100644 src/misc-progs/netutil.h delete mode 100644 src/misc-progs/setdmzholes.c delete mode 100644 src/misc-progs/setportfw.c delete mode 100644 src/misc-progs/setxtaccess.c delete mode 100644 src/paks/linux-xen/install.sh delete mode 100644 src/paks/linux-xen/uninstall.sh delete mode 100644 src/paks/linux-xen/update.sh create mode 100644 src/patches/binutils-2.22-pt-pax-flags-20111121.patch create mode 100644 src/patches/bridge-utils-1.5-compile-fix-1.patch create mode 100644 src/patches/dracut-006_add_run_symlink.patch create mode 100644 src/patches/dracut-006_remove_scsi_wait.patch create mode 100644 src/patches/fireinfo-2.1.7-testing.patch create mode 100644 src/patches/gcc-4.4.7-texinfo-5.patch delete mode 100644 src/patches/glibc/glibc-rh804630.patch create mode 100644 src/patches/glibc/glibc-rh804686.patch create mode 100644 src/patches/glibc/glibc-rh806404.patch create mode 100644 src/patches/glibc/glibc-rh809726.patch create mode 100644 src/patches/glibc/glibc-rh823909.patch create mode 100644 src/patches/glibc/glibc-rh826149.patch create mode 100644 src/patches/glibc/glibc-rh827362.patch create mode 100644 src/patches/glibc/glibc-rh830127.patch create mode 100644 src/patches/glibc/glibc-rh832516.patch create mode 100644 src/patches/glibc/glibc-rh832694.patch rename src/patches/glibc/{glibc-rh833716.patch => glibc-rh833717.patch} (100%) delete mode 100644 src/patches/glibc/glibc-rh837026.patch create mode 100644 src/patches/glibc/glibc-rh837695.patch create mode 100644 src/patches/glibc/glibc-rh837918.patch create mode 100644 src/patches/glibc/glibc-rh841787.patch create mode 100644 src/patches/glibc/glibc-rh843673.patch create mode 100644 src/patches/glibc/glibc-rh846342.patch create mode 100644 src/patches/glibc/glibc-rh847932.patch create mode 100644 src/patches/glibc/glibc-rh848082.patch create mode 100644 src/patches/glibc/glibc-rh849203.patch create mode 100644 src/patches/glibc/glibc-rh849651.patch create mode 100644 src/patches/glibc/glibc-rh852445.patch create mode 100644 src/patches/glibc/glibc-rh861167.patch create mode 100644 src/patches/glibc/glibc-rh863453.patch create mode 100644 src/patches/glibc/glibc-rh864322.patch create mode 100644 src/patches/glibc/glibc-rh929388.patch create mode 100644 src/patches/glibc/glibc-rh970992.patch create mode 100644 src/patches/glibc/glibc-rh989558-2.patch create mode 100644 src/patches/glibc/glibc-rh989558.patch create mode 100644 src/patches/imq_kernel3.10.23.patch create mode 100644 src/patches/imspector-20101008-ssl.patch create mode 100644 src/patches/kernel/utilite/linux-3.10-compulab-utilite-support.patch create mode 100644 src/patches/kernel/wandboard/dts/0001-imx6qdl-wandboard-dts-backport.patch create mode 100644 src/patches/kernel/wandboard/dts/0002-ARM-dts-imx6qdl-wandboard-add-gpio-lines-to-wandboar.patch create mode 100644 src/patches/kernel/wandboard/dts/0003-ARM-dts-imx6qdl-wandboard-Add-support-for-i2c1.patch create mode 100644 src/patches/kernel/wandboard/dts/0004-ARM-dts-wandboard-add-binding-for-wand-rfkill-driver.patch create mode 100644 src/patches/kernel/wandboard/dts/0005-ARM-dts-imx6qdl-add-pcie-device-node.patch create mode 100644 src/patches/kernel/wandboard/imx/0001-i2c-imx-retry-on-NAK.patch create mode 100644 src/patches/kernel/wandboard/imx/0002-i.MX6-Wandboard-add-CKO1-clock-output.patch create mode 100644 src/patches/kernel/wandboard/imx/0003-thermal-add-imx-thermal-driver-support.patch create mode 100644 src/patches/kernel/wandboard/imx/0004-ARM-i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch create mode 100644 src/patches/kernel/wandboard/imx/0005-Add-IMX6Q-AHCI-support.patch create mode 100644 src/patches/kernel/wandboard/imx/0006-imx-Add-IMX53-AHCI-support.patch create mode 100644 src/patches/kernel/wandboard/imx/0007-imx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch create mode 100644 src/patches/kernel/wandboard/imx/0008-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch create mode 100644 src/patches/kernel/wandboard/imx/0009-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch create mode 100644 src/patches/kernel/wandboard/imx/0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch create mode 100644 src/patches/kernel/wandboard/imx/0011-add-pcie-designware.patch create mode 100644 src/patches/kernel/wandboard/imx/0012-pcie-backport-fixes.patch create mode 100644 src/patches/kernel/wandboard/imx/0013-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch create mode 100644 src/patches/kernel/wandboard/imx/0014-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch create mode 100644 src/patches/kernel/wandboard/imx/0015-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch create mode 100644 src/patches/kernel/wandboard/imx/0016-imx6-pci-tweaks.patch create mode 100644 src/patches/kernel/wandboard/imx/0017-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch create mode 100644 src/patches/kernel/wandboard/imx/0018-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch create mode 100644 src/patches/linux-2.6-silence-acpi-blacklist.patch create mode 100644 src/patches/linux-2.6.30-no-pcspkr-modalias.patch create mode 100644 src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch create mode 100644 src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch create mode 100644 src/patches/linux-3.10.10-arm_kirkwood_setups.patch create mode 100644 src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch create mode 100644 src/patches/linux-3.10.9-ledtrig-netdev-1.patch create mode 100644 src/patches/linux-3.7-disable-compat_vdso.patch create mode 100644 src/patches/linux-3.9-dvbsky-wot2.patch create mode 100644 src/patches/mpage25-config.patch create mode 100644 src/patches/net-tools-1.60-kernel_headers-3.patch create mode 100644 src/patches/netfilter_layer7_2.22_kernel3.10-no_proc_interface.patch create mode 100644 src/patches/openssl-1.0.0-beta5-enginesdir.patch create mode 100644 src/patches/openssl-1.0.1-beta2-build.patch create mode 100644 src/patches/openssl-1.0.1e-cryptodev.patch create mode 100644 src/patches/openssl-1.0.1e-fix_parallel_build-1.patch create mode 100644 src/patches/openssl-1.0.1e-weak-ciphers.patch rename src/patches/{strongswan-4.5.3_ipfire.patch => strongswan-5.0.2_ipfire.patch} (91%) create mode 100644 src/patches/udev-208_remove_systemd_log.patch delete mode 100644 src/patches/util-linux-2.12r-cramfs-1.patch delete mode 100644 src/patches/util-linux-2.12r-umount-no-special.patch delete mode 100644 src/patches/util-linux-buildfix.patch delete mode 100644 src/patches/vim-7.2-fixes-4.patch delete mode 100644 src/patches/vim-7.2-mandir-1.patch create mode 100644 src/patches/wget-1.14-texi2pod-1.patch rename lfs/linux-xen => src/scripts/convert-ovpn (53%) mode change 100644 => 100755 create mode 100755 tools/langdiff.pl
Difference in files: diff --git a/config/backup/backup.pl b/config/backup/backup.pl index f9b8302..3172d6d 100644 --- a/config/backup/backup.pl +++ b/config/backup/backup.pl @@ -22,7 +22,7 @@ require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; - +use File::Path; my $debug = 1; my @include = ""; my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time); @@ -64,6 +64,70 @@ elsif ($ARGV[0] eq 'restore') { system("cd / && tar -xvz -p -f /tmp/restore.ipf"); #Here some converter scripts to correct old Backups (before core 65) system("/usr/sbin/ovpn-ccd-convert"); + #OUTGOINGFW CONVERTER + if( -d "${General::swroot}/outgoing"){ + if( -f "${General::swroot}/firewall/config" ){ + unlink("${General::swroot}/firewall/config"); + system("touch ${General::swroot}/firewall/config"); + chown 99,99,"${General::swroot}/firewall/config"; + } + if( -f "${General::swroot}/firewall/outgoing" ){ + unlink("${General::swroot}/firewall/outgoing"); + system("touch ${General::swroot}/firewall/outgoing"); + chown 99,99,"${General::swroot}/firewall/outgoing"; + } + unlink("${General::swroot}/fwhosts/customgroups"); + unlink("${General::swroot}/fwhosts/customhosts"); + unlink("${General::swroot}/fwhosts/customgroups"); + unlink("${General::swroot}/fwhosts/customnetworks"); + unlink("${General::swroot}/fwhosts/customservicegrp"); + unlink("${General::swroot}/fwhosts/customnetworks"); + system("touch ${General::swroot}/fwhosts/customgroups"); + system("touch ${General::swroot}/fwhosts/customhosts"); + system("touch ${General::swroot}/fwhosts/customnetworks"); + system("touch ${General::swroot}/fwhosts/customservicegrp"); + #START CONVERTER "OUTGOINGFW" + system("/usr/sbin/convert-outgoingfw"); + chown 99,99,"${General::swroot}/fwhosts/customgroups"; + chown 99,99,"${General::swroot}/fwhosts/customhosts"; + chown 99,99,"${General::swroot}/fwhosts/customnetworks"; + chown 99,99,"${General::swroot}/fwhosts/customservicegrp"; + #START CONVERTER "OUTGOINGFW" + rmtree("${General::swroot}/outgoing"); + } + #XTACCESS CONVERTER + if( -d "${General::swroot}/xtaccess"){ + if( -f "${General::swroot}/firewall/input" ){ + unlink("${General::swroot}/firewall/input"); + system("touch ${General::swroot}/firewall/input"); + } + #START CONVERTER "XTACCESS" + system("/usr/sbin/convert-xtaccess"); + chown 99,99,"${General::swroot}/firewall/input"; + rmtree("${General::swroot}/xtaccess"); + } + #DMZ-HOLES CONVERTER + if( -d "${General::swroot}/dmzholes" || -d "${General::swroot}/portfw"){ + if( -f "${General::swroot}/firewall/config" ){ + unlink("${General::swroot}/firewall/config"); + system("touch ${General::swroot}/firewall/config"); + } + #START CONVERTER "DMZ-HOLES" + system("/usr/sbin/convert-dmz"); + chown 99,99,"${General::swroot}/firewall/config"; + rmtree("${General::swroot}/dmzholes"); + } + #PORTFORWARD CONVERTER + if( -d "${General::swroot}/portfw"){ + #START CONVERTER "PORTFW" + system("/usr/sbin/convert-portfw"); + rmtree("${General::swroot}/portfw"); + } + system("/usr/local/bin/firewallctrl"); + } + + # Convert old OpenVPN CCD files (CN change, core 75). + system("/usr/local/bin/convert-ovpn"); } elsif ($ARGV[0] eq 'restoreaddon') { if ( -e "/tmp/$ARGV[1]" ){system("mv /tmp/$ARGV[1] /var/ipfire/backup/addons/backup/$ARGV[1]");} diff --git a/config/backup/exclude b/config/backup/exclude index 8103bb9..83db234 100644 --- a/config/backup/exclude +++ b/config/backup/exclude @@ -1,5 +1,6 @@ *.tmp /var/ipfire/ethernet/settings +/var/ipfire/firewall/bin/* /var/ipfire/proxy/calamaris/bin/* /var/ipfire/qos/bin/qos.pl /var/ipfire/urlfilter/blacklists/*/*.db diff --git a/config/backup/include b/config/backup/include index c863a0e..1d55e4a 100644 --- a/config/backup/include +++ b/config/backup/include @@ -15,14 +15,9 @@ /var/ipfire/auth/users /var/ipfire/dhcp/* /var/ipfire/dnsforward/* +/var/ipfire/firewall +/var/ipfire/fwhosts /var/ipfire/main/* -/var/ipfire/outgoing/groups -/var/ipfire/outgoing/macgroups -/var/ipfire/outgoing/rules -/var/ipfire/outgoing/p2protocols -/var/ipfire/dmzholes -/var/ipfire/xtaccess -/var/ipfire/portfw /var/ipfire/ovpn /var/ipfire/ppp /var/ipfire/proxy diff --git a/config/cfgroot/ethernet-vlans b/config/cfgroot/ethernet-vlans index 08cb36a..ae87bfe 100644 --- a/config/cfgroot/ethernet-vlans +++ b/config/cfgroot/ethernet-vlans @@ -1,9 +1,9 @@ -#GREEN_PARENT_DEV="eth0" +#GREEN_PARENT_DEV=eth0 #GREEN_VLAN_ID=20 -#GREEN_MAC_ADDRESS="00:11:22:33:44:55" -#BLUE_PARENT_DEV="green0" +#GREEN_MAC_ADDRESS=00:11:22:33:44:55 +#BLUE_PARENT_DEV=green0 #BLUE_VLAN_ID=30 -#BLUE_MAC_ADDRESS="00:22:33:44:55:66" -#ORANGE_PARENT_DEV="green0" +#BLUE_MAC_ADDRESS=00:22:33:44:55:66 +#ORANGE_PARENT_DEV=green0 #ORANGE_VLAN_ID=40 -#ORANGE_MAC_ADDRESS="00:33:44:55:66:77" +#ORANGE_MAC_ADDRESS=00:33:44:55:66:77 diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index 41643d8..9a5e671 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -39,6 +39,96 @@ sub log $logmessage = $1; system('logger', '-t', $tag, $logmessage); } +sub setup_default_networks +{ + my %netsettings=(); + my $defaultNetworks = shift; + + &readhash("/var/ipfire/ethernet/settings", %netsettings); + + # Get current defined networks (Red, Green, Blue, Orange) + $defaultNetworks->{$Lang::tr{'fwhost any'}}{'IPT'} = "0.0.0.0/0.0.0.0"; + $defaultNetworks->{$Lang::tr{'fwhost any'}}{'NAME'} = "ALL"; + + $defaultNetworks->{$Lang::tr{'green'}}{'IPT'} = "$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}"; + $defaultNetworks->{$Lang::tr{'green'}}{'NET'} = "$netsettings{'GREEN_ADDRESS'}"; + $defaultNetworks->{$Lang::tr{'green'}}{'NAME'} = "GREEN"; + + if ($netsettings{'RED_DEV'} ne ''){ + $defaultNetworks->{$Lang::tr{'fwdfw red'}}{'IPT'} = "$netsettings{'RED_NETADDRESS'}/$netsettings{'RED_NETMASK'}"; + $defaultNetworks->{$Lang::tr{'fwdfw red'}}{'NET'} = "$netsettings{'RED_ADDRESS'}"; + $defaultNetworks->{$Lang::tr{'fwdfw red'}}{'NAME'} = "RED"; + } + if ($netsettings{'ORANGE_DEV'} ne ''){ + $defaultNetworks->{$Lang::tr{'orange'}}{'IPT'} = "$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}"; + $defaultNetworks->{$Lang::tr{'orange'}}{'NET'} = "$netsettings{'ORANGE_ADDRESS'}"; + $defaultNetworks->{$Lang::tr{'orange'}}{'NAME'} = "ORANGE"; + } + + if ($netsettings{'BLUE_DEV'} ne ''){ + $defaultNetworks->{$Lang::tr{'blue'}}{'IPT'} = "$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}"; + $defaultNetworks->{$Lang::tr{'blue'}}{'NET'} = "$netsettings{'BLUE_ADDRESS'}"; + $defaultNetworks->{$Lang::tr{'blue'}}{'NAME'} = "BLUE"; + } + + #IPFire himself + $defaultNetworks->{'IPFire'}{'NAME'} = "IPFire"; + + # OpenVPN + if(-e "${General::swroot}/ovpn/settings") + { + my %ovpnSettings = (); + &readhash("${General::swroot}/ovpn/settings", %ovpnSettings); + + # OpenVPN on Red? + if(defined($ovpnSettings{'DOVPN_SUBNET'})) + { + my ($ip,$sub) = split(///,$ovpnSettings{'DOVPN_SUBNET'}); + $sub=&General::iporsubtocidr($sub); + my @tempovpnsubnet = split("/", $ovpnSettings{'DOVPN_SUBNET'}); + $defaultNetworks->{'OpenVPN ' ."($ip/$sub)"}{'ADR'} = $tempovpnsubnet[0]; + $defaultNetworks->{'OpenVPN ' ."($ip/$sub)"}{'NAME'} = "OpenVPN-Dyn"; + } + } # end OpenVPN + # IPsec RW NET + if(-e "${General::swroot}/vpn/settings") + { + my %ipsecsettings = (); + &readhash("${General::swroot}/vpn/settings", %ipsecsettings); + if($ipsecsettings{'RW_NET'} ne '') + { + my ($ip,$sub) = split(///,$ipsecsettings{'RW_NET'}); + $sub=&General::iporsubtocidr($sub); + my @tempipsecsubnet = split("/", $ipsecsettings{'RW_NET'}); + $defaultNetworks->{'IPsec RW (' .$ip."/".$sub.")"}{'ADR'} = $tempipsecsubnet[0]; + $defaultNetworks->{'IPsec RW (' .$ip."/".$sub.")"}{'NAME'} = "IPsec RW"; + $defaultNetworks->{'IPsec RW (' .$ip."/".$sub.")"}{'NET'} = &getnextip($ip); + } + } +} +sub get_aliases +{ + + my $defaultNetworks = shift; + open(FILE, "${General::swroot}/ethernet/aliases") or die 'Unable to open aliases file.'; + my @current = <FILE>; + close(FILE); + my $ctr = 0; + foreach my $line (@current) + { + if ($line ne ''){ + chomp($line); + my @temp = split(/,/,$line); + if ($temp[2] eq '') { + $temp[2] = "Alias $ctr : $temp[0]"; + } + $defaultNetworks->{$temp[2]}{'IPT'} = "$temp[0]"; + $defaultNetworks->{$temp[2]}{'NET'} = "$temp[0]"; + + $ctr++; + } + } +}
sub readhash { @@ -139,68 +229,36 @@ sub writehashpart close FILE; }
-sub age -{ +sub age { my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, - $atime, $mtime, $ctime, $blksize, $blocks) = stat $_[0]; - my $now = time; - my $timestring = ''; - my $dset = 0; # Day is set, when > 0 - my $hset = 0; # Hour is set, when > 0 - my $mset = 0; # Minute is set, when > 0 - - my $totalsecs = $now - $mtime; - my $days = int($totalsecs / 86400); - my $totalhours = int($totalsecs / 3600); - my $hours = $totalhours % 24; - my $totalmins = int($totalsecs / 60); - my $mins = $totalmins % 60; - my $secs = $totalsecs % 60; + $atime, $mtime, $ctime, $blksize, $blocks) = stat $_[0]; + my $totalsecs = time() - $mtime; + my @s = ();
- if ($days > 1) { - ${timestring} .= ${days}.' '.$Lang::tr{'days'}.', '; - $dset = 1; - } - elsif ($days == 1) { - ${timestring} .= ${days}.' '.$Lang::tr{'day'}.', '; - $dset = 1; + my $secs = $totalsecs % 60; + $totalsecs /= 60; + if ($secs > 0) { + push(@s, "${secs}s"); }
- if (($hours > 1) && !($dset)) { - ${timestring} .= ${hours}.' '.$Lang::tr{'hours'}.', '; - $hset = 1; - } - elsif (($hours == 1) && !($dset)) { - ${timestring} .= ${hours}.' '.$Lang::tr{'hour'}.', '; - $hset = 1; - } - elsif ($dset) { - ${timestring} .= ${hours}.' '.$Lang::tr{'age shour'}.', '; - $hset = 1; + my $min = $totalsecs % 60; + $totalsecs /= 60; + if ($min > 0) { + push(@s, "${min}m"); }
- if ((($mins > 1) || ($mins == 0)) && !($dset || $hset)) { - ${timestring} .= ${mins}.' '.$Lang::tr{'minutes'}.', '; - $mset = 1; - } - elsif (($mins == 1) && !($dset || $hset)) { - ${timestring} .= ${mins}.' '.$Lang::tr{'minute'}.', '; - $mset = 1; - } - else { - ${timestring} .= ${mins}.' '.$Lang::tr{'age sminute'}.', '; - $mset = 1; + my $hrs = $totalsecs % 24; + $totalsecs /= 24; + if ($hrs > 0) { + push(@s, "${hrs}h"); }
- if ((($secs > 1) || ($secs == 0)) && !($dset || $hset || $mset)) { - ${timestring} .= ${secs}.' '.$Lang::tr{'age seconds'}; - } - elsif (($secs == 1) && !($dset || $hset || $mset)) { - ${timestring} .= $secs.' '.$Lang::tr{'age second'}; + my $days = int($totalsecs); + if ($days > 0) { + push(@s, "${days}d"); } - else { ${timestring} .= $secs.' '.$Lang::tr{'age ssecond'}; }
- return ${timestring}; + return join(" ", reverse(@s)); }
sub validip @@ -1053,4 +1111,23 @@ sub write_file_utf8 ($) { return; }
+my $FIREWALL_RELOAD_INDICATOR = "${General::swroot}/firewall/reread"; + +sub firewall_config_changed() { + open FILE, ">$FIREWALL_RELOAD_INDICATOR" or die "Could not open $FIREWALL_RELOAD_INDICATOR"; + close FILE; +} + +sub firewall_needs_reload() { + if (-e "$FIREWALL_RELOAD_INDICATOR") { + return 1; + } + + return 0; +} + +sub firewall_reload() { + system("/usr/local/bin/firewallctrl"); +} + 1; diff --git a/config/cfgroot/graphs.pl b/config/cfgroot/graphs.pl index c51e882..19c0546 100644 --- a/config/cfgroot/graphs.pl +++ b/config/cfgroot/graphs.pl @@ -602,22 +602,37 @@ sub updatefwhitsgraph { "--color=SHADEA".$color{"color19"}, "--color=SHADEB".$color{"color19"}, "--color=BACK".$color{"color21"}, - "DEF:output=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-FORWARD/ipt_bytes-DROP_OUTPUT.rrd:value:AVERAGE", - "DEF:input=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-INPUT/ipt_bytes-DROP_INPUT.rrd:value:AVERAGE", + "DEF:output=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-POLICYOUT/ipt_bytes-DROP_OUTPUT.rrd:value:AVERAGE", + "DEF:input=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-POLICYIN/ipt_bytes-DROP_INPUT.rrd:value:AVERAGE", + "DEF:forward=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-POLICYFWD/ipt_bytes-DROP_FORWARD.rrd:value:AVERAGE", "DEF:newnotsyn=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-NEWNOTSYN/ipt_bytes-DROP_NEWNOTSYN.rrd:value:AVERAGE", "DEF:portscan=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-PSCAN/ipt_bytes-DROP_PScan.rrd:value:AVERAGE", - "CDEF:amount=output,input,newnotsyn,+,+", - "COMMENT:".sprintf("%-20s",$Lang::tr{'caption'}), + "COMMENT:".sprintf("%-26s",$Lang::tr{'caption'}), "COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}), "COMMENT:".sprintf("%15s",$Lang::tr{'average'}), - "COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}), + "COMMENT:".sprintf("%14s",$Lang::tr{'minimal'}), "COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\j", - "AREA:amount".$color{"color24"}."A0:".sprintf("%-20s",$Lang::tr{'firewallhits'}), - "GPRINT:amount:MAX:%8.1lf %sBps", - "GPRINT:amount:AVERAGE:%8.1lf %sBps", - "GPRINT:amount:MIN:%8.1lf %sBps", - "GPRINT:amount:LAST:%8.1lf %sBps\j", - "STACK:portscan".$color{"color25"}."A0:".sprintf("%-20s",$Lang::tr{'portscans'}), + "AREA:output".$color{"color25"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}."-OUTPUT"), + "GPRINT:output:MAX:%8.1lf %sBps", + "GPRINT:output:AVERAGE:%8.1lf %sBps", + "GPRINT:output:MIN:%8.1lf %sBps", + "GPRINT:output:LAST:%8.1lf %sBps\j", + "STACK:forward".$color{"color23"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}."-FORWARD"), + "GPRINT:forward:MAX:%8.1lf %sBps", + "GPRINT:forward:AVERAGE:%8.1lf %sBps", + "GPRINT:forward:MIN:%8.1lf %sBps", + "GPRINT:forward:LAST:%8.1lf %sBps\j", + "STACK:input".$color{"color24"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}."-INPUT"), + "GPRINT:input:MAX:%8.1lf %sBps", + "GPRINT:input:AVERAGE:%8.1lf %sBps", + "GPRINT:input:MIN:%8.1lf %sBps", + "GPRINT:input:LAST:%8.1lf %sBps\j", + "STACK:newnotsyn".$color{"color14"}."A0:".sprintf("%-25s","NewNotSyn"), + "GPRINT:newnotsyn:MAX:%8.1lf %sBps", + "GPRINT:newnotsyn:MIN:%8.1lf %sBps", + "GPRINT:newnotsyn:AVERAGE:%8.1lf %sBps", + "GPRINT:newnotsyn:LAST:%8.1lf %sBps\j", + "STACK:portscan".$color{"color16"}."A0:".sprintf("%-25s",$Lang::tr{'portscans'}), "GPRINT:portscan:MAX:%8.1lf %sBps", "GPRINT:portscan:MIN:%8.1lf %sBps", "GPRINT:portscan:AVERAGE:%8.1lf %sBps", diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl index 9129c68..9473465 100644 --- a/config/cfgroot/header.pl +++ b/config/cfgroot/header.pl @@ -12,6 +12,7 @@ package Header;
use CGI(); +use File::Basename; use HTML::Entities(); use Socket; use Time::Local; @@ -88,18 +89,11 @@ if ( -d "/var/ipfire/langs/${language}/" ) { }; };
-### Read IPFire Buildversion -$FIREBUILD = "File not found: firebuild\n"; -if (open(MYFile, "<${swroot}/firebuild")) { - $FIREBUILD = <MYFile>; - chomp($FIREBUILD); - $FIREBUILD = "(Build: $FIREBUILD)"; - close(MYFile); -}; +our $THEME_NAME = $settings{'THEME'};
require "${swroot}/langs/en.pl"; require "${swroot}/langs/${language}.pl"; -eval `/bin/cat /srv/web/ipfire/html/themes/$settings{'THEME'}/include/functions.pl`; +eval `/bin/cat /srv/web/ipfire/html/themes/$THEME_NAME/include/functions.pl`;
sub orange_used () { if ($ethsettings{'CONFIG_TYPE'} =~ /^[24]$/) { @@ -149,11 +143,8 @@ sub genmenu { eval `/bin/cat /var/ipfire/menu.d/*.menu`; eval `/bin/cat /var/ipfire/menu.d/*.main`;
- if (! blue_used() && ! orange_used()) { - $menu->{'05.firewall'}{'subMenu'}->{'40.dmz'}{'enabled'} = 0; - } if (! blue_used()) { - $menu->{'05.firewall'}{'subMenu'}->{'30.wireless'}{'enabled'} = 0; + $menu->{'05.firewall'}{'subMenu'}->{'60.wireless'}{'enabled'} = 0; } if ( $ethsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $ethsettings{'RED_TYPE'} eq 'STATIC' ) { $menu->{'03.network'}{'subMenu'}->{'70.aliases'}{'enabled'} = 1; @@ -376,16 +367,16 @@ sub PrintActualLeases { &openbox('100%', 'left', $tr{'current dynamic leases'}); print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> -<td width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IPADDR'><b>$tr{'ip address'}</b></a></td> -<td width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?ETHER'><b>$tr{'mac address'}</b></a></td> -<td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?HOSTNAME'><b>$tr{'hostname'}</b></a></td> -<td width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?ENDTIME'><b>$tr{'lease expires'} (local time d/m/y)</b></a></td> -<td width='5%' align='center'><b>Add to fix leases<b></td> +<th width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IPADDR'><b>$tr{'ip address'}</b></a></th> +<th width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?ETHER'><b>$tr{'mac address'}</b></a></th> +<th width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?HOSTNAME'><b>$tr{'hostname'}</b></a></th> +<th width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?ENDTIME'><b>$tr{'lease expires'} (local time d/m/y)</b></a></th> +<th width='5%' align='center'><b>Add to fix leases<b></th> </tr> END - ; +;
open(LEASES,"/var/state/dhcp/dhcpd.leases") or die "Can't open dhcpd.leases"; while ($line = <LEASES>) { @@ -427,24 +418,27 @@ END close(LEASES);
my $id = 0; + my $col=""; foreach my $key (sort leasesort keys %entries) { print "<form method='post' action='/cgi-bin/dhcp.cgi'>\n"; my $hostname = &cleanhtml($entries{$key}->{HOSTNAME},"y");
if ($id % 2) { - print "<tr bgcolor='$table1colour'>"; + print "<tr>"; + $col="bgcolor='$table1colour'"; } else { - print "<tr bgcolor='$table2colour'>"; + print "<tr>"; + $col="bgcolor='$table2colour'"; }
print <<END -<td align='center'><input type='hidden' name='FIX_ADDR' value='$entries{$key}->{IPADDR}' />$entries{$key}->{IPADDR}</td> -<td align='center'><input type='hidden' name='FIX_MAC' value='$entries{$key}->{ETHER}' />$entries{$key}->{ETHER}</td> -<td align='center'><input type='hidden' name='FIX_REMARK' value='$hostname' /> $hostname</td> -<td align='center'><input type='hidden' name='FIX_ENABLED' value='on' /> +<td align='center' $col><input type='hidden' name='FIX_ADDR' value='$entries{$key}->{IPADDR}' />$entries{$key}->{IPADDR}</td> +<td align='center' $col><input type='hidden' name='FIX_MAC' value='$entries{$key}->{ETHER}' />$entries{$key}->{ETHER}</td> +<td align='center' $col><input type='hidden' name='FIX_REMARK' value='$hostname' /> $hostname</td> +<td align='center' $col><input type='hidden' name='FIX_ENABLED' value='on' /> END - ; +;
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst) = localtime ($entries{$key}->{ENDTIME}); $enddate = sprintf ("%02d/%02d/%d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec); @@ -455,10 +449,10 @@ END print "$enddate"; } print <<END -<td><input type='hidden' name='ACTION' value='$Lang::tr{'add'}2' /><input type='submit' name='SUBMIT' value='$Lang::tr{'add'}' /> -</td></td></tr></form> +</td><td $col><input type='hidden' name='ACTION' value='$Lang::tr{'add'}2' /><input type='submit' name='SUBMIT' value='$Lang::tr{'add'}' /> +</td></tr></form> END - ; +; $id++; }
diff --git a/config/cfgroot/p2protocols b/config/cfgroot/p2protocols deleted file mode 100644 index 78c6101..0000000 --- a/config/cfgroot/p2protocols +++ /dev/null @@ -1,9 +0,0 @@ -Bittorrent;bit;on; -Edonkey;edk;on; -KaZaA;kazaa;on; -Gnutella;gnu;on; -DirectConnect;dc;on; -Applejuice;apple;on; -WinMX;winmx;on; -SoulSeek;soul;on; -Ares;ares;on; \ No newline at end of file diff --git a/config/collectd/collectd.conf b/config/collectd/collectd.conf index 67d9e19..14dd568 100644 --- a/config/collectd/collectd.conf +++ b/config/collectd/collectd.conf @@ -45,10 +45,11 @@ include "/etc/collectd.precache" </Plugin>
<Plugin iptables> - Chain filter INPUT DROP_INPUT - Chain filter FORWARD DROP_OUTPUT Chain filter PSCAN DROP_PScan Chain filter NEWNOTSYN DROP_NEWNOTSYN + Chain filter POLICYFWD DROP_FORWARD + Chain filter POLICYOUT DROP_OUTPUT + Chain filter POLICYIN DROP_INPUT </Plugin>
#<Plugin logfile> diff --git a/config/etc/fstab b/config/etc/fstab index 4860d6f..805ed4b 100644 --- a/config/etc/fstab +++ b/config/etc/fstab @@ -5,10 +5,6 @@ DEVICE1 /boot ext2 defaults 1 2 DEVICE2 swap swap pri=1 0 0 DEVICE3 / FSTYPE defaults 1 1 DEVICE4 /var FSTYPE defaults 1 1 -proc /proc proc defaults 0 0 -sysfs /sys sysfs defaults 0 0 -devpts /dev/pts devpts gid=4,mode=620 0 0 -#none /tmp tmpfs defaults 0 0 none /var/log/rrd tmpfs defaults,size=64M 0 0 none /var/lock tmpfs defaults,size=8M 0 0 none /var/run tmpfs defaults,size=2M 0 0 diff --git a/config/etc/inittab b/config/etc/inittab index ea5ae99..5f7d0a6 100644 --- a/config/etc/inittab +++ b/config/etc/inittab @@ -19,7 +19,7 @@ ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
-1:2345:respawn:/sbin/agetty tty1 9600 +1:2345:respawn:/sbin/agetty tty1 9600 --noclear 2:2345:respawn:/sbin/agetty tty2 9600 3:2345:respawn:/sbin/agetty tty3 9600 4:2345:respawn:/sbin/agetty tty4 9600 diff --git a/config/etc/modprobe.d/cfg80211 b/config/etc/modprobe.d/cfg80211 deleted file mode 100644 index e72bedd..0000000 --- a/config/etc/modprobe.d/cfg80211 +++ /dev/null @@ -1 +0,0 @@ -blacklist ieee80211 diff --git a/config/etc/modprobe.d/cfg80211.conf b/config/etc/modprobe.d/cfg80211.conf new file mode 100644 index 0000000..e72bedd --- /dev/null +++ b/config/etc/modprobe.d/cfg80211.conf @@ -0,0 +1 @@ +blacklist ieee80211 diff --git a/config/etc/modprobe.d/pcspeaker b/config/etc/modprobe.d/pcspeaker deleted file mode 100644 index d4e7e94..0000000 --- a/config/etc/modprobe.d/pcspeaker +++ /dev/null @@ -1 +0,0 @@ -blacklist snd_pcsp diff --git a/config/etc/modprobe.d/pcspeaker.conf b/config/etc/modprobe.d/pcspeaker.conf new file mode 100644 index 0000000..d4e7e94 --- /dev/null +++ b/config/etc/modprobe.d/pcspeaker.conf @@ -0,0 +1 @@ +blacklist snd_pcsp diff --git a/config/firewall/convert-dmz b/config/firewall/convert-dmz new file mode 100755 index 0000000..fbcc4cf --- /dev/null +++ b/config/firewall/convert-dmz @@ -0,0 +1,193 @@ +#!/usr/bin/perl + +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +# # +# This script converts old dmz holes rules from old firewall # +# to the new one. This is a 2-step process. # +# STEP1: read old config and normalize settings # +# STEP2: check valid ip and save valid rules to new firewall # +# # +############################################################################### +my @current=(); +my @alias=(); +my %configdmz=(); +my %ifaces=(); +my %configfwdfw=(); +require '/var/ipfire/general-functions.pl'; +my $dmzconfig = "${General::swroot}/dmzholes/config"; +my $fwdfwconfig = "${General::swroot}/firewall/config"; +my $ifacesettings = "${General::swroot}/ethernet/settings"; +my $field0 = 'ACCEPT'; +my $field1 = 'FORWARDFW'; +my $field2 = ''; #ON or emtpy +my $field3 = ''; #std_net_src or src_addr +my $field4 = ''; #ALL or IP-Address with /32 +my $field5 = ''; #std_net_tgt or tgt_addr +my $field6 = ''; #IP or network name +my $field11 = 'ON'; #use target port +my $field12 = ''; #TCP or UDP +my $field13 = 'All ICMP-Types'; +my $field14 = 'TGT_PORT'; +my $field15 = ''; #Port Number +my $field16 = ''; #remark +my $field26 = '00:00'; +my $field27 = '00:00'; +my $field28 = ''; +my $field29 = 'ALL'; +my $field30 = ''; +my $field31 = 'dnat'; + + +open(FILE, $dmzconfig) or die 'Unable to open config file.'; +my @current = <FILE>; +close(FILE); +#open LOGFILE +open (LOG, ">/var/log/converters/dmz-convert.log") or die $!; +&General::readhash($ifacesettings, %ifaces); +&General::readhasharray($fwdfwconfig,%configfwdfw); +&process_rules; +sub process_rules{ + foreach my $line (@current){ + my $now=localtime; + #get values from old configfile + my ($a,$b,$c,$d,$e,$f,$g,$h) = split (",",$line); + $h =~ s/\s*\n//gi; + print LOG "$now Processing A: $a B: $b C: $c D: $d E: $e F: $f G: $g H: $h\n"; + #Now convert values and check ip addresses + $a=uc($a); + $e=uc($e); + $field2=$e if($e eq 'ON'); + #SOURCE IP-check + $b=&check_ip($b); + if (&General::validipandmask($b)){ + #When ip valid, check if we have a network + my ($ip,$subnet) = split ("/",$b); + if ($f eq 'orange' && $ip eq $ifaces{'ORANGE_NETADDRESS'}){ + $field3='std_net_src'; + $field4='ORANGE'; + }elsif($f eq 'blue' && $ip eq $ifaces{'BLUE_NETADDRESS'}){ + $field3='std_net_src'; + $field4='BLUE'; + }elsif($f eq 'orange' && &General::IpInSubnet($ip,$ifaces{'ORANGE_NETADDRESS'},$ifaces{'ORANGE_NETMASK'})){ + $field3='src_addr'; + $field4=$b; + }elsif($f eq 'blue' && &General::IpInSubnet($ip,$ifaces{'BLUE_NETADDRESS'},$ifaces{'BLUE_NETMASK'})){ + $field3='src_addr'; + $field4=$b; + }else{ + print LOG "$now ->NOT Converted, source ip $b not part of source network $f \n\n"; + next; + } + }else{ + print LOG "$now -> SOURCE IP INVALID. \n\n"; + next; + } + #TARGET IP-check + $c=&check_ip($c); + if (&General::validipandmask($c)){ + my $now=localtime; + #When ip valid, check if we have a network + my ($ip,$subnet) = split ("/",$c); + if ($g eq 'green' && $ip eq $ifaces{'GREEN_NETADDRESS'}){ + $field5='std_net_tgt'; + $field6='GREEN'; + }elsif($g eq 'blue' && $ip eq $ifaces{'BLUE_NETADDRESS'}){ + $field5='std_net_tgt'; + $field6='BLUE'; + }elsif($g eq 'green' && &General::IpInSubnet($ip,$ifaces{'GREEN_NETADDRESS'},$ifaces{'GREEN_NETMASK'})){ + $field5='tgt_addr'; + $field6=$c; + }elsif($g eq 'blue' && &General::IpInSubnet($ip,$ifaces{'BLUE_NETADDRESS'},$ifaces{'BLUE_NETMASK'})){ + $field5='tgt_addr'; + $field6=$c; + }else{ + print LOG "$now ->NOT Converted, target ip $c not part of target network $g \n\n"; + next; + } + }else{ + print LOG "$now -> TARGET IP INVALID. \n\n"; + next; + } + $field12=$a; + #convert portrange + $d =~ tr/-/:/; + $field15=$d; + $field16=$h; + my $key = &General::findhasharraykey (%configfwdfw); + foreach my $i (0 .. 27) { $configfwdfw{$key}[$i] = "";} + $configfwdfw{$key}[0] = $field0; + $configfwdfw{$key}[1] = $field1; + $configfwdfw{$key}[2] = $field2; + $configfwdfw{$key}[3] = $field3; + $configfwdfw{$key}[4] = $field4; + $configfwdfw{$key}[5] = $field5; + $configfwdfw{$key}[6] = $field6; + $configfwdfw{$key}[7] = ''; + $configfwdfw{$key}[8] = $field12; + $configfwdfw{$key}[9] = ''; + $configfwdfw{$key}[10] = ''; + $configfwdfw{$key}[11] = $field11; + $configfwdfw{$key}[12] = ''; + $configfwdfw{$key}[13] = ''; + $configfwdfw{$key}[14] = $field14; + $configfwdfw{$key}[15] = $field15; + $configfwdfw{$key}[16] = $field16; + $configfwdfw{$key}[17] = ''; + $configfwdfw{$key}[18] = ''; + $configfwdfw{$key}[19] = ''; + $configfwdfw{$key}[20] = ''; + $configfwdfw{$key}[21] = ''; + $configfwdfw{$key}[22] = ''; + $configfwdfw{$key}[23] = ''; + $configfwdfw{$key}[24] = ''; + $configfwdfw{$key}[25] = ''; + $configfwdfw{$key}[26] = $field26; + $configfwdfw{$key}[27] = $field27; + $configfwdfw{$key}[28] = $field28; + $configfwdfw{$key}[29] = $field29; + $configfwdfw{$key}[30] = $field30; + $configfwdfw{$key}[31] = $field31; + print LOG "$Now -> Converted to $field0,$field1,$field2,$field3,$field4,$field5,$field6,,$field12,,,$field11,,,$field14,$field15,$field16,,,,,,,,,,$field26,$field27,$field28,$field29,$field30,$field31\n"; + } + &General::writehasharray($fwdfwconfig,%configfwdfw); +close (LOG); +} + +sub check_ip +{ + my $adr=shift; + my $a; + #ip with subnet in decimal + if($adr =~ m/^(\d\d?\d?).(\d\d?\d?).(\d\d?\d?).(\d\d?\d?)/(\d{1,2})$/){ + $adr=int($1).".".int($2).".".int($3).".".int($4); + my $b = &General::iporsubtodec($5); + $a=$adr."/".$b; + }elsif($adr =~ /^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $adr=int($1).".".int($2).".".int($3).".".int($4); + if(&General::validip($adr)){ + $a=$adr."/32"; + } + } + if(&General::validipandmask($adr)){ + $a=&General::iporsubtodec($adr); + } + return $a; +} diff --git a/config/firewall/convert-outgoingfw b/config/firewall/convert-outgoingfw new file mode 100755 index 0000000..4f8bcdc --- /dev/null +++ b/config/firewall/convert-outgoingfw @@ -0,0 +1,679 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +# # +# This script converts old groups and firewallrules # +# to the new one. This is a 3-step process. # +# STEP1: convert groups ->LOG /var/log/converters # +# STEP2: convert rules ->LOG /var/log/converters # +# STEP3: convert P2P rules # +# # +############################################################################### + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; + +use Socket; +use File::Path; +use File::Copy; + +my $ipgrouppath = "${General::swroot}/outgoing/groups/ipgroups/"; +my $macgrouppath = "${General::swroot}/outgoing/groups/macgroups/"; +my $outgoingrules = "${General::swroot}/outgoing/rules"; +my $outfwsettings = "${General::swroot}/outgoing/settings"; +my $host = "Converted "; +my $confighosts = "${General::swroot}/fwhosts/customhosts"; +my $confignets = "${General::swroot}/fwhosts/customnetworks"; +my $configgroups = "${General::swroot}/fwhosts/customgroups"; +my $ovpnsettings = "${General::swroot}/ovpn/settings"; +my $ovpnconfig = "${General::swroot}/ovpn/ovpnconfig"; +my $ccdconfig = "${General::swroot}/ovpn/ccd.conf"; +my $fwdfwconfig = "${General::swroot}/firewall/config"; +my $outfwconfig = "${General::swroot}/firewall/outgoing"; +my $fwdfwsettings = "${General::swroot}/firewall/settings"; +my @ipgroups = qx(ls $ipgrouppath); +my @macgroups = qx(ls $macgrouppath); +my @hostarray=(); +my %outsettings=(); +my %hosts=(); +my %nets=(); +my %groups=(); +my %settingsovpn=(); +my %configovpn=(); +my %ccdconf=(); +my %fwconfig=(); +my %fwconfigout=(); +my %fwdsettings=(); +my %ownnet=(); +my %ovpnSettings = (); +my @active= ('Aktiv', 'aktiv', 'Active', 'Activo', 'Actif', 'Actief', 'Aktywne', 'ÐкÑОвеМ', 'Aktif'); +&General::readhash("${General::swroot}/ovpn/settings", %ovpnSettings); +&General::readhash($outfwsettings,%outsettings); +&General::readhash("${General::swroot}/ethernet/settings", %ownnet); + +#ONLY RUN if /var/ipfire/outgoing exists +if ( -d "/var/ipfire/outgoing"){ + &process_groups; + &process_rules; + &process_p2p; +} +system("/usr/local/bin/firewallctrl"); +sub process_groups +{ + if(! -d "/var/log/converters"){ mkdir("/var/log/converters");} + if( -f "/var/log/converters/groups-convert.log"){rmtree("var/log/converters");} + open (LOG, ">/var/log/converters/groups-convert.log") or die $!; + #IP Group processing + foreach my $group (@ipgroups){ + my $now=localtime; + chomp $group; + print LOG "\n$now Processing IP-GROUP: $group...\n"; + open (DATEI, "<$ipgrouppath/$group"); + my @zeilen = <DATEI>; + foreach my $ip (@zeilen){ + chomp($ip); + $ip =~ s/\s//gi; + print LOG "$now Check IP $ip from Group $group "; + my $val=&check_ip($ip); + if($val){ + push(@hostarray,$val.",ip"); + print LOG "$now -> OK\n"; + } + else{ + print LOG "$now -> IP "$ip" from group $group not converted (invalid IP) \n"; + } + $val=''; + } + &new_hostgrp($group,'ip'); + @hostarray=(); + } + $group=''; + @zeilen=(); + @hostarray=(); + #MAC Group processing + foreach my $group (@macgroups){ + chomp $group; + print LOG "\nProcessing MAC-GROUP: $group...\n"; + open (DATEI, "<$macgrouppath/$group"); + my @zeilen = <DATEI>; + foreach my $mac (@zeilen){ + chomp($mac); + $mac =~ s/\s//gi; + print LOG "$now Checking MAC $mac from group $group "; + #MAC checking + if(&General::validmac($mac)){ + $val=$mac; + } + if($val){ + push(@hostarray,$val.",mac"); + print LOG "$now -> OK\n"; + } + else{ + print LOG "$now -> Mac $mac from group $group not converted (invalid MAC)\n"; + } + $val=''; + } + &new_hostgrp($group,'mac'); + @hostarray=(); + @zeilen=(); + } + close (LOG); +} +sub check_ip +{ + my $adr=shift; + my $a; + #ip with subnet in decimal + if($adr =~ m/^(\d\d?\d?).(\d\d?\d?).(\d\d?\d?).(\d\d?\d?)/(\d{1,2})$/){ + $adr=int($1).".".int($2).".".int($3).".".int($4); + my $b = &General::iporsubtodec($5); + $a=$adr."/".$b; + }elsif($adr =~ /^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $adr=int($1).".".int($2).".".int($3).".".int($4); + if(&General::validip($adr)){ + $a=$adr."/255.255.255.255"; + } + } + if(&General::validipandmask($adr)){ + $a=&General::iporsubtodec($adr); + } + return $a; +} +sub new_hostgrp +{ + &General::readhasharray($confighosts,%hosts); + &General::readhasharray($confignets,%nets); + &General::readhasharray($configgroups,%groups); + my $grp=shift; + my $run=shift; + my $name; #"converted" + my $name2; + my $name3; #custom host/custom net + my $mac2; + foreach my $adr (@hostarray){ + if($run eq 'ip'){ + my ($ip,$type) = split(",",$adr); + my ($ippart,$subnet) = split("/",$ip); + my ($byte1,$byte2,$byte3,$byte4) = split(/./,$subnet); + if($byte4 eq '255'){ + print LOG "Processing SINGLE HOST $ippart/$subnet from group $grp\n"; + if(!&check_host($ip)){ + my $key = &General::findhasharraykey(%hosts); + $name="host "; + $name2=$name.$ippart; + $name3="Custom Host"; + $hosts{$key}[0] = $name2; + $hosts{$key}[1] = $type; + $hosts{$key}[2] = $ip; + $hosts{$key}[3] = ''; + print LOG "->Host (IP) $ip added to custom hosts\n" + }else{ + print LOG "->Host (IP) $ip already exists in custom hosts\n"; + $name="host "; + $name2=$name.$ippart; + $name="host "; + $name2=$name.$ippart; + $name3="Custom Host"; + } + }elsif($byte4 < '255'){ + print LOG "Processing NETWORK $ippart/$subnet from Group $grp\n"; + if(!&check_net($ippart,$subnet)){ + #Check if this network is one one of IPFire internal networks + if (($ownnet{'GREEN_NETADDRESS'} ne '' && $ownnet{'GREEN_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($ippart,$ownnet{'GREEN_NETADDRESS'},$ownnet{'GREEN_NETMASK'})) + { + $name2='GREEN'; + $name3='Standard Network'; + }elsif (($ownnet{'ORANGE_NETADDRESS'} ne '' && $ownnet{'ORANGE_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($ippart,$ownnet{'ORANGE_NETADDRESS'},$ownnet{'ORANGE_NETMASK'})) + { + $name2='ORANGE'; + $name3='Standard Network'; + }elsif (($ownnet{'BLUE_NETADDRESS'} ne '' && $ownnet{'BLUE_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($ippart,$ownnet{'BLUE_NETADDRESS'},$ownnet{'BLUE_NETMASK'})) + { + $name2='BLUE'; + $name3='Standard Network'; + }elsif ($ippart eq '0.0.0.0') + { + $name2='ALL'; + $name3='Standard Network'; + }elsif(defined($ovpnSettings{'DOVPN_SUBNET'}) && "$ippart/".&General::iporsubtodec($subnet) eq $ovpnSettings{'DOVPN_SUBNET'}) + { + $name2='OpenVPN-Dyn'; + $name3='Standard Network'; + }else{ + my $netkey = &General::findhasharraykey(%nets); + $name="net "; + $name2=$name.$ippart; + $name3="Custom Network"; + $nets{$netkey}[0] = $name2; + $nets{$netkey}[1] = $ippart; + $nets{$netkey}[2] = $subnet; + $nets{$netkey}[3] = ''; + print LOG "->Network $ippart/$subnet added to custom networks\n"; + } + }else{ + print LOG "Network $ippart already exists in custom networks\n"; + $name="net "; + $name2=$name.$ippart; + $name="net "; + $name2=$name.$ippart; + $name3="Custom Network"; + } + } + if($name2 && !&check_grp($grp,$name2)){ + my $grpkey = &General::findhasharraykey(%groups); + $groups{$grpkey}[0] = $grp; + $groups{$grpkey}[1] = ''; + $groups{$grpkey}[2] = $name2; + $groups{$grpkey}[3] = $name3; + print LOG "->$name2 added to group $grp\n"; + } + }elsif($run eq 'mac'){ + #MACRUN + my ($mac,$type) = split(",",$adr); + print LOG "Processing HOST (MAC) $mac\n"; + if(!&check_host($mac)){ + my $key = &General::findhasharraykey(%hosts); + $name="host "; + $mac2=$mac; + $mac2 =~ s/:/-/g; + $name2=$name.$mac2; + $name3="Custom Host"; + $hosts{$key}[0] = $name2; + $hosts{$key}[1] = $type; + $hosts{$key}[2] = $mac; + print LOG "->Host (MAC) $mac added to custom hosts\n"; + }else{ + $mac2=mac; + $mac2 =~ s/:/-/g; + print LOG "->Host (MAC) $mac already exists in custom hosts \n"; + $name="host "; + $name2=$name.$mac2; + $name3="Custom Host"; + } + if($name2 && !&check_grp($grp,$name2)){ + my $grpkey = &General::findhasharraykey(%groups); + $groups{$grpkey}[0] = $grp; + $groups{$grpkey}[1] = ''; + $groups{$grpkey}[2] = $name2; + $groups{$grpkey}[3] = $name3; + print LOG "->$name2 added to group $grp\n"; + } + } + } + @hostarray=(); + &General::writehasharray($confighosts,%hosts); + &General::writehasharray($configgroups,%groups); + &General::writehasharray($confignets,%nets); + +} +sub check_host +{ + my $ip=shift; + foreach my $key (sort keys %hosts) + { + if($hosts{$key}[2] eq $ip) + { + return 1; + } + } + return 0; +} +sub check_net +{ + my $ip=shift; + my $sub=shift; + foreach my $key (sort keys %nets) + { + if($nets{$key}[1] eq $ip && $nets{$key}[2] eq $sub) + { + return 1; + } + } + return 0; +} +sub check_grp +{ + my $grp=shift; + my $value=shift; + foreach my $key (sort keys %groups) + { + if($groups{$key}[0] eq $grp && $groups{$key}[2] eq $value) + { + return 1; + } + } + return 0; +} +sub process_rules +{ + my ($type,$action,$active,$grp1,$source,$grp2,$useport,$port,$prot,$grp3,$target,$remark,$log,$time,$time_mon,$time_tue,$time_wed,$time_thu,$time_fri,$time_sat,$time_sun,$time_from,$time_to); + #open LOG + if( -f "/var/log/converters/outgoingfw-convert.log"){unlink ("/var/log/converters/outgoingfw-convert.log");} + open (LOG, ">/var/log/converters/outgoingfw-convert.log") or die $!; + + &General::readhash($fwdfwsettings,%fwdsettings); + if ($outsettings{'POLICY'} eq 'MODE1'){ + $fwdsettings{'POLICY'}='MODE1'; + $fwdsettings{'POLICY1'}='MODE2'; + $type='ALLOW'; + $action='ACCEPT'; + }else{ + $fwdsettings{'POLICY'}='MODE2'; + $fwdsettings{'POLICY1'}='MODE2'; + $type='DENY'; + $action='DROP'; + } + &General::writehash($fwdfwsettings,%fwdsettings); + open (DATEI, "<$outgoingrules"); + my @lines = <DATEI>; + foreach my $rule (@lines) + { + &General::readhasharray($fwdfwconfig,%fwconfig); + &General::readhasharray($outfwconfig,%fwconfigout); + my $now=localtime; + chomp($rule); + $port=''; + print LOG "$now processing: $rule\n"; + my @configline=(); + @configline = split( /;/, $rule ); + my @prot=(); + if($configline[0] eq $type){ + #some variables we can use from old config + if($configline[1] eq 'on'){ $active='ON';}else{$active='';} + if($configline[3] eq 'all' && $configline[8] ne ''){ + push(@prot,"TCP"); + push(@prot,"UDP"); + }elsif($configline[3] eq 'all' && $configline[8] eq ''){ + push(@prot,""); + }else{ + push(@prot,$configline[3]); + } + if($configline[4] ne ''){ + $configline[4] =~ s/,/;/g; + $remark = $configline[4]; + }else{$remark = '';} + #find all "active" tags in all language files and check them against the old config + my $logging='0'; + foreach (@active){ + $logging='1' if ($_ eq $configline[9]); + } + if($logging eq '1' ){ $log='ON';}else{$log='';} + if($configline[10] eq 'on' && $configline[11] eq 'on' && $configline[12] eq 'on' && $configline[13] eq 'on' && $configline[14] eq 'on' && $configline[15] eq 'on' && $configline[16] eq 'on'){ + if($configline[17] eq '00:00' && $configline[18] eq '00:00'){ + $time=''; + }else{ + $time='ON'; + } + }else{ + $time='ON'; + } + $time_mon=$configline[10]; + $time_tue=$configline[11]; + $time_wed=$configline[12]; + $time_thu=$configline[13]; + $time_fri=$configline[14]; + $time_sat=$configline[15]; + $time_sun=$configline[16]; + $time_from=$configline[17]; + $time_to=$configline[18]; + ############################################################ + #sourcepart + if ($configline[2] eq 'green') { + $grp1='std_net_src'; + $source='GREEN'; + }elsif ($configline[2] eq 'orange') { + $grp1='std_net_src'; + $source='ORANGE'; + }elsif ($configline[2] eq 'red') { + $grp1='std_net_src'; + $source='IPFire'; + &General::readhash($fwdfwsettings,%fwdsettings); + $fwdsettings{'POLICY1'}=$outsettings{'POLICY'}; + $fwdsettings{'POLICY'}=$outsettings{'POLICY'}; + &General::writehash($fwdfwsettings,%fwdsettings); + }elsif ($configline[2] eq 'blue') { + $grp1='std_net_src'; + $source='BLUE'; + }elsif ($configline[2] eq 'ipsec') { + print LOG "$now -> Rule not converted, ipsec+ interface is obsolet since IPFire 2.7 \n"; + next; + }elsif ($configline[2] eq 'ovpn') { + print LOG "$now ->Creating networks/groups for OpenVPN...\n"; + &build_ovpn_grp; + $grp1='cust_grp_src'; + $source='ovpn' + }elsif ($configline[2] eq 'ip') { + my $z=&check_ip($configline[5]); + if($z){ + my ($ipa,$subn) = split("/",$z); + $subn=&General::iporsubtocidr($subn); + $grp1='src_addr'; + $source="$ipa/$subn"; + }else{ + print LOG "$now -> Rule not converted, missing/invalid source ip "$configline[5]"\n"; + next; + } + }elsif ($configline[2] eq 'mac') { + if(&General::validmac($configline[6])){ + $grp1='src_addr'; + $source=$configline[6]; + }else{ + print LOG"$now -> Rule not converted, invalid MAC "$configline[6]" \n"; + next; + } + }elsif ($configline[2] eq 'all') { + $grp1='std_net_src'; + $source='ALL'; + }else{ + foreach my $key (sort keys %groups){ + if($groups{$key}[0] eq $configline[2]){ + $grp1='cust_grp_src'; + $source=$configline[2]; + } + } + if ($grp1 eq '' || $source eq ''){ + print LOG "$now -> Rule not converted, no valid source recognised\n"; + } + } + ############################################################ + #destinationpart + if($configline[7] ne '' && $configline[7] ne '0.0.0.0'){ + my $address=&check_ip($configline[7]); + if($address){ + my ($dip,$dsub) = split("/",$address); + $dsub=&General::iporsubtocidr($dsub); + $grp2='tgt_addr'; + $target="$dip/$dsub"; + }elsif(!$address){ + my $getwebsiteip=&get_ip_from_domain($configline[7]); + if ($getwebsiteip){ + $grp2='tgt_addr'; + $target=$getwebsiteip; + $remark.=" $configline[7]"; + }else{ + print LOG "$now -> Rule not converted, invalid domain "$configline[7]"\n"; + next; + } + } + }else{ + $grp2='std_net_tgt'; + $target='ALL'; + } + if($configline[8] ne '' && $configline[3] ne 'gre' && $configline[3] ne 'esp'){ + my @values=(); + my @parts=split(",",$configline[8]); + foreach (@parts){ + $_=~ tr/-/:/; + if (!($_ =~ /^(\d+):(\d+)$/)) { + if(&General::validport($_)){ + $useport='ON'; + push (@values,$_); + $grp3='TGT_PORT'; + }else{ + print LOG "$now -> Rule not converted, invalid destination Port "$configline[8]"\n"; + next; + } + }else{ + my ($a1,$a2) = split(/:/,$_); + if (&General::validport($a1) && &General::validport($a2) && $a1 < $a2){ + $useport='ON'; + push (@values,"$a1:$a2"); + $grp3='TGT_PORT'; + }else{ + print LOG "$now -> Rule not converted, invalid destination Port "$configline[8]"\n"; + next; + } + } + } + $port=join("|",@values); + @values=(); + @parts=(); + } + }else{ + print LOG "-> Rule not converted because not for Firewall mode $outsettings{'POLICY'} (we are only converting for actual mode)\n"; + } + my $check; + my $chain; + foreach my $protocol (@prot){ + my $now=localtime; + if ($source eq 'IPFire'){ + $chain='OUTGOINGFW'; + }else{ + $chain='FORWARDFW'; + } + $protocol=uc($protocol); + print LOG "$now -> Converted: $action,$chain,$active,$grp1,$source,$grp2,$target,,$protocol,,,$useport,,,$grp3,$port,$remark,$log,$time,$time_mon,$time_tue,$time_wed,$time_thu,$time_fri,$time_sat,$time_sun,$time_from,$time_to\n"; + #Put rules into system.... + ########################### + #check for double rules + foreach my $key (sort keys %fwconfig){ + if("$action,$chain,$active,$grp1,$source,$grp2,$target,$protocol,$useport,$grp3,$port,$remark,$log,$time,$time_mon,$time_tue,$time_wed,$time_thu,$time_fri,$time_sat,$time_sun,$time_from,$time_to" + eq "$fwconfig{$key}[0],$fwconfig{$key}[1],$fwconfig{$key}[2],$fwconfig{$key}[3],$fwconfig{$key}[4],$fwconfig{$key}[5],$fwconfig{$key}[6],$fwconfig{$key}[8],$fwconfig{$key}[11],$fwconfig{$key}[14],$fwconfig{$key}[15],$fwconfig{$key}[16],$fwconfig{$key}[17],$fwconfig{$key}[18],$fwconfig{$key}[19],$fwconfig{$key}[20],$fwconfig{$key}[21],$fwconfig{$key}[22],$fwconfig{$key}[23],$fwconfig{$key}[24],$fwconfig{$key}[25],$fwconfig{$key}[26],$fwconfig{$key}[27]"){ + $check='on'; + next; + } + } + if($check ne 'on'){ + if ($chain eq 'FORWARDFW'){ + my $key = &General::findhasharraykey(%fwconfig); + $fwconfig{$key}[0] = $action; + $fwconfig{$key}[1] = $chain; + $fwconfig{$key}[2] = $active; + $fwconfig{$key}[3] = $grp1; + $fwconfig{$key}[4] = $source; + $fwconfig{$key}[5] = $grp2; + $fwconfig{$key}[6] = $target; + $fwconfig{$key}[8] = $protocol; + $fwconfig{$key}[11] = $useport; + $fwconfig{$key}[14] = $grp3; + $fwconfig{$key}[15] = $port; + $fwconfig{$key}[16] = $remark; + $fwconfig{$key}[17] = $log; + $fwconfig{$key}[18] = $time; + $fwconfig{$key}[19] = $time_mon; + $fwconfig{$key}[20] = $time_tue; + $fwconfig{$key}[21] = $time_wed; + $fwconfig{$key}[22] = $time_thu; + $fwconfig{$key}[23] = $time_fri; + $fwconfig{$key}[24] = $time_sat; + $fwconfig{$key}[25] = $time_sun; + $fwconfig{$key}[26] = $time_from; + $fwconfig{$key}[27] = $time_to; + $fwconfig{$key}[28] = ''; + $fwconfig{$key}[29] = 'ALL'; + $fwconfig{$key}[30] = ''; + $fwconfig{$key}[31] = 'dnat'; + &General::writehasharray($fwdfwconfig,%fwconfig); + }else{ + my $key = &General::findhasharraykey(%fwconfigout); + $fwconfigout{$key}[0] = $action; + $fwconfigout{$key}[1] = $chain; + $fwconfigout{$key}[2] = $active; + $fwconfigout{$key}[3] = $grp1; + $fwconfigout{$key}[4] = $source; + $fwconfigout{$key}[5] = $grp2; + $fwconfigout{$key}[6] = $target; + $fwconfigout{$key}[8] = $protocol; + $fwconfigout{$key}[11] = $useport; + $fwconfigout{$key}[14] = $grp3; + $fwconfigout{$key}[15] = $port; + $fwconfigout{$key}[16] = $remark; + $fwconfigout{$key}[17] = $log; + $fwconfigout{$key}[18] = $time; + $fwconfigout{$key}[19] = $time_mon; + $fwconfigout{$key}[20] = $time_tue; + $fwconfigout{$key}[21] = $time_wed; + $fwconfigout{$key}[22] = $time_thu; + $fwconfigout{$key}[23] = $time_fri; + $fwconfigout{$key}[24] = $time_sat; + $fwconfigout{$key}[25] = $time_sun; + $fwconfigout{$key}[26] = $time_from; + $fwconfigout{$key}[27] = $time_to; + $fwconfigout{$key}[28] = ''; + $fwconfigout{$key}[29] = 'ALL'; + $fwconfigout{$key}[30] = ''; + $fwconfigout{$key}[31] = 'dnat'; + &General::writehasharray($outfwconfig,%fwconfigout); + } + } + } + @prot=(); + } + close(LOG); + @lines=(); +} +sub get_ip_from_domain +{ + $web=shift; + my $resolvedip; + my $checked; + my ($name,$aliases,$addrtype,$length,@addrs) = gethostbyname($web); + if(@addrs){ + $resolvedip=inet_ntoa($addrs[0]); + return $resolvedip; + } + return; +} +sub build_ovpn_grp +{ + my $now=localtime; + &General::readhasharray($confighosts,%hosts); + &General::readhasharray($confignets,%nets); + &General::readhasharray($configgroups,%groups); + &General::readhasharray($ovpnconfig,%configovpn); + &General::readhasharray($ccdconfig,%ccdconf); + &General::readhash($ovpnsettings,%settingsovpn); + #get ovpn nets + my @ovpnnets=(); + if($settingsovpn{'DOVPN_SUBNET'}){ + my ($net,$subnet)=split("/",$settingsovpn{'DOVPN_SUBNET'}); + push (@ovpnnets,"$net,$subnet,dynamic"); + print LOG "$now ->found dynamic OpenVPN net\n"; + } + foreach my $key (sort keys %ccdconf){ + my ($net,$subnet)=split("/",$ccdconf{$key}[1]); + $subnet=&General::iporsubtodec($subnet); + push (@ovpnnets,"$net,$subnet,$ccdconf{$key}[0]"); + print LOG "$now ->found OpenVPN static net $net/$subnet\n"; + } + foreach my $key (sort keys %configovpn){ + if ($configovpn{$key}[3] eq 'net'){ + my ($net,$subnet)=split("/",$configovpn{$key}[27]); + push (@ovpnnets,"$net,$subnet,$configovpn{$key}[2]"); + print LOG "$now ->found OpenVPN $net/$subnet $configovpn{$key}[2]\n"; + } + } + #add ovpn nets to customnetworks/groups + foreach my $line (@ovpnnets){ + my $now=localtime; + my ($net,$subnet,$name) = split(",",$line); + if (!&check_net($net,$subnet)){ + my $netkey = &General::findhasharraykey(%nets); + $name2=$name."(ovpn)".$net; + $name3="Custom Network"; + $nets{$netkey}[0] = $name2; + $nets{$netkey}[1] = $net; + $nets{$netkey}[2] = $subnet; + $nets{$netkey}[3] = ''; + print LOG "$now ->added $name2 $net/$subnet to customnetworks\n"; + }else{ + print LOG "-> Custom Network with same IP already exist "$net/$subnet" (you can ignore this, if this run was manual from shell)\n"; + } + if($name2){ + my $grpkey = &General::findhasharraykey(%groups); + $groups{$grpkey}[0] = "ovpn"; + $groups{$grpkey}[1] = ''; + $groups{$grpkey}[2] = $name2; + $groups{$grpkey}[3] = "Custom Network"; + print LOG "$now ->added $name2 to customgroup ovpn\n"; + } + $name2=''; + } + @ovpnnets=(); + &General::writehasharray($confighosts,%hosts); + &General::writehasharray($configgroups,%groups); + &General::writehasharray($confignets,%nets); + print LOG "$now ->finished OVPN\n"; +} +sub process_p2p +{ + copy("/var/ipfire/outgoing/p2protocols","/var/ipfire/firewall/p2protocols"); + chown 99, 99, '/var/ipfire/firewall/p2protocols'; +} diff --git a/config/firewall/convert-portfw b/config/firewall/convert-portfw new file mode 100755 index 0000000..447ef90 --- /dev/null +++ b/config/firewall/convert-portfw @@ -0,0 +1,165 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +# # +# This script converts old portforwarding rules from old Firewall # +# to the new one. This is a 3-step process. # +# STEP1: read old config and normalize settings # +# STEP2: create new rules from old ones # +# STEP3: check if rule already exists, when not, put it into # +# /var/ipfire/firewall/config # +############################################################################### +require '/var/ipfire/general-functions.pl'; +my @values=(); +my @built_rules=(); +my %nat=(); +my $portfwconfig = "${General::swroot}/portfw/config"; +my $confignat = "${General::swroot}/firewall/config"; +my ($key,$flag,$prot,$ipfireport,$target,$targetport,$active,$alias,$source,$remark); +my ($key1,$flag1,$prot1,$ipfireport1,$target1,$targetport1,$active1,$alias1,$source1,$remark1); +my $count=0; +my $jump; +if(! -d "/var/log/converters"){ mkdir("/var/log/converters");} +open(FILE, $portfwconfig) or die 'Unable to open config file.'; +my @current = <FILE>; +close(FILE); +open (LOG, ">/var/log/converters/portfw-convert.log") or die $!; +open(ALIAS, "${General::swroot}/ethernet/aliases") or die 'Unable to open aliases file.'; +my @alias = <ALIAS>; +close(ALIAS); +&get_config; +&build_rules; +&write_rules; +sub get_config +{ + print LOG "STEP 1: Get config from old portforward\n#########################################\n"; + foreach my $line (@current){ + if($jump eq '1'){ + $jump=''; + $count++; + next; + } + my $u=$count+1; + ($key,$flag,$prot,$ipfireport,$target,$targetport,$active,$alias,$source,$remark) = split(",",$line); + ($key1,$flag1,$prot1,$ipfireport1,$target1,$targetport1,$active1,$alias1,$source1,$remark1) = split(",",$current[$u]); + if ($flag1 eq '1'){ + $source=$source1; + $jump='1'; + } + my $now=localtime; + chomp($remark); + print LOG "$now processing-> KEY: $key FLAG: $flag PROT: $prot FIREPORT: $ipfireport TARGET: $target TGTPORT: $targetport ACTIVE: $active ALIAS: $alias SOURCE: $source REM: $remark Doublerule: $jump\n"; + push (@values,$prot.",".$ipfireport.",".$target.",".$targetport.",".$active.",".$alias.",".$source.",".$remark); + $count++; + } +} +sub build_rules +{ + print LOG "\nSTEP 2: Convert old portforwardrules in a useable format\n########################################################\n"; + my $src; + my $src1; + my $ipfireip; + my $count=0; + my $stop; + #build rules for new firewall + foreach my $line (@values){ + chomp ($line); + ($prot,$ipfireport,$target,$targetport,$active,$alias,$source,$remark)=split(",",$line); + $count++; + #get sourcepart + if($source eq '0.0.0.0/0'){ + $src = 'std_net_src'; + $src1 = 'ALL'; + }else{ + $src = 'src_addr'; + my ($a,$b) = split("/",$source); + $src1 = $a."/32"; + } + #get ipfire ip + if($alias eq '0.0.0.0'){ + $alias='ALL'; + }else{ + foreach my $ali (@alias){ + my ($alias_ip,$alias_active,$alias_name) = split (",",$ali); + if($alias eq $alias_ip){ + chomp($alias_name); + $alias=$alias_name; + } + } + } + $active = uc $active; + $prot = uc $prot; + chomp($remark); + push (@built_rules,"ACCEPT,FORWARDFW,$active,$src,$src1,tgt_addr,$target/32,,$prot,,TGT_PORT,$targetport,$remark,00:00,00:00,ON,$alias,$ipfireport,dnat"); + my $now=localtime; + print LOG "$now Converted-> KEY: $count ACCEPT,FORWARDFW,$active,$src,$src1,tgt_addr,$target/32,*,$prot,,TGT_PORT,$targetport,$remark,00:00,00:00,ON,$alias,$ipfireport,dnat\n"; + } +} +sub write_rules +{ + my $skip=''; + my $id; + print LOG "\nSTEP 3: Create DNAT rules in new firewall\n#########################################\n"; + &General::readhasharray($confignat,%nat); + foreach my $line (@built_rules){ + $skip=''; + my ($action,$chain,$active,$src,$src1,$tgt,$tgt1,$dummy,$prot,$dummy,$tgt_port,$tgt_port1,$remark,$from,$to,$use_port,$alias,$ipfireport,$dnat) = split (",",$line); + foreach my $key (sort keys %nat){ + if ($line eq "$nat{$key}[0],$nat{$key}[1],$nat{$key}[2],$nat{$key}[3],$nat{$key}[4],$nat{$key}[5],$nat{$key}[6],$nat{$key}[7],$nat{$key}[8],$nat{$key}[11],$nat{$key}[14],$nat{$key}[15],$nat{$key}[16],$nat{$key}[26],$nat{$key}[27],$nat{$key}[28],$nat{$key}[29],$nat{$key}[30],$nat{$key}[31]"){ + my $now=localtime; + print LOG "$now SKIP-> Rule $nat{$key}[0],$nat{$key}[1],$nat{$key}[2],$nat{$key}[3],$nat{$key}[4],$nat{$key}[5],$nat{$key}[6],$nat{$key}[7],$nat{$key}[8],$nat{$key}[11],$nat{$key}[14],$nat{$key}[15],$nat{$key}[16],$nat{$key}[26],$nat{$key}[27],$nat{$key}[28],$nat{$key}[29],$nat{$key}[30],$nat{$key}[31] ->EXISTS\n"; + $skip='1'; + } + } + if ($skip ne '1'){ + if ( $prot eq 'GRE'){ + $tgt_port=''; + $tgt_port1=''; + $use_port=''; + $ipfireport=''; + $use_prot=''; + } + $id = &General::findhasharraykey(%nat); + $nat{$id}[0] = $action; + $nat{$id}[1] = $chain; + $nat{$id}[2] = $active; + $nat{$id}[3] = $src; + $nat{$id}[4] = $src1; + $nat{$id}[5] = $tgt; + $nat{$id}[6] = $tgt1; + $nat{$id}[7] = $dummy; + $nat{$id}[8] = $prot; + $nat{$id}[11] = $use_port; + $nat{$id}[14] = $tgt_port; + $nat{$id}[15] = $tgt_port1; + $nat{$id}[16] = $remark; + $nat{$id}[26] = $from; + $nat{$id}[27] = $to; + $nat{$id}[28] = $use_port; + $nat{$id}[29] = $alias; + $nat{$id}[30] = $ipfireport; + $nat{$id}[31] = $dnat; + my $now=localtime; + print LOG "$now NEW RULE-> Rule $nat{$id}[0],$nat{$id}[1],$nat{$id}[2],$nat{$id}[3],$nat{$id}[4],$nat{$id}[5],$nat{$id}[6],$nat{$id}[11],$nat{$id}[12],$nat{$id}[13],$nat{$id}[14],$nat{$id}[15],$nat{$id}[16],$nat{$id}[26],$nat{$id}[27],$nat{$id}[28],$nat{$id}[29],$nat{$id}[30],$nat{$id}[31]\n"; + } + } + &General::writehasharray($confignat,%nat); +} +close (LOG); diff --git a/config/firewall/convert-xtaccess b/config/firewall/convert-xtaccess new file mode 100755 index 0000000..363af7a --- /dev/null +++ b/config/firewall/convert-xtaccess @@ -0,0 +1,141 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +# # +#This script converts old xtaccess rules to new firewall # +#Logfiles are created under /var/log/converters # +# # +############################################################################### +my @current=(); +my @alias=(); +my %configinputfw=(); +require '/var/ipfire/general-functions.pl'; +my $xtaccessconfig = "${General::swroot}/xtaccess/config"; +my $inputfwconfig = "${General::swroot}/firewall/input"; +my $aliasconfig = "${General::swroot}/ethernet/aliases"; +my $field0='ACCEPT'; +my $field1='INPUTFW'; +my $field2=''; #ON or emtpy +my $field3=''; #std_net_src or src_addr +my $field4=''; #ALL or IP-Address with /32 +my $field5='ipfire'; +my $field6=''; #Default IP or alias name +my $field11='ON'; #use target port +my $field12=''; #TCP or UDP +my $field13='All ICMP-Types'; +my $field14='TGT_PORT'; +my $field15=''; #Port Number +my $field16=''; #remark +my $field26='00:00'; +my $field27='00:00'; +my $field28 = ''; +my $field29 = 'ALL'; +my $field30 = ''; +my $field31 = 'dnat'; +open(FILE, $xtaccessconfig) or die 'Unable to open config file.'; +my @current = <FILE>; +close(FILE); +open(FILE1, $aliasconfig) or die 'Unable to open config file.'; +my @alias = <FILE1>; +close(FILE1); +&General::readhasharray($inputfwconfig,%configinputfw); + +foreach my $line (@current){ + my ($a,$b,$c,$d,$e,$f) = split (",",$line); + $e =~ s/\R//g; + if ($f gt ''){ + $f =~ s/\R//g; + $field16=$f; + } + #active or not + $field2=uc($d); + #get protocol + if ($a eq 'tcp'){ $field12 ='TCP';}else{$field12='UDP';} + #check source address + if ($b eq '0.0.0.0/0'){ + $field3='std_net_src'; + $field4='ALL'; + }elsif($b =~/^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $field3='src_addr'; + $field4=$b."/32"; + }elsif ($b =~ /^(.*?)/(.*?)$/) { + $field3='src_addr'; + $field4=$b; + }else{ + print "Regel konnte nicht konvertiert werden!\n"; + } + #check ipfire address + if ($e eq '0.0.0.0'){ + $field6 = 'RED1'; + }else{ + foreach my $line (@alias){ + my ($ip,$state,$aliasname) = split (",",$line); + if ($ip eq $e){ + $aliasname =~ s/\R//g; + $field6 = $aliasname; + } + } + } + #get target port + $c=~ s/\R//g; + $c=~ tr/-/:/; + if ($c =~ /^(\D):(\d+)$/) { + $c = "1:$2"; + } + if ($c =~ /^(\d+):(\D)$/) { + $c = "$1:65535"; + } + $field15=$c; + my $key = &General::findhasharraykey (%configinputfw); + foreach my $i (0 .. 31) { $configinputfw{$key}[$i] = "";} + $configinputfw{$key}[0] = $field0; + $configinputfw{$key}[1] = $field1; + $configinputfw{$key}[2] = $field2; + $configinputfw{$key}[3] = $field3; + $configinputfw{$key}[4] = $field4; + $configinputfw{$key}[5] = $field5; + $configinputfw{$key}[6] = $field6; + $configinputfw{$key}[7] = ''; + $configinputfw{$key}[8] = $field12; + $configinputfw{$key}[9] = ''; + $configinputfw{$key}[10] = ''; + $configinputfw{$key}[11] = $field11; + $configinputfw{$key}[12] = ''; + $configinputfw{$key}[13] = ''; + $configinputfw{$key}[14] = $field14; + $configinputfw{$key}[15] = $field15; + $configinputfw{$key}[16] = $field16; + $configinputfw{$key}[17] = ''; + $configinputfw{$key}[18] = ''; + $configinputfw{$key}[19] = ''; + $configinputfw{$key}[20] = ''; + $configinputfw{$key}[21] = ''; + $configinputfw{$key}[22] = ''; + $configinputfw{$key}[23] = ''; + $configinputfw{$key}[24] = ''; + $configinputfw{$key}[25] = ''; + $configinputfw{$key}[26] = $field26; + $configinputfw{$key}[27] = $field27; + $configinputfw{$key}[28] = $field28; + $configinputfw{$key}[29] = $field29; + $configinputfw{$key}[30] = $field30; + $configinputfw{$key}[31] = $field31; + &General::writehasharray($inputfwconfig,%configinputfw); +} diff --git a/config/firewall/firewall-lib.pl b/config/firewall/firewall-lib.pl new file mode 100755 index 0000000..fc80555 --- /dev/null +++ b/config/firewall/firewall-lib.pl @@ -0,0 +1,257 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +use strict; +no warnings 'uninitialized'; + +package fwlib; + +my %customnetwork=(); +my %customhost=(); +my %customgrp=(); +my %customservice=(); +my %customservicegrp=(); +my %ccdnet=(); +my %ccdhost=(); +my %ipsecconf=(); +my %ipsecsettings=(); +my %netsettings=(); +my %ovpnsettings=(); + +require '/var/ipfire/general-functions.pl'; + +my $confignet = "${General::swroot}/fwhosts/customnetworks"; +my $confighost = "${General::swroot}/fwhosts/customhosts"; +my $configgrp = "${General::swroot}/fwhosts/customgroups"; +my $configsrv = "${General::swroot}/fwhosts/customservices"; +my $configsrvgrp = "${General::swroot}/fwhosts/customservicegrp"; +my $configccdnet = "${General::swroot}/ovpn/ccd.conf"; +my $configccdhost = "${General::swroot}/ovpn/ovpnconfig"; +my $configipsec = "${General::swroot}/vpn/config"; +my $configovpn = "${General::swroot}/ovpn/settings"; +my $val; +my $field; + +&General::readhash("/var/ipfire/ethernet/settings", %netsettings); +&General::readhash("${General::swroot}/ovpn/settings", %ovpnsettings); +&General::readhash("${General::swroot}/vpn/settings", %ipsecsettings); + + +&General::readhasharray("$confignet", %customnetwork); +&General::readhasharray("$confighost", %customhost); +&General::readhasharray("$configgrp", %customgrp); +&General::readhasharray("$configccdnet", %ccdnet); +&General::readhasharray("$configccdhost", %ccdhost); +&General::readhasharray("$configipsec", %ipsecconf); +&General::readhasharray("$configsrv", %customservice); +&General::readhasharray("$configsrvgrp", %customservicegrp); + +sub get_srv_prot +{ + my $val=shift; + foreach my $key (sort {$a <=> $b} keys %customservice){ + if($customservice{$key}[0] eq $val){ + if ($customservice{$key}[0] eq $val){ + return $customservice{$key}[2]; + } + } + } +} +sub get_srvgrp_prot +{ + my $val=shift; + my @ips=(); + my $tcp; + my $udp; + my $icmp; + foreach my $key (sort {$a <=> $b} keys %customservicegrp){ + if($customservicegrp{$key}[0] eq $val){ + if (&get_srv_prot($customservicegrp{$key}[2]) eq 'TCP'){ + $tcp=1; + }elsif(&get_srv_prot($customservicegrp{$key}[2]) eq 'UDP'){ + $udp=1; + }elsif(&get_srv_prot($customservicegrp{$key}[2]) eq 'ICMP'){ + $icmp=1; + }else{ + #Protocols used in servicegroups + push (@ips,$customservicegrp{$key}[2]); + } + } + } + if ($tcp eq '1'){push (@ips,'TCP');} + if ($udp eq '1'){push (@ips,'UDP');} + if ($icmp eq '1'){push (@ips,'ICMP');} + my $back=join(",",@ips); + return $back; + +} + + +sub get_srv_port +{ + my $val=shift; + my $field=shift; + my $prot=shift; + foreach my $key (sort {$a <=> $b} keys %customservice){ + if($customservice{$key}[0] eq $val && $customservice{$key}[2] eq $prot){ + return $customservice{$key}[$field]; + } + } +} +sub get_srvgrp_port +{ + my $val=shift; + my $prot=shift; + my $back; + my $value; + my @ips=(); + foreach my $key (sort {$a <=> $b} keys %customservicegrp){ + if($customservicegrp{$key}[0] eq $val){ + if ($prot ne 'ICMP'){ + $value=&get_srv_port($customservicegrp{$key}[2],1,$prot); + }elsif ($prot eq 'ICMP'){ + $value=&get_srv_port($customservicegrp{$key}[2],3,$prot); + } + push (@ips,$value) if ($value ne '') ; + } + } + if($prot ne 'ICMP'){ + if ($#ips gt 0){$back="-m multiport --dports ";}else{$back="--dport ";} + }elsif ($prot eq 'ICMP'){ + $back="--icmp-type "; + } + + $back.=join(",",@ips); + return $back; +} +sub get_ipsec_net_ip +{ + my $val=shift; + my $field=shift; + foreach my $key (sort {$a <=> $b} keys %ipsecconf){ + if($ipsecconf{$key}[1] eq $val){ + return $ipsecconf{$key}[$field]; + } + } +} +sub get_ipsec_host_ip +{ + my $val=shift; + my $field=shift; + foreach my $key (sort {$a <=> $b} keys %ipsecconf){ + if($ipsecconf{$key}[1] eq $val){ + return $ipsecconf{$key}[$field]; + } + } +} +sub get_ovpn_n2n_ip +{ + my $val=shift; + my $field=shift; + foreach my $key (sort {$a <=> $b} keys %ccdhost){ + if($ccdhost{$key}[1] eq $val){ + return $ccdhost{$key}[$field]; + } + } +} +sub get_ovpn_host_ip +{ + my $val=shift; + my $field=shift; + foreach my $key (sort {$a <=> $b} keys %ccdhost){ + if($ccdhost{$key}[1] eq $val){ + return $ccdhost{$key}[$field]; + } + } +} +sub get_ovpn_net_ip +{ + + my $val=shift; + my $field=shift; + foreach my $key (sort {$a <=> $b} keys %ccdnet){ + if($ccdnet{$key}[0] eq $val){ + return $ccdnet{$key}[$field]; + } + } +} +sub get_grp_ip +{ + my $val=shift; + my $src=shift; + foreach my $key (sort {$a <=> $b} keys %customgrp){ + if ($customgrp{$key}[0] eq $val){ + &get_address($customgrp{$key}[3],$src); + } + } + +} +sub get_std_net_ip +{ + my $val=shift; + my $con=shift; + if ($val eq 'ALL'){ + return "0.0.0.0/0.0.0.0"; + }elsif($val eq 'GREEN'){ + return "$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}"; + }elsif($val eq 'ORANGE'){ + return "$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}"; + }elsif($val eq 'BLUE'){ + return "$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}"; + }elsif($val eq 'RED'){ + return "0.0.0.0/0 -o $con"; + }elsif($val =~ /OpenVPN/i){ + return "$ovpnsettings{'DOVPN_SUBNET'}"; + }elsif($val =~ /IPsec/i){ + return "$ipsecsettings{'RW_NET'}"; + }elsif($val eq 'IPFire'){ + return ; + } +} +sub get_net_ip +{ + my $val=shift; + foreach my $key (sort {$a <=> $b} keys %customnetwork){ + if($customnetwork{$key}[0] eq $val){ + return "$customnetwork{$key}[1]/$customnetwork{$key}[2]"; + } + } +} +sub get_host_ip +{ + my $val=shift; + my $src=shift; + foreach my $key (sort {$a <=> $b} keys %customhost){ + if($customhost{$key}[0] eq $val){ + if ($customhost{$key}[1] eq 'mac' && $src eq 'src'){ + return "-m mac --mac-source $customhost{$key}[2]"; + }elsif($customhost{$key}[1] eq 'ip' && $src eq 'src'){ + return "$customhost{$key}[2]"; + }elsif($customhost{$key}[1] eq 'ip' && $src eq 'tgt'){ + return "$customhost{$key}[2]"; + }elsif($customhost{$key}[1] eq 'mac' && $src eq 'tgt'){ + return "none"; + } + } + } +} + +return 1; diff --git a/config/firewall/firewall-policy b/config/firewall/firewall-policy new file mode 100755 index 0000000..6d26d5b --- /dev/null +++ b/config/firewall/firewall-policy @@ -0,0 +1,124 @@ +#!/bin/sh +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) +eval $(/usr/local/bin/readhash /var/ipfire/firewall/settings) +eval $(/usr/local/bin/readhash /var/ipfire/optionsfw/settings) + +iptables -F POLICYFWD +iptables -F POLICYOUT +iptables -F POLICYIN + +if [ -f "/var/ipfire/red/iface" ]; then + IFACE="$(</var/ipfire/red/iface)" +fi + +# Figure out what devices are configured. +HAVE_BLUE="false" +HAVE_ORANGE="false" + +case "${CONFIG_TYPE}" in + 2) + HAVE_BLUE="true" + ;; + 3) + HAVE_ORANGE="true" + ;; + 4) + HAVE_BLUE="true" + HAVE_ORANGE="true" + ;; +esac + +# INPUT +case "${FWPOLICY2}" in + REJECT) + if [ "${DROPINPUT}" = "on" ]; then + /sbin/iptables -A POLICYIN -m limit --limit 10/minute -j LOG --log-prefix "REJECT_INPUT" + fi + /sbin/iptables -A POLICYIN -j REJECT --reject-with icmp-host-unreachable -m comment --comment "DROP_INPUT" + ;; + *) # DROP + if [ "${DROPINPUT}" = "on" ]; then + /sbin/iptables -A POLICYIN -m limit --limit 10/minute -j LOG --log-prefix "DROP_INPUT" + fi + /sbin/iptables -A POLICYIN -j DROP -m comment --comment "DROP_INPUT" + ;; +esac + +# FORWARD +case "${POLICY}" in + MODE1) + case "${FWPOLICY}" in + REJECT) + if [ "${DROPFORWARD}" = "on" ]; then + /sbin/iptables -A POLICYFWD -m limit --limit 10/minute -j LOG --log-prefix "REJECT_FORWARD" + fi + /sbin/iptables -A POLICYFWD -j REJECT --reject-with icmp-host-unreachable -m comment --comment "DROP_FORWARD" + ;; + *) # DROP + if [ "${DROPFORWARD}" = "on" ]; then + /sbin/iptables -A POLICYFWD -m limit --limit 10/minute -j LOG --log-prefix "DROP_FORWARD" + fi + /sbin/iptables -A POLICYFWD -j DROP -m comment --comment "DROP_FORWARD" + ;; + esac + ;; + + *) + if [ -n "${IFACE}" ]; then + if [ "${HAVE_BLUE}" = "true" ] && [ -n "${BLUE_DEV}" ]; then + /sbin/iptables -A POLICYFWD -i "${BLUE_DEV}" ! -o "${IFACE}" -j DROP + fi + if [ "${HAVE_ORANGE}" = "true" ] && [ -n "${ORANGE_DEV}" ]; then + /sbin/iptables -A POLICYFWD -i "${ORANGE_DEV}" ! -o "${IFACE}" -j DROP + fi + fi + /sbin/iptables -A POLICYFWD -j ACCEPT + /sbin/iptables -A POLICYFWD -m comment --comment "DROP_FORWARD" -j DROP + ;; +esac + +# OUTGOING +case "${POLICY1}" in + MODE1) + case "${FWPOLICY1}" in + REJECT) + if [ "${DROPOUTGOING}" = "on" ]; then + /sbin/iptables -A POLICYOUT -m limit --limit 10/minute -j LOG --log-prefix "REJECT_OUTPUT" + fi + /sbin/iptables -A POLICYOUT -j REJECT --reject-with icmp-host-unreachable -m comment --comment "DROP_OUTPUT" + ;; + *) # DROP + if [ "${DROPOUTGOING}" == "on" ]; then + /sbin/iptables -A POLICYOUT -m limit --limit 10/minute -j LOG --log-prefix "DROP_OUTPUT" + fi + /sbin/iptables -A POLICYOUT -j DROP -m comment --comment "DROP_OUTPUT" + ;; + esac + ;; + *) + /sbin/iptables -A POLICYOUT -j ACCEPT + /sbin/iptables -A POLICYOUT -m comment --comment "DROP_OUTPUT" -j DROP + ;; +esac + +exit 0 diff --git a/config/firewall/p2protocols b/config/firewall/p2protocols new file mode 100644 index 0000000..7000581 --- /dev/null +++ b/config/firewall/p2protocols @@ -0,0 +1,9 @@ +Applejuice;apple;off; +Ares;ares;off; +Bittorrent;bit;off; +DirectConnect;dc;off; +Edonkey;edk;off; +Gnutella;gnu;off; +KaZaA;kazaa;off; +SoulSeek;soul;off; +WinMX;winmx;off; diff --git a/config/firewall/rules.pl b/config/firewall/rules.pl new file mode 100755 index 0000000..d0a9e20 --- /dev/null +++ b/config/firewall/rules.pl @@ -0,0 +1,664 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +use strict; +use Time::Local; +no warnings 'uninitialized'; + +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +my %fwdfwsettings=(); +my %defaultNetworks=(); +my %configfwdfw=(); +my %color=(); +my %icmptypes=(); +my %ovpnSettings=(); +my %customgrp=(); +our %sourcehash=(); +our %targethash=(); +my @timeframe=(); +my %configinputfw=(); +my %configoutgoingfw=(); +my %confignatfw=(); +my %aliases=(); +my @DPROT=(); +my @p2ps=(); +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/firewall/bin/firewall-lib.pl"; + +my $configfwdfw = "${General::swroot}/firewall/config"; +my $configinput = "${General::swroot}/firewall/input"; +my $configoutgoing = "${General::swroot}/firewall/outgoing"; +my $p2pfile = "${General::swroot}/firewall/p2protocols"; +my $configgrp = "${General::swroot}/fwhosts/customgroups"; +my $netsettings = "${General::swroot}/ethernet/settings"; +my $errormessage = ''; +my $orange = ''; +my $green = ''; +my $blue = ''; +my ($TYPE,$PROT,$SPROT,$DPROT,$SPORT,$DPORT,$TIME,$TIMEFROM,$TIMETILL,$SRC_TGT); +my $CHAIN = "FORWARDFW"; +my $conexists = 'off'; +my $command = 'iptables -A'; +my $dnat =''; +my $snat =''; + +&General::readhash("${General::swroot}/firewall/settings", %fwdfwsettings); +&General::readhash("$netsettings", %defaultNetworks); +&General::readhasharray($configfwdfw, %configfwdfw); +&General::readhasharray($configinput, %configinputfw); +&General::readhasharray($configoutgoing, %configoutgoingfw); +&General::readhasharray($configgrp, %customgrp); +&General::get_aliases(%aliases); + +#check if we have an internetconnection +open (CONN,"/var/ipfire/red/iface"); +my $con = <CONN>; +close(CONN); +if (-f "/var/ipfire/red/active"){ + $conexists='on'; +} +open (CONN1,"/var/ipfire/red/local-ipaddress"); +my $redip = <CONN1>; +close(CONN1); +################# +# DEBUG/TEST # +################# +my $MODE=0; # 0 - normal operation + # 1 - print configline and rules to console + # +################# +my $param=shift; + +if($param eq 'flush'){ + if ($MODE eq '1'){ + print " Flushing chains...\n"; + } + &flush; +}else{ + if ($MODE eq '1'){ + print " Flushing chains...\n"; + } + &flush; + if ($MODE eq '1'){ + print " Preparing rules...\n"; + } + &preparerules; + if($MODE eq '0'){ + if ($fwdfwsettings{'POLICY'} eq 'MODE1'){ + &p2pblock; + system ("/usr/sbin/firewall-policy"); + }elsif($fwdfwsettings{'POLICY'} eq 'MODE2'){ + &p2pblock; + system ("iptables -A $CHAIN -m conntrack --ctstate NEW -j ACCEPT"); + system ("/usr/sbin/firewall-policy"); + system ("/etc/sysconfig/firewall.local reload"); + } + } +} +sub flush +{ + system ("iptables -F FORWARDFW"); + system ("iptables -F INPUTFW"); + system ("iptables -F OUTGOINGFW"); + system ("iptables -t nat -F NAT_DESTINATION"); + system ("iptables -t nat -F NAT_SOURCE"); +} +sub preparerules +{ + if (! -z "${General::swroot}/firewall/config"){ + &buildrules(%configfwdfw); + } + if (! -z "${General::swroot}/firewall/input"){ + &buildrules(%configinputfw); + } + if (! -z "${General::swroot}/firewall/outgoing"){ + &buildrules(%configoutgoingfw); + } +} +sub buildrules +{ + my $hash=shift; + my $STAG; + my $natip; + my $snatport; + my $fireport; + my $nat; + my $fwaccessdport; + my $natchain; + my $icmptype; + foreach my $key (sort {$a <=> $b} keys %$hash){ + next if (($$hash{$key}[6] eq 'RED' || $$hash{$key}[6] eq 'RED1') && $conexists eq 'off' ); + $command="iptables -A"; + if ($$hash{$key}[28] eq 'ON'){ + $command='iptables -t nat -A'; + $natip=&get_nat_ip($$hash{$key}[29],$$hash{$key}[31]); + if($$hash{$key}[31] eq 'dnat'){ + $nat='DNAT'; + if ($$hash{$key}[30] =~ /|/){ + $$hash{$key}[30]=~ tr/|/,/; + $fireport='-m multiport --dport '.$$hash{$key}[30]; + }else{ + $fireport='--dport '.$$hash{$key}[30] if ($$hash{$key}[30]>0); + } + }else{ + $nat='SNAT'; + } + } + $STAG=''; + if($$hash{$key}[2] eq 'ON'){ + #get source ip's + if ($$hash{$key}[3] eq 'cust_grp_src'){ + foreach my $grp (sort {$a <=> $b} keys %customgrp){ + if($customgrp{$grp}[0] eq $$hash{$key}[4]){ + &get_address($customgrp{$grp}[3],$customgrp{$grp}[2],"src"); + } + } + }else{ + &get_address($$hash{$key}[3],$$hash{$key}[4],"src"); + } + #get target ip's + if ($$hash{$key}[5] eq 'cust_grp_tgt'){ + foreach my $grp (sort {$a <=> $b} keys %customgrp){ + if($customgrp{$grp}[0] eq $$hash{$key}[6]){ + &get_address($customgrp{$grp}[3],$customgrp{$grp}[2],"tgt"); + } + } + }elsif($$hash{$key}[5] eq 'ipfire' ){ + if($$hash{$key}[6] eq 'GREEN'){ + $targethash{$key}[0]=$defaultNetworks{'GREEN_ADDRESS'}; + } + if($$hash{$key}[6] eq 'BLUE'){ + $targethash{$key}[0]=$defaultNetworks{'BLUE_ADDRESS'}; + } + if($$hash{$key}[6] eq 'ORANGE'){ + $targethash{$key}[0]=$defaultNetworks{'ORANGE_ADDRESS'}; + } + if($$hash{$key}[6] eq 'ALL'){ + $targethash{$key}[0]='0.0.0.0/0'; + } + if($$hash{$key}[6] eq 'RED' || $$hash{$key}[6] eq 'RED1'){ + open(FILE, "/var/ipfire/red/local-ipaddress")or die "Couldn't open local-ipaddress"; + $targethash{$key}[0]= <FILE>; + close(FILE); + }else{ + foreach my $alias (sort keys %aliases){ + if ($$hash{$key}[6] eq $alias){ + $targethash{$key}[0]=$aliases{$alias}{'IPT'}; + } + } + } + }else{ + &get_address($$hash{$key}[5],$$hash{$key}[6],"tgt"); + } + ##get source prot and port + $SRC_TGT='SRC'; + $SPORT = &get_port($hash,$key); + $SRC_TGT=''; + + ##get target prot and port + $DPROT=&get_prot($hash,$key); + + if ($DPROT eq ''){$DPROT=' ';} + @DPROT=split(",",$DPROT); + + #get time if defined + if($$hash{$key}[18] eq 'ON'){ + my ($time1,$time2,$daylight); + my $daylight=$$hash{$key}[28]; + $time1=&get_time($$hash{$key}[26],$daylight); + $time2=&get_time($$hash{$key}[27],$daylight); + if($$hash{$key}[19] ne ''){push (@timeframe,"Mon");} + if($$hash{$key}[20] ne ''){push (@timeframe,"Tue");} + if($$hash{$key}[21] ne ''){push (@timeframe,"Wed");} + if($$hash{$key}[22] ne ''){push (@timeframe,"Thu");} + if($$hash{$key}[23] ne ''){push (@timeframe,"Fri");} + if($$hash{$key}[24] ne ''){push (@timeframe,"Sat");} + if($$hash{$key}[25] ne ''){push (@timeframe,"Sun");} + $TIME=join(",",@timeframe); + + $TIMEFROM="--timestart $time1 "; + $TIMETILL="--timestop $time2 "; + $TIME="-m time --weekdays $TIME $TIMEFROM $TIMETILL"; + } + if ($MODE eq '1'){ + print "NR:$key "; + foreach my $i (0 .. $#{$$hash{$key}}){ + print "$i: $$hash{$key}[$i] "; + } + print "\n"; + print"##################################\n"; + #print rules to console + foreach my $DPROT (@DPROT){ + $DPORT = &get_port($hash,$key,$DPROT); + if ($DPROT ne 'TCP' && $DPROT ne 'UDP' && $DPROT ne 'ICMP' ){ + $DPORT=''; + } + $PROT=$DPROT; + $PROT="-p $PROT" if ($PROT ne '' && $PROT ne ' '); + foreach my $a (sort keys %sourcehash){ + foreach my $b (sort keys %targethash){ + if ($sourcehash{$a}[0] ne $targethash{$b}[0] && $targethash{$b}[0] ne 'none' || $sourcehash{$a}[0] eq '0.0.0.0/0.0.0.0'){ + if($DPROT ne ''){ + if(substr($sourcehash{$a}[0], 3, 3) ne 'mac' && $sourcehash{$a}[0] ne ''){ $STAG="-s";} + #Process ICMP RULE + if(substr($DPORT, 2, 4) eq 'icmp'){ + my @icmprule= split(",",substr($DPORT, 12,)); + foreach (@icmprule){ + $icmptype="--icmp-type "; + if ($_ eq "BLANK") { + $icmptype=""; + $_=""; + } + if ($$hash{$key}[17] eq 'ON'){ + print "$command $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $icmptype $_ $TIME -j LOG\n"; + } + print "$command $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $icmptype $_ $TIME -j $$hash{$key}[0]\n"; + } + #PROCESS DNAT RULE (Portforward) + }elsif($$hash{$key}[28] eq 'ON' && $$hash{$key}[31] eq 'dnat'){ + $natchain='NAT_DESTINATION'; + if ($$hash{$key}[17] eq 'ON'){ + print "$command $natchain $PROT $STAG $sourcehash{$a}[0] $SPORT $natip $fireport $TIME -j LOG --log-prefix 'DNAT' \n"; + } + my ($ip,$sub) =split("/",$targethash{$b}[0]); + #Process NAT with servicegroup used + if ($$hash{$key}[28] eq 'ON' && $$hash{$key}[31] eq 'dnat' && $$hash{$key}[14] eq 'cust_srvgrp'){ + print "$command $natchain $PROT $STAG $sourcehash{$a}[0] $SPORT $natip $fireport $TIME -j $nat --to $ip $DPORT\n"; + $fwaccessdport=$DPORT; + }else{ + print "$command $natchain $PROT $STAG $sourcehash{$a}[0] $SPORT $natip $fireport $TIME -j $nat --to $ip$DPORT\n"; + $DPORT =~ s/-/:/g; + if ($DPORT){ + $fwaccessdport="--dport ".substr($DPORT,1,); + }elsif(! $DPORT && $$hash{$key}[30] ne ''){ + if ($$hash{$key}[30]=~m/|/i){ + $$hash{$key}[30] =~ s/|/,/g; + $fwaccessdport="-m multiport --dport $$hash{$key}[30]"; + }else{ + $fwaccessdport="--dport $$hash{$key}[30]"; + } + } + } + print "iptables -A FORWARDFW $PROT -i $con $STAG $sourcehash{$a}[0] -d $ip $fwaccessdport $TIME -j $$hash{$key}[0]\n"; + next; + #PROCESS SNAT RULE + }elsif($$hash{$key}[28] eq 'ON' && $$hash{$key}[31] eq 'snat'){ + $natchain='NAT_SOURCE'; + if ($$hash{$key}[17] eq 'ON' ){ + print "$command $natchain $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j LOG --log-prefix 'SNAT' \n"; + } + print "$command $natchain $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j $nat --to $natip\n"; + } + #PROCESS EVERY OTHER RULE (If NOT ICMP, else the rule would be applied double) + if ($PROT ne '-p ICMP'){ + if ($$hash{$key}[17] eq 'ON' && $$hash{$key}[28] ne 'ON'){ + print "$command $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j LOG\n"; + } + print "iptables -A $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j $$hash{$key}[0]\n"; + } + #PROCESS Prot ICMP and type = All ICMP-Types + if ($PROT eq '-p ICMP' && $$hash{$key}[9] eq 'All ICMP-Types'){ + if ($$hash{$key}[17] eq 'ON' && $$hash{$key}[28] ne 'ON'){ + print "$command $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j LOG\n"; + } + print "iptables -A $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j $$hash{$key}[0]\n"; + } + } + } + } + } + print"\n"; + } + }elsif($MODE eq '0'){ + foreach my $DPROT (@DPROT){ + $DPORT = &get_port($hash,$key,$DPROT); + $PROT=$DPROT; + $PROT="-p $PROT" if ($PROT ne '' && $PROT ne ' '); + if ($DPROT ne 'TCP' && $DPROT ne'UDP' && $DPROT ne 'ICMP' ){ + $DPORT=''; + } + foreach my $a (sort keys %sourcehash){ + foreach my $b (sort keys %targethash){ + if ($sourcehash{$a}[0] ne $targethash{$b}[0] && $targethash{$b}[0] ne 'none' || $sourcehash{$a}[0] eq '0.0.0.0/0.0.0.0'){ + if($DPROT ne ''){ + if(substr($sourcehash{$a}[0], 3, 3) ne 'mac' && $sourcehash{$a}[0] ne ''){ $STAG="-s";} + #Process ICMP RULE + if(substr($DPORT, 2, 4) eq 'icmp'){ + my @icmprule= split(",",substr($DPORT, 12,)); + foreach (@icmprule){ + $icmptype="--icmp-type "; + if ($_ eq "BLANK") { + $icmptype=""; + $_=""; + } + if ($$hash{$key}[17] eq 'ON'){ + system ("$command $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $icmptype $_ $TIME -j LOG"); + } + system ("$command $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $icmptype $_ $TIME -j $$hash{$key}[0]"); + } + #PROCESS DNAT RULE (Portforward) + }elsif($$hash{$key}[28] eq 'ON' && $$hash{$key}[31] eq 'dnat'){ + $natchain='NAT_DESTINATION'; + if ($$hash{$key}[17] eq 'ON'){ + system "$command $natchain $PROT $STAG $sourcehash{$a}[0] $SPORT $natip $fireport $TIME -j LOG --log-prefix 'DNAT' \n"; + } + my ($ip,$sub) =split("/",$targethash{$b}[0]); + #Process NAT with servicegroup used + if ($$hash{$key}[28] eq 'ON' && $$hash{$key}[31] eq 'dnat' && $$hash{$key}[14] eq 'cust_srvgrp'){ + system "$command $natchain $PROT $STAG $sourcehash{$a}[0] $SPORT $natip $fireport $TIME -j $nat --to $ip $DPORT\n"; + $fwaccessdport=$DPORT; + }else{ + system "$command $natchain $PROT $STAG $sourcehash{$a}[0] $SPORT $natip $fireport $TIME -j $nat --to $ip$DPORT\n"; + $DPORT =~ s/-/:/g; + if ($DPORT){ + $fwaccessdport="--dport ".substr($DPORT,1,); + }elsif(! $DPORT && $$hash{$key}[30] ne ''){ + if ($$hash{$key}[30]=~m/|/i){ + $$hash{$key}[30] =~ s/|/,/g; + $fwaccessdport="-m multiport --dport $$hash{$key}[30]"; + }else{ + $fwaccessdport="--dport $$hash{$key}[30]"; + } + } + } + system "iptables -A FORWARDFW $PROT -i $con $STAG $sourcehash{$a}[0] -d $ip $fwaccessdport $TIME -j $$hash{$key}[0]\n"; + next; + #PROCESS SNAT RULE + }elsif($$hash{$key}[28] eq 'ON' && $$hash{$key}[31] eq 'snat'){ + $natchain='NAT_SOURCE'; + if ($$hash{$key}[17] eq 'ON' ){ + system "$command $natchain $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j LOG --log-prefix 'SNAT' \n"; + } + system "$command $natchain $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j $nat --to $natip\n"; + } + #PROCESS EVERY OTHER RULE (If NOT ICMP, else the rule would be applied double) + if ($PROT ne '-p ICMP'){ + if ($$hash{$key}[17] eq 'ON' && $$hash{$key}[28] ne 'ON'){ + system "$command $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j LOG\n"; + } + system "iptables -A $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j $$hash{$key}[0]\n"; + } + #PROCESS Prot ICMP and type = All ICMP-Types + if ($PROT eq '-p ICMP' && $$hash{$key}[9] eq 'All ICMP-Types'){ + if ($$hash{$key}[17] eq 'ON' && $$hash{$key}[28] ne 'ON'){ + system "$command $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j LOG\n"; + } + system "iptables -A $$hash{$key}[1] $PROT $STAG $sourcehash{$a}[0] $SPORT -d $targethash{$b}[0] $DPORT $TIME -j $$hash{$key}[0]\n"; + } + } + } + } + } + } + } + } + %sourcehash=(); + %targethash=(); + undef $TIME; + undef $TIMEFROM; + undef $TIMETILL; + undef $fireport; + } +} +sub get_nat_ip +{ + my $val=shift; + my $type=shift; + my $result; + if($val eq 'RED' || $val eq 'GREEN' || $val eq 'ORANGE' || $val eq 'BLUE'){ + $result=$defaultNetworks{$val.'_ADDRESS'}; + }elsif($val eq 'ALL'){ + $result='-i '.$con; + }elsif($val eq 'Default IP' && $type eq 'dnat'){ + $result='-d '.$redip; + }elsif($val eq 'Default IP' && $type eq 'snat'){ + $result=$redip; + }else{ + foreach my $al (sort keys %aliases){ + if($val eq $al && $type eq 'dnat'){ + $result='-d '.$aliases{$al}{'IPT'}; + }elsif($val eq $al && $type eq 'snat'){ + $result=$aliases{$al}{'IPT'}; + } + } + } + return $result; +} +sub get_time +{ + my $val=shift; + my $val1=shift; + my $time; + my $minutes; + my $ruletime; + $minutes = &utcmin($val); + $ruletime = $minutes + &time_get_utc($val); + if ($ruletime < 0){$ruletime +=1440;} + if ($ruletime > 1440){$ruletime -=1440;} + $time=sprintf "%02d:%02d", $ruletime / 60, $ruletime % 60; + return $time; +} +sub time_get_utc +{ + # Calculates the UTCtime from a given time + my $val=shift; + my @localtime=localtime(time); + my @gmtime=gmtime(time); + my $diff = ($gmtime[2]*60+$gmtime[1]%60)-($localtime[2]*60+$localtime[1]%60); + return $diff; +} +sub utcmin +{ + my $ruletime=shift; + my ($hrs,$min) = split(":",$ruletime); + my $newtime = $hrs*60+$min; + return $newtime; +} +sub p2pblock +{ + my $P2PSTRING; + my $DO; + open( FILE, "< $p2pfile" ) or die "Unable to read $p2pfile"; + @p2ps = <FILE>; + close FILE; + my $CMD = "-m ipp2p"; + foreach my $p2pentry (sort @p2ps) { + my @p2pline = split( /;/, $p2pentry ); + if ( $fwdfwsettings{'POLICY'} eq 'MODE1' ) { + $DO = "ACCEPT"; + if ("$p2pline[2]" eq "on") { + $P2PSTRING = "$P2PSTRING --$p2pline[1]"; + } + }else { + $DO = "RETURN"; + if ("$p2pline[2]" eq "off") { + $P2PSTRING = "$P2PSTRING --$p2pline[1]"; + } + } + } + if ($MODE eq 1){ + if($P2PSTRING){ + print"/sbin/iptables -A FORWARDFW $CMD $P2PSTRING -j $DO\n"; + } + }else{ + if($P2PSTRING){ + system("/sbin/iptables -A FORWARDFW $CMD $P2PSTRING -j $DO"); + } + } +} +sub get_address +{ + my $base=shift; #source of checking ($configfwdfw{$key}[x] or groupkey + my $base2=shift; + my $type=shift; #src or tgt + my $hash; + if ($type eq 'src'){ + $hash=%sourcehash; + }else{ + $hash=%targethash; + } + my $key = &General::findhasharraykey($hash); + if($base eq 'src_addr' || $base eq 'tgt_addr' ){ + if (&General::validmac($base2)){ + $$hash{$key}[0] = "-m mac --mac-source $base2"; + }else{ + $$hash{$key}[0] = $base2; + } + }elsif($base eq 'std_net_src' || $base eq 'std_net_tgt' || $base eq 'Standard Network'){ + $$hash{$key}[0]=&fwlib::get_std_net_ip($base2,$con); + }elsif($base eq 'cust_net_src' || $base eq 'cust_net_tgt' || $base eq 'Custom Network'){ + $$hash{$key}[0]=&fwlib::get_net_ip($base2); + }elsif($base eq 'cust_host_src' || $base eq 'cust_host_tgt' || $base eq 'Custom Host'){ + $$hash{$key}[0]=&fwlib::get_host_ip($base2,$type); + }elsif($base eq 'ovpn_net_src' || $base eq 'ovpn_net_tgt' || $base eq 'OpenVPN static network'){ + $$hash{$key}[0]=&fwlib::get_ovpn_net_ip($base2,1); + }elsif($base eq 'ovpn_host_src' ||$base eq 'ovpn_host_tgt' || $base eq 'OpenVPN static host'){ + $$hash{$key}[0]=&fwlib::get_ovpn_host_ip($base2,33); + }elsif($base eq 'ovpn_n2n_src' ||$base eq 'ovpn_n2n_tgt' || $base eq 'OpenVPN N-2-N'){ + $$hash{$key}[0]=&fwlib::get_ovpn_n2n_ip($base2,11); + }elsif($base eq 'ipsec_net_src' || $base eq 'ipsec_net_tgt' || $base eq 'IpSec Network'){ + $$hash{$key}[0]=&fwlib::get_ipsec_net_ip($base2,11); + }elsif($base eq 'ipfire_src' ){ + if($base2 eq 'GREEN'){ + $$hash{$key}[0]=$defaultNetworks{'GREEN_ADDRESS'}; + } + if($base2 eq 'BLUE'){ + $$hash{$key}[0]=$defaultNetworks{'BLUE_ADDRESS'}; + } + if($base2 eq 'ORANGE'){ + $$hash{$key}[0]=$defaultNetworks{'ORANGE_ADDRESS'}; + } + if($base2 eq 'ALL'){ + $$hash{$key}[0]='0.0.0.0/0'; + } + if($base2 eq 'RED' || $base2 eq 'RED1'){ + open(FILE, "/var/ipfire/red/local-ipaddress")or die "Couldn't open local-ipaddress"; + $$hash{$key}[0]= <FILE>; + close(FILE); + }else{ + foreach my $alias (sort keys %aliases){ + if ($base2 eq $alias){ + $$hash{$key}[0]=$aliases{$alias}{'IPT'}; + } + } + } + } +} +sub get_prot +{ + my $hash=shift; + my $key=shift; + #check AH,GRE,ESP or ICMP + if ($$hash{$key}[7] ne 'ON' && $$hash{$key}[11] ne 'ON'){ + return "$$hash{$key}[8]"; + } + if ($$hash{$key}[7] eq 'ON' || $$hash{$key}[11] eq 'ON'){ + #check if servicegroup or service + if($$hash{$key}[14] eq 'cust_srv'){ + return &fwlib::get_srv_prot($$hash{$key}[15]); + }elsif($$hash{$key}[14] eq 'cust_srvgrp'){ + return &fwlib::get_srvgrp_prot($$hash{$key}[15]); + }elsif (($$hash{$key}[10] ne '' || $$hash{$key}[15] ne '') && $$hash{$key}[8] eq ''){ #when ports are used and prot set to "all" + return "TCP,UDP"; + }elsif (($$hash{$key}[10] ne '' || $$hash{$key}[15] ne '') && ($$hash{$key}[8] eq 'TCP' || $$hash{$key}[8] eq 'UDP')){ #when ports are used and prot set to "tcp" or "udp" + return "$$hash{$key}[8]"; + }elsif (($$hash{$key}[10] eq '' && $$hash{$key}[15] eq '') && $$hash{$key}[8] ne 'ICMP'){ #when ports are NOT used and prot NOT set to "ICMP" + return "$$hash{$key}[8]"; + }else{ + return "$$hash{$key}[8]"; + } + } + #DNAT + if ($SRC_TGT eq '' && $$hash{$key}[31] eq 'dnat' && $$hash{$key}[11] eq '' && $$hash{$key}[12] ne ''){ + return "$$hash{$key}[8]"; + } +} +sub get_port +{ + my $hash=shift; + my $key=shift; + my $prot=shift; + #Get manual defined Ports from SOURCE + if ($$hash{$key}[7] eq 'ON' && $SRC_TGT eq 'SRC'){ + if ($$hash{$key}[10] ne ''){ + $$hash{$key}[10] =~ s/|/,/g; + if(index($$hash{$key}[10],",") > 0){ + return "-m multiport --sport $$hash{$key}[10] "; + }else{ + if($$hash{$key}[28] ne 'ON' || ($$hash{$key}[28] eq 'ON' && $$hash{$key}[31] eq 'snat') ||($$hash{$key}[28] eq 'ON' && $$hash{$key}[31] eq 'dnat') ){ + return "--sport $$hash{$key}[10] "; + }else{ + return ":$$hash{$key}[10]"; + } + } + } + #Get manual ports from TARGET + }elsif($$hash{$key}[11] eq 'ON' && $SRC_TGT eq ''){ + if($$hash{$key}[14] eq 'TGT_PORT'){ + if ($$hash{$key}[15] ne ''){ + $$hash{$key}[15] =~ s/|/,/g; + if(index($$hash{$key}[15],",") > 0){ + return "-m multiport --dport $$hash{$key}[15] "; + }else{ + if($$hash{$key}[28] ne 'ON' || ($$hash{$key}[28] eq 'ON' && $$hash{$key}[31] eq 'snat') ){ + return "--dport $$hash{$key}[15] "; + }else{ + $$hash{$key}[15] =~ s/:/-/g; + return ":$$hash{$key}[15]"; + } + } + } + #Get ports defined in custom Service (firewall-groups) + }elsif($$hash{$key}[14] eq 'cust_srv'){ + if ($prot ne 'ICMP'){ + if($$hash{$key}[31] eq 'dnat' && $$hash{$key}[28] eq 'ON'){ + my $ports =&fwlib::get_srv_port($$hash{$key}[15],1,$prot); + $ports =~ s/:/-/g; + return ":".$ports + }else{ + return "--dport ".&fwlib::get_srv_port($$hash{$key}[15],1,$prot); + } + }elsif($prot eq 'ICMP' && $$hash{$key}[11] eq 'ON'){ #When PROT is ICMP and "use targetport is checked, this is an icmp-service + return "--icmp-type ".&fwlib::get_srv_port($$hash{$key}[15],3,$prot); + } + #Get ports from services which are used in custom servicegroups (firewall-groups) + }elsif($$hash{$key}[14] eq 'cust_srvgrp'){ + if ($prot ne 'ICMP'){ + return &fwlib::get_srvgrp_port($$hash{$key}[15],$prot); + } + elsif($prot eq 'ICMP'){ + return &fwlib::get_srvgrp_port($$hash{$key}[15],$prot); + } + } + } + #CHECK ICMP + if ($$hash{$key}[7] ne 'ON' && $$hash{$key}[11] ne 'ON' && $SRC_TGT eq ''){ + if($$hash{$key}[9] ne '' && $$hash{$key}[9] ne 'All ICMP-Types'){ + return "--icmp-type $$hash{$key}[9] "; + }elsif($$hash{$key}[9] eq 'All ICMP-Types'){ + return; + } + } +} diff --git a/config/fwhosts/customservices b/config/fwhosts/customservices new file mode 100644 index 0000000..7f9ae3a --- /dev/null +++ b/config/fwhosts/customservices @@ -0,0 +1,34 @@ +32,rsync,873,TCP,BLANK,0 +33,DNS (UDP),53,UDP,,0 +21,IMAPS,993,TCP,BLANK,0 +7,WINS,42,TCP,BLANK,0 +26,LPD,515,TCP,BLANK,0 +2,FTP-control,21,TCP,BLANK,0 +17,IRC,194,TCP,BLANK,0 +1,FTP-data,20,TCP,BLANK,0 +18,HTTPS,443,TCP,BLANK,0 +30,NFS,2049,TCP,BLANK,0 +16,SNMP,161,UDP,BLANK,0 +27,JetDirect,9100,TCP,BLANK,0 +25,IPP (UDP),631,UDP,BLANK,0 +28,LDAP,389,TCP,BLANK,0 +14,NetBIOS Session Service,139,TCP,BLANK,0 +20,FTPS control,990,TCP,BLANK,0 +24,IPP (TCP),631,TCP,BLANK,0 +10,SFTP,115,TCP,BLANK,0 +31,Radius,1812,TCP,BLANK,0 +11,NTP,123,UDP,BLANK,0 +22,POP3S,995,TCP,BLANK,0 +23,RDP,3389,TCP,BLANK,0 +13,NetBIOS Datagram Service,138,TCP,BLANK,0 +29,LDAPS,636,TCP,BLANK,0 +6,Time,37,TCP,BLANK,0 +3,SSH,22,TCP,BLANK,0 +9,POP3,110,TCP,BLANK,0 +12,NetBIOS Name Service,137,TCP,BLANK,0 +15,IMAP,143,TCP,BLANK,0 +8,HTTP,80,TCP,BLANK,0 +4,Telnet,23,UDP,BLANK,0 +34,DNS (TCP),53,TCP,,0 +19,FTPS data,989,TCP,BLANK,0 +5,SMTP,25,TCP,BLANK,0 diff --git a/config/fwhosts/icmp-types b/config/fwhosts/icmp-types new file mode 100755 index 0000000..a9066a8 --- /dev/null +++ b/config/fwhosts/icmp-types @@ -0,0 +1,36 @@ +0,echo-reply,0 +1,destination-unreachable,3 +2,network-unreachable,3/0 +3,host-unreachable,3/1 +4,protocol-unreachable,3/2 +5,port-unreachable,3/3 +6,fragmentation-needed,3/4 +7,source-route-failed,3/5 +8,network-unknown,3/6 +9,host-unknown,3/7 +10,network-prohibited,3/9 +11,host-prohibited,3/10 +12,TOS-network-unreachable,3/11 +13,TOS-host-unreachable,3/12 +14,communication-prohibited,3/13 +15,host-precedence-violation,3/14 +16,precedence-cutoff,3/15 +17,source-quench,4 +18,redirect,5 +19,network-redirect,5/0 +20,host-redirect,5/1 +21,TOS-network-redirect,5/2 +22,TOS-host-redirect,5/3 +23,echo-request,8 +24,router-advertisement,9 +25,router-solicitation,10 +26,time-exceeded,11 +27,ttl-zero-during-transit,11/0 +28,ttl-zero-during-reassembly,11/1 +29,parameter-problem,12 +30,ip-header-bad,12/0 +31,required-option-missing,12/1 +32,timestamp-request,13 +33,timestamp-reply,14 +34,address-mask-request,17 +35,address-mask-reply,18 diff --git a/config/guardian/guardian.pl b/config/guardian/guardian.pl index 86d93fe..34546b7 100644 --- a/config/guardian/guardian.pl +++ b/config/guardian/guardian.pl @@ -106,6 +106,10 @@ for (;;) { $temp = $array[11]; } &checkssh ($temp, "possible SSH-Bruteforce Attack");} + + # This should catch Bruteforce Attacks with enabled preauth + if ($_ =~ /.*sshd.*Received disconnect from (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}):.*[preauth]/) { + &checkssh ($1, "possible SSH-Bruteforce Attack, failed preauth");} } }
@@ -424,4 +428,4 @@ sub get_aliases { }
print "done \n"; -} \ No newline at end of file +} diff --git a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood index 70a7e23..626e44e 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood +++ b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood @@ -1,38 +1,28 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 3.2.47 Kernel Configuration +# Linux/arm 3.10.10-ipfire-kirkwood Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_HAVE_SCHED_CLOCK=y -CONFIG_GENERIC_GPIO=y -# CONFIG_ARCH_USES_GETTIMEOFFSET is not set -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_KTIME_SCALAR=y CONFIG_HAVE_PROC_CPU=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_VECTORS_BASE=0xffff0000 -# CONFIG_ARM_PATCH_PHYS_VIRT is not set -CONFIG_PHYS_OFFSET=0x0 +CONFIG_ARM_PATCH_PHYS_VIRT=y CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y
# # General setup # -CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" @@ -40,9 +30,11 @@ CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set -CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_LZMA is not set +CONFIG_KERNEL_XZ=y # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y @@ -50,43 +42,83 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set -# CONFIG_TASKSTATS is not set +CONFIG_FHANDLE=y CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y +CONFIG_AUDIT_TREE=y +CONFIG_AUDIT_LOGINUID_IMMUTABLE=y CONFIG_HAVE_GENERIC_HARDIRQS=y
# # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y -CONFIG_SPARSE_IRQ=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y
# # RCU Subsystem # CONFIG_TINY_RCU=y # CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_STALL_COMMON is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=19 -# CONFIG_CGROUPS is not set +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +# CONFIG_MEMCG is not set +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -# CONFIG_PID_NS is not set -# CONFIG_NET_NS is not set -# CONFIG_SCHED_AUTOGROUP is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y @@ -97,12 +129,13 @@ CONFIG_RD_LZO=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EXPERT is not set +CONFIG_HAVE_UID16=y +CONFIG_HOTPLUG=y +CONFIG_EXPERT=y CONFIG_UID16=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -CONFIG_HOTPLUG=y +CONFIG_KALLSYMS_ALL=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y @@ -114,7 +147,8 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y -# CONFIG_EMBEDDED is not set +CONFIG_PCI_QUIRKS=y +CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y
@@ -122,25 +156,45 @@ CONFIG_PERF_USE_VMALLOC=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y -CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y +# CONFIG_SLOB is not set # CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set +CONFIG_JUMP_LABEL=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y
# # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -148,14 +202,40 @@ CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_MODULE_SIG is not set +CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y -# CONFIG_BLK_DEV_INTEGRITY is not set +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_THROTTLING=y + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set
# # IO Schedulers @@ -163,136 +243,121 @@ CONFIG_BLK_DEV_BSGLIB=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y +CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_ASN1=m CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set -# CONFIG_MUTEX_SPIN_ON_OWNER is not set -# CONFIG_FREEZER is not set +CONFIG_FREEZER=y
# # System Type # CONFIG_MMU=y +# CONFIG_ARCH_MULTIPLATFORM is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_VEXPRESS is not set # CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_BCMRING is not set -# CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CNS3XXX is not set # CONFIG_ARCH_GEMINI is not set -# CONFIG_ARCH_PRIMA2 is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_MXS is not set # CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set # CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_DOVE is not set CONFIG_ARCH_KIRKWOOD=y -# CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_MV78XX0 is not set # CONFIG_ARCH_ORION5X is not set # CONFIG_ARCH_MMP is not set # CONFIG_ARCH_KS8695 is not set # CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_TEGRA is not set -# CONFIG_ARCH_PICOXCELL is not set -# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_MSM is not set # CONFIG_ARCH_SHMOBILE is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C24XX is not set # CONFIG_ARCH_S3C64XX is not set # CONFIG_ARCH_S5P64X0 is not set # CONFIG_ARCH_S5PC100 is not set # CONFIG_ARCH_S5PV210 is not set # CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_TCC_926 is not set # CONFIG_ARCH_U300 is not set -# CONFIG_ARCH_U8500 is not set -# CONFIG_ARCH_NOMADIK is not set # CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_PLAT_SPEAR is not set -# CONFIG_ARCH_VT8500 is not set -# CONFIG_ARCH_ZYNQ is not set -CONFIG_GPIO_PCA953X=m -CONFIG_KEYBOARD_GPIO_POLLED=m +# CONFIG_ARCH_OMAP1 is not set +# CONFIG_GPIO_PCA953X is not set +CONFIG_KEYBOARD_GPIO_POLLED=y
# # Marvell Kirkwood Implementations # +CONFIG_MACH_D2NET_V2=y CONFIG_MACH_DB88F6281_BP=y -CONFIG_MACH_RD88F6192_NAS=y -CONFIG_MACH_RD88F6281=y -CONFIG_MACH_MV88F6281GTW_GE=y -CONFIG_MACH_SHEEVAPLUG=y +CONFIG_MACH_DOCKSTAR=y CONFIG_MACH_ESATA_SHEEVAPLUG=y CONFIG_MACH_GURUPLUG=y -CONFIG_MACH_DREAMPLUG=y -CONFIG_MACH_TS219=y -CONFIG_MACH_TS41X=y -CONFIG_MACH_DOCKSTAR=y +CONFIG_MACH_INETSPACE_V2=y +CONFIG_MACH_MV88F6281GTW_GE=y +CONFIG_MACH_NET2BIG_V2=y +CONFIG_MACH_NET5BIG_V2=y +CONFIG_MACH_NETSPACE_MAX_V2=y +CONFIG_MACH_NETSPACE_V2=y CONFIG_MACH_OPENRD=y CONFIG_MACH_OPENRD_BASE=y CONFIG_MACH_OPENRD_CLIENT=y CONFIG_MACH_OPENRD_ULTIMATE=y -CONFIG_MACH_NETSPACE_V2=y -CONFIG_MACH_INETSPACE_V2=y -CONFIG_MACH_NETSPACE_MAX_V2=y -CONFIG_MACH_D2NET_V2=y -CONFIG_MACH_NET2BIG_V2=y -CONFIG_MACH_NET5BIG_V2=y +CONFIG_MACH_RD88F6192_NAS=y +CONFIG_MACH_RD88F6281=y +CONFIG_MACH_SHEEVAPLUG=y CONFIG_MACH_T5325=y -CONFIG_MACH_ICONNECT=y -CONFIG_MACH_NAS6210=y +CONFIG_MACH_DREAMPLUG=y +CONFIG_MACH_TS219=y +CONFIG_MACH_TS41X=y
# -# System MMU -# +# Device tree entries +# +CONFIG_ARCH_KIRKWOOD_DT=y +CONFIG_MACH_CLOUDBOX_DT=y +CONFIG_MACH_DLINK_KIRKWOOD_DT=y +CONFIG_MACH_DOCKSTAR_DT=y +CONFIG_MACH_DREAMPLUG_DT=y +CONFIG_MACH_GOFLEXNET_DT=y +CONFIG_MACH_GURUPLUG_DT=y +CONFIG_MACH_IB62X0_DT=y +CONFIG_MACH_ICONNECT_DT=y +CONFIG_MACH_INETSPACE_V2_DT=y +CONFIG_MACH_IOMEGA_IX2_200_DT=y +CONFIG_MACH_KM_KIRKWOOD_DT=y +CONFIG_MACH_LSXL_DT=y +CONFIG_MACH_MPLCEC4_DT=y +CONFIG_MACH_NETSPACE_LITE_V2_DT=y +CONFIG_MACH_NETSPACE_MAX_V2_DT=y +CONFIG_MACH_NETSPACE_MINI_V2_DT=y +CONFIG_MACH_NETSPACE_V2_DT=y +CONFIG_MACH_NSA310_DT=y +CONFIG_MACH_OPENBLOCKS_A6_DT=y +CONFIG_MACH_READYNAS_DT=y +CONFIG_MACH_TOPKICK_DT=y +CONFIG_MACH_TS219_DT=y +CONFIG_MACH_ICONNECT=y +CONFIG_MACH_NAS6210=y +# CONFIG_PLAT_SPEAR is not set CONFIG_PLAT_ORION=y +CONFIG_PLAT_ORION_LEGACY=y
# # Processor Type @@ -312,29 +377,33 @@ CONFIG_CPU_USE_DOMAINS=y # # Processor Features # +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set CONFIG_ARM_THUMB=y # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set +CONFIG_NEED_KUSER_HELPERS=y +CONFIG_KUSER_HELPERS=y CONFIG_OUTER_CACHE=y CONFIG_CACHE_FEROCEON_L2=y # CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set +# CONFIG_CACHE_L2X0 is not set CONFIG_ARM_L1_CACHE_SHIFT=5 +CONFIG_ARM_NR_BANKS=8
# # Bus support # CONFIG_PCI=y CONFIG_PCI_SYSCALL=y -# CONFIG_ARCH_SUPPORTS_MSI is not set # CONFIG_PCI_DEBUG is not set -CONFIG_PCI_STUB=m +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +CONFIG_PCI_STUB=y CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y -CONFIG_PCI_PRI=y +# CONFIG_PCI_PRI is not set # CONFIG_PCI_PASID is not set CONFIG_PCCARD=m -CONFIG_PCMCIA=m -CONFIG_PCMCIA_LOAD_CIS=y +# CONFIG_PCMCIA is not set CONFIG_CARDBUS=y
# @@ -346,25 +415,20 @@ CONFIG_YENTA_RICOH=y CONFIG_YENTA_TI=y CONFIG_YENTA_ENE_TUNE=y CONFIG_YENTA_TOSHIBA=y -CONFIG_PD6729=m -CONFIG_I82092=m -CONFIG_PCCARD_NONSTATIC=y
# # Kernel Features # -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_VMSPLIT_3G=y # CONFIG_VMSPLIT_2G is not set # CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_ARCH_NR_GPIO=0 CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set CONFIG_HZ=100 +CONFIG_SCHED_HRTICK=y CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set @@ -372,48 +436,57 @@ CONFIG_AEABI=y CONFIG_HAVE_ARCH_PFN_VALID=y CONFIG_HIGHMEM=y # CONFIG_HIGHPTE is not set -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y +CONFIG_HW_PERF_EVENTS=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_HAVE_MEMBLOCK=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=999999 -# CONFIG_COMPACTION is not set +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y CONFIG_KSM=y -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_NEED_PER_CPU_KM=y -# CONFIG_CLEANCACHE is not set +CONFIG_CLEANCACHE=y +# CONFIG_FRONTSWAP is not set CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_ALIGNMENT_TRAP=y -CONFIG_UACCESS_WITH_MEMCPY=y +# CONFIG_UACCESS_WITH_MEMCPY is not set CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR=y -# CONFIG_DEPRECATED_PARAM_STRUCT is not set
# # Boot options # CONFIG_USE_OF=y -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -# CONFIG_ARM_APPENDED_DTB is not set -CONFIG_CMDLINE="" +CONFIG_ATAGS=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set +CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20" +CONFIG_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_CMDLINE_EXTEND is not set +# CONFIG_CMDLINE_FORCE is not set # CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set -# CONFIG_CRASH_DUMP is not set +CONFIG_KEXEC=y +CONFIG_ATAGS_PROC=y +CONFIG_CRASH_DUMP=y CONFIG_AUTO_ZRELADDR=y
# # CPU Power Management # -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_CPU_IDLE is not set +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
# # Floating point emulation @@ -422,16 +495,18 @@ CONFIG_CPU_IDLE_GOV_MENU=y # # At least one emulation must be selected # -# CONFIG_VFP is not set +CONFIG_VFP=y
# # Userspace binary formats # CONFIG_BINFMT_ELF=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y
# # Power management options @@ -439,8 +514,8 @@ CONFIG_HAVE_AOUT=y CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set -# CONFIG_APM_EMULATION is not set -CONFIG_CPU_PM=y +CONFIG_APM_EMULATION=y +CONFIG_PM_CLK=y # CONFIG_ARM_CPU_SUSPEND is not set CONFIG_NET=y
@@ -448,10 +523,13 @@ CONFIG_NET=y # Networking options # CONFIG_PACKET=y +CONFIG_PACKET_DIAG=y CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m @@ -460,7 +538,7 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y @@ -468,28 +546,31 @@ CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y -# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y +# CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m @@ -500,13 +581,15 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -CONFIG_DEFAULT_RENO=y -CONFIG_DEFAULT_TCP_CONG="reno" -# CONFIG_TCP_MD5SIG is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m @@ -518,14 +601,18 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m -# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETLABEL is not set +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -535,13 +622,18 @@ CONFIG_BRIDGE_NETFILTER=y # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y -# CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -558,14 +650,28 @@ CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m CONFIG_NETFILTER_TPROXY=m -CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XTABLES=y
# # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m
# # Xtables targets @@ -574,20 +680,26 @@ CONFIG_NETFILTER_XT_TARGET_AUDIT=m CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
@@ -595,9 +707,11 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m @@ -605,17 +719,19 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m +# CONFIG_NETFILTER_XT_MATCH_IPVS is not set CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m @@ -635,7 +751,19 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -# CONFIG_IP_SET is not set +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -666,6 +794,11 @@ CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m
# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# # IPVS application helper # CONFIG_IP_VS_FTP=m @@ -675,40 +808,31 @@ CONFIG_IP_VS_PE_SIP=m # # IP: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set +CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y +# CONFIG_IP_NF_TARGET_ULOG is not set +CONFIG_NF_NAT_IPV4=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m @@ -717,10 +841,9 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV6=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV6=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m @@ -728,13 +851,17 @@ CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_NF_NAT_IPV6=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -755,49 +882,52 @@ CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m +# CONFIG_BRIDGE_EBT_ULOG is not set CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y # CONFIG_RDS is not set # CONFIG_TIPC is not set CONFIG_ATM=m CONFIG_ATM_CLIP=m -CONFIG_ATM_CLIP_NO_ICMP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_L2TP=m +# CONFIG_L2TP_DEBUGFS is not set CONFIG_L2TP_V3=y CONFIG_L2TP_IP=m CONFIG_L2TP_ETH=m -CONFIG_STP=m -CONFIG_GARP=m -CONFIG_BRIDGE=m +CONFIG_STP=y +CONFIG_GARP=y +CONFIG_BRIDGE=y CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VLAN_8021Q_MVRP is not set # CONFIG_DECNET is not set -CONFIG_LLC=m +CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set -CONFIG_IEEE802154=m -CONFIG_IEEE802154_6LOWPAN=m +# CONFIG_IEEE802154 is not set CONFIG_NET_SCHED=y
# @@ -821,7 +951,10 @@ CONFIG_NET_SCH_DRR=m CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m
# # Classification @@ -837,6 +970,7 @@ CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m @@ -844,6 +978,7 @@ CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_IPSET=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m @@ -860,59 +995,27 @@ CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y # CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +CONFIG_VSOCKETS=m +CONFIG_NETLINK_MMAP=y +CONFIG_NETLINK_DIAG=m +CONFIG_NETPRIO_CGROUP=m +CONFIG_BQL=y +CONFIG_BPF_JIT=y
# # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -# CONFIG_TOSHIBA_FIR is not set -CONFIG_VLSI_FIR=m -CONFIG_MCS_FIR=m +# CONFIG_IRDA is not set CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -931,21 +1034,16 @@ CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m CONFIG_BT_WILINK=m -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -CONFIG_RXKAD=m +# CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y @@ -957,10 +1055,11 @@ CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set -# CONFIG_CFG80211_DEFAULT_PS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_WEXT=y -CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -968,24 +1067,27 @@ CONFIG_LIB80211_CRYPT_TKIP=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y CONFIG_RFKILL_REGULATOR=m +# CONFIG_RFKILL_GPIO is not set # CONFIG_NET_9P is not set # CONFIG_CAIF is not set -CONFIG_CEPH_LIB=m -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set +CONFIG_HAVE_BPF_JIT=y
# # Device Drivers @@ -994,39 +1096,51 @@ CONFIG_CEPH_LIB=m # # Generic Driver Options # -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=m -CONFIG_CONNECTOR=m -CONFIG_MTD=m -CONFIG_MTD_TESTS=m +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_CMA is not set + +# +# Bus devices +# +CONFIG_MVEBU_MBUS=y +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y # CONFIG_MTD_AFS_PARTS is not set -CONFIG_MTD_OF_PARTS=m -CONFIG_MTD_AR7_PARTS=m +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_AR7_PARTS is not set
# # User Modules And Translation Layers # -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m +# CONFIG_MTD_BLKDEVS is not set +# CONFIG_MTD_BLOCK is not set # CONFIG_MTD_BLOCK_RO is not set # CONFIG_FTL is not set # CONFIG_NFTL is not set # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set -CONFIG_SM_FTL=m +# CONFIG_SM_FTL is not set # CONFIG_MTD_OOPS is not set # CONFIG_MTD_SWAP is not set
@@ -1053,8 +1167,6 @@ CONFIG_MTD_CFI_I2=y # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set # CONFIG_MTD_INTEL_VR_NOR is not set # CONFIG_MTD_PLATRAM is not set
@@ -1070,39 +1182,34 @@ CONFIG_MTD_PHYSMAP=m # # Disk-On-Chip Device Drivers # -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set # CONFIG_MTD_DOCG3 is not set -CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_ECC=y # CONFIG_MTD_NAND_ECC_SMC is not set -CONFIG_MTD_NAND=m -# CONFIG_MTD_NAND_VERIFY_WRITE is not set +CONFIG_MTD_NAND=y # CONFIG_MTD_NAND_ECC_BCH is not set # CONFIG_MTD_SM_COMMON is not set -# CONFIG_MTD_NAND_MUSEUM_IDS is not set # CONFIG_MTD_NAND_DENALI is not set # CONFIG_MTD_NAND_GPIO is not set -CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_IDS=y # CONFIG_MTD_NAND_RICOH is not set # CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set # CONFIG_MTD_NAND_CAFE is not set # CONFIG_MTD_NAND_NANDSIM is not set -CONFIG_MTD_NAND_PLATFORM=m +# CONFIG_MTD_NAND_PLATFORM is not set # CONFIG_MTD_ALAUDA is not set -CONFIG_MTD_NAND_ORION=m +CONFIG_MTD_NAND_ORION=y # CONFIG_MTD_ONENAND is not set
# # LPDDR flash memory drivers # -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m -CONFIG_MTD_UBI=m +# CONFIG_MTD_LPDDR is not set +CONFIG_MTD_UBI=y CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set # CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_DEBUG is not set CONFIG_DTC=y CONFIG_OF=y
@@ -1110,71 +1217,84 @@ CONFIG_OF=y # Device Tree and Open Firmware support # CONFIG_PROC_DEVICETREE=y +# CONFIG_OF_SELFTEST is not set CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_DEVICE=y -CONFIG_OF_GPIO=y CONFIG_OF_I2C=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y CONFIG_OF_PCI=y CONFIG_OF_PCI_IRQ=y +CONFIG_OF_MTD=y CONFIG_PARPORT=m -# CONFIG_PARPORT_PC is not set +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set # CONFIG_PARPORT_GSC is not set -CONFIG_PARPORT_AX88796=m +# CONFIG_PARPORT_AX88796 is not set CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_BLK_DEV=y -CONFIG_BLK_CPQ_DA=m +# CONFIG_PARIDE is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set CONFIG_BLK_CPQ_CISS_DA=m # CONFIG_CISS_SCSI_TAPE is not set CONFIG_BLK_DEV_DAC960=m -# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_UMEM=m # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m # CONFIG_BLK_DEV_DRBD is not set -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_OSD=m +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_NVME=m +# CONFIG_BLK_DEV_OSD is not set CONFIG_BLK_DEV_SX8=m -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=8 +CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_BLK_DEV_XIP is not set # CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m -CONFIG_MG_DISK=m -CONFIG_MG_DISK_RES=0 -CONFIG_BLK_DEV_RBD=m -CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MG_DISK is not set +# CONFIG_BLK_DEV_RBD is not set +CONFIG_BLK_DEV_RSXX=m + +# +# Misc devices +# +# CONFIG_SENSORS_LIS3LV02D is not set # CONFIG_AD525X_DPOT is not set +# CONFIG_ATMEL_PWM is not set +CONFIG_DUMMY_IRQ=m # CONFIG_PHANTOM is not set # CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m +# CONFIG_ATMEL_SSC is not set CONFIG_ENCLOSURE_SERVICES=m CONFIG_HP_ILO=m -CONFIG_APDS9802ALS=m -CONFIG_ISL29003=m -CONFIG_ISL29020=m -CONFIG_SENSORS_TSL2550=m -CONFIG_SENSORS_BH1780=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_APDS990X=m -CONFIG_HMC6352=m +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set CONFIG_DS1682=m -CONFIG_BMP085=m +CONFIG_BMP085=y +CONFIG_BMP085_I2C=m CONFIG_PCH_PHUB=m CONFIG_USB_SWITCH_FSA9480=m -CONFIG_C2PORT=m +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set
# # EEPROM support @@ -1186,62 +1306,60 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y -CONFIG_IWMC3200TOP=m -# CONFIG_IWMC3200TOP_DEBUG is not set -# CONFIG_IWMC3200TOP_DEBUGFS is not set
# # Texas Instruments shared transport line discipline # CONFIG_TI_ST=m -CONFIG_SENSORS_LIS3_I2C=m +# CONFIG_SENSORS_LIS3_I2C is not set
# # Altera FPGA firmware download module # -# CONFIG_ALTERA_STAPL is not set +CONFIG_ALTERA_STAPL=m CONFIG_HAVE_IDE=y # CONFIG_IDE is not set
# # SCSI device support # -CONFIG_SCSI_MOD=m +CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=m -CONFIG_SCSI=m +CONFIG_SCSI=y CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set +CONFIG_SCSI_TGT=m CONFIG_SCSI_NETLINK=y CONFIG_SCSI_PROC_FS=y
# # SCSI support type (disk, tape, CD-ROM) # -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_SCH=m CONFIG_SCSI_ENCLOSURE=m CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y
# # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y CONFIG_SCSI_ISCSI_ATTRS=m CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m CONFIG_ISCSI_BOOT_SYSFS=m @@ -1257,28 +1375,24 @@ CONFIG_SCSI_3W_SAS=m # CONFIG_SCSI_ACARD is not set CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=5000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y # CONFIG_SCSI_AIC7XXX_OLD is not set CONFIG_SCSI_AIC79XX=m CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set +CONFIG_AIC79XX_RESET_DELAY_MS=4000 # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_DEBUG=y -# CONFIG_SCSI_MVSAS_TASKLET is not set -CONFIG_SCSI_MVUMI=m -CONFIG_SCSI_DPT_I2O=m -# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_MVSAS_DEBUG is not set +CONFIG_SCSI_MVSAS_TASKLET=y +# CONFIG_SCSI_MVUMI is not set CONFIG_SCSI_ARCMSR=m CONFIG_MEGARAID_NEWGEN=y CONFIG_MEGARAID_MM=m @@ -1288,6 +1402,12 @@ CONFIG_MEGARAID_SAS=m CONFIG_SCSI_MPT2SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 # CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +# CONFIG_SCSI_MPT3SAS_LOGGING is not set +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m +CONFIG_SCSI_UFSHCD_PLATFORM=m CONFIG_SCSI_HPTIOP=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m @@ -1297,6 +1417,10 @@ CONFIG_SCSI_FUTURE_DOMAIN=m CONFIG_SCSI_IPS=m CONFIG_SCSI_INITIO=m CONFIG_SCSI_INIA100=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set CONFIG_SCSI_STEX=m CONFIG_SCSI_SYM53C8XX_2=m CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 @@ -1310,6 +1434,7 @@ CONFIG_SCSI_QLOGIC_1280=m CONFIG_SCSI_QLA_FC=m CONFIG_SCSI_QLA_ISCSI=m CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_DC395x=m CONFIG_SCSI_DC390T=m # CONFIG_SCSI_NSP32 is not set @@ -1318,13 +1443,8 @@ CONFIG_SCSI_PMCRAID=m CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m -CONFIG_SCSI_LOWLEVEL_PCMCIA=y -CONFIG_PCMCIA_AHA152X=m -CONFIG_PCMCIA_FDOMAIN=m -CONFIG_PCMCIA_NINJA_SCSI=m -CONFIG_PCMCIA_QLOGIC=m -CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=m +CONFIG_SCSI_CHELSIO_FCOE=m +CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=m @@ -1333,7 +1453,7 @@ CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_ATA=m +CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_SATA_PMP=y @@ -1341,7 +1461,7 @@ CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # -CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI=y CONFIG_SATA_AHCI_PLATFORM=m CONFIG_SATA_INIC162X=m CONFIG_SATA_ACARD_AHCI=m @@ -1359,7 +1479,8 @@ CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # -CONFIG_ATA_PIIX=m +CONFIG_ATA_PIIX=y +CONFIG_SATA_HIGHBANK=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m CONFIG_SATA_PROMISE=m @@ -1389,7 +1510,7 @@ CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y +# CONFIG_PATA_HPT3X3_DMA is not set CONFIG_PATA_IT8213=m CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m @@ -1401,9 +1522,9 @@ CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_RADISYS=m +# CONFIG_PATA_RADISYS is not set CONFIG_PATA_RDC=m -CONFIG_PATA_SC1200=m +# CONFIG_PATA_SC1200 is not set CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m @@ -1420,82 +1541,97 @@ CONFIG_PATA_CMD640_PCI=m CONFIG_PATA_MPIIX=m CONFIG_PATA_NS87410=m CONFIG_PATA_OPTI=m -CONFIG_PATA_PCMCIA=m +# CONFIG_PATA_PLATFORM is not set CONFIG_PATA_RZ1000=m
# # Generic fallback / legacy drivers # CONFIG_ATA_GENERIC=m -CONFIG_PATA_LEGACY=m +# CONFIG_PATA_LEGACY is not set CONFIG_MD=y -CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_MULTIPATH=m -# CONFIG_MD_FAULTY is not set -CONFIG_BLK_DEV_DM=m +CONFIG_MD_FAULTY=m +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_EDEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BLK_DEV_DM=y # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=m +CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_THIN_PROVISIONING=m -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -# CONFIG_DM_DEBUG_SPACE_MAPS is not set -CONFIG_DM_MIRROR=m +CONFIG_DM_SNAPSHOT=y +# CONFIG_DM_THIN_PROVISIONING is not set +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CACHE_CLEANER=m +CONFIG_DM_MIRROR=y CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m +CONFIG_DM_ZERO=y CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m +# CONFIG_DM_DELAY is not set CONFIG_DM_UEVENT=y -CONFIG_DM_FLAKEY=m +# CONFIG_DM_FLAKEY is not set +CONFIG_DM_VERITY=m # CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_MAX_SGE=40 CONFIG_FUSION_CTL=m -# CONFIG_FUSION_LOGGING is not set +CONFIG_FUSION_LOGGING=y
# # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m +# CONFIG_FIREWIRE_NET is not set # CONFIG_FIREWIRE_NOSY is not set -# CONFIG_I2O is not set +CONFIG_I2O=m +# CONFIG_I2O_LCT_NOTIFY_ON_CHANGES is not set +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_BUS=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_SCSI=m +CONFIG_I2O_PROC=m CONFIG_NETDEVICES=y CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m -CONFIG_EQUALIZER=m +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IFB=m +# CONFIG_NET_TEAM is not set +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_VXLAN=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +CONFIG_NETPOLL_TRAP=y +CONFIG_NET_POLL_CONTROLLER=y CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 -# CONFIG_NET_FC is not set -CONFIG_MII=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -CONFIG_IFB=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m # CONFIG_ARCNET is not set @@ -1504,47 +1640,35 @@ CONFIG_ATM_DRIVERS=y CONFIG_ATM_TCP=m CONFIG_ATM_LANAI=m CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set CONFIG_ATM_IDT77252=m # CONFIG_ATM_IDT77252_DEBUG is not set # CONFIG_ATM_IDT77252_RCV_ALL is not set CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 +# CONFIG_ATM_IA is not set +# CONFIG_ATM_FORE200E is not set # CONFIG_ATM_HE is not set CONFIG_ATM_SOLOS=m
# # CAIF transport drivers # + +# +# Distributed Switch Architecture drivers +# +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_ETHERNET=y CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_3C589=m CONFIG_VORTEX=m CONFIG_TYPHOON=m CONFIG_NET_VENDOR_ADAPTEC=y @@ -1555,12 +1679,15 @@ CONFIG_ACENIC=m CONFIG_NET_VENDOR_AMD=y CONFIG_AMD8111_ETH=m CONFIG_PCNET32=m -CONFIG_PCMCIA_NMCLAN=m CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m CONFIG_ATL1=m CONFIG_ATL1E=m CONFIG_ATL1C=m +CONFIG_ALX=m +CONFIG_NET_CADENCE=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_MACB=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y @@ -1570,14 +1697,19 @@ CONFIG_BNX2=m CONFIG_CNIC=m CONFIG_TIGON3=m CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m +CONFIG_NET_CALXEDA_XGMAC=m CONFIG_NET_VENDOR_CHELSIO=y CONFIG_CHELSIO_T1=m CONFIG_CHELSIO_T1_1G=y CONFIG_CHELSIO_T3=m CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_CS89x0=m +CONFIG_CS89x0_PLATFORM=y CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m CONFIG_DM9000=m @@ -1589,16 +1721,14 @@ CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 CONFIG_TULIP=m # CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set -CONFIG_DE4X5=m +CONFIG_TULIP_MMIO=y +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m CONFIG_NET_VENDOR_DLINK=y -CONFIG_DE600=m -CONFIG_DE620=m CONFIG_DL2K=m CONFIG_SUNDANCE=m # CONFIG_SUNDANCE_MMIO is not set @@ -1611,8 +1741,6 @@ CONFIG_VXGE=m CONFIG_NET_VENDOR_FARADAY=y # CONFIG_FTMAC100 is not set # CONFIG_FTGMAC100 is not set -CONFIG_NET_VENDOR_FUJITSU=y -CONFIG_PCMCIA_FMVJ18X=m CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m CONFIG_NET_VENDOR_INTEL=y @@ -1620,24 +1748,28 @@ CONFIG_E100=m CONFIG_E1000=m CONFIG_E1000E=m CONFIG_IGB=m +CONFIG_IGB_HWMON=y CONFIG_IGBVF=m CONFIG_IXGB=m CONFIG_IXGBE=m +CONFIG_IXGBE_HWMON=y CONFIG_NET_VENDOR_I825XX=y CONFIG_IP1000=m CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y CONFIG_MV643XX_ETH=m +CONFIG_MVMDIO=m CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set CONFIG_NET_VENDOR_MELLANOX=y -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y +# CONFIG_MLX4_EN is not set +# CONFIG_MLX4_CORE is not set CONFIG_NET_VENDOR_MICREL=y -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m +# CONFIG_KS8842 is not set +# CONFIG_KS8851_MLL is not set CONFIG_KSZ884X_PCI=m CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m @@ -1646,36 +1778,32 @@ CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_8390=y -CONFIG_PCMCIA_AXNET=m CONFIG_AX88796=m CONFIG_AX88796_93CX6=y CONFIG_NE2K_PCI=m -CONFIG_PCMCIA_PCNET=m CONFIG_NET_VENDOR_NVIDIA=y CONFIG_FORCEDETH=m CONFIG_NET_VENDOR_OKI=y CONFIG_PCH_GBE=m CONFIG_ETHOC=m -CONFIG_NET_PACKET_ENGINE=y -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m +# CONFIG_NET_PACKET_ENGINE is not set CONFIG_NET_VENDOR_QLOGIC=y CONFIG_QLA3XXX=m CONFIG_QLCNIC=m +CONFIG_QLCNIC_SRIOV=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m CONFIG_NET_VENDOR_REALTEK=y CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set -CONFIG_8139TOO_TUNE_TWISTER=y +# CONFIG_8139TOO_TUNE_TWISTER is not set CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_R8169=m CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m CONFIG_NET_VENDOR_SEEQ=y -CONFIG_SEEQ8005=m CONFIG_NET_VENDOR_SILAN=y CONFIG_SC92031=m CONFIG_NET_VENDOR_SIS=y @@ -1683,9 +1811,10 @@ CONFIG_SIS900=m CONFIG_SIS190=m CONFIG_SFC=m CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_SRIOV=y CONFIG_NET_VENDOR_SMSC=y CONFIG_SMC91X=m -CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m CONFIG_SMC911X=m CONFIG_SMSC911X=m @@ -1693,9 +1822,10 @@ CONFIG_SMSC911X=m CONFIG_SMSC9420=m CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=y +CONFIG_STMMAC_PCI=y +# CONFIG_STMMAC_DEBUG_FS is not set # CONFIG_STMMAC_DA is not set -CONFIG_STMMAC_RING=y -# CONFIG_STMMAC_CHAINED is not set CONFIG_NET_VENDOR_SUN=y CONFIG_HAPPYMEAL=m # CONFIG_SUNGEM is not set @@ -1709,8 +1839,12 @@ CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y CONFIG_VIA_VELOCITY=m -CONFIG_NET_VENDOR_XIRCOM=y -CONFIG_PCMCIA_XIRC2PS=m +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y # CONFIG_FDDI is not set # CONFIG_HIPPI is not set CONFIG_PHYLIB=y @@ -1718,6 +1852,8 @@ CONFIG_PHYLIB=y # # MII PHY device drivers # +CONFIG_AT803X_PHY=m +CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m CONFIG_DAVICOM_PHY=m CONFIG_QSEMI_PHY=m @@ -1726,15 +1862,19 @@ CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m CONFIG_SMSC_PHY=m CONFIG_BROADCOM_PHY=m +CONFIG_BCM87XX_PHY=m CONFIG_ICPLUS_PHY=m CONFIG_REALTEK_PHY=m CONFIG_NATIONAL_PHY=m CONFIG_STE10XP=m CONFIG_LSI_ET1011C_PHY=m CONFIG_MICREL_PHY=m -# CONFIG_FIXED_PHY is not set +CONFIG_FIXED_PHY=y CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m +# CONFIG_MDIO_GPIO is not set +CONFIG_MDIO_BUS_MUX=m +CONFIG_MDIO_BUS_MUX_GPIO=m +CONFIG_MDIO_BUS_MUX_MMIOREG=m # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m @@ -1748,12 +1888,8 @@ CONFIG_PPTP=m CONFIG_PPPOL2TP=m CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m -CONFIG_SLIP=m +# CONFIG_SLIP is not set CONFIG_SLHC=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_TR is not set
# # USB Network Adapters @@ -1762,11 +1898,14 @@ CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m @@ -1785,82 +1924,171 @@ CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -# CONFIG_USB_IPHETH is not set +CONFIG_USB_IPHETH=m CONFIG_USB_SIERRA_NET=m CONFIG_USB_VL600=m CONFIG_WLAN=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m CONFIG_ATMEL=m CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m # CONFIG_PRISM54 is not set CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_ADM8211=m +CONFIG_MAC80211_HWSIM=m +CONFIG_MWL8K=m +CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH5K=m +CONFIG_ATH5K_DEBUG=y +# CONFIG_ATH5K_TRACER is not set +CONFIG_ATH5K_PCI=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_AHB=y +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +# CONFIG_ATH6KL is not set +CONFIG_AR5523=m +CONFIG_WIL6210=m +CONFIG_WIL6210_ISR_COR=y +CONFIG_B43=m +CONFIG_B43_SSB=y +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_SDIO=y +CONFIG_B43_PIO=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set # CONFIG_BRCMFMAC is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_FIRMWARE_NVRAM=y CONFIG_HOSTAP_PLX=m CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set # CONFIG_IWLWIFI is not set -# CONFIG_IWL4965 is not set -# CONFIG_IWL3945 is not set -# CONFIG_IWM is not set -# CONFIG_LIBERTAS is not set -# CONFIG_HERMES is not set -# CONFIG_P54_COMMON is not set -# CONFIG_RT2X00 is not set -# CONFIG_RTL8192CE is not set -# CONFIG_RTL8192SE is not set -# CONFIG_RTL8192DE is not set -# CONFIG_RTL8192CU is not set -# CONFIG_WL1251 is not set -# CONFIG_WL12XX_MENU is not set -# CONFIG_ZD1211RW is not set -# CONFIG_MWIFIEX is not set +CONFIG_IWLEGACY=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m + +# +# iwl3945 / iwl4965 Debugging Options +# +# CONFIG_IWLEGACY_DEBUG is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y +CONFIG_HERMES=m +# CONFIG_HERMES_PRISM is not set +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_ORINOCO_USB=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_MMIO=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RTLWIFI=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTL8192CE=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m +CONFIG_RTL8188EE=m +CONFIG_RTL8192CU=m +CONFIG_RTL8192C_COMMON=m +CONFIG_WL_TI=y +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +# CONFIG_MWIFIEX_PCIE is not set +CONFIG_MWIFIEX_USB=m
# # Enable WiMAX (Networking options) to see the WiMAX drivers # -CONFIG_WAN=y -CONFIG_LANMEDIA=m -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 +# CONFIG_WAN is not set CONFIG_VMXNET3=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m @@ -1892,9 +2120,9 @@ CONFIG_ISDN_DRV_HISAX=m # CONFIG_HISAX_EURO=y CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y CONFIG_HISAX_1TR6=y CONFIG_HISAX_NI1=y CONFIG_HISAX_MAX_CARDS=8 @@ -1910,8 +2138,6 @@ CONFIG_HISAX_AVM_A1_PCMCIA=y CONFIG_HISAX_ELSA=y CONFIG_HISAX_DIEHLDIVA=y CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_NETJET=y -CONFIG_HISAX_NETJET_U=y CONFIG_HISAX_NICCY=y CONFIG_HISAX_BKM_A4T=y CONFIG_HISAX_SCT_QUADRO=y @@ -1919,16 +2145,11 @@ CONFIG_HISAX_GAZEL=y CONFIG_HISAX_HFC_PCI=y CONFIG_HISAX_W6692=y CONFIG_HISAX_HFC_SX=y -CONFIG_HISAX_ENTERNOW_PCI=y -CONFIG_HISAX_DEBUG=y +# CONFIG_HISAX_DEBUG is not set
# # HiSax PCMCIA card service modules # -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_TELES_CS=m
# # HiSax sub driver modules @@ -1954,8 +2175,6 @@ CONFIG_ISDN_CAPI_CAPIDRV=m CONFIG_CAPI_AVM=y CONFIG_ISDN_DRV_AVMB1_B1PCI=m CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m CONFIG_ISDN_DRV_AVMB1_T1PCI=m CONFIG_ISDN_DRV_AVMB1_C4=m CONFIG_CAPI_EICON=y @@ -1965,43 +2184,20 @@ CONFIG_ISDN_DIVAS_PRIPCI=y CONFIG_ISDN_DIVAS_DIVACAPI=m CONFIG_ISDN_DIVAS_USERIDI=m CONFIG_ISDN_DIVAS_MAINT=m -CONFIG_ISDN_DRV_GIGASET=m -CONFIG_GIGASET_CAPI=y -# CONFIG_GIGASET_I4L is not set -# CONFIG_GIGASET_DUMMYLL is not set -CONFIG_GIGASET_BASE=m -CONFIG_GIGASET_M105=m -CONFIG_GIGASET_M101=m -# CONFIG_GIGASET_DEBUG is not set +# CONFIG_ISDN_DRV_GIGASET is not set CONFIG_HYSDN=m CONFIG_HYSDN_CAPI=y -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m +# CONFIG_MISDN is not set CONFIG_ISDN_HDLC=m -# CONFIG_PHONE is not set
# # Input device support # CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m +# CONFIG_INPUT_FF_MEMLESS is not set CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m
# # Userland interfaces @@ -2011,53 +2207,78 @@ CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_APMPOWER is not set
# # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ADP5589=m +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y -CONFIG_KEYBOARD_QT1070=m -CONFIG_KEYBOARD_QT2160=m -CONFIG_KEYBOARD_LKKBD=m -CONFIG_KEYBOARD_GPIO=m -CONFIG_KEYBOARD_TCA6416=m -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_MCS=m -CONFIG_KEYBOARD_MPR121=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_XTKBD=m -# CONFIG_INPUT_MOUSE is not set +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +CONFIG_KEYBOARD_LM8333=m +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +CONFIG_MOUSE_VSXXXAA=m +# CONFIG_MOUSE_GPIO is not set +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_88PM860X_ONKEY=m -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_88PM860X_ONKEY is not set +# CONFIG_INPUT_88PM80X_ONKEY is not set +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_MPU3050 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_UINPUT=m +# CONFIG_INPUT_PCF8574 is not set +CONFIG_INPUT_PWM_BEEPER=m CONFIG_INPUT_GPIO_ROTARY_ENCODER=m # CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set
# @@ -2068,100 +2289,104 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PARKBD is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set +CONFIG_SERIO_RAW=m CONFIG_SERIO_ALTERA_PS2=m -CONFIG_SERIO_PS2MULT=m +# CONFIG_SERIO_PS2MULT is not set +CONFIG_SERIO_ARC_PS2=m +CONFIG_SERIO_APBPS2=m # CONFIG_GAMEPORT is not set
# # Character devices # +CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y # CONFIG_LEGACY_PTYS is not set -# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m CONFIG_NOZOMI=m +# CONFIG_ISI is not set +CONFIG_N_HDLC=m CONFIG_N_GSM=m # CONFIG_TRACE_SINK is not set -CONFIG_DEVKMEM=y +# CONFIG_DEVKMEM is not set +# CONFIG_STALDRV is not set
# # Serial drivers # CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y -CONFIG_SERIAL_8250_DW=m +# CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_EM is not set
# # Non-8250 serial port support # -CONFIG_SERIAL_MFD_HSU=m -CONFIG_SERIAL_UARTLITE=m +# CONFIG_SERIAL_MFD_HSU is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set +CONFIG_SERIAL_JSM=m CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SERIAL_TIMBERDALE=m -CONFIG_SERIAL_ALTERA_JTAGUART=m -CONFIG_SERIAL_ALTERA_UART=m -CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 -CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 -CONFIG_SERIAL_PCH_UART=m -CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_SERIAL_SCCNXP=m +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_PCH_UART is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +CONFIG_SERIAL_RP2=m +CONFIG_SERIAL_RP2_NR_UARTS=32 +# CONFIG_TTY_PRINTK is not set CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set +CONFIG_LP_CONSOLE=y CONFIG_PPDEV=m # CONFIG_HVC_DCC is not set CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_PANIC_EVENT=y -# CONFIG_IPMI_PANIC_STRING is not set +# CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m -CONFIG_NVRAM=m -# CONFIG_R3964 is not set +CONFIG_HW_RANDOM_ATMEL=m +CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_NVRAM=y +CONFIG_R3964=m # CONFIG_APPLICOM is not set - -# -# PCMCIA character devices -# -CONFIG_SYNCLINK_CS=m -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -CONFIG_IPWIRELESS=m -# CONFIG_RAW_DRIVER is not set +CONFIG_RAW_DRIVER=y +CONFIG_MAX_RAW_DEVS=8192 # CONFIG_TCG_TPM is not set CONFIG_DEVPORT=y -# CONFIG_RAMOOPS is not set CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m -CONFIG_I2C_MUX=m - -# -# Multiplexer I2C Chip support -# -CONFIG_I2C_MUX_GPIO=m -CONFIG_I2C_MUX_PCA9541=m -CONFIG_I2C_MUX_PCA954x=m +# CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -2192,17 +2417,18 @@ CONFIG_I2C_VIAPRO=m # # I2C system bus drivers (mostly embedded / system-on-chip) # -CONFIG_I2C_DESIGNWARE_CORE=m -CONFIG_I2C_DESIGNWARE_PCI=m +CONFIG_I2C_CBUS_GPIO=m +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EG20T is not set CONFIG_I2C_GPIO=m -CONFIG_I2C_INTEL_MID=m +# CONFIG_I2C_INTEL_MID is not set CONFIG_I2C_MV64XXX=y -CONFIG_I2C_OCORES=m +# CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m -CONFIG_I2C_XILINX=m -CONFIG_I2C_EG20T=m +# CONFIG_I2C_XILINX is not set
# # External I2C/SMBus adapter drivers @@ -2210,8 +2436,9 @@ CONFIG_I2C_EG20T=m CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_TAOS_EVM=m +# CONFIG_I2C_TAOS_EVM is not set CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIPERBOARD=m
# # Other I2C/SMBus bus drivers @@ -2223,6 +2450,18 @@ CONFIG_I2C_STUB=m # CONFIG_SPI is not set
# +# Qualcomm MSM SSBI bus support +# +# CONFIG_SSBI is not set +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y + +# +# HSI clients +# +CONFIG_HSI_CHAR=m + +# # PPS support # CONFIG_PPS=m @@ -2244,37 +2483,61 @@ CONFIG_PPS=m # PTP clock support # CONFIG_PTP_1588_CLOCK=m -CONFIG_DP83640_PHY=m + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PINCTRL=y + +# +# Pin controllers +# +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +CONFIG_PINCTRL_SINGLE=m +# CONFIG_PINCTRL_EXYNOS is not set +# CONFIG_PINCTRL_EXYNOS5440 is not set +CONFIG_PINCTRL_MVEBU=y +CONFIG_PINCTRL_KIRKWOOD=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIO_DEVRES=y CONFIG_GPIOLIB=y +CONFIG_OF_GPIO=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_GENERIC=m -CONFIG_GPIO_MAX730X=m +CONFIG_GPIO_GENERIC=y
# # Memory mapped GPIO drivers: # -CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m -CONFIG_GPIO_VX855=m +CONFIG_GPIO_GENERIC_PLATFORM=y +# CONFIG_GPIO_EM is not set +CONFIG_GPIO_MVEBU=y +# CONFIG_GPIO_RCAR is not set +CONFIG_GPIO_TS5500=m +# CONFIG_GPIO_VX855 is not set +# CONFIG_GPIO_GRGPIO is not set
# # I2C GPIO expanders: # -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCF857X=m +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_SX150X is not set -CONFIG_GPIO_ADP5588=m +# CONFIG_GPIO_ADP5588 is not set +CONFIG_GPIO_ADNP=m
# # PCI GPIO expanders: # -# CONFIG_GPIO_BT8XX is not set -CONFIG_GPIO_ML_IOH=m -# CONFIG_GPIO_TIMBERDALE is not set -CONFIG_GPIO_RDC321X=m +# CONFIG_GPIO_AMD8111 is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_RDC321X is not set
# # SPI GPIO expanders: @@ -2284,23 +2547,26 @@ CONFIG_GPIO_MCP23S08=m # # AC97 GPIO expanders: # -# CONFIG_GPIO_UCB1400 is not set
# # MODULbus GPIO expanders: # -CONFIG_GPIO_JANZ_TTL=m + +# +# USB GPIO expanders: +# +CONFIG_GPIO_VIPERBOARD=m CONFIG_W1=m CONFIG_W1_CON=y
# # 1-wire Bus Masters # -CONFIG_W1_MASTER_MATROX=m +# CONFIG_W1_MASTER_MATROX is not set CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m CONFIG_W1_MASTER_DS1WM=m -CONFIG_W1_MASTER_GPIO=m +# CONFIG_W1_MASTER_GPIO is not set
# # 1-wire Slaves @@ -2308,29 +2574,46 @@ CONFIG_W1_MASTER_GPIO=m CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set +# CONFIG_APM_POWER is not set +CONFIG_GENERIC_ADC_BATTERY=m # CONFIG_TEST_POWER is not set +CONFIG_BATTERY_88PM860X=m # CONFIG_BATTERY_DS2760 is not set # CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_SBS is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_ISP1704 is not set +CONFIG_CHARGER_88PM860X=m # CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set -CONFIG_HWMON=m +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GOLDFISH is not set +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_QNAP=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_POWER_AVS=y +CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2345,6 +2628,8 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m @@ -2360,13 +2645,15 @@ CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_GPIO_FAN=m +# CONFIG_SENSORS_GPIO_FAN is not set +CONFIG_SENSORS_HIH6130=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m +# CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_JC42=m +# CONFIG_SENSORS_JC42 is not set CONFIG_SENSORS_LINEAGE=m -CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM63=y CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m @@ -2382,14 +2669,19 @@ CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m @@ -2398,20 +2690,20 @@ CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_LM25066=m -CONFIG_SENSORS_LTC2978=m +# CONFIG_SENSORS_LTC2978 is not set CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m -CONFIG_SENSORS_ZL6100=m +# CONFIG_SENSORS_ZL6100 is not set CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_SMM665=m +# CONFIG_SENSORS_SMM665 is not set CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m -CONFIG_SENSORS_EMC2103=m +# CONFIG_SENSORS_EMC2103 is not set CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m @@ -2422,6 +2714,8 @@ CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m @@ -2440,17 +2734,29 @@ CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_THERMAL_EMULATION=y +CONFIG_KIRKWOOD_THERMAL=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y -# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_NOWAYOUT=y
# # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m +# CONFIG_DW_WATCHDOG is not set CONFIG_ORION_WATCHDOG=m -CONFIG_MAX63XX_WATCHDOG=m +# CONFIG_MAX63XX_WATCHDOG is not set +CONFIG_RETU_WATCHDOG=m CONFIG_ALIM7101_WDT=m +CONFIG_I6300ESB_WDT=m
# # PCI-based Watchdog Cards @@ -2469,397 +2775,665 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB=m CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y -# CONFIG_SSB_B43_PCI_BRIDGE is not set -CONFIG_SSB_PCMCIAHOST_POSSIBLE=y -CONFIG_SSB_PCMCIAHOST=y +CONFIG_SSB_B43_PCI_BRIDGE=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y +# CONFIG_SSB_SILENT is not set # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_GPIO=y CONFIG_BCMA_POSSIBLE=y
# # Broadcom specific AMBA # -CONFIG_BCMA=m -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -# CONFIG_BCMA_HOST_PCI is not set -# CONFIG_BCMA_DEBUG is not set +# CONFIG_BCMA is not set
# # Multifunction device drivers # CONFIG_MFD_CORE=y -CONFIG_MFD_88PM860X=y -CONFIG_MFD_SM501=m -# CONFIG_MFD_SM501_GPIO is not set +# CONFIG_MFD_AS3711 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_CROS_EC is not set # CONFIG_MFD_ASIC3 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_MC13XXX_I2C is not set # CONFIG_HTC_EGPIO is not set -CONFIG_HTC_PASIC3=m +# CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set -CONFIG_UCB1400_CORE=m -CONFIG_TPS6105X=m -CONFIG_TPS65010=m -CONFIG_TPS6507X=m +CONFIG_LPC_ICH=m +CONFIG_LPC_SCH=m +# CONFIG_MFD_JANZ_CMODIO is not set +CONFIG_MFD_88PM800=y +CONFIG_MFD_88PM805=y +CONFIG_MFD_88PM860X=y +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +CONFIG_MFD_VIPERBOARD=m +CONFIG_MFD_RETU=m +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RDC321X is not set +CONFIG_MFD_RTSX_PCI=m +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +CONFIG_MFD_SM501=m +CONFIG_MFD_SM501_GPIO=y +# CONFIG_MFD_SMSC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set -# CONFIG_MFD_STMPE is not set +# CONFIG_TWL6040_CORE is not set +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_LM3533=m +# CONFIG_MFD_TIMBERDALE is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6393XB is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -CONFIG_MFD_WM8400=m +CONFIG_MFD_VX855=m +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM831X_I2C is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_ABX500_CORE is not set -CONFIG_MFD_TIMBERDALE=m -CONFIG_LPC_SCH=m -CONFIG_MFD_RDC321X=m -CONFIG_MFD_JANZ_CMODIO=m -CONFIG_MFD_VX855=m -CONFIG_MFD_WL1273_CORE=m -# CONFIG_MFD_AAT2870_CORE is not set CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR_DUMMY is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -CONFIG_REGULATOR_GPIO=m -# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_GPIO is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_FAN53555 is not set +# CONFIG_REGULATOR_ISL6271A is not set +CONFIG_REGULATOR_88PM8607=y # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_WM8400 is not set -# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_MAX8973 is not set # CONFIG_REGULATOR_LP3971 is not set # CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_LP872X is not set +CONFIG_REGULATOR_LP8755=m +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set # CONFIG_REGULATOR_TPS65023 is not set # CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_88PM8607 is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set -CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_SUPPORT=y
# # Multimedia core support # +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +# CONFIG_MEDIA_RADIO_SUPPORT is not set +CONFIG_MEDIA_RC_SUPPORT=y CONFIG_MEDIA_CONTROLLER=y -CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_DEV=y CONFIG_VIDEO_V4L2_SUBDEV_API=y -CONFIG_DVB_CORE=m +CONFIG_VIDEO_V4L2=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m +CONFIG_DVB_CORE=y CONFIG_DVB_NET=y -CONFIG_VIDEO_MEDIA=m +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y
# -# Multimedia drivers +# Media drivers # -CONFIG_RC_CORE=m -CONFIG_LIRC=m +CONFIG_RC_CORE=y CONFIG_RC_MAP=m -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_RC5_SZ_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_LIRC_CODEC is not set +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_RC_DEVICES=y # CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_RC_LOOPBACK is not set -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -CONFIG_VIDEO_IR_I2C=m - -# -# Encoders, decoders, sensors and other helper chips -# - -# -# Audio decoders, processors and mixers -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_MEDIA_USB_SUPPORT=y
# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_VPX3220 is not set - +# Webcam devices # -# Video and audio decoders -# -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_AK881X is not set - -# -# Camera sensor devices -# -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_S5K6AA is not set - -# -# Flash devices -# -# CONFIG_VIDEO_ADP1653 is not set +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +# CONFIG_USB_GSPCA_TOPRO is not set +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_USB_SN9C102=m + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160=m +# CONFIG_VIDEO_STK1160_AC97 is not set + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m +CONFIG_MEDIA_PCI_SUPPORT=y + +# +# Media capture support +# + +# +# Media capture/analog TV support +# +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_MXB=m + +# +# Media capture/analog/hybrid TV support +# +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_BT848=m +CONFIG_DVB_BT8XX=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7164=m + +# +# Media digital TV PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_DM1105=m +CONFIG_DVB_PT1=m +CONFIG_MANTIS_CORE=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_HOPPER=m +CONFIG_DVB_NGENE=m +# CONFIG_DVB_DDBRIDGE is not set +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_VIDEO_TIMBERDALE=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_PLATFORM=m +# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set +# CONFIG_VIDEO_SH_MOBILE_CEU is not set +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m +CONFIG_VIDEO_SH_VEU=m +# CONFIG_V4L_TEST_DRIVERS is not set
# -# Video improvement chips +# Supported MMC/SDIO adapters # -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_MEDIA_PARPORT_SUPPORT is not set
# -# Miscelaneous helper chips -# -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_BWQCAM is not set -# CONFIG_VIDEO_CQCAM is not set -# CONFIG_VIDEO_W9966 is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_MXB is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_TIMBERDALE is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_CX23885 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_IVTV is not set -# CONFIG_VIDEO_CX18 is not set -# CONFIG_VIDEO_SAA7164 is not set -# CONFIG_VIDEO_CAFE_CCIC is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_TLG2300 is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_TM6000 is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_TIMBERDALE is not set -# CONFIG_RADIO_WL1273 is not set - -# -# Texas Instruments WL128x FM driver (ST based) -# -# CONFIG_RADIO_WL128X is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y - -# -# Supported SAA7146 based PCI Adapters +# Supported FireWire (IEEE 1394) Adapters # -# CONFIG_TTPCI_EEPROM is not set -# CONFIG_DVB_AV7110 is not set -# CONFIG_DVB_BUDGET_CORE is not set +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_MEDIA_COMMON_OPTIONS=y
# -# Supported USB Adapters +# common driver options # -# CONFIG_DVB_USB is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set -# CONFIG_SMS_SIANO_MDTV is not set +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set
# -# Supported FlexCopII (B2C2) Adapters +# Media ancillary drivers (tuners, sensors, i2c, frontends) # -# CONFIG_DVB_B2C2_FLEXCOP is not set +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=y
# -# Supported BT878 Adapters +# Audio decoders, processors and mixers # +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m
# -# Supported Pluto2 Adapters +# RDS decoders # -# CONFIG_DVB_PLUTO2 is not set +CONFIG_VIDEO_SAA6588=m
# -# Supported SDMC DM1105 Adapters +# Video decoders # -# CONFIG_DVB_DM1105 is not set +CONFIG_VIDEO_ADV7180=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m
# -# Supported FireWire (IEEE 1394) Adapters +# Video and audio decoders # -# CONFIG_DVB_FIREDTV is not set +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_CX25840=m
# -# Supported Earthsoft PT1 Adapters +# Video encoders # -# CONFIG_DVB_PT1 is not set +CONFIG_VIDEO_SAA7127=m
# -# Supported Mantis Adapters +# Camera sensor devices # -# CONFIG_MANTIS_CORE is not set +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_MT9V011=m
# -# Supported nGene Adapters +# Flash devices # -# CONFIG_DVB_NGENE is not set
# -# Supported ddbridge ('Octopus') Adapters +# Video improvement chips # -# CONFIG_DVB_DDBRIDGE is not set +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m
# -# Supported DVB Frontends +# Miscelaneous helper chips # -# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_VIDEO_M52790=m + +# +# Sensors used on soc_camera driver +# + +# +# soc_camera sensor drivers +# +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_MEDIA_TUNER=y +CONFIG_MEDIA_TUNER_SIMPLE=y +CONFIG_MEDIA_TUNER_TDA8290=y +CONFIG_MEDIA_TUNER_TDA827X=y +CONFIG_MEDIA_TUNER_TDA18271=y +CONFIG_MEDIA_TUNER_TDA9887=y +CONFIG_MEDIA_TUNER_MT20XX=y +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=y +CONFIG_MEDIA_TUNER_XC5000=y +CONFIG_MEDIA_TUNER_XC4000=y +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=y +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m
# # Multistandard (satellite) frontends # +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m
# # Multistandard (cable + terrestrial) frontends # +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m
# # DVB-S (satellite) frontends # +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_M88DC2800=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m +CONFIG_DVB_TDA10071=m
# # DVB-T (terrestrial) frontends # +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m
# # DVB-C (cable) frontends # +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m
# # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m
# # ISDB-T (terrestrial) frontends # +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m
# # Digital terrestrial only tuners/PLL # +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m
# # SEC control devices for DVB-S # +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m
# # Tools to develop new frontends @@ -2872,119 +3446,107 @@ CONFIG_DVB_CAPTURE_DRIVERS=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 CONFIG_DRM=m -CONFIG_DRM_TTM=m -CONFIG_DRM_TDFX=m -CONFIG_DRM_R128=m +CONFIG_DRM_USB=m +CONFIG_DRM_KMS_HELPER=m +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set + +# +# I2C encoder or helper chips +# +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m +# CONFIG_DRM_TDFX is not set +# CONFIG_DRM_R128 is not set # CONFIG_DRM_RADEON is not set -CONFIG_DRM_MGA=m -CONFIG_DRM_VIA=m -CONFIG_DRM_SAVAGE=m -CONFIG_DRM_VMWGFX=m -CONFIG_STUB_POULSBO=m -CONFIG_VGASTATE=m -CONFIG_VIDEO_OUTPUT_CONTROL=m +# CONFIG_DRM_NOUVEAU is not set +# CONFIG_DRM_MGA is not set +# CONFIG_DRM_VIA is not set +# CONFIG_DRM_SAVAGE is not set +# CONFIG_DRM_VMWGFX is not set +CONFIG_DRM_UDL=m +# CONFIG_DRM_AST is not set +# CONFIG_DRM_MGAG200 is not set +# CONFIG_DRM_CIRRUS_QEMU is not set +# CONFIG_DRM_TILCDC is not set +# CONFIG_DRM_QXL is not set +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_HDMI=y CONFIG_FB=y -CONFIG_FIRMWARE_EDID=y -CONFIG_FB_DDC=m +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set # CONFIG_FB_BOOT_VESA_SUPPORT is not set -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_CFB_FILLRECT=m +CONFIG_FB_CFB_COPYAREA=m +CONFIG_FB_CFB_IMAGEBLIT=m # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m -# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_SVGALIB=m +# CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set -CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_TILEBLITTING is not set
# # Frame buffer hardware drivers # -CONFIG_FB_CIRRUS=m -CONFIG_FB_PM2=m -CONFIG_FB_PM2_FIFO_DISCONNECT=y -CONFIG_FB_CYBER2000=m -CONFIG_FB_CYBER2000_DDC=y -CONFIG_FB_ASILIANT=y +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set -CONFIG_FB_UVESA=m +# CONFIG_FB_UVESA is not set # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_NVIDIA=m -CONFIG_FB_NVIDIA_I2C=y -# CONFIG_FB_NVIDIA_DEBUG is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y -CONFIG_FB_RIVA=m -CONFIG_FB_RIVA_I2C=y -# CONFIG_FB_RIVA_DEBUG is not set -CONFIG_FB_RIVA_BACKLIGHT=y -CONFIG_FB_MATROX=m -CONFIG_FB_MATROX_MILLENIUM=y -CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=m -CONFIG_FB_MATROX_MAVEN=m -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -CONFIG_FB_ATY128=m -CONFIG_FB_ATY128_BACKLIGHT=y -CONFIG_FB_ATY=m -CONFIG_FB_ATY_CT=y -# CONFIG_FB_ATY_GENERIC_LCD is not set -CONFIG_FB_ATY_GX=y -CONFIG_FB_ATY_BACKLIGHT=y -CONFIG_FB_S3=m -CONFIG_FB_S3_DDC=y +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set -CONFIG_FB_SIS=m -CONFIG_FB_SIS_300=y -CONFIG_FB_SIS_315=y -CONFIG_FB_NEOMAGIC=m -CONFIG_FB_KYRO=m -CONFIG_FB_3DFX=m -CONFIG_FB_3DFX_ACCEL=y -CONFIG_FB_3DFX_I2C=y -CONFIG_FB_VOODOO1=m -CONFIG_FB_VT8623=m -CONFIG_FB_TRIDENT=m -CONFIG_FB_ARK=m -CONFIG_FB_PM3=m +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set # CONFIG_FB_CARMINE is not set -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SM501 is not set CONFIG_FB_SMSCUFX=m # CONFIG_FB_UDL is not set +# CONFIG_FB_GOLDFISH is not set # CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m +# CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +# CONFIG_FB_SIMPLE is not set +# CONFIG_EXYNOS_VIDEO is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m -CONFIG_BACKLIGHT_88PM860X=m -CONFIG_BACKLIGHT_PCF50633=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# +# CONFIG_BACKLIGHT_GENERIC is not set +# CONFIG_BACKLIGHT_LM3533 is not set +# CONFIG_BACKLIGHT_PWM is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_88PM860X is not set +# CONFIG_BACKLIGHT_LM3630 is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_LP855X is not set
# # Console display driver support @@ -2997,9 +3559,10 @@ CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_FB_SSD1307=m CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y CONFIG_SOUND_OSS_CORE_PRECLAIM=y @@ -3008,6 +3571,7 @@ CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m +CONFIG_SND_COMPRESS_OFFLOAD=m CONFIG_SND_JACK=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m @@ -3021,9 +3585,12 @@ CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_VERBOSE is not set +CONFIG_SND_PCM_XRUN_DEBUG=y CONFIG_SND_VMASTER=y +CONFIG_SND_KCTL_JACK=y CONFIG_SND_RAWMIDI_SEQ=m CONFIG_SND_OPL3_LIB_SEQ=m # CONFIG_SND_OPL4_LIB_SEQ is not set @@ -3043,12 +3610,12 @@ CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m CONFIG_SND_AC97_POWER_SAVE=y -CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 CONFIG_SND_TEA575X=m CONFIG_SND_PCI=y CONFIG_SND_AD1889=m CONFIG_SND_ALS300=m -# CONFIG_SND_ALI5451 is not set +CONFIG_SND_ALI5451=m CONFIG_SND_ATIIXP=m CONFIG_SND_ATIIXP_MODEM=m CONFIG_SND_AU8810=m @@ -3096,11 +3663,10 @@ CONFIG_SND_HDA_PREALLOC_SIZE=64 CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y -CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_BEEP_MODE=1 CONFIG_SND_HDA_INPUT_JACK=y -CONFIG_SND_HDA_PATCH_LOADER=y +# CONFIG_SND_HDA_PATCH_LOADER is not set CONFIG_SND_HDA_CODEC_REALTEK=y -CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y @@ -3109,11 +3675,11 @@ CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y CONFIG_SND_HDA_CODEC_CA0132=y +# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y -CONFIG_SND_HDA_POWER_SAVE=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m CONFIG_SND_ICE1712=m @@ -3149,12 +3715,11 @@ CONFIG_SND_USB_6FIRE=m CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=m CONFIG_SND_FIREWIRE_SPEAKERS=m -CONFIG_SND_ISIGHT=m -CONFIG_SND_PCMCIA=y -CONFIG_SND_VXPOCKET=m -CONFIG_SND_PDAUDIOCF=m +# CONFIG_SND_ISIGHT is not set +# CONFIG_SND_SCS1X is not set CONFIG_SND_SOC=m -CONFIG_SND_SOC_CACHE_LZO=y +CONFIG_SND_ATMEL_SOC=m +CONFIG_SND_DESIGNWARE_I2S=m CONFIG_SND_KIRKWOOD_SOC=m CONFIG_SND_KIRKWOOD_SOC_I2S=m CONFIG_SND_KIRKWOOD_SOC_OPENRD=m @@ -3163,98 +3728,105 @@ CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_ALL_CODECS is not set CONFIG_SND_SOC_ALC5623=m CONFIG_SND_SOC_CS42L51=m +CONFIG_SND_SIMPLE_CARD=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set
# -# USB Input Devices +# HID support # -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y
# # Special HID drivers # -CONFIG_HID_A4TECH=m -CONFIG_HID_ACRUX=m -# CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_PRODIKEYS=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -# CONFIG_DRAGONRISE_FF is not set +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_PRODIKEYS is not set +CONFIG_HID_CYPRESS=y +# CONFIG_HID_DRAGONRISE is not set # CONFIG_HID_EMS_FF is not set -CONFIG_HID_ELECOM=m -CONFIG_HID_EZKEY=m -CONFIG_HID_HOLTEK=m -# CONFIG_HOLTEK_FF is not set +# CONFIG_HID_ELECOM is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_HOLTEK is not set CONFIG_HID_KEYTOUCH=m -CONFIG_HID_KYE=m -CONFIG_HID_UCLOGIC=m -CONFIG_HID_WALTOP=m +CONFIG_HID_KYE=y +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set CONFIG_HID_GYRATION=m +# CONFIG_HID_ICADE is not set CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m +CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=m -CONFIG_HID_LOGITECH=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set -CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NTRIG=m +# CONFIG_HID_MAGICMOUSE is not set +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -# CONFIG_PANTHERLORD_FF is not set +# CONFIG_HID_PANTHERLORD is not set CONFIG_HID_PETALYNX=m CONFIG_HID_PICOLCD=m CONFIG_HID_PICOLCD_FB=y CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y -CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m +CONFIG_HID_PICOLCD_CIR=y +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_PS3REMOTE is not set CONFIG_HID_ROCCAT=m -CONFIG_HID_ROCCAT_COMMON=m -CONFIG_HID_ROCCAT_ARVO=m -CONFIG_HID_ROCCAT_KONE=m -CONFIG_HID_ROCCAT_KONEPLUS=m -CONFIG_HID_ROCCAT_KOVAPLUS=m -CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m +# CONFIG_HID_SONY is not set CONFIG_HID_SPEEDLINK=m +# CONFIG_HID_STEELSERIES is not set CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -# CONFIG_GREENASIA_FF is not set -CONFIG_HID_SMARTJOYPLUS=m -# CONFIG_SMARTJOYPLUS_FF is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +CONFIG_HID_TIVO=m CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -# CONFIG_THRUSTMASTER_FF is not set -CONFIG_HID_WACOM=m -# CONFIG_HID_WACOM_POWER_SUPPLY is not set -CONFIG_HID_WIIMOTE=m -CONFIG_HID_ZEROPLUS=m -# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_THINGM=m +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_ZEROPLUS is not set CONFIG_HID_ZYDACRON=m -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_HID_SENSOR_HUB=m + +# +# USB HID support +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +CONFIG_I2C_HID=m CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -3262,14 +3834,12 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set -# CONFIG_USB_MON is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_MON=m CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_WUSB_CBAF_DEBUG is not set @@ -3278,27 +3848,32 @@ CONFIG_USB_WUSB_CBAF=m # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=m +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=m # CONFIG_USB_XHCI_HCD_DEBUGGING is not set CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_EHCI_HCD_ORION=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y -CONFIG_USB_U132_HCD=m +# CONFIG_USB_U132_HCD is not set CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set -# CONFIG_USB_SL811_CS is not set -CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_SL811_HCD_ISO=y +# CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m +CONFIG_USB_HCD_SSB=m
# # USB Device Class drivers @@ -3315,7 +3890,7 @@ CONFIG_USB_TMC=m # # also be needed; see USB_STORAGE Help for more info # -CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y @@ -3331,21 +3906,24 @@ CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m -CONFIG_USB_UAS=m -# CONFIG_USB_LIBUSUAL is not set
# # USB Imaging devices # -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_DWC3=m +CONFIG_USB_DWC3_HOST=y +# CONFIG_USB_DWC3_DEBUG is not set +CONFIG_USB_CHIPIDEA=m +# CONFIG_USB_CHIPIDEA_HOST is not set +# CONFIG_USB_CHIPIDEA_DEBUG is not set
# # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m @@ -3355,7 +3933,7 @@ CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m +# CONFIG_USB_SERIAL_EMPEG is not set CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_FUNSOFT=m CONFIG_USB_SERIAL_VISOR=m @@ -3363,16 +3941,18 @@ CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_F81232=m +# CONFIG_USB_SERIAL_GARMIN is not set CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m # CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set +CONFIG_USB_SERIAL_KLSI=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_METRO is not set CONFIG_USB_SERIAL_MOS7720=m -# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set +CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set @@ -3381,22 +3961,25 @@ CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set CONFIG_USB_SERIAL_SIEMENS_MPI=m CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m -CONFIG_USB_SERIAL_ZIO=m +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +CONFIG_USB_SERIAL_ZTE=m CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m # CONFIG_USB_SERIAL_DEBUG is not set
# @@ -3404,14 +3987,14 @@ CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set +CONFIG_USB_ADUTUX=m CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set # CONFIG_USB_IDMOUSE is not set CONFIG_USB_FTDI_ELAN=m # CONFIG_USB_APPLEDISPLAY is not set @@ -3421,22 +4004,17 @@ CONFIG_USB_SISUSBVGA_CON=y # CONFIG_USB_TRANCEVIBRATOR is not set CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set -CONFIG_USB_ISIGHTFW=m +# CONFIG_USB_ISIGHTFW is not set CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HSIC_USB3503=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m +# CONFIG_USB_PHY is not set # CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -# CONFIG_USB_ULPI is not set -CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m @@ -3452,25 +4030,30 @@ CONFIG_MMC=m CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set
# # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -# CONFIG_MMC_RICOH_MMC is not set +CONFIG_MMC_RICOH_MMC=y CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_PXAV2=m CONFIG_MMC_TIFM_SD=m CONFIG_MMC_MVSDIO=m -CONFIG_MMC_SDRICOH_CS=m CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_DW=m # CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_DW_PLTFM=m +CONFIG_MMC_DW_EXYNOS=m +CONFIG_MMC_DW_PCI=m CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m +CONFIG_MMC_REALTEK_PCI=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set
@@ -3486,46 +4069,63 @@ CONFIG_MSPRO_BLOCK=m CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y
# # LED drivers # -CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_88PM860X=y CONFIG_LEDS_LM3530=m -CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_PCA9532_GPIO=y -CONFIG_LEDS_GPIO=m +CONFIG_LEDS_LM3533=m +CONFIG_LEDS_LM3642=m +# CONFIG_LEDS_PCA9532 is not set +CONFIG_LEDS_GPIO=y CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP55XX_COMMON=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m -CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_LP5562=m +# CONFIG_LEDS_PCA955X is not set +CONFIG_LEDS_PCA9633=m +CONFIG_LEDS_PWM=m CONFIG_LEDS_REGULATOR=m -CONFIG_LEDS_BD2802=m +# CONFIG_LEDS_BD2802 is not set CONFIG_LEDS_LT3593=m -CONFIG_LEDS_NS2=y -CONFIG_LEDS_NETXBIG=y -CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_NS2=m +CONFIG_LEDS_NETXBIG=m +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_BLINKM=m
# # LED Triggers # +CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
# # iptables trigger is under Netfilter config (LED target) # +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set +# CONFIG_EDAC is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_SYSTOHC=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set
@@ -3541,7 +4141,8 @@ CONFIG_RTC_INTF_DEV=y # # I2C RTC drivers # -CONFIG_RTC_DRV_88PM860X=y +CONFIG_RTC_DRV_88PM860X=m +CONFIG_RTC_DRV_88PM80X=m CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m @@ -3551,12 +4152,13 @@ CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m -CONFIG_RTC_DRV_S35390A=m +# CONFIG_RTC_DRV_S35390A is not set CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m @@ -3570,25 +4172,31 @@ CONFIG_RTC_DRV_RV3029C2=m # # Platform RTC drivers # -CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_CMOS=y CONFIG_RTC_DRV_DS1286=m CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m +# CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_DS2404=m
# # on-CPU RTC drivers # CONFIG_RTC_DRV_MV=y +CONFIG_RTC_DRV_SNVS=m + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_HID_SENSOR_TIME=m CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set
@@ -3596,32 +4204,39 @@ CONFIG_DMADEVICES=y # DMA Devices # CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y +# CONFIG_DW_DMAC is not set CONFIG_MV_XOR=y -# CONFIG_TIMB_DMA is not set +CONFIG_TIMB_DMA=m CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y
# # DMA Clients # -# CONFIG_NET_DMA is not set +CONFIG_NET_DMA=y CONFIG_ASYNC_TX_DMA=y -CONFIG_DMATEST=m +# CONFIG_DMATEST is not set # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m -CONFIG_UIO_CIF=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m +# CONFIG_UIO_CIF is not set +# CONFIG_UIO_PDRV is not set +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m -CONFIG_UIO_NETX=m +# CONFIG_UIO_NETX is not set +CONFIG_VIRT_DRIVERS=y
# # Virtio drivers # # CONFIG_VIRTIO_PCI is not set -# CONFIG_VIRTIO_BALLOON is not set # CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# CONFIG_STAGING=y CONFIG_ET131X=m CONFIG_USBIP_CORE=m @@ -3631,35 +4246,95 @@ CONFIG_USBIP_HOST=m # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set # CONFIG_ECHO is not set +# CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set # CONFIG_R8187SE is not set # CONFIG_RTL8192U is not set -# CONFIG_RTL8192E is not set +# CONFIG_RTLLIB is not set # CONFIG_R8712U is not set -# CONFIG_RTS_PSTOR is not set # CONFIG_RTS5139 is not set # CONFIG_TRANZPORT is not set -# CONFIG_POHMELFS is not set -CONFIG_IDE_PHISON=m +# CONFIG_IDE_PHISON is not set # CONFIG_LINE6_USB is not set -# CONFIG_DRM_NOUVEAU is not set # CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_VME_BUS is not set # CONFIG_DX_SEP is not set -# CONFIG_IIO is not set -# CONFIG_XVMALLOC is not set -# CONFIG_ZRAM is not set -# CONFIG_WLAGS49_H2 is not set -# CONFIG_WLAGS49_H25 is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# + +# +# Analog to digital converters +# +# CONFIG_AD7291 is not set +# CONFIG_AD7606 is not set +# CONFIG_AD799X is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# + +# +# Digital gyroscope sensors +# + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +# +# Magnetometer sensors +# +# CONFIG_SENSORS_HMC5843 is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# + +# +# Triggers - standalone +# +# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set +# CONFIG_IIO_GPIO_TRIGGER is not set +# CONFIG_IIO_SYSFS_TRIGGER is not set +# CONFIG_IIO_SIMPLE_DUMMY is not set +# CONFIG_ZSMALLOC is not set # CONFIG_FB_SM7XX is not set # CONFIG_CRYSTALHD is not set -# CONFIG_CXT1E1 is not set # CONFIG_FB_XGI is not set -# CONFIG_SBE_2T3E3 is not set # CONFIG_USB_ENESTORAGE is not set # CONFIG_BCM_WIMAX is not set # CONFIG_FT1000 is not set @@ -3673,12 +4348,134 @@ CONFIG_IDE_PHISON=m # CONFIG_STAGING_MEDIA is not set
# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_CSR_WIFI is not set +CONFIG_NET_VENDOR_SILICOM=y +CONFIG_SBYPASS=m +CONFIG_BPCTL=m +CONFIG_CED1401=m +# CONFIG_DGRP is not set +CONFIG_FIREWIRE_SERIAL=m +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_DEBUG is not set +CONFIG_COMMON_CLK_SI5351=m +CONFIG_MVEBU_CLK_CORE=y +CONFIG_MVEBU_CLK_GATING=y + +# # Hardware Spinlock drivers # CONFIG_CLKSRC_MMIO=y +CONFIG_MAILBOX=y CONFIG_IOMMU_SUPPORT=y -# CONFIG_VIRT_DRIVERS is not set +CONFIG_OF_IOMMU=y + +# +# Remoteproc drivers +# +# CONFIG_STE_MODEM_RPROC is not set + +# +# Rpmsg drivers +# # CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +CONFIG_MEMORY=y +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 + +# +# Accelerometers +# +# CONFIG_HID_SENSOR_ACCEL_3D is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set + +# +# Analog to digital converters +# +# CONFIG_EXYNOS_ADC is not set +# CONFIG_MAX1363 is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_VIPERBOARD_ADC is not set + +# +# Amplifiers +# + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5446 is not set +# CONFIG_MAX517 is not set +# CONFIG_MCP4725 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# + +# +# Digital gyroscope sensors +# +# CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Inertial measurement units +# +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_SENSORS_LM3533 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_VCNL4000 is not set +# CONFIG_HID_SENSOR_ALS is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_VME_BUS is not set +CONFIG_PWM=y +CONFIG_IRQCHIP=y +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set
# # File systems @@ -3687,11 +4484,11 @@ CONFIG_IOMMU_SUPPORT=y # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y -CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set @@ -3699,43 +4496,47 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y +# CONFIG_JFS_FS is not set CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set # CONFIG_NILFS2_FS is not set CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=m +CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_PRINT_QUOTA_WARNING is not set # CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m +CONFIG_QUOTA_TREE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y -CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m +CONFIG_GENERIC_ACL=y
# # Caches # CONFIG_FSCACHE=m -# CONFIG_FSCACHE_STATS is not set +CONFIG_FSCACHE_STATS=y # CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set # CONFIG_FSCACHE_OBJECT_LIST is not set @@ -3746,7 +4547,7 @@ CONFIG_CACHEFILES=m # # CD-ROM/DVD Filesystems # -CONFIG_ISO9660_FS=m +CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m @@ -3756,10 +4557,10 @@ CONFIG_UDF_NLS=y # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m -# CONFIG_MSDOS_FS is not set +CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" # CONFIG_NTFS_FS is not set
# @@ -3767,37 +4568,22 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set +CONFIG_CONFIGFS_FS=m CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -CONFIG_ECRYPT_FS=m +# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set +# CONFIG_JFFS2_FS is not set # CONFIG_UBIFS_FS is not set # CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set @@ -3807,113 +4593,116 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set -# CONFIG_PSTORE is not set +CONFIG_PSTORE=y +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_FTRACE is not set +# CONFIG_PSTORE_RAM is not set # CONFIG_SYSV_FS is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set +# CONFIG_UFS_FS is not set # CONFIG_EXOFS_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_ORE=m CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m -CONFIG_NFS_V3=y +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_V4_1 is not set -# CONFIG_NFS_FSCACHE is not set +CONFIG_NFS_V4=m +# CONFIG_NFS_SWAP is not set +CONFIG_NFS_V4_1=y +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_OBJLAYOUT=m +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="ipfire.org" +CONFIG_NFS_FSCACHE=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y -# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y +# CONFIG_CIFS_STATS2 is not set # CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_UPCALL is not set CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_FSCACHE is not set CONFIG_CIFS_ACL=y +# CONFIG_CIFS_DEBUG is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_FSCACHE=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y -CONFIG_NLS_DEFAULT="cp850" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y +CONFIG_NLS_DEFAULT="utf-8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set
# # Kernel hacking @@ -3922,27 +4711,29 @@ CONFIG_NLS_UTF8=y CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 +CONFIG_FRAME_WARN=2048 # CONFIG_MAGIC_SYSRQ is not set CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_FS=y +CONFIG_HEADERS_CHECK=y # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_LOCKUP_DETECTOR is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +CONFIG_DEBUG_SHIRQ=y +CONFIG_LOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set +CONFIG_SCHEDSTATS=y CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set @@ -3950,10 +4741,10 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set -# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set @@ -3962,53 +4753,247 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set +CONFIG_DEBUG_LIST=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set + +# +# RCU Debugging +# +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_TRACE is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_LKDTM is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set # CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_SCHED_TRACER=y +# CONFIG_FTRACE_SYSCALLS is not set +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +CONFIG_STACK_TRACER=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_PROBE_EVENTS is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +CONFIG_RING_BUFFER_BENCHMARK=m +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +CONFIG_RBTREE_TEST=m +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_BUILD_DOCSRC is not set +CONFIG_DYNAMIC_DEBUG=y # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set CONFIG_ASYNC_RAID6_TEST=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set +# CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set -# CONFIG_STRICT_DEVMEM is not set -# CONFIG_ARM_UNWIND is not set +CONFIG_STRICT_DEVMEM=y +CONFIG_ARM_UNWIND=y +CONFIG_OLD_MCOUNT=y # CONFIG_DEBUG_USER is not set CONFIG_DEBUG_LL=y CONFIG_DEBUG_LL_UART_NONE=y # CONFIG_DEBUG_ICEDCC is not set +# CONFIG_DEBUG_SEMIHOSTING is not set +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +CONFIG_UNCOMPRESS_INCLUDE="mach/uncompress.h" CONFIG_EARLY_PRINTK=y
# # Security options # + +# +# Grsecurity +# +CONFIG_PAX_USERCOPY_SLABS=y +CONFIG_GRKERNSEC=y +# CONFIG_GRKERNSEC_CONFIG_AUTO is not set +CONFIG_GRKERNSEC_CONFIG_CUSTOM=y + +# +# Customize Configuration +# + +# +# PaX +# +CONFIG_PAX=y + +# +# PaX Control +# +# CONFIG_PAX_SOFTMODE is not set +CONFIG_PAX_EI_PAX=y +CONFIG_PAX_PT_PAX_FLAGS=y +# CONFIG_PAX_XATTR_PAX_FLAGS is not set +# CONFIG_PAX_NO_ACL_FLAGS is not set +CONFIG_PAX_HAVE_ACL_FLAGS=y +# CONFIG_PAX_HOOK_ACL_FLAGS is not set + +# +# Non-executable pages +# +CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="" + +# +# Address Space Layout Randomization +# +CONFIG_PAX_ASLR=y +CONFIG_PAX_RANDUSTACK=y +CONFIG_PAX_RANDMMAP=y + +# +# Miscellaneous hardening features +# +CONFIG_PAX_MEMORY_SANITIZE=y +CONFIG_PAX_MEMORY_STRUCTLEAK=y +CONFIG_PAX_USERCOPY=y +# CONFIG_PAX_LATENT_ENTROPY is not set + +# +# Memory Protections +# +# CONFIG_GRKERNSEC_KMEM is not set +CONFIG_GRKERNSEC_JIT_HARDEN=y +# CONFIG_GRKERNSEC_PERF_HARDEN is not set +CONFIG_GRKERNSEC_RAND_THREADSTACK=y +CONFIG_GRKERNSEC_PROC_MEMMAP=y +CONFIG_GRKERNSEC_BRUTE=y +CONFIG_GRKERNSEC_MODHARDEN=y +CONFIG_GRKERNSEC_HIDESYM=y +CONFIG_GRKERNSEC_KERN_LOCKOUT=y + +# +# Role Based Access Control Options +# +CONFIG_GRKERNSEC_NO_RBAC=y +# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set +CONFIG_GRKERNSEC_ACL_MAXTRIES=3 +CONFIG_GRKERNSEC_ACL_TIMEOUT=30 + +# +# Filesystem Protections +# +# CONFIG_GRKERNSEC_PROC is not set +CONFIG_GRKERNSEC_LINK=y +# CONFIG_GRKERNSEC_SYMLINKOWN is not set +CONFIG_GRKERNSEC_FIFO=y +# CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set +# CONFIG_GRKERNSEC_ROFS is not set +CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y +CONFIG_GRKERNSEC_CHROOT=y +# CONFIG_GRKERNSEC_CHROOT_MOUNT is not set +CONFIG_GRKERNSEC_CHROOT_DOUBLE=y +CONFIG_GRKERNSEC_CHROOT_PIVOT=y +CONFIG_GRKERNSEC_CHROOT_CHDIR=y +# CONFIG_GRKERNSEC_CHROOT_CHMOD is not set +CONFIG_GRKERNSEC_CHROOT_FCHDIR=y +# CONFIG_GRKERNSEC_CHROOT_MKNOD is not set +CONFIG_GRKERNSEC_CHROOT_SHMAT=y +CONFIG_GRKERNSEC_CHROOT_UNIX=y +CONFIG_GRKERNSEC_CHROOT_FINDTASK=y +CONFIG_GRKERNSEC_CHROOT_NICE=y +CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +# CONFIG_GRKERNSEC_CHROOT_CAPS is not set +CONFIG_GRKERNSEC_CHROOT_INITRD=y + +# +# Kernel Auditing +# +# CONFIG_GRKERNSEC_AUDIT_GROUP is not set +# CONFIG_GRKERNSEC_EXECLOG is not set +CONFIG_GRKERNSEC_RESLOG=y +# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set +# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set +# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set +# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set +CONFIG_GRKERNSEC_SIGNAL=y +CONFIG_GRKERNSEC_FORKFAIL=y +# CONFIG_GRKERNSEC_TIME is not set +CONFIG_GRKERNSEC_PROC_IPADDR=y + +# +# Executable Protections +# +CONFIG_GRKERNSEC_DMESG=y +CONFIG_GRKERNSEC_HARDEN_PTRACE=y +CONFIG_GRKERNSEC_PTRACE_READEXEC=y +CONFIG_GRKERNSEC_SETXID=y +# CONFIG_GRKERNSEC_TPE is not set + +# +# Network Protections +# +CONFIG_GRKERNSEC_RANDNET=y +CONFIG_GRKERNSEC_BLACKHOLE=y +CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y +# CONFIG_GRKERNSEC_SOCKET is not set + +# +# Physical Protections +# +# CONFIG_GRKERNSEC_DENYUSB is not set + +# +# Sysctl Support +# +# CONFIG_GRKERNSEC_SYSCTL is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=6 CONFIG_KEYS=y # CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +# CONFIG_SECURITY_SELINUX is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_IMA is not set +# CONFIG_EVM is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m @@ -4022,43 +5007,44 @@ CONFIG_CRYPTO=y # # Crypto core or helper # +CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP=m CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_USER=m -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +# CONFIG_CRYPTO_USER is not set +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_TEST=m
# # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_SEQIV=y
# # Block modes # -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_ECB=y CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_XTS=m @@ -4066,6 +5052,7 @@ CONFIG_CRYPTO_XTS=m # # Hash modes # +CONFIG_CRYPTO_CMAC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m @@ -4073,17 +5060,19 @@ CONFIG_CRYPTO_VMAC=m # # Digest # -CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32=y CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM=y +CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m @@ -4091,12 +5080,14 @@ CONFIG_CRYPTO_WP512=m # # Ciphers # -CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_ARM=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m @@ -4112,7 +5103,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m # # Compression # -CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_ZLIB=m CONFIG_CRYPTO_LZO=m
@@ -4120,31 +5111,45 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_USER_API=m -CONFIG_CRYPTO_USER_API_HASH=m -CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_DEV_MV_CESA=m +CONFIG_CRYPTO_DEV_MV_CESA=y CONFIG_CRYPTO_DEV_HIFN_795X=m CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y -# CONFIG_BINARY_PRINTF is not set +CONFIG_ASYMMETRIC_KEY_TYPE=m +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m +CONFIG_PUBLIC_KEY_ALGO_RSA=m +CONFIG_X509_CERTIFICATE_PARSER=m +CONFIG_BINARY_PRINTF=y
# # Library routines # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y -CONFIG_CRC_CCITT=m +CONFIG_RATIONAL=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_CRC_CCITT=y CONFIG_CRC16=y -CONFIG_CRC_T10DIF=m +CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y +CONFIG_ZLIB_DEFLATE=m CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_XZ_DEC=y @@ -4169,7 +5174,19 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y +CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_GENERIC_ATOMIC64=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_AVERAGE=y +CONFIG_CLZ_TAB=y CONFIG_CORDIC=m +# CONFIG_DDR is not set +CONFIG_MPILIB=m +CONFIG_OID_REGISTRY=m +CONFIG_VIRTUALIZATION=y +CONFIG_KVM_ARM_MAX_VCPUS=0 + +# +# Virtio drivers +# diff --git a/config/kernel/kernel.config.armv5tel-ipfire-multi b/config/kernel/kernel.config.armv5tel-ipfire-multi new file mode 100644 index 0000000..bb9f21a --- /dev/null +++ b/config/kernel/kernel.config.armv5tel-ipfire-multi @@ -0,0 +1,5170 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm 3.10.21 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_NO_IOPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_GENERIC_BUG=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +# CONFIG_KERNEL_GZIP is not set +# CONFIG_KERNEL_LZMA is not set +CONFIG_KERNEL_XZ=y +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_FHANDLE=y +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y +CONFIG_AUDIT_TREE=y +CONFIG_AUDIT_LOGINUID_IMMUTABLE=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_SPARSE_IRQ=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_PREEMPT_RCU is not set +CONFIG_RCU_STALL_COMMON=y +CONFIG_CONTEXT_TRACKING=y +CONFIG_RCU_USER_QS=y +CONFIG_CONTEXT_TRACKING_FORCE=y +CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 +CONFIG_RCU_FANOUT_EXACT=y +# CONFIG_RCU_FAST_NO_HZ is not set +# CONFIG_TREE_RCU_TRACE is not set +CONFIG_RCU_NOCB_CPU=y +# CONFIG_RCU_NOCB_CPU_NONE is not set +# CONFIG_RCU_NOCB_CPU_ZERO is not set +CONFIG_RCU_NOCB_CPU_ALL=y +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_SWAP_ENABLED=y +CONFIG_MEMCG_KMEM=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_MM_OWNER=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_HAVE_UID16=y +CONFIG_HOTPLUG=y +CONFIG_EXPERT=y +CONFIG_UID16=y +# CONFIG_SYSCTL_SYSCALL is not set +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_PCI_QUIRKS=y +CONFIG_EMBEDDED=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_PROFILING=y +CONFIG_TRACEPOINTS=y +CONFIG_OPROFILE=m +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_JUMP_LABEL=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_MODULE_SIG is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_THROTTLING=y + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_CFQ_GROUP_IOSCHED=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_PADATA=y +CONFIG_ASN1=m +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +CONFIG_ARCH_MULTIPLATFORM=y +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_LPC32XX is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_SHMOBILE is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C24XX is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP1 is not set + +# +# Multiple platform selection +# + +# +# CPU Core family selection +# +# CONFIG_ARCH_MULTI_V6 is not set +CONFIG_ARCH_MULTI_V7=y +CONFIG_ARCH_MULTI_V6_V7=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_BCM is not set +# CONFIG_GPIO_PCA953X is not set +CONFIG_KEYBOARD_GPIO_POLLED=m +# CONFIG_ARCH_HIGHBANK is not set +CONFIG_ARCH_MXC=y + +# +# Freescale i.MX support +# +# CONFIG_MXC_IRQ_PRIOR is not set +CONFIG_MXC_TZIC=y +# CONFIG_MXC_DEBUG_BOARD is not set +CONFIG_HAVE_IMX_ANATOP=y +CONFIG_HAVE_IMX_GPC=y +CONFIG_HAVE_IMX_MMDC=y +CONFIG_HAVE_IMX_SRC=y +CONFIG_ARCH_MXC_IOMUX_V3=y +CONFIG_SOC_IMX5=y +CONFIG_SOC_IMX51=y + +# +# i.MX51 machines: +# +CONFIG_MACH_IMX51_DT=y +# CONFIG_MACH_MX51_BABBAGE is not set +# CONFIG_MACH_EUKREA_CPUIMX51SD is not set + +# +# Device tree only +# +CONFIG_SOC_IMX53=y +CONFIG_SOC_IMX6Q=y +CONFIG_IMX_HAVE_PLATFORM_FEC=y +CONFIG_IMX_HAVE_PLATFORM_GPIO_KEYS=y +CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT=y +CONFIG_WAND_RFKILL=m +# CONFIG_ARCH_OMAP2PLUS is not set +# CONFIG_ARCH_SOCFPGA is not set +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_SUNXI is not set +# CONFIG_ARCH_SIRF is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_U8500 is not set +CONFIG_ARCH_VEXPRESS=y + +# +# Versatile Express platform type +# +CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y +CONFIG_ARCH_VEXPRESS_CA9X4=y +CONFIG_PLAT_VERSATILE_CLCD=y +CONFIG_PLAT_VERSATILE_SCHED_CLOCK=y +CONFIG_ARCH_VIRT=y +CONFIG_ARCH_VT8500=y +CONFIG_ARCH_WM8850=y +CONFIG_ARCH_ZYNQ=y +CONFIG_PLAT_VERSATILE=y +CONFIG_ARM_TIMER_SP804=y + +# +# Processor Type +# +CONFIG_CPU_V7=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_ARM_THUMB=y +CONFIG_ARM_THUMBEE=y +CONFIG_ARM_VIRT_EXT=y +CONFIG_SWP_EMULATE=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_KUSER_HELPERS=y +CONFIG_DMA_CACHE_RWFO=y +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +CONFIG_CACHE_L2X0=y +CONFIG_CACHE_PL310=y +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_ARM_NR_BANKS=8 +CONFIG_MULTI_IRQ_HANDLER=y +CONFIG_ARM_ERRATA_430973=y +CONFIG_PL310_ERRATA_588369=y +CONFIG_ARM_ERRATA_643719=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_PL310_ERRATA_727915=y +CONFIG_PL310_ERRATA_753970=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_PL310_ERRATA_769419=y +CONFIG_ARM_ERRATA_775420=y +# CONFIG_ARM_ERRATA_798181 is not set +CONFIG_ICST=y + +# +# Bus support +# +CONFIG_ARM_AMBA=y +CONFIG_PCI=y +CONFIG_PCIE_DW=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_SYSCALL=y +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +# CONFIG_PCI_STUB is not set +# CONFIG_PCI_IOV is not set +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set + +# +# PCI host controller drivers +# +CONFIG_PCI_IMX6=y +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_HAVE_SMP=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_ARM_CPU_TOPOLOGY=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_HAVE_ARM_SCU=y +CONFIG_HAVE_ARM_ARCH_TIMER=y +CONFIG_HAVE_ARM_TWD=y +# CONFIG_MCPM is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_NR_CPUS=8 +CONFIG_HOTPLUG_CPU=y +CONFIG_ARM_PSCI=y +CONFIG_LOCAL_TIMERS=y +CONFIG_ARCH_NR_GPIO=352 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_HZ=100 +CONFIG_SCHED_HRTICK=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_BOUNCE=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_CLEANCACHE=y +# CONFIG_FRONTSWAP is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_SECCOMP is not set +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_XEN is not set + +# +# Boot options +# +CONFIG_USE_OF=y +CONFIG_ATAGS=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_ARM_APPENDED_DTB=y +# CONFIG_ARM_ATAG_DTB_COMPAT is not set +CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20" +CONFIG_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_CMDLINE_EXTEND is not set +# CONFIG_CMDLINE_FORCE is not set +# CONFIG_KEXEC is not set +CONFIG_CRASH_DUMP=y +CONFIG_AUTO_ZRELADDR=y + +# +# CPU Power Management +# + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_GENERIC_CPUFREQ_CPU0=y + +# +# ARM CPU frequency scaling drivers +# +# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set +# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set +# CONFIG_ARM_EXYNOS4X12_CPUFREQ is not set +# CONFIG_ARM_EXYNOS5250_CPUFREQ is not set +# CONFIG_ARM_EXYNOS5440_CPUFREQ is not set +CONFIG_ARM_IMX6Q_CPUFREQ=m +# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_NEON=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_APM_EMULATION=y +CONFIG_ARCH_HAS_OPP=y +CONFIG_PM_OPP=y +CONFIG_PM_CLK=y +CONFIG_CPU_PM=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=y +CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_SUB_POLICY=y +CONFIG_XFRM_MIGRATE=y +CONFIG_XFRM_STATISTICS=y +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +CONFIG_NET_KEY_MIGRATE=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_FIB_TRIE_STATS=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y +CONFIG_IPV6=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT_6RD=y +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETLABEL is not set +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=y + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_IMQ=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +# CONFIG_NETFILTER_XT_MATCH_IPVS is not set +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_LAYER7=m +# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_SCTP=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_NFCT=y +CONFIG_IP_VS_PE_SIP=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +# CONFIG_IP_NF_TARGET_ULOG is not set +CONFIG_NF_NAT_IPV4=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_MATCH_IPP2P=m + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV6=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_NF_NAT_IPV6=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +# CONFIG_BRIDGE_EBT_ULOG is not set +CONFIG_BRIDGE_EBT_NFLOG=m +# CONFIG_IP_DCCP is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +# CONFIG_ATM_LANE is not set +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +# CONFIG_L2TP_DEBUGFS is not set +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m +CONFIG_STP=y +CONFIG_GARP=m +CONFIG_BRIDGE=y +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y +CONFIG_NET_DSA=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VLAN_8021Q_MVRP is not set +# CONFIG_DECNET is not set +CONFIG_LLC=y +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_IEEE802154 is not set +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +CONFIG_CLS_U32_PERF=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_IPSET=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_CLS_IND=y +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +CONFIG_VSOCKETS=m +CONFIG_NETLINK_MMAP=y +CONFIG_NETLINK_DIAG=m +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +CONFIG_NETPRIO_CGROUP=m +CONFIG_BQL=y +CONFIG_BPF_JIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +CONFIG_BT=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m +# CONFIG_AF_RXRPC is not set +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_REG_DEBUG is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +# CONFIG_WIMAX is not set +CONFIG_RFKILL=y +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m +# CONFIG_RFKILL_GPIO is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +CONFIG_HAVE_BPF_JIT=y + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_CMA=y +CONFIG_CMA_DEBUG=y + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=16 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 + +# +# Bus devices +# +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_AR7_PARTS is not set + +# +# User Modules And Translation Layers +# +# CONFIG_MTD_BLKDEVS is not set +# CONFIG_MTD_BLOCK is not set +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_NAND_ECC_SMC=y +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_DENALI is not set +# CONFIG_MTD_NAND_GPIO is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_RICOH is not set +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set +# CONFIG_MTD_NAND_CAFE is not set +# CONFIG_MTD_NAND_NANDSIM is not set +CONFIG_MTD_NAND_GPMI_NAND=m +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_ALAUDA is not set +CONFIG_MTD_NAND_MXC=m +# CONFIG_MTD_ONENAND is not set + +# +# LPDDR flash memory drivers +# +# CONFIG_MTD_LPDDR is not set +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set +# CONFIG_MTD_UBI_GLUEBI is not set +CONFIG_DTC=y +CONFIG_OF=y + +# +# Device Tree and Open Firmware support +# +CONFIG_PROC_DEVICETREE=y +# CONFIG_OF_SELFTEST is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_DEVICE=y +CONFIG_OF_I2C=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y +CONFIG_OF_MTD=y +CONFIG_PARPORT=m +CONFIG_PARPORT_PC=m +# CONFIG_PARPORT_SERIAL is not set +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set +# CONFIG_PARPORT_GSC is not set +# CONFIG_PARPORT_AX88796 is not set +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_BLK_DEV=y +# CONFIG_PARIDE is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_NVME is not set +# CONFIG_BLK_DEV_OSD is not set +# CONFIG_BLK_DEV_SX8 is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MG_DISK is not set +# CONFIG_BLK_DEV_RBD is not set +# CONFIG_BLK_DEV_RSXX is not set + +# +# Misc devices +# +# CONFIG_SENSORS_LIS3LV02D is not set +# CONFIG_AD525X_DPOT is not set +# CONFIG_ATMEL_PWM is not set +CONFIG_DUMMY_IRQ=m +# CONFIG_PHANTOM is not set +# CONFIG_INTEL_MID_PTI is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_TIFM_CORE is not set +CONFIG_ICS932S401=m +# CONFIG_ATMEL_SSC is not set +CONFIG_ENCLOSURE_SERVICES=m +# CONFIG_HP_ILO is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +CONFIG_DS1682=m +CONFIG_ARM_CHARLCD=y +CONFIG_BMP085=y +CONFIG_BMP085_I2C=m +# CONFIG_PCH_PHUB is not set +CONFIG_USB_SWITCH_FSA9480=m +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EEPROM_93CX6=m +# CONFIG_CB710_CORE is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +# CONFIG_SENSORS_LIS3_I2C is not set + +# +# Altera FPGA firmware download module +# +CONFIG_ALTERA_STAPL=m +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_TGT=m +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m +# CONFIG_SCSI_CXGB3_ISCSI is not set +# CONFIG_SCSI_CXGB4_ISCSI is not set +# CONFIG_SCSI_BNX2_ISCSI is not set +# CONFIG_SCSI_BNX2X_FCOE is not set +# CONFIG_BE2ISCSI is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_HPSA is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_3W_SAS is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_MVSAS is not set +# CONFIG_SCSI_MVUMI is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_MPT2SAS is not set +# CONFIG_SCSI_MPT3SAS is not set +CONFIG_SCSI_UFSHCD=m +# CONFIG_SCSI_UFSHCD_PCI is not set +CONFIG_SCSI_UFSHCD_PLATFORM=m +# CONFIG_SCSI_HPTIOP is not set +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +# CONFIG_FCOE is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_FC is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_PMCRAID is not set +# CONFIG_SCSI_PM8001 is not set +# CONFIG_SCSI_SRP is not set +# CONFIG_SCSI_BFA_FC is not set +# CONFIG_SCSI_CHELSIO_FCOE is not set +CONFIG_SCSI_DH=y +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_HAVE_PATA_PLATFORM=y +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +# CONFIG_SATA_AHCI is not set +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_AHCI_IMX=m +# CONFIG_SATA_INIC162X is not set +# CONFIG_SATA_ACARD_AHCI is not set +# CONFIG_SATA_SIL24 is not set +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SX4 is not set +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +# CONFIG_ATA_PIIX is not set +CONFIG_SATA_HIGHBANK=m +CONFIG_SATA_MV=m +# CONFIG_SATA_NV is not set +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set + +# +# PATA SFF controllers with BMDMA +# +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +CONFIG_PATA_IMX=m +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RDC is not set +# CONFIG_PATA_SC1200 is not set +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_PLATFORM is not set +# CONFIG_PATA_RZ1000 is not set + +# +# Generic fallback / legacy drivers +# +# CONFIG_ATA_GENERIC is not set +# CONFIG_PATA_LEGACY is not set +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_EDEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_BIO_PRISON=m +CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=y +# CONFIG_DM_THIN_PROVISIONING is not set +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CACHE_CLEANER=m +CONFIG_DM_MIRROR=y +CONFIG_DM_RAID=m +CONFIG_DM_LOG_USERSPACE=m +CONFIG_DM_ZERO=y +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +# CONFIG_DM_DELAY is not set +CONFIG_DM_UEVENT=y +# CONFIG_DM_FLAKEY is not set +CONFIG_DM_VERITY=m +# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set +# CONFIG_I2O is not set +CONFIG_NETDEVICES=y +CONFIG_NET_CORE=y +CONFIG_BONDING=m +CONFIG_DUMMY=m +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IFB=m +# CONFIG_NET_TEAM is not set +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_VXLAN=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +CONFIG_NETPOLL_TRAP=y +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_IMQ=m +# CONFIG_IMQ_BEHAVIOR_AA is not set +CONFIG_IMQ_BEHAVIOR_AB=y +# CONFIG_IMQ_BEHAVIOR_BA is not set +# CONFIG_IMQ_BEHAVIOR_BB is not set +CONFIG_IMQ_NUM_DEVS=2 +CONFIG_TUN=m +CONFIG_VETH=m +# CONFIG_ARCNET is not set +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +# CONFIG_ATM_LANAI is not set +# CONFIG_ATM_ENI is not set +# CONFIG_ATM_NICSTAR is not set +# CONFIG_ATM_IDT77252 is not set +# CONFIG_ATM_IA is not set +# CONFIG_ATM_FORE200E is not set +# CONFIG_ATM_HE is not set +# CONFIG_ATM_SOLOS is not set + +# +# CAIF transport drivers +# + +# +# Distributed Switch Architecture drivers +# +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_3COM=y +# CONFIG_TYPHOON is not set +CONFIG_NET_VENDOR_ADAPTEC=y +# CONFIG_ADAPTEC_STARFIRE is not set +CONFIG_NET_VENDOR_ALTEON=y +# CONFIG_ACENIC is not set +CONFIG_NET_VENDOR_AMD=y +# CONFIG_AMD8111_ETH is not set +# CONFIG_PCNET32 is not set +CONFIG_NET_VENDOR_ATHEROS=y +# CONFIG_ATL2 is not set +# CONFIG_ATL1 is not set +# CONFIG_ATL1E is not set +# CONFIG_ATL1C is not set +# CONFIG_ALX is not set +CONFIG_NET_CADENCE=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_MACB=m +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +# CONFIG_BNX2 is not set +# CONFIG_CNIC is not set +# CONFIG_TIGON3 is not set +# CONFIG_BNX2X is not set +CONFIG_NET_VENDOR_BROCADE=y +# CONFIG_BNA is not set +CONFIG_NET_CALXEDA_XGMAC=m +CONFIG_NET_VENDOR_CHELSIO=y +# CONFIG_CHELSIO_T1 is not set +# CONFIG_CHELSIO_T3 is not set +# CONFIG_CHELSIO_T4 is not set +# CONFIG_CHELSIO_T4VF is not set +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_CS89x0=m +CONFIG_CS89x0_PLATFORM=y +CONFIG_NET_VENDOR_CISCO=y +# CONFIG_ENIC is not set +CONFIG_DM9000=m +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set +CONFIG_DNET=m +CONFIG_NET_VENDOR_DEC=y +# CONFIG_NET_TULIP is not set +CONFIG_NET_VENDOR_DLINK=y +# CONFIG_DL2K is not set +# CONFIG_SUNDANCE is not set +CONFIG_NET_VENDOR_EMULEX=y +# CONFIG_BE2NET is not set +CONFIG_NET_VENDOR_EXAR=y +# CONFIG_S2IO is not set +# CONFIG_VXGE is not set +CONFIG_NET_VENDOR_FARADAY=y +# CONFIG_FTMAC100 is not set +# CONFIG_FTGMAC100 is not set +CONFIG_NET_VENDOR_FREESCALE=y +CONFIG_FEC=m +CONFIG_NET_VENDOR_HP=y +# CONFIG_HP100 is not set +CONFIG_NET_VENDOR_INTEL=y +# CONFIG_E100 is not set +# CONFIG_E1000 is not set +# CONFIG_E1000E is not set +# CONFIG_IGB is not set +# CONFIG_IGBVF is not set +# CONFIG_IXGB is not set +# CONFIG_IXGBE is not set +CONFIG_NET_VENDOR_I825XX=y +# CONFIG_IP1000 is not set +# CONFIG_JME is not set +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MVMDIO=m +# CONFIG_SKGE is not set +# CONFIG_SKY2 is not set +CONFIG_NET_VENDOR_MELLANOX=y +# CONFIG_MLX4_EN is not set +# CONFIG_MLX4_CORE is not set +CONFIG_NET_VENDOR_MICREL=y +# CONFIG_KS8842 is not set +# CONFIG_KS8851_MLL is not set +# CONFIG_KSZ884X_PCI is not set +CONFIG_NET_VENDOR_MYRI=y +# CONFIG_MYRI10GE is not set +# CONFIG_FEALNX is not set +CONFIG_NET_VENDOR_NATSEMI=y +# CONFIG_NATSEMI is not set +# CONFIG_NS83820 is not set +CONFIG_NET_VENDOR_8390=y +CONFIG_AX88796=m +CONFIG_AX88796_93CX6=y +# CONFIG_NE2K_PCI is not set +CONFIG_NET_VENDOR_NVIDIA=y +# CONFIG_FORCEDETH is not set +CONFIG_NET_VENDOR_OKI=y +# CONFIG_PCH_GBE is not set +CONFIG_ETHOC=m +CONFIG_NET_PACKET_ENGINE=y +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +CONFIG_NET_VENDOR_QLOGIC=y +# CONFIG_QLA3XXX is not set +# CONFIG_QLCNIC is not set +# CONFIG_QLGE is not set +# CONFIG_NETXEN_NIC is not set +CONFIG_NET_VENDOR_REALTEK=y +# CONFIG_8139CP is not set +# CONFIG_8139TOO is not set +# CONFIG_R8169 is not set +CONFIG_NET_VENDOR_RDC=y +# CONFIG_R6040 is not set +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_NET_VENDOR_SILAN=y +# CONFIG_SC92031 is not set +CONFIG_NET_VENDOR_SIS=y +# CONFIG_SIS900 is not set +# CONFIG_SIS190 is not set +# CONFIG_SFC is not set +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +# CONFIG_EPIC100 is not set +CONFIG_SMC911X=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +# CONFIG_SMSC9420 is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=y +# CONFIG_STMMAC_PCI is not set +# CONFIG_STMMAC_DEBUG_FS is not set +# CONFIG_STMMAC_DA is not set +CONFIG_NET_VENDOR_SUN=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +# CONFIG_NIU is not set +CONFIG_NET_VENDOR_TEHUTI=y +# CONFIG_TEHUTI is not set +CONFIG_NET_VENDOR_TI=y +# CONFIG_TLAN is not set +CONFIG_NET_VENDOR_VIA=y +# CONFIG_VIA_RHINE is not set +# CONFIG_VIA_VELOCITY is not set +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +CONFIG_AT803X_PHY=m +CONFIG_AMD_PHY=m +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_BCM87XX_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m +CONFIG_FIXED_PHY=y +CONFIG_MDIO_BITBANG=m +# CONFIG_MDIO_GPIO is not set +CONFIG_MDIO_BUS_MUX=m +CONFIG_MDIO_BUS_MUX_GPIO=m +CONFIG_MDIO_BUS_MUX_MMIOREG=m +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +# CONFIG_SLIP is not set +CONFIG_SLHC=m + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m +CONFIG_USB_HSO=m +CONFIG_USB_NET_INT51X1=m +CONFIG_USB_IPHETH=m +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +# CONFIG_ATMEL is not set +CONFIG_AT76C50X_USB=m +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_RTL8180 is not set +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +# CONFIG_ADM8211 is not set +CONFIG_MAC80211_HWSIM=m +# CONFIG_MWL8K is not set +CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m +# CONFIG_ATH_DEBUG is not set +# CONFIG_ATH5K is not set +# CONFIG_ATH5K_PCI is not set +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_AHB=y +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +# CONFIG_ATH6KL is not set +CONFIG_AR5523=m +# CONFIG_WIL6210 is not set +CONFIG_B43=m +CONFIG_B43_SSB=y +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_SDIO=y +CONFIG_B43_PIO=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y +# CONFIG_BRCMFMAC_USB is not set +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +# CONFIG_HOSTAP_PLX is not set +# CONFIG_HOSTAP_PCI is not set +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWLWIFI is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y +# CONFIG_HERMES is not set +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +# CONFIG_P54_PCI is not set +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +# CONFIG_RT2400PCI is not set +# CONFIG_RT2500PCI is not set +# CONFIG_RT61PCI is not set +# CONFIG_RT2800PCI is not set +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RTLWIFI=m +# CONFIG_RTLWIFI_DEBUG is not set +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +# CONFIG_RTL8723AE is not set +# CONFIG_RTL8188EE is not set +CONFIG_RTL8192CU=m +CONFIG_RTL8192C_COMMON=m +CONFIG_WL_TI=y +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +# CONFIG_MWIFIEX_PCIE is not set +CONFIG_MWIFIEX_USB=m + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +# CONFIG_WAN is not set +# CONFIG_VMXNET3 is not set +CONFIG_ISDN=y +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y + +# +# ISDN feature submodules +# +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_3=y +# CONFIG_HISAX_TELESPCI is not set +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_NICCY=y +# CONFIG_HISAX_BKM_A4T is not set +# CONFIG_HISAX_SCT_QUADRO is not set +CONFIG_HISAX_GAZEL=y +# CONFIG_HISAX_HFC_PCI is not set +# CONFIG_HISAX_W6692 is not set +CONFIG_HISAX_HFC_SX=y +# CONFIG_HISAX_DEBUG is not set + +# +# HiSax PCMCIA card service modules +# + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m +# CONFIG_HISAX_FRITZ_PCIPNP is not set + +# +# Active cards +# +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +# CONFIG_ISDN_DRV_AVMB1_B1PCI is not set +# CONFIG_ISDN_DRV_AVMB1_T1PCI is not set +# CONFIG_ISDN_DRV_AVMB1_C4 is not set +CONFIG_CAPI_EICON=y +# CONFIG_ISDN_DIVAS is not set +# CONFIG_ISDN_DRV_GIGASET is not set +# CONFIG_HYSDN is not set +# CONFIG_MISDN is not set +CONFIG_ISDN_HDLC=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_APMPOWER is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +CONFIG_KEYBOARD_LM8333=m +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +CONFIG_KEYBOARD_IMX=m +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +CONFIG_KEYBOARD_TWL4030=m +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +CONFIG_MOUSE_VSXXXAA=m +# CONFIG_MOUSE_GPIO is not set +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_88PM860X_ONKEY is not set +# CONFIG_INPUT_88PM80X_ONKEY is not set +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_UINPUT=m +# CONFIG_INPUT_PCF8574 is not set +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set +# CONFIG_INPUT_CMA3000 is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_PARKBD is not set +CONFIG_SERIO_AMBAKMI=m +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_SERIO_ALTERA_PS2=m +# CONFIG_SERIO_PS2MULT is not set +CONFIG_SERIO_ARC_PS2=m +CONFIG_SERIO_APBPS2=m +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_ROCKETPORT is not set +# CONFIG_CYCLADES is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +# CONFIG_SYNCLINKMP is not set +# CONFIG_SYNCLINK_GT is not set +# CONFIG_NOZOMI is not set +# CONFIG_ISI is not set +CONFIG_N_HDLC=m +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +# CONFIG_DEVKMEM is not set +# CONFIG_STALDRV is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_RSA=y +# CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_EM is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_AMBA_PL010=m +CONFIG_SERIAL_AMBA_PL011=m +# CONFIG_SERIAL_MFD_HSU is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_VT8500 is not set +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_SCCNXP=m +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_PCH_UART is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +# CONFIG_SERIAL_RP2 is not set +# CONFIG_TTY_PRINTK is not set +CONFIG_PRINTER=m +CONFIG_LP_CONSOLE=y +CONFIG_PPDEV=m +# CONFIG_HVC_DCC is not set +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_ATMEL=m +CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_NVRAM=y +CONFIG_R3964=m +# CONFIG_APPLICOM is not set +CONFIG_RAW_DRIVER=y +CONFIG_MAX_RAW_DEVS=8192 +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=m +# CONFIG_I2C_MUX is not set +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_ISCH is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_CBUS_GPIO=m +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EG20T is not set +CONFIG_I2C_GPIO=m +CONFIG_I2C_IMX=m +# CONFIG_I2C_INTEL_MID is not set +CONFIG_I2C_NOMADIK=y +# CONFIG_I2C_OCORES is not set +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_VERSATILE=m +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_DIOLAN_U2C=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +# CONFIG_I2C_TAOS_EVM is not set +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIPERBOARD=m + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_STUB=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_SPI is not set + +# +# Qualcomm MSM SSBI bus support +# +# CONFIG_SSBI is not set +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y + +# +# HSI clients +# +CONFIG_HSI_CHAR=m + +# +# PPS support +# +CONFIG_PPS=m +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PINCTRL=y + +# +# Pin controllers +# +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +CONFIG_PINCTRL_IMX=y +CONFIG_PINCTRL_IMX51=y +CONFIG_PINCTRL_IMX53=y +CONFIG_PINCTRL_IMX6Q=y +CONFIG_PINCTRL_SINGLE=m +# CONFIG_PINCTRL_EXYNOS is not set +# CONFIG_PINCTRL_EXYNOS5440 is not set +CONFIG_PINCTRL_WMT=y +CONFIG_PINCTRL_WM8850=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIO_DEVRES=y +CONFIG_GPIOLIB=y +CONFIG_OF_GPIO=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=y + +# +# Memory mapped GPIO drivers: +# +CONFIG_GPIO_GENERIC_PLATFORM=y +# CONFIG_GPIO_EM is not set +CONFIG_GPIO_MXC=y +CONFIG_GPIO_PL061=y +# CONFIG_GPIO_RCAR is not set +CONFIG_GPIO_TS5500=m +# CONFIG_GPIO_VX855 is not set +# CONFIG_GPIO_GRGPIO is not set + +# +# I2C GPIO expanders: +# +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_SX150X is not set +CONFIG_GPIO_TWL4030=m +# CONFIG_GPIO_ADP5588 is not set +CONFIG_GPIO_ADNP=m + +# +# PCI GPIO expanders: +# +# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_AMD8111 is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_RDC321X is not set + +# +# SPI GPIO expanders: +# +CONFIG_GPIO_MCP23S08=m + +# +# AC97 GPIO expanders: +# + +# +# MODULbus GPIO expanders: +# + +# +# USB GPIO expanders: +# +CONFIG_GPIO_VIPERBOARD=m +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_MATROX is not set +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_MXC=m +CONFIG_W1_MASTER_DS1WM=m +# CONFIG_W1_MASTER_GPIO is not set + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m +CONFIG_W1_SLAVE_DS2423=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_APM_POWER is not set +CONFIG_GENERIC_ADC_BATTERY=m +# CONFIG_TEST_POWER is not set +CONFIG_BATTERY_88PM860X=m +# CONFIG_BATTERY_DS2760 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +CONFIG_CHARGER_88PM860X=m +# CONFIG_BATTERY_RX51 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +CONFIG_CHARGER_TWL4030=m +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GOLDFISH is not set +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_POWER_RESET_VEXPRESS=y +CONFIG_POWER_AVS=y +CONFIG_HWMON=y +CONFIG_HWMON_VID=m +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7410=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_DS1621=m +# CONFIG_SENSORS_I5K_AMB is not set +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +# CONFIG_SENSORS_GPIO_FAN is not set +CONFIG_SENSORS_HIH6130=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +# CONFIG_SENSORS_IIO_HWMON is not set +CONFIG_SENSORS_IT87=m +# CONFIG_SENSORS_JC42 is not set +CONFIG_SENSORS_LINEAGE=m +CONFIG_SENSORS_LM63=y +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95234=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +# CONFIG_SENSORS_LTC2978 is not set +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +# CONFIG_SENSORS_ZL6100 is not set +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_SMM665 is not set +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +# CONFIG_SENSORS_EMC2103 is not set +CONFIG_SENSORS_EMC6W201=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_TWL4030_MADC=m +CONFIG_SENSORS_VEXPRESS=m +# CONFIG_SENSORS_VIA686A is not set +CONFIG_SENSORS_VT1211=m +# CONFIG_SENSORS_VT8231 is not set +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +CONFIG_IMX_THERMAL=m +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +CONFIG_WATCHDOG_NOWAYOUT=y + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_ARM_SP805_WATCHDOG=m +# CONFIG_DW_WATCHDOG is not set +CONFIG_MPCORE_WATCHDOG=m +CONFIG_TWL4030_WATCHDOG=m +# CONFIG_MAX63XX_WATCHDOG is not set +CONFIG_IMX2_WDT=m +CONFIG_RETU_WATCHDOG=m +# CONFIG_ALIM7101_WDT is not set +# CONFIG_I6300ESB_WDT is not set + +# +# PCI-based Watchdog Cards +# +# CONFIG_PCIPCWATCHDOG is not set +# CONFIG_WDTPCI is not set + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +CONFIG_SSB=m +CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_SDIOHOST_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +# CONFIG_SSB_SILENT is not set +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_GPIO=y +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_AS3711 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_CROS_EC is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_HTC_EGPIO is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_LPC_ICH is not set +# CONFIG_LPC_SCH is not set +# CONFIG_MFD_JANZ_CMODIO is not set +CONFIG_MFD_88PM800=y +CONFIG_MFD_88PM805=y +CONFIG_MFD_88PM860X=y +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +CONFIG_MFD_VIPERBOARD=m +CONFIG_MFD_RETU=m +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RTSX_PCI is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +CONFIG_MFD_SM501=m +CONFIG_MFD_SM501_GPIO=y +# CONFIG_MFD_SMSC is not set +CONFIG_ABX500_CORE=y +# CONFIG_AB3100_CORE is not set +# CONFIG_MFD_STMPE is not set +CONFIG_MFD_SYSCON=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS80031 is not set +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_MADC=m +CONFIG_TWL4030_POWER=y +CONFIG_MFD_TWL4030_AUDIO=y +# CONFIG_TWL6040_CORE is not set +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_LM3533=m +# CONFIG_MFD_TIMBERDALE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_MFD_VX855 is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +CONFIG_VEXPRESS_CONFIG=y +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=y +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_GPIO is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_FAN53555 is not set +CONFIG_REGULATOR_ANATOP=m +# CONFIG_REGULATOR_ISL6271A is not set +CONFIG_REGULATOR_88PM8607=y +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_MAX8973 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_LP872X is not set +CONFIG_REGULATOR_LP8755=m +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +CONFIG_REGULATOR_TWL4030=y +CONFIG_REGULATOR_VEXPRESS=m +CONFIG_MEDIA_SUPPORT=y + +# +# Multimedia core support +# +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +# CONFIG_MEDIA_RADIO_SUPPORT is not set +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_DEV=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_VIDEO_V4L2=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m +CONFIG_DVB_CORE=y +CONFIG_DVB_NET=y +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y + +# +# Media drivers +# +CONFIG_RC_CORE=y +CONFIG_RC_MAP=m +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_RC_DEVICES=y +# CONFIG_RC_ATI_REMOTE is not set +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +# CONFIG_USB_GSPCA_TOPRO is not set +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_USB_SN9C102=m + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160=m +# CONFIG_VIDEO_STK1160_AC97 is not set + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +# CONFIG_DVB_TTUSB_BUDGET is not set +# CONFIG_DVB_TTUSB_DEC is not set +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m +# CONFIG_MEDIA_PCI_SUPPORT is not set +CONFIG_V4L_PLATFORM_DRIVERS=y +# CONFIG_VIDEO_CAFE_CCIC is not set +CONFIG_VIDEO_TIMBERDALE=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_MX3_VIDEO=y +CONFIG_VIDEO_MX3=m +# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set +# CONFIG_VIDEO_SH_MOBILE_CEU is not set +CONFIG_V4L_MEM2MEM_DRIVERS=y +# CONFIG_VIDEO_CODA is not set +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m +CONFIG_VIDEO_SH_VEU=m +# CONFIG_V4L_TEST_DRIVERS is not set + +# +# Supported MMC/SDIO adapters +# +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_MEDIA_PARPORT_SUPPORT is not set +CONFIG_MEDIA_COMMON_OPTIONS=y + +# +# common driver options +# +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set + +# +# Media ancillary drivers (tuners, sensors, i2c, frontends) +# +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=y + +# +# Audio decoders, processors and mixers +# +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m + +# +# RDS decoders +# + +# +# Video decoders +# +CONFIG_VIDEO_ADV7180=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m + +# +# Video and audio decoders +# +CONFIG_VIDEO_CX25840=m + +# +# Video encoders +# + +# +# Camera sensor devices +# +CONFIG_VIDEO_MT9V011=m + +# +# Flash devices +# + +# +# Video improvement chips +# + +# +# Miscelaneous helper chips +# + +# +# Sensors used on soc_camera driver +# + +# +# soc_camera sensor drivers +# +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_MEDIA_TUNER=y +CONFIG_MEDIA_TUNER_SIMPLE=y +CONFIG_MEDIA_TUNER_TDA8290=y +CONFIG_MEDIA_TUNER_TDA827X=y +CONFIG_MEDIA_TUNER_TDA18271=y +CONFIG_MEDIA_TUNER_TDA9887=y +CONFIG_MEDIA_TUNER_MT20XX=y +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=y +CONFIG_MEDIA_TUNER_XC5000=y +CONFIG_MEDIA_TUNER_XC4000=y +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=y +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m + +# +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_TDA10071=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set + +# +# Graphics support +# +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_DRM=m +CONFIG_DRM_USB=m +CONFIG_DRM_KMS_HELPER=m +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set +CONFIG_DRM_GEM_CMA_HELPER=y +CONFIG_DRM_KMS_CMA_HELPER=y + +# +# I2C encoder or helper chips +# +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m +# CONFIG_DRM_TDFX is not set +# CONFIG_DRM_R128 is not set +# CONFIG_DRM_RADEON is not set +# CONFIG_DRM_NOUVEAU is not set +# CONFIG_DRM_MGA is not set +# CONFIG_DRM_VIA is not set +# CONFIG_DRM_SAVAGE is not set +CONFIG_DRM_EXYNOS=m +CONFIG_DRM_EXYNOS_DMABUF=y +CONFIG_DRM_EXYNOS_HDMI=y +CONFIG_DRM_EXYNOS_VIDI=y +CONFIG_DRM_EXYNOS_G2D=y +# CONFIG_DRM_VMWGFX is not set +CONFIG_DRM_UDL=m +# CONFIG_DRM_AST is not set +# CONFIG_DRM_MGAG200 is not set +# CONFIG_DRM_CIRRUS_QEMU is not set +# CONFIG_DRM_TILCDC is not set +# CONFIG_DRM_QXL is not set +# CONFIG_TEGRA_HOST1X is not set +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_VIDEOMODE_HELPERS=y +CONFIG_HDMI=y +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_FILLRECT=m +CONFIG_FB_CFB_COPYAREA=m +CONFIG_FB_CFB_IMAGEBLIT=m +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_IMAGEBLIT=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_DEFERRED_IO=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +CONFIG_FB_ARMCLCD=m +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_UVESA is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_VT8500 is not set +# CONFIG_FB_WM8505 is not set +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SM501 is not set +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set +# CONFIG_FB_GOLDFISH is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_MX3 is not set +# CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +# CONFIG_FB_SIMPLE is not set +# CONFIG_EXYNOS_VIDEO is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_PLATFORM=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BACKLIGHT_GENERIC is not set +# CONFIG_BACKLIGHT_LM3533 is not set +# CONFIG_BACKLIGHT_PWM is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_88PM860X is not set +# CONFIG_BACKLIGHT_LM3630 is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_LP855X is not set +# CONFIG_BACKLIGHT_PANDORA is not set + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_FB_SSD1307=m +CONFIG_SOUND=m +CONFIG_SOUND_OSS_CORE=y +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_JACK=y +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y +# CONFIG_SND_SUPPORT_OLD_API is not set +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_VERBOSE is not set +CONFIG_SND_PCM_XRUN_DEBUG=y +CONFIG_SND_VMASTER=y +CONFIG_SND_RAWMIDI_SEQ=m +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_MPU401_UART=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_ALOOP=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_PCI=y +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS300 is not set +# CONFIG_SND_ALI5451 is not set +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AW2 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_CMIPCI is not set +# CONFIG_SND_OXYGEN is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +# CONFIG_SND_CS5535AUDIO is not set +# CONFIG_SND_CTXFI is not set +# CONFIG_SND_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +# CONFIG_SND_LAYLA24 is not set +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set +# CONFIG_SND_INDIGOIOX is not set +# CONFIG_SND_INDIGODJX is not set +# CONFIG_SND_EMU10K1 is not set +# CONFIG_SND_EMU10K1X is not set +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDA_INTEL is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_ICE1712 is not set +# CONFIG_SND_ICE1724 is not set +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_LOLA is not set +# CONFIG_SND_MAESTRO3 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_SONICVIBES is not set +# CONFIG_SND_TRIDENT is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VIRTUOSO is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set +CONFIG_SND_ARM=y +CONFIG_SND_ARMAACI=m +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_SOC=m +CONFIG_SND_SOC_DMAENGINE_PCM=y +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +CONFIG_SND_ATMEL_SOC=m +CONFIG_SND_DESIGNWARE_I2S=m +CONFIG_SND_SOC_FSL_SSI=m +CONFIG_SND_SOC_FSL_UTILS=m +CONFIG_SND_IMX_SOC=m +CONFIG_SND_SOC_IMX_PCM=m +CONFIG_SND_SOC_IMX_PCM_DMA=y +CONFIG_SND_SOC_IMX_AUDMUX=m +CONFIG_SND_SOC_IMX_SGTL5000=m +CONFIG_SND_SOC_I2C_AND_SPI=m +# CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_SGTL5000=m +CONFIG_SND_SIMPLE_CARD=m +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m + +# +# HID support +# +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_PRODIKEYS is not set +CONFIG_HID_CYPRESS=y +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_HOLTEK is not set +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=y +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +CONFIG_HID_GYRATION=m +# CONFIG_HID_ICADE is not set +CONFIG_HID_TWINHAN=m +CONFIG_HID_KENSINGTON=y +CONFIG_HID_LCPOWER=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=y +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +# CONFIG_HID_MAGICMOUSE is not set +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set +CONFIG_HID_ORTEK=m +# CONFIG_HID_PANTHERLORD is not set +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PICOLCD_CIR=y +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_PS3REMOTE is not set +CONFIG_HID_ROCCAT=m +CONFIG_HID_SAITEK=m +CONFIG_HID_SAMSUNG=m +# CONFIG_HID_SONY is not set +CONFIG_HID_SPEEDLINK=m +# CONFIG_HID_STEELSERIES is not set +CONFIG_HID_SUNPLUS=m +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +CONFIG_HID_TIVO=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_THINGM=m +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_ZEROPLUS is not set +CONFIG_HID_ZYDACRON=m +CONFIG_HID_SENSOR_HUB=m + +# +# USB HID support +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +CONFIG_I2C_HID=m +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_MON=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +# CONFIG_USB_XHCI_HCD is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_EHCI_MXC=m +CONFIG_USB_EHCI_HCD_PLATFORM=y +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1760_HCD is not set +CONFIG_USB_ISP1362_HCD=m +# CONFIG_USB_OHCI_HCD is not set +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_UHCI_SUPPORT_NON_PCI_HC=y +CONFIG_USB_UHCI_PLATFORM=y +# CONFIG_USB_U132_HCD is not set +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_HCD_ISO=y +# CONFIG_USB_R8A66597_HCD is not set +CONFIG_USB_IMX21_HCD=y +CONFIG_USB_HCD_SSB=m + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_DWC3=m +CONFIG_USB_DWC3_HOST=y +# CONFIG_USB_DWC3_DEBUG is not set +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CHIPIDEA_HOST=y +# CONFIG_USB_CHIPIDEA_DEBUG is not set + +# +# USB port drivers +# +CONFIG_USB_USS720=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_F81232=m +# CONFIG_USB_SERIAL_GARMIN is not set +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +# CONFIG_USB_SERIAL_KEYSPAN is not set +CONFIG_USB_SERIAL_KLSI=m +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_METRO is not set +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7715_PARPORT=y +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_OPTION=m +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +CONFIG_USB_SERIAL_ZTE=m +CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_SEVSEG=m +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +CONFIG_USB_LCD=m +CONFIG_USB_LED=m +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +CONFIG_USB_FTDI_ELAN=m +# CONFIG_USB_APPLEDISPLAY is not set +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SISUSBVGA_CON=y +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +CONFIG_USB_IOWARRIOR=m +# CONFIG_USB_TEST is not set +# CONFIG_USB_ISIGHTFW is not set +CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HSIC_USB3503=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m +CONFIG_USB_PHY=y +CONFIG_NOP_USB_XCEIV=m +CONFIG_OMAP_CONTROL_USB=m +CONFIG_OMAP_USB3=m +CONFIG_SAMSUNG_USBPHY=m +CONFIG_SAMSUNG_USB2PHY=m +CONFIG_SAMSUNG_USB3PHY=m +CONFIG_USB_GPIO_VBUS=m +CONFIG_USB_ISP1301=m +CONFIG_USB_MXS_PHY=m +CONFIG_USB_RCAR_PHY=m +CONFIG_USB_ULPI=y +# CONFIG_USB_GADGET is not set +# CONFIG_UWB is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_ARMMMCI=m +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +# CONFIG_MMC_SDHCI_PCI is not set +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_PXAV2=m +CONFIG_MMC_MXC=m +# CONFIG_MMC_TIFM_SD is not set +# CONFIG_MMC_CB710 is not set +# CONFIG_MMC_VIA_SDMMC is not set +CONFIG_MMC_DW=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_DW_PLTFM=m +CONFIG_MMC_DW_EXYNOS=m +# CONFIG_MMC_DW_PCI is not set +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m +CONFIG_MMC_WMT=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +# +# MemoryStick drivers +# +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m + +# +# MemoryStick Host Controller Drivers +# +# CONFIG_MEMSTICK_TIFM_MS is not set +# CONFIG_MEMSTICK_JMICRON_38X is not set +# CONFIG_MEMSTICK_R592 is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_88PM860X=y +CONFIG_LEDS_LM3530=m +CONFIG_LEDS_LM3533=m +CONFIG_LEDS_LM3642=m +# CONFIG_LEDS_PCA9532 is not set +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP55XX_COMMON=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LP5562=m +# CONFIG_LEDS_PCA955X is not set +CONFIG_LEDS_PCA9633=m +CONFIG_LEDS_PWM=m +CONFIG_LEDS_REGULATOR=m +# CONFIG_LEDS_BD2802 is not set +CONFIG_LEDS_LT3593=m +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_BLINKM=m + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y + +# +# iptables trigger is under Netfilter config (LED target) +# +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m +CONFIG_LEDS_TRIGGER_NETDEV=m +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_88PM860X=m +CONFIG_RTC_DRV_88PM80X=m +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m +CONFIG_RTC_DRV_TWL4030=m +# CONFIG_RTC_DRV_S35390A is not set +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_STK17TA8=m +# CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_DS2404=m + +# +# on-CPU RTC drivers +# +CONFIG_RTC_DRV_IMXDI=m +CONFIG_RTC_DRV_PL030=m +CONFIG_RTC_DRV_PL031=m +CONFIG_RTC_DRV_VT8500=m +CONFIG_RTC_DRV_MXC=m +CONFIG_RTC_DRV_SNVS=m + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_HID_SENSOR_TIME=m +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_AMBA_PL08X=y +# CONFIG_DW_DMAC is not set +CONFIG_MX3_IPU=y +CONFIG_MX3_IPU_IRQS=4 +CONFIG_TIMB_DMA=m +CONFIG_PL330_DMA=y +CONFIG_IMX_SDMA=y +CONFIG_IMX_DMA=y +CONFIG_MXS_DMA=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_OF=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +CONFIG_ASYNC_TX_DMA=y +# CONFIG_DMATEST is not set +# CONFIG_AUXDISPLAY is not set +CONFIG_UIO=m +# CONFIG_UIO_CIF is not set +# CONFIG_UIO_PDRV is not set +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set +# CONFIG_UIO_AEC is not set +# CONFIG_UIO_SERCOS3 is not set +# CONFIG_UIO_PCI_GENERIC is not set +# CONFIG_UIO_NETX is not set +CONFIG_VIRT_DRIVERS=y + +# +# Virtio drivers +# +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# +CONFIG_STAGING=y +# CONFIG_ET131X is not set +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set +# CONFIG_W35UND is not set +# CONFIG_PRISM2_USB is not set +# CONFIG_ECHO is not set +# CONFIG_COMEDI is not set +# CONFIG_ASUS_OLED is not set +# CONFIG_PANEL is not set +# CONFIG_R8187SE is not set +# CONFIG_RTL8192U is not set +# CONFIG_RTLLIB is not set +# CONFIG_R8712U is not set +# CONFIG_RTS5139 is not set +# CONFIG_TRANZPORT is not set +# CONFIG_IDE_PHISON is not set +# CONFIG_LINE6_USB is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_VT6655 is not set +# CONFIG_VT6656 is not set +# CONFIG_DX_SEP is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# + +# +# Analog to digital converters +# +# CONFIG_AD7291 is not set +# CONFIG_AD7606 is not set +# CONFIG_AD799X is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# + +# +# Digital gyroscope sensors +# + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +# +# Magnetometer sensors +# +# CONFIG_SENSORS_HMC5843 is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# + +# +# Triggers - standalone +# +# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set +# CONFIG_IIO_GPIO_TRIGGER is not set +# CONFIG_IIO_SYSFS_TRIGGER is not set +# CONFIG_IIO_SIMPLE_DUMMY is not set +# CONFIG_ZSMALLOC is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_CRYSTALHD is not set +# CONFIG_FB_XGI is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_CSR_WIFI is not set +CONFIG_NET_VENDOR_SILICOM=y +# CONFIG_SBYPASS is not set +# CONFIG_BPCTL is not set +CONFIG_CED1401=m +CONFIG_DRM_IMX=m +# CONFIG_DRM_IMX_FB_HELPER is not set +CONFIG_DRM_IMX_PARALLEL_DISPLAY=m +# CONFIG_DRM_IMX_TVE is not set +# CONFIG_DGRP is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_DEBUG is not set +CONFIG_COMMON_CLK_VERSATILE=y +CONFIG_COMMON_CLK_SI5351=m +CONFIG_COMMON_CLK_AXI_CLKGEN=m + +# +# Hardware Spinlock drivers +# +CONFIG_CLKSRC_OF=y +CONFIG_CLKSRC_MMIO=y +CONFIG_VT8500_TIMER=y +CONFIG_CADENCE_TTC_TIMER=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_MAILBOX=y +CONFIG_PL320_MBOX=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_OF_IOMMU=y + +# +# Remoteproc drivers +# +# CONFIG_STE_MODEM_RPROC is not set + +# +# Rpmsg drivers +# +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +CONFIG_MEMORY=y +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 + +# +# Accelerometers +# +# CONFIG_HID_SENSOR_ACCEL_3D is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set + +# +# Analog to digital converters +# +# CONFIG_EXYNOS_ADC is not set +# CONFIG_MAX1363 is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_VIPERBOARD_ADC is not set + +# +# Amplifiers +# + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5446 is not set +# CONFIG_MAX517 is not set +# CONFIG_MCP4725 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# + +# +# Digital gyroscope sensors +# +# CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Inertial measurement units +# +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_SENSORS_LM3533 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_VCNL4000 is not set +# CONFIG_HID_SENSOR_ALS is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_VME_BUS is not set +CONFIG_PWM=y +CONFIG_PWM_IMX=m +CONFIG_PWM_TWL=m +CONFIG_PWM_TWL_LED=m +CONFIG_PWM_VT8500=m +CONFIG_IRQCHIP=y +CONFIG_ARM_GIC=y +# CONFIG_IPACK_BUS is not set +CONFIG_ARCH_HAS_RESET_CONTROLLER=y +# CONFIG_RESET_CONTROLLER is not set + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_PROC_INFO=y +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +# CONFIG_JFS_FS is not set +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set +# CONFIG_XFS_DEBUG is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=y +CONFIG_QUOTACTL=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m +CONFIG_CUSE=m +CONFIG_GENERIC_ACL=y + +# +# Caches +# +CONFIG_FSCACHE=m +CONFIG_FSCACHE_STATS=y +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_CONFIGFS_FS=m +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS2_FS is not set +# CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set +# CONFIG_CRAMFS is not set +# CONFIG_SQUASHFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_PSTORE=y +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_FTRACE is not set +# CONFIG_PSTORE_RAM is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +# CONFIG_EXOFS_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_ORE=m +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=m +# CONFIG_NFS_SWAP is not set +CONFIG_NFS_V4_1=y +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_OBJLAYOUT=m +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="ipfire.org" +CONFIG_NFS_FSCACHE=y +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_BACKCHANNEL=y +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_SUNRPC_DEBUG is not set +# CONFIG_CEPH_FS is not set +CONFIG_CIFS=m +CONFIG_CIFS_STATS=y +# CONFIG_CIFS_STATS2 is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_UPCALL is not set +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +CONFIG_CIFS_ACL=y +# CONFIG_CIFS_DEBUG is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_FSCACHE=y +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf-8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=2048 +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_DEBUG_FS=y +CONFIG_HEADERS_CHECK=y +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_SHIRQ=y +CONFIG_LOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +CONFIG_TIMER_STATS=y +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_DEBUG_LIST=y +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set + +# +# RCU Debugging +# +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_LKDTM is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y +CONFIG_TRACING_SUPPORT=y +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_SCHED_TRACER=y +# CONFIG_FTRACE_SYSCALLS is not set +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +CONFIG_STACK_TRACER=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_PROBE_EVENTS is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +CONFIG_RING_BUFFER_BENCHMARK=m +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +CONFIG_RBTREE_TEST=m +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_BUILD_DOCSRC is not set +CONFIG_DYNAMIC_DEBUG=y +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_KSTRTOX is not set +CONFIG_STRICT_DEVMEM=y +CONFIG_ARM_UNWIND=y +CONFIG_OLD_MCOUNT=y +# CONFIG_DEBUG_USER is not set +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ZYNQ_UART0 is not set +# CONFIG_DEBUG_ZYNQ_UART1 is not set +# CONFIG_DEBUG_IMX51_UART is not set +# CONFIG_DEBUG_IMX53_UART is not set +CONFIG_DEBUG_IMX6Q_UART=y +# CONFIG_DEBUG_VEXPRESS_UART0_DETECT is not set +# CONFIG_DEBUG_VEXPRESS_UART0_CA9 is not set +# CONFIG_DEBUG_VEXPRESS_UART0_RS1 is not set +# CONFIG_DEBUG_VT8500_UART0 is not set +# CONFIG_DEBUG_ICEDCC is not set +# CONFIG_DEBUG_SEMIHOSTING is not set +CONFIG_DEBUG_IMX_UART_PORT=1 +CONFIG_DEBUG_LL_INCLUDE="debug/imx.S" +CONFIG_DEBUG_UNCOMPRESS=y +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +CONFIG_EARLY_PRINTK=y +CONFIG_OC_ETM=y +# CONFIG_PID_IN_CONTEXTIDR is not set + +# +# Security options +# + +# +# Grsecurity +# +CONFIG_PAX_USERCOPY_SLABS=y +CONFIG_GRKERNSEC=y +# CONFIG_GRKERNSEC_CONFIG_AUTO is not set +CONFIG_GRKERNSEC_CONFIG_CUSTOM=y + +# +# Customize Configuration +# + +# +# PaX +# +CONFIG_PAX=y + +# +# PaX Control +# +# CONFIG_PAX_SOFTMODE is not set +CONFIG_PAX_EI_PAX=y +CONFIG_PAX_PT_PAX_FLAGS=y +# CONFIG_PAX_XATTR_PAX_FLAGS is not set +# CONFIG_PAX_NO_ACL_FLAGS is not set +CONFIG_PAX_HAVE_ACL_FLAGS=y +# CONFIG_PAX_HOOK_ACL_FLAGS is not set + +# +# Non-executable pages +# +CONFIG_PAX_NOEXEC=y +CONFIG_PAX_PAGEEXEC=y +CONFIG_PAX_MPROTECT=y +# CONFIG_PAX_MPROTECT_COMPAT is not set +CONFIG_PAX_ELFRELOCS=y +CONFIG_PAX_KERNEXEC=y +CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="" + +# +# Address Space Layout Randomization +# +CONFIG_PAX_ASLR=y +CONFIG_PAX_RANDUSTACK=y +CONFIG_PAX_RANDMMAP=y + +# +# Miscellaneous hardening features +# +CONFIG_PAX_MEMORY_SANITIZE=y +CONFIG_PAX_MEMORY_STRUCTLEAK=y +CONFIG_PAX_MEMORY_UDEREF=y +CONFIG_PAX_REFCOUNT=y +CONFIG_PAX_CONSTIFY_PLUGIN=y +CONFIG_PAX_USERCOPY=y +# CONFIG_PAX_LATENT_ENTROPY is not set + +# +# Memory Protections +# +# CONFIG_GRKERNSEC_KMEM is not set +CONFIG_GRKERNSEC_JIT_HARDEN=y +# CONFIG_GRKERNSEC_PERF_HARDEN is not set +CONFIG_GRKERNSEC_RAND_THREADSTACK=y +CONFIG_GRKERNSEC_PROC_MEMMAP=y +CONFIG_GRKERNSEC_BRUTE=y +CONFIG_GRKERNSEC_MODHARDEN=y +CONFIG_GRKERNSEC_HIDESYM=y +CONFIG_GRKERNSEC_KERN_LOCKOUT=y + +# +# Role Based Access Control Options +# +CONFIG_GRKERNSEC_NO_RBAC=y +# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set +CONFIG_GRKERNSEC_ACL_MAXTRIES=3 +CONFIG_GRKERNSEC_ACL_TIMEOUT=30 + +# +# Filesystem Protections +# +# CONFIG_GRKERNSEC_PROC is not set +CONFIG_GRKERNSEC_LINK=y +# CONFIG_GRKERNSEC_SYMLINKOWN is not set +CONFIG_GRKERNSEC_FIFO=y +# CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set +# CONFIG_GRKERNSEC_ROFS is not set +CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y +CONFIG_GRKERNSEC_CHROOT=y +# CONFIG_GRKERNSEC_CHROOT_MOUNT is not set +CONFIG_GRKERNSEC_CHROOT_DOUBLE=y +CONFIG_GRKERNSEC_CHROOT_PIVOT=y +CONFIG_GRKERNSEC_CHROOT_CHDIR=y +# CONFIG_GRKERNSEC_CHROOT_CHMOD is not set +CONFIG_GRKERNSEC_CHROOT_FCHDIR=y +# CONFIG_GRKERNSEC_CHROOT_MKNOD is not set +CONFIG_GRKERNSEC_CHROOT_SHMAT=y +CONFIG_GRKERNSEC_CHROOT_UNIX=y +CONFIG_GRKERNSEC_CHROOT_FINDTASK=y +CONFIG_GRKERNSEC_CHROOT_NICE=y +CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +# CONFIG_GRKERNSEC_CHROOT_CAPS is not set +CONFIG_GRKERNSEC_CHROOT_INITRD=y + +# +# Kernel Auditing +# +# CONFIG_GRKERNSEC_AUDIT_GROUP is not set +# CONFIG_GRKERNSEC_EXECLOG is not set +CONFIG_GRKERNSEC_RESLOG=y +# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set +# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set +# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set +# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set +CONFIG_GRKERNSEC_SIGNAL=y +CONFIG_GRKERNSEC_FORKFAIL=y +# CONFIG_GRKERNSEC_TIME is not set +CONFIG_GRKERNSEC_PROC_IPADDR=y +# CONFIG_GRKERNSEC_RWXMAP_LOG is not set + +# +# Executable Protections +# +CONFIG_GRKERNSEC_DMESG=y +CONFIG_GRKERNSEC_HARDEN_PTRACE=y +CONFIG_GRKERNSEC_PTRACE_READEXEC=y +CONFIG_GRKERNSEC_SETXID=y +# CONFIG_GRKERNSEC_TPE is not set + +# +# Network Protections +# +CONFIG_GRKERNSEC_RANDNET=y +CONFIG_GRKERNSEC_BLACKHOLE=y +CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y +# CONFIG_GRKERNSEC_SOCKET is not set + +# +# Physical Protections +# +# CONFIG_GRKERNSEC_DENYUSB is not set + +# +# Sysctl Support +# +# CONFIG_GRKERNSEC_SYSCTL is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=6 +CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +# CONFIG_SECURITY_SELINUX is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_IMA is not set +# CONFIG_EVM is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_PCRYPT=m +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_TEST=m + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_SEQIV=y + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XTS=m + +# +# Hash modes +# +CONFIG_CRYPTO_CMAC=m +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_VMAC=m + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_WP512=m + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_ARM=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_ZLIB=m +CONFIG_CRYPTO_LZO=m + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y +CONFIG_CRYPTO_HW=y +# CONFIG_CRYPTO_DEV_HIFN_795X is not set +CONFIG_ASYMMETRIC_KEY_TYPE=m +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m +CONFIG_PUBLIC_KEY_ALGO_RSA=m +CONFIG_X509_CERTIFICATE_PARSER=m +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +CONFIG_RAID6_PQ=m +CONFIG_BITREVERSE=y +CONFIG_RATIONAL=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_STMP_DEVICE=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=y +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_CRC8=m +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_HAS_IOMEM=y +CONFIG_HAS_DMA=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_NLATTR=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y +CONFIG_AVERAGE=y +CONFIG_CLZ_TAB=y +CONFIG_CORDIC=m +CONFIG_DDR=y +CONFIG_MPILIB=m +CONFIG_OID_REGISTRY=m +CONFIG_VIRTUALIZATION=y +CONFIG_KVM_ARM_MAX_VCPUS=0 + +# +# Virtio drivers +# diff --git a/config/kernel/kernel.config.armv5tel-ipfire-omap b/config/kernel/kernel.config.armv5tel-ipfire-omap deleted file mode 100644 index e2adae7..0000000 --- a/config/kernel/kernel.config.armv5tel-ipfire-omap +++ /dev/null @@ -1,3582 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Linux/arm 3.2.48-ipfire-omap Kernel Configuration -# -CONFIG_ARM=y -CONFIG_HAVE_PWM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_HAVE_SCHED_CLOCK=y -CONFIG_GENERIC_GPIO=y -# CONFIG_ARCH_USES_GETTIMEOFFSET is not set -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_KTIME_SCALAR=y -CONFIG_HAVE_PROC_CPU=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_ARCH_HAS_CPUFREQ=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_VECTORS_BASE=0xffff0000 -CONFIG_ARM_PATCH_PHYS_VIRT=y -CONFIG_GENERIC_BUG=y -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_HAVE_IRQ_WORK=y -CONFIG_IRQ_WORK=y - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_CROSS_COMPILE="" -CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_LZMA=y -CONFIG_HAVE_KERNEL_LZO=y -# CONFIG_KERNEL_GZIP is not set -CONFIG_KERNEL_LZMA=y -# CONFIG_KERNEL_LZO is not set -CONFIG_DEFAULT_HOSTNAME="(none)" -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -CONFIG_POSIX_MQUEUE=y -CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set -# CONFIG_TASKSTATS is not set -CONFIG_AUDIT=y -CONFIG_HAVE_GENERIC_HARDIRQS=y - -# -# IRQ subsystem -# -CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_SPARSE_IRQ=y - -# -# RCU Subsystem -# -CONFIG_TREE_RCU=y -# CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set -CONFIG_RCU_FANOUT=32 -# CONFIG_RCU_FANOUT_EXACT is not set -CONFIG_RCU_FAST_NO_HZ=y -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=19 -# CONFIG_CGROUPS is not set -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -# CONFIG_PID_NS is not set -# CONFIG_NET_NS is not set -# CONFIG_SCHED_AUTOGROUP is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=y -CONFIG_RD_LZMA=y -CONFIG_RD_XZ=y -CONFIG_RD_LZO=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -CONFIG_EXPERT=y -CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_AIO=y -# CONFIG_EMBEDDED is not set -CONFIG_HAVE_PERF_EVENTS=y -CONFIG_PERF_USE_VMALLOC=y - -# -# Kernel Performance Events And Counters -# -CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLUB_DEBUG=y -# CONFIG_COMPAT_BRK is not set -# CONFIG_SLAB is not set -CONFIG_SLUB=y -# CONFIG_SLOB is not set -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_USE_GENERIC_SMP_HELPERS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_DMA_API_DEBUG=y -CONFIG_HAVE_HW_BREAKPOINT=y - -# -# GCOV-based kernel profiling -# -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_STOP_MACHINE=y -CONFIG_BLOCK=y -CONFIG_LBDAF=y -CONFIG_BLK_DEV_BSG=y -CONFIG_BLK_DEV_BSGLIB=y -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_DEADLINE is not set -CONFIG_DEFAULT_CFQ=y -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="cfq" -CONFIG_PADATA=y -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set -CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set -CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set -CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_FREEZER=y - -# -# System Type -# -CONFIG_MMU=y -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_VEXPRESS is not set -# CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_BCMRING is not set -# CONFIG_ARCH_HIGHBANK is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CNS3XXX is not set -# CONFIG_ARCH_GEMINI is not set -# CONFIG_ARCH_PRIMA2 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_EP93XX is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_MXS is not set -# CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_IOP13XX is not set -# CONFIG_ARCH_IOP32X is not set -# CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_DOVE is not set -# CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_LPC32XX is not set -# CONFIG_ARCH_MV78XX0 is not set -# CONFIG_ARCH_ORION5X is not set -# CONFIG_ARCH_MMP is not set -# CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_TEGRA is not set -# CONFIG_ARCH_PICOXCELL is not set -# CONFIG_ARCH_PNX4008 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_MSM is not set -# CONFIG_ARCH_SHMOBILE is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_S3C64XX is not set -# CONFIG_ARCH_S5P64X0 is not set -# CONFIG_ARCH_S5PC100 is not set -# CONFIG_ARCH_S5PV210 is not set -# CONFIG_ARCH_EXYNOS is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_TCC_926 is not set -# CONFIG_ARCH_U300 is not set -# CONFIG_ARCH_U8500 is not set -# CONFIG_ARCH_NOMADIK is not set -# CONFIG_ARCH_DAVINCI is not set -CONFIG_ARCH_OMAP=y -# CONFIG_PLAT_SPEAR is not set -# CONFIG_ARCH_VT8500 is not set -# CONFIG_ARCH_ZYNQ is not set -CONFIG_GPIO_PCA953X=m -CONFIG_KEYBOARD_GPIO_POLLED=m - -# -# TI OMAP Common Features -# -CONFIG_ARCH_OMAP_OTG=y -# CONFIG_ARCH_OMAP1 is not set -CONFIG_ARCH_OMAP2PLUS=y - -# -# OMAP Feature Selections -# -CONFIG_OMAP_DEBUG_DEVICES=y -CONFIG_OMAP_DEBUG_LEDS=y -# CONFIG_OMAP_SMARTREFLEX is not set -CONFIG_OMAP_RESET_CLOCKS=y -CONFIG_OMAP_MUX=y -# CONFIG_OMAP_MUX_DEBUG is not set -CONFIG_OMAP_MUX_WARNINGS=y -CONFIG_OMAP_MCBSP=y -# CONFIG_OMAP_MBOX_FWK is not set -CONFIG_OMAP_32K_TIMER=y -# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set -CONFIG_OMAP_32K_TIMER_HZ=128 -CONFIG_OMAP_DM_TIMER=y -CONFIG_OMAP_PM_NOOP=y -CONFIG_MACH_OMAP_GENERIC=y - -# -# TI OMAP2/3/4 Specific Features -# -CONFIG_ARCH_OMAP2PLUS_TYPICAL=y -CONFIG_ARCH_OMAP2=y -CONFIG_ARCH_OMAP3=y -CONFIG_ARCH_OMAP4=y - -# -# OMAP Core Type -# -CONFIG_SOC_OMAP2420=y -CONFIG_SOC_OMAP2430=y -CONFIG_SOC_OMAP3430=y -CONFIG_SOC_OMAPTI816X=y -CONFIG_OMAP_PACKAGE_ZAF=y -CONFIG_OMAP_PACKAGE_ZAC=y -CONFIG_OMAP_PACKAGE_CBB=y -CONFIG_OMAP_PACKAGE_CUS=y -CONFIG_OMAP_PACKAGE_CBP=y -CONFIG_OMAP_PACKAGE_CBL=y -CONFIG_OMAP_PACKAGE_CBS=y - -# -# OMAP Board Type -# -CONFIG_MACH_OMAP_H4=y -CONFIG_MACH_OMAP_APOLLON=y -CONFIG_MACH_OMAP_2430SDP=y -CONFIG_MACH_OMAP3_BEAGLE=y -CONFIG_MACH_DEVKIT8000=y -CONFIG_MACH_OMAP_LDP=y -CONFIG_MACH_OMAP3530_LV_SOM=y -CONFIG_MACH_OMAP3_TORPEDO=y -CONFIG_MACH_OVERO=y -CONFIG_MACH_OMAP3EVM=y -CONFIG_MACH_OMAP3517EVM=y -# CONFIG_MACH_CRANEBOARD is not set -CONFIG_MACH_OMAP3_PANDORA=y -CONFIG_MACH_OMAP3_TOUCHBOOK=y -CONFIG_MACH_OMAP_3430SDP=y -# CONFIG_MACH_NOKIA_N8X0 is not set -CONFIG_MACH_NOKIA_RM680=y -CONFIG_MACH_NOKIA_RX51=y -CONFIG_MACH_OMAP_ZOOM2=y -CONFIG_MACH_OMAP_ZOOM3=y -CONFIG_MACH_CM_T35=y -CONFIG_MACH_CM_T3517=y -CONFIG_MACH_CM_T3730=y -CONFIG_MACH_IGEP0020=y -CONFIG_MACH_IGEP0030=y -CONFIG_MACH_SBC3530=y -CONFIG_MACH_OMAP_3630SDP=y -CONFIG_MACH_TI8168EVM=y -CONFIG_MACH_OMAP_4430SDP=y -CONFIG_MACH_OMAP4_PANDA=y -# CONFIG_OMAP3_EMU is not set -# CONFIG_OMAP3_SDRC_AC_TIMING is not set - -# -# System MMU -# - -# -# Processor Type -# -CONFIG_CPU_V6=y -CONFIG_CPU_V7=y -CONFIG_CPU_32v6=y -CONFIG_CPU_32v6K=y -CONFIG_CPU_32v7=y -CONFIG_CPU_ABRT_EV6=y -CONFIG_CPU_ABRT_EV7=y -CONFIG_CPU_PABRT_V6=y -CONFIG_CPU_PABRT_V7=y -CONFIG_CPU_CACHE_V6=y -CONFIG_CPU_CACHE_V7=y -CONFIG_CPU_CACHE_VIPT=y -CONFIG_CPU_COPY_V6=y -CONFIG_CPU_TLB_V6=y -CONFIG_CPU_TLB_V7=y -CONFIG_CPU_HAS_ASID=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y -CONFIG_CPU_USE_DOMAINS=y - -# -# Processor Features -# -CONFIG_ARM_THUMB=y -# CONFIG_ARM_THUMBEE is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_BPREDICT_DISABLE is not set -CONFIG_OUTER_CACHE=y -CONFIG_OUTER_CACHE_SYNC=y -CONFIG_CACHE_L2X0=y -CONFIG_ARM_L1_CACHE_SHIFT=5 -CONFIG_ARM_DMA_MEM_BUFFERABLE=y -# CONFIG_ARM_ERRATA_326103 is not set -CONFIG_ARM_ERRATA_411920=y -CONFIG_ARM_ERRATA_430973=y -CONFIG_ARM_ERRATA_458693=y -CONFIG_ARM_ERRATA_460075=y -# CONFIG_ARM_ERRATA_742230 is not set -CONFIG_ARM_ERRATA_742231=y -CONFIG_PL310_ERRATA_588369=y -CONFIG_ARM_ERRATA_720789=y -CONFIG_PL310_ERRATA_727915=y -CONFIG_ARM_ERRATA_743622=y -# CONFIG_ARM_ERRATA_751472 is not set -CONFIG_ARM_ERRATA_754322=y -CONFIG_ARM_ERRATA_754327=y -CONFIG_ARM_ERRATA_764369=y -CONFIG_PL310_ERRATA_769419=y -CONFIG_ARM_GIC=y - -# -# Bus support -# -# CONFIG_PCI_SYSCALL is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_SMP=y -CONFIG_SMP_ON_UP=y -CONFIG_ARM_CPU_TOPOLOGY=y -CONFIG_SCHED_MC=y -CONFIG_SCHED_SMT=y -CONFIG_HAVE_ARM_SCU=y -CONFIG_HAVE_ARM_TWD=y -CONFIG_VMSPLIT_3G=y -# CONFIG_VMSPLIT_2G is not set -# CONFIG_VMSPLIT_1G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_NR_CPUS=8 -CONFIG_HOTPLUG_CPU=y -CONFIG_LOCAL_TIMERS=y -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set -CONFIG_HZ=128 -CONFIG_AEABI=y -# CONFIG_OABI_COMPAT is not set -CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -CONFIG_HAVE_ARCH_PFN_VALID=y -CONFIG_HIGHMEM=y -CONFIG_HIGHPTE=y -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_COMPACTION is not set -# CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_ZONE_DMA_FLAG=0 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y -CONFIG_KSM=y -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -# CONFIG_CLEANCACHE is not set -CONFIG_FORCE_MAX_ZONEORDER=11 -# CONFIG_LEDS is not set -CONFIG_ALIGNMENT_TRAP=y -CONFIG_UACCESS_WITH_MEMCPY=y -CONFIG_SECCOMP=y -CONFIG_CC_STACKPROTECTOR=y -# CONFIG_DEPRECATED_PARAM_STRUCT is not set - -# -# Boot options -# -CONFIG_USE_OF=y -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -# CONFIG_ARM_APPENDED_DTB is not set -CONFIG_CMDLINE="" -# CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set -# CONFIG_CRASH_DUMP is not set -# CONFIG_AUTO_ZRELADDR is not set - -# -# CPU Power Management -# - -# -# CPU Frequency scaling -# -# CONFIG_CPU_FREQ is not set -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -CONFIG_VFP=y -CONFIG_VFPv3=y -CONFIG_NEON=y - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set - -# -# Power management options -# -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_RUNTIME=y -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -# CONFIG_APM_EMULATION is not set -CONFIG_ARCH_HAS_OPP=y -CONFIG_PM_OPP=y -CONFIG_PM_CLK=y -CONFIG_CPU_PM=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARM_CPU_SUSPEND=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set -CONFIG_XFRM_MIGRATE=y -CONFIG_XFRM_STATISTICS=y -CONFIG_XFRM_IPCOMP=m -CONFIG_NET_KEY=m -CONFIG_NET_KEY_MIGRATE=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_ROUTE_CLASSID=y -# CONFIG_IP_PNP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE_DEMUX=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_IP_MROUTE=y -# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_XFRM_TUNNEL=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y -CONFIG_INET_LRO=y -CONFIG_INET_DIAG=m -CONFIG_INET_TCP_DIAG=m -CONFIG_TCP_CONG_ADVANCED=y -CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m -CONFIG_TCP_CONG_WESTWOOD=m -CONFIG_TCP_CONG_HTCP=m -CONFIG_TCP_CONG_HSTCP=m -CONFIG_TCP_CONG_HYBLA=m -CONFIG_TCP_CONG_VEGAS=m -CONFIG_TCP_CONG_SCALABLE=m -CONFIG_TCP_CONG_LP=m -CONFIG_TCP_CONG_VENO=m -CONFIG_TCP_CONG_YEAH=m -CONFIG_TCP_CONG_ILLINOIS=m -CONFIG_DEFAULT_RENO=y -CONFIG_DEFAULT_TCP_CONG="reno" -# CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=y -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_IPV6_MIP6=m -CONFIG_INET6_XFRM_TUNNEL=m -CONFIG_INET6_TUNNEL=m -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET6_XFRM_MODE_BEET=m -CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m -CONFIG_IPV6_SIT=m -# CONFIG_IPV6_SIT_6RD is not set -CONFIG_IPV6_NDISC_NODETYPE=y -CONFIG_IPV6_TUNNEL=m -CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NETWORK_PHY_TIMESTAMPING=y -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_NETFILTER_ADVANCED=y -CONFIG_BRIDGE_NETFILTER=y - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m -CONFIG_NF_CONNTRACK_MARK=y -# CONFIG_NF_CONNTRACK_ZONES is not set -CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CONNTRACK_TIMESTAMP=y -CONFIG_NF_CT_PROTO_DCCP=m -CONFIG_NF_CT_PROTO_GRE=m -CONFIG_NF_CT_PROTO_SCTP=m -CONFIG_NF_CT_PROTO_UDPLITE=m -CONFIG_NF_CONNTRACK_AMANDA=m -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK_BROADCAST=m -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_SNMP=m -CONFIG_NF_CONNTRACK_PPTP=m -CONFIG_NF_CONNTRACK_SANE=m -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_TFTP=m -CONFIG_NF_CT_NETLINK=m -CONFIG_NETFILTER_TPROXY=m -CONFIG_NETFILTER_XTABLES=m - -# -# Xtables combined modules -# -CONFIG_NETFILTER_XT_MARK=m -CONFIG_NETFILTER_XT_CONNMARK=m - -# -# Xtables targets -# -CONFIG_NETFILTER_XT_TARGET_AUDIT=m -CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -CONFIG_NETFILTER_XT_TARGET_CT=m -CONFIG_NETFILTER_XT_TARGET_DSCP=m -CONFIG_NETFILTER_XT_TARGET_HL=m -CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m -CONFIG_NETFILTER_XT_TARGET_LED=m -CONFIG_NETFILTER_XT_TARGET_IMQ=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFLOG=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_TARGET_RATEEST=m -CONFIG_NETFILTER_XT_TARGET_TEE=m -CONFIG_NETFILTER_XT_TARGET_TPROXY=m -CONFIG_NETFILTER_XT_TARGET_TRACE=m -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m - -# -# Xtables matches -# -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -CONFIG_NETFILTER_XT_MATCH_CLUSTER=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_CPU=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m -CONFIG_NETFILTER_XT_MATCH_DSCP=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_HL=m -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_OSF=m -CONFIG_NETFILTER_XT_MATCH_OWNER=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_RATEEST=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_SOCKET=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_LAYER7=m -# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -CONFIG_NETFILTER_XT_MATCH_TIME=m -CONFIG_NETFILTER_XT_MATCH_U32=m -# CONFIG_IP_SET is not set -CONFIG_IP_VS=m -CONFIG_IP_VS_IPV6=y -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_TAB_BITS=12 - -# -# IPVS transport protocol load balancing support -# -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_PROTO_AH_ESP=y -CONFIG_IP_VS_PROTO_ESP=y -CONFIG_IP_VS_PROTO_AH=y -CONFIG_IP_VS_PROTO_SCTP=y - -# -# IPVS scheduler -# -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -CONFIG_IP_VS_SED=m -CONFIG_IP_VS_NQ=m - -# -# IPVS application helper -# -CONFIG_IP_VS_FTP=m -CONFIG_IP_VS_NFCT=y -CONFIG_IP_VS_PE_SIP=m - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m -CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m -CONFIG_NF_NAT_PPTP=m -CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m -CONFIG_IP_NF_MATCH_IPP2P=m - -# -# IPv6: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV6=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_MH=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_RAW=m -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_IP6=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m -CONFIG_BRIDGE_EBT_NFLOG=m -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -CONFIG_ATM=m -CONFIG_ATM_CLIP=m -CONFIG_ATM_CLIP_NO_ICMP=y -# CONFIG_ATM_LANE is not set -CONFIG_ATM_BR2684=m -# CONFIG_ATM_BR2684_IPFILTER is not set -CONFIG_L2TP=m -CONFIG_L2TP_V3=y -CONFIG_L2TP_IP=m -CONFIG_L2TP_ETH=m -CONFIG_STP=m -CONFIG_GARP=m -CONFIG_BRIDGE=m -CONFIG_BRIDGE_IGMP_SNOOPING=y -CONFIG_NET_DSA=y -CONFIG_NET_DSA_TAG_DSA=y -CONFIG_NET_DSA_TAG_EDSA=y -CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y -CONFIG_VLAN_8021Q=m -CONFIG_VLAN_8021Q_GVRP=y -# CONFIG_DECNET is not set -CONFIG_LLC=m -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_PHONET is not set -CONFIG_IEEE802154=m -CONFIG_IEEE802154_6LOWPAN=m -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_ATM=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_MULTIQ=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFB=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_DRR=m -CONFIG_NET_SCH_MQPRIO=m -CONFIG_NET_SCH_CHOKE=m -CONFIG_NET_SCH_QFQ=m -CONFIG_NET_SCH_INGRESS=m - -# -# Classification -# -CONFIG_NET_CLS=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -CONFIG_CLS_U32_PERF=y -CONFIG_CLS_U32_MARK=y -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -CONFIG_NET_CLS_FLOW=m -CONFIG_NET_EMATCH=y -CONFIG_NET_EMATCH_STACK=32 -CONFIG_NET_EMATCH_CMP=m -CONFIG_NET_EMATCH_NBYTE=m -CONFIG_NET_EMATCH_U32=m -CONFIG_NET_EMATCH_META=m -CONFIG_NET_EMATCH_TEXT=m -CONFIG_NET_CLS_ACT=y -CONFIG_NET_ACT_POLICE=m -CONFIG_NET_ACT_GACT=m -CONFIG_GACT_PROB=y -CONFIG_NET_ACT_MIRRED=m -CONFIG_NET_ACT_IPT=m -CONFIG_NET_ACT_NAT=m -CONFIG_NET_ACT_PEDIT=m -CONFIG_NET_ACT_SIMP=m -CONFIG_NET_ACT_SKBEDIT=m -CONFIG_NET_ACT_CSUM=m -CONFIG_NET_CLS_IND=y -CONFIG_NET_SCH_FIFO=y -# CONFIG_DCB is not set -CONFIG_DNS_RESOLVER=y -CONFIG_BATMAN_ADV=m -# CONFIG_BATMAN_ADV_DEBUG is not set -CONFIG_RPS=y -CONFIG_RFS_ACCEL=y -CONFIG_XPS=y - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_MCS_FIR=m -CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_CMTP=m -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIBTUSB=m -CONFIG_BT_HCIBTSDIO=m -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_ATH3K=y -CONFIG_BT_HCIUART_LL=y -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIVHCI=m -CONFIG_BT_MRVL=m -CONFIG_BT_MRVL_SDIO=m -CONFIG_BT_ATH3K=m -CONFIG_BT_WILINK=m -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -CONFIG_RXKAD=m -CONFIG_FIB_RULES=y -CONFIG_WIRELESS=y -CONFIG_WIRELESS_EXT=y -CONFIG_WEXT_CORE=y -CONFIG_WEXT_PROC=y -CONFIG_WEXT_SPY=y -CONFIG_WEXT_PRIV=y -CONFIG_CFG80211=m -# CONFIG_NL80211_TESTMODE is not set -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -# CONFIG_CFG80211_REG_DEBUG is not set -# CONFIG_CFG80211_DEFAULT_PS is not set -# CONFIG_CFG80211_INTERNAL_REGDB is not set -CONFIG_CFG80211_WEXT=y -CONFIG_WIRELESS_EXT_SYSFS=y -CONFIG_LIB80211=m -CONFIG_LIB80211_CRYPT_WEP=m -CONFIG_LIB80211_CRYPT_CCMP=m -CONFIG_LIB80211_CRYPT_TKIP=m -# CONFIG_LIB80211_DEBUG is not set -CONFIG_MAC80211=m -CONFIG_MAC80211_HAS_RC=y -# CONFIG_MAC80211_RC_PID is not set -CONFIG_MAC80211_RC_MINSTREL=y -CONFIG_MAC80211_RC_MINSTREL_HT=y -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" -CONFIG_MAC80211_MESH=y -CONFIG_MAC80211_LEDS=y -# CONFIG_MAC80211_DEBUG_MENU is not set -# CONFIG_WIMAX is not set -CONFIG_RFKILL=m -CONFIG_RFKILL_LEDS=y -CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m -CONFIG_RFKILL_GPIO=m -# CONFIG_NET_9P is not set -# CONFIG_CAIF is not set -CONFIG_CEPH_LIB=m -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set -# CONFIG_NFC is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -CONFIG_FW_LOADER=y -# CONFIG_FIRMWARE_IN_KERNEL is not set -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_SYS_HYPERVISOR is not set -CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=m -CONFIG_CONNECTOR=m -CONFIG_MTD=m -CONFIG_MTD_TESTS=m -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_AFS_PARTS is not set -CONFIG_MTD_OF_PARTS=m -CONFIG_MTD_AR7_PARTS=m - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -CONFIG_SM_FTL=m -# CONFIG_MTD_OOPS is not set -# CONFIG_MTD_SWAP is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_DOCG3 is not set -CONFIG_MTD_NAND_ECC=m -# CONFIG_MTD_NAND_ECC_SMC is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 -# CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_DEBUG is not set -CONFIG_DTC=y -CONFIG_OF=y - -# -# Device Tree and Open Firmware support -# -CONFIG_PROC_DEVICETREE=y -CONFIG_OF_FLATTREE=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_IRQ=y -CONFIG_OF_DEVICE=y -CONFIG_OF_GPIO=y -CONFIG_OF_I2C=y -CONFIG_OF_NET=y -CONFIG_OF_MDIO=y -CONFIG_PARPORT=m -# CONFIG_PARPORT_PC is not set -# CONFIG_PARPORT_GSC is not set -CONFIG_PARPORT_AX88796=m -CONFIG_PARPORT_1284=y -CONFIG_PARPORT_NOT_PC=y -CONFIG_BLK_DEV=y -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 -CONFIG_BLK_DEV_CRYPTOLOOP=m -# CONFIG_BLK_DEV_DRBD is not set -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_OSD=m -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=8 -CONFIG_BLK_DEV_RAM_SIZE=16384 -# CONFIG_BLK_DEV_XIP is not set -# CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m -CONFIG_MG_DISK=m -CONFIG_MG_DISK_RES=0 -CONFIG_BLK_DEV_RBD=m -CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y -# CONFIG_AD525X_DPOT is not set -# CONFIG_ATMEL_PWM is not set -CONFIG_ICS932S401=m -CONFIG_ENCLOSURE_SERVICES=m -CONFIG_APDS9802ALS=m -CONFIG_ISL29003=m -CONFIG_ISL29020=m -CONFIG_SENSORS_TSL2550=m -CONFIG_SENSORS_BH1780=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_APDS990X=m -CONFIG_HMC6352=m -CONFIG_DS1682=m -CONFIG_BMP085=m -CONFIG_USB_SWITCH_FSA9480=m -CONFIG_C2PORT=m - -# -# EEPROM support -# -CONFIG_EEPROM_AT24=m -CONFIG_EEPROM_LEGACY=m -CONFIG_EEPROM_MAX6875=m -CONFIG_EEPROM_93CX6=m -CONFIG_IWMC3200TOP=m -# CONFIG_IWMC3200TOP_DEBUG is not set -# CONFIG_IWMC3200TOP_DEBUGFS is not set - -# -# Texas Instruments shared transport line discipline -# -CONFIG_TI_ST=m -CONFIG_SENSORS_LIS3_I2C=m - -# -# Altera FPGA firmware download module -# -# CONFIG_ALTERA_STAPL is not set - -# -# SCSI device support -# -CONFIG_SCSI_MOD=m -CONFIG_RAID_ATTRS=m -CONFIG_SCSI=m -CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set -CONFIG_SCSI_NETLINK=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m -CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m -CONFIG_CHR_DEV_SCH=m -CONFIG_SCSI_ENCLOSURE=m -CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m - -# -# SCSI Transports -# -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_FC_ATTRS=m -CONFIG_SCSI_ISCSI_ATTRS=m -CONFIG_SCSI_SAS_ATTRS=m -CONFIG_SCSI_SAS_LIBSAS=m -CONFIG_SCSI_SAS_ATA=y -CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SRP_ATTRS=m -CONFIG_SCSI_LOWLEVEL=y -CONFIG_ISCSI_TCP=m -CONFIG_ISCSI_BOOT_SYSFS=m -CONFIG_LIBFC=m -CONFIG_LIBFCOE=m -# CONFIG_SCSI_DEBUG is not set -CONFIG_SCSI_DH=m -CONFIG_SCSI_DH_RDAC=m -CONFIG_SCSI_DH_HP_SW=m -CONFIG_SCSI_DH_EMC=m -CONFIG_SCSI_DH_ALUA=m -CONFIG_SCSI_OSD_INITIATOR=m -CONFIG_SCSI_OSD_ULD=m -CONFIG_SCSI_OSD_DPRINT_SENSE=1 -# CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_ATA=m -# CONFIG_ATA_NONSTANDARD is not set -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_SATA_PMP=y - -# -# Controllers with non-SFF native interface -# -CONFIG_SATA_AHCI_PLATFORM=m -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -CONFIG_SATA_MV=m - -# -# PATA SFF controllers with BMDMA -# -CONFIG_PATA_ARASAN_CF=m - -# -# PIO-only SFF controllers -# -CONFIG_PATA_PLATFORM=m -CONFIG_PATA_OF_PLATFORM=m - -# -# Generic fallback / legacy drivers -# -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -CONFIG_MD_LINEAR=m -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID10=m -CONFIG_MD_RAID456=m -# CONFIG_MULTICORE_RAID456 is not set -CONFIG_MD_MULTIPATH=m -# CONFIG_MD_FAULTY is not set -CONFIG_BLK_DEV_DM=m -# CONFIG_DM_DEBUG is not set -CONFIG_DM_BUFIO=m -CONFIG_DM_PERSISTENT_DATA=m -CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_THIN_PROVISIONING=m -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -# CONFIG_DM_DEBUG_SPACE_MAPS is not set -CONFIG_DM_MIRROR=m -CONFIG_DM_RAID=m -CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m -CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_QL=m -CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m -CONFIG_DM_UEVENT=y -CONFIG_DM_FLAKEY=m -# CONFIG_TARGET_CORE is not set -CONFIG_NETDEVICES=y -CONFIG_NET_CORE=y -CONFIG_BONDING=m -CONFIG_DUMMY=m -CONFIG_EQUALIZER=m -CONFIG_IMQ=m -# CONFIG_IMQ_BEHAVIOR_AA is not set -CONFIG_IMQ_BEHAVIOR_AB=y -# CONFIG_IMQ_BEHAVIOR_BA is not set -# CONFIG_IMQ_BEHAVIOR_BB is not set -CONFIG_IMQ_NUM_DEVS=2 -CONFIG_MII=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -CONFIG_IFB=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_TUN=m -CONFIG_VETH=m -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m - -# -# CAIF transport drivers -# -CONFIG_ETHERNET=y -CONFIG_NET_VENDOR_BROADCOM=y -CONFIG_B44=m -CONFIG_NET_VENDOR_CHELSIO=y -CONFIG_DM9000=m -# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set -CONFIG_DNET=m -CONFIG_NET_VENDOR_DLINK=y -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_NET_VENDOR_FARADAY=y -# CONFIG_FTMAC100 is not set -# CONFIG_FTGMAC100 is not set -CONFIG_NET_VENDOR_INTEL=y -CONFIG_NET_VENDOR_I825XX=y -CONFIG_NET_VENDOR_MARVELL=y -CONFIG_NET_VENDOR_MICREL=y -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m -CONFIG_NET_VENDOR_NATSEMI=y -CONFIG_NET_VENDOR_8390=y -CONFIG_AX88796=m -CONFIG_AX88796_93CX6=y -CONFIG_ETHOC=m -CONFIG_NET_VENDOR_SEEQ=y -CONFIG_SEEQ8005=m -CONFIG_NET_VENDOR_SMSC=y -CONFIG_SMC91X=m -CONFIG_SMC911X=m -CONFIG_SMSC911X=m -# CONFIG_SMSC911X_ARCH_HOOKS is not set -CONFIG_NET_VENDOR_STMICRO=y -CONFIG_STMMAC_ETH=m -# CONFIG_STMMAC_DA is not set -CONFIG_STMMAC_RING=y -# CONFIG_STMMAC_CHAINED is not set -CONFIG_NET_VENDOR_TI=y -# CONFIG_TI_DAVINCI_EMAC is not set -# CONFIG_TI_DAVINCI_MDIO is not set -# CONFIG_TI_DAVINCI_CPDMA is not set -CONFIG_PHYLIB=y - -# -# MII PHY device drivers -# -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -CONFIG_MICREL_PHY=m -# CONFIG_FIXED_PHY is not set -CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_FILTER=y -CONFIG_PPP_MPPE=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPPOATM=m -CONFIG_PPPOE=m -CONFIG_PPTP=m -CONFIG_PPPOL2TP=m -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_SLIP=m -CONFIG_SLHC=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y - -# -# USB Network Adapters -# -CONFIG_USB_CATC=m -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_RTL8150=m -CONFIG_USB_USBNET=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_CDC_NCM=m -CONFIG_USB_NET_DM9601=m -CONFIG_USB_NET_SMSC75XX=m -CONFIG_USB_NET_SMSC95XX=m -CONFIG_USB_NET_GL620A=m -CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_KC2190=y -CONFIG_USB_NET_ZAURUS=m -CONFIG_USB_NET_CX82310_ETH=m -CONFIG_USB_NET_KALMIA=m -CONFIG_USB_HSO=m -CONFIG_USB_NET_INT51X1=m -# CONFIG_USB_IPHETH is not set -CONFIG_USB_SIERRA_NET=m -CONFIG_USB_VL600=m -CONFIG_WLAN=y -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_AT76C50X_USB=m -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8187 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_BRCMFMAC is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -# CONFIG_IWM is not set -# CONFIG_LIBERTAS is not set -# CONFIG_P54_COMMON is not set -# CONFIG_RT2X00 is not set -# CONFIG_RTL8192CU is not set -# CONFIG_WL1251 is not set -CONFIG_WL12XX_MENU=m -CONFIG_WL12XX=m -CONFIG_WL12XX_SDIO=m -# CONFIG_WL12XX_SDIO_TEST is not set -CONFIG_WL12XX_PLATFORM_DATA=y -# CONFIG_ZD1211RW is not set -# CONFIG_MWIFIEX is not set - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -# -CONFIG_WAN=y -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_ISDN=y -CONFIG_ISDN_I4L=m -CONFIG_ISDN_PPP=y -CONFIG_ISDN_PPP_VJ=y -CONFIG_ISDN_MPP=y -CONFIG_IPPP_FILTER=y -CONFIG_ISDN_PPP_BSDCOMP=m -CONFIG_ISDN_AUDIO=y -CONFIG_ISDN_TTY_FAX=y - -# -# ISDN feature submodules -# -CONFIG_ISDN_DIVERSION=m - -# -# ISDN4Linux hardware drivers -# - -# -# Passive cards -# -CONFIG_ISDN_DRV_HISAX=m - -# -# D-channel protocol features -# -CONFIG_HISAX_EURO=y -CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set -CONFIG_HISAX_1TR6=y -CONFIG_HISAX_NI1=y -CONFIG_HISAX_MAX_CARDS=8 - -# -# HiSax supported cards -# -CONFIG_HISAX_16_3=y -CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_FRITZPCI=y -CONFIG_HISAX_AVM_A1_PCMCIA=y -CONFIG_HISAX_ELSA=y -CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_NICCY=y -CONFIG_HISAX_GAZEL=y -CONFIG_HISAX_HFC_SX=y -CONFIG_HISAX_DEBUG=y - -# -# HiSax PCMCIA card service modules -# - -# -# HiSax sub driver modules -# -CONFIG_HISAX_ST5481=m -CONFIG_HISAX_HFCUSB=m -CONFIG_HISAX_HFC4S8S=m - -# -# Active cards -# -CONFIG_ISDN_CAPI=m -CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y -CONFIG_CAPI_TRACE=y -CONFIG_ISDN_CAPI_MIDDLEWARE=y -CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIDRV=m - -# -# CAPI hardware drivers -# -CONFIG_CAPI_AVM=y -CONFIG_CAPI_EICON=y -CONFIG_ISDN_DRV_GIGASET=m -CONFIG_GIGASET_CAPI=y -# CONFIG_GIGASET_I4L is not set -# CONFIG_GIGASET_DUMMYLL is not set -CONFIG_GIGASET_BASE=m -CONFIG_GIGASET_M105=m -CONFIG_GIGASET_M101=m -# CONFIG_GIGASET_DEBUG is not set -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCUSB=m -CONFIG_ISDN_HDLC=m -# CONFIG_PHONE is not set - -# -# Input device support -# -CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m -CONFIG_INPUT_POLLDEV=m -CONFIG_INPUT_SPARSEKMAP=m - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ADP5589=m -CONFIG_KEYBOARD_ATKBD=y -CONFIG_KEYBOARD_QT1070=m -CONFIG_KEYBOARD_QT2160=m -CONFIG_KEYBOARD_LKKBD=m -CONFIG_KEYBOARD_GPIO=m -CONFIG_KEYBOARD_TCA6416=m -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_MCS=m -CONFIG_KEYBOARD_MPR121=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_OMAP=m -CONFIG_KEYBOARD_OMAP4=m -CONFIG_KEYBOARD_TWL4030=m -CONFIG_KEYBOARD_XTKBD=m -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -CONFIG_INPUT_MISC=y -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_BMA150=m -# CONFIG_INPUT_MMA8450 is not set -# CONFIG_INPUT_MPU3050 is not set -CONFIG_INPUT_ATI_REMOTE2=m -CONFIG_INPUT_KEYSPAN_REMOTE=m -# CONFIG_INPUT_KXTJ9 is not set -CONFIG_INPUT_POWERMATE=m -CONFIG_INPUT_YEALINK=m -CONFIG_INPUT_CM109=m -CONFIG_INPUT_TWL4030_PWRBUTTON=m -CONFIG_INPUT_TWL4030_VIBRA=m -CONFIG_INPUT_TWL6040_VIBRA=m -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_PCF8574=m -CONFIG_INPUT_PWM_BEEPER=m -CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -# CONFIG_INPUT_ADXL34X is not set -# CONFIG_INPUT_CMA3000 is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_PARKBD is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -CONFIG_SERIO_ALTERA_PS2=m -CONFIG_SERIO_PS2MULT=m -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_SERIAL_NONSTANDARD is not set -CONFIG_N_GSM=m -# CONFIG_TRACE_SINK is not set -CONFIG_DEVKMEM=y - -# -# Serial drivers -# -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_NR_UARTS=4 -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_MANY_PORTS=y -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y -CONFIG_SERIAL_8250_RSA=y -CONFIG_SERIAL_8250_DW=m - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SERIAL_OMAP=y -CONFIG_SERIAL_OMAP_CONSOLE=y -CONFIG_SERIAL_TIMBERDALE=m -CONFIG_SERIAL_ALTERA_JTAGUART=m -CONFIG_SERIAL_ALTERA_UART=m -CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 -CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 -CONFIG_SERIAL_XILINX_PS_UART=m -# CONFIG_TTY_PRINTK is not set -CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set -CONFIG_PPDEV=m -# CONFIG_HVC_DCC is not set -CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_PANIC_EVENT=y -# CONFIG_IPMI_PANIC_STRING is not set -CONFIG_IPMI_DEVICE_INTERFACE=m -CONFIG_IPMI_SI=m -CONFIG_IPMI_WATCHDOG=m -CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m -CONFIG_HW_RANDOM_TIMERIOMEM=m -CONFIG_HW_RANDOM_OMAP=m -CONFIG_NVRAM=m -# CONFIG_R3964 is not set -# CONFIG_RAW_DRIVER is not set -# CONFIG_TCG_TPM is not set -# CONFIG_RAMOOPS is not set -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_MUX=m - -# -# Multiplexer I2C Chip support -# -CONFIG_I2C_MUX_GPIO=m -CONFIG_I2C_MUX_PCA9541=m -CONFIG_I2C_MUX_PCA954x=m -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_SMBUS=m -CONFIG_I2C_ALGOBIT=m -CONFIG_I2C_ALGOPCA=m - -# -# I2C Hardware Bus support -# - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_DESIGNWARE_PLATFORM is not set -CONFIG_I2C_GPIO=m -CONFIG_I2C_OCORES=m -CONFIG_I2C_OMAP=y -CONFIG_I2C_PCA_PLATFORM=m -# CONFIG_I2C_PXA_PCI is not set -CONFIG_I2C_SIMTEC=m -CONFIG_I2C_XILINX=m - -# -# External I2C/SMBus adapter drivers -# -CONFIG_I2C_DIOLAN_U2C=m -CONFIG_I2C_PARPORT=m -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_TAOS_EVM=m -CONFIG_I2C_TINY_USB=m - -# -# Other I2C/SMBus bus drivers -# -CONFIG_I2C_STUB=m -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_SPI is not set - -# -# PPS support -# -CONFIG_PPS=m -# CONFIG_PPS_DEBUG is not set - -# -# PPS clients support -# -# CONFIG_PPS_CLIENT_KTIMER is not set -# CONFIG_PPS_CLIENT_LDISC is not set -# CONFIG_PPS_CLIENT_PARPORT is not set -# CONFIG_PPS_CLIENT_GPIO is not set - -# -# PPS generators support -# - -# -# PTP clock support -# -CONFIG_PTP_1588_CLOCK=m -CONFIG_DP83640_PHY=m -CONFIG_ARCH_REQUIRE_GPIOLIB=y -CONFIG_GPIOLIB=y -# CONFIG_DEBUG_GPIO is not set -CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_GENERIC=m -CONFIG_GPIO_MAX730X=m - -# -# Memory mapped GPIO drivers: -# -CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m - -# -# I2C GPIO expanders: -# -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCF857X=m -# CONFIG_GPIO_SX150X is not set -CONFIG_GPIO_TWL4030=m -CONFIG_GPIO_ADP5588=m - -# -# PCI GPIO expanders: -# - -# -# SPI GPIO expanders: -# -CONFIG_GPIO_MCP23S08=m - -# -# AC97 GPIO expanders: -# - -# -# MODULbus GPIO expanders: -# -CONFIG_W1=m -CONFIG_W1_CON=y - -# -# 1-wire Bus Masters -# -CONFIG_W1_MASTER_DS2490=m -CONFIG_W1_MASTER_DS2482=m -CONFIG_W1_MASTER_DS1WM=m -CONFIG_W1_MASTER_GPIO=m -CONFIG_HDQ_MASTER_OMAP=m - -# -# 1-wire Slaves -# -CONFIG_W1_SLAVE_THERM=m -CONFIG_W1_SLAVE_SMEM=m -CONFIG_W1_SLAVE_DS2408=m -CONFIG_W1_SLAVE_DS2423=m -CONFIG_W1_SLAVE_DS2431=m -CONFIG_W1_SLAVE_DS2433=m -CONFIG_W1_SLAVE_DS2433_CRC=y -CONFIG_W1_SLAVE_DS2760=m -CONFIG_W1_SLAVE_DS2780=m -CONFIG_W1_SLAVE_BQ27000=m -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_PDA_POWER is not set -# CONFIG_TEST_POWER is not set -# CONFIG_BATTERY_DS2760 is not set -# CONFIG_BATTERY_DS2780 is not set -# CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_BQ20Z75 is not set -# CONFIG_BATTERY_BQ27x00 is not set -# CONFIG_BATTERY_MAX17040 is not set -# CONFIG_BATTERY_MAX17042 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_ISP1704 is not set -# CONFIG_CHARGER_MAX8903 is not set -CONFIG_CHARGER_TWL4030=m -CONFIG_CHARGER_GPIO=m -CONFIG_HWMON=m -CONFIG_HWMON_VID=m -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Native drivers -# -CONFIG_SENSORS_AD7414=m -CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADM1021=m -CONFIG_SENSORS_ADM1025=m -CONFIG_SENSORS_ADM1026=m -CONFIG_SENSORS_ADM1029=m -CONFIG_SENSORS_ADM1031=m -CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADT7411=m -CONFIG_SENSORS_ADT7462=m -CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7475=m -CONFIG_SENSORS_ASC7621=m -CONFIG_SENSORS_ATXP1=m -CONFIG_SENSORS_DS620=m -CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_F71805F=m -CONFIG_SENSORS_F71882FG=m -CONFIG_SENSORS_F75375S=m -CONFIG_SENSORS_G760A=m -CONFIG_SENSORS_GL518SM=m -CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_GPIO_FAN=m -CONFIG_SENSORS_IBMAEM=m -CONFIG_SENSORS_IBMPEX=m -CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_JC42=m -CONFIG_SENSORS_LINEAGE=m -CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM73=m -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM77=m -CONFIG_SENSORS_LM78=m -CONFIG_SENSORS_LM80=m -CONFIG_SENSORS_LM83=m -CONFIG_SENSORS_LM85=m -CONFIG_SENSORS_LM87=m -CONFIG_SENSORS_LM90=m -CONFIG_SENSORS_LM92=m -CONFIG_SENSORS_LM93=m -CONFIG_SENSORS_LTC4151=m -CONFIG_SENSORS_LTC4215=m -CONFIG_SENSORS_LTC4245=m -CONFIG_SENSORS_LTC4261=m -CONFIG_SENSORS_LM95241=m -CONFIG_SENSORS_LM95245=m -CONFIG_SENSORS_MAX16065=m -CONFIG_SENSORS_MAX1619=m -CONFIG_SENSORS_MAX1668=m -CONFIG_SENSORS_MAX6639=m -CONFIG_SENSORS_MAX6642=m -CONFIG_SENSORS_MAX6650=m -CONFIG_SENSORS_NTC_THERMISTOR=m -CONFIG_SENSORS_PC87360=m -CONFIG_SENSORS_PC87427=m -CONFIG_SENSORS_PCF8591=m -CONFIG_PMBUS=m -CONFIG_SENSORS_PMBUS=m -CONFIG_SENSORS_ADM1275=m -CONFIG_SENSORS_LM25066=m -CONFIG_SENSORS_LTC2978=m -CONFIG_SENSORS_MAX16064=m -CONFIG_SENSORS_MAX34440=m -CONFIG_SENSORS_MAX8688=m -CONFIG_SENSORS_UCD9000=m -CONFIG_SENSORS_UCD9200=m -CONFIG_SENSORS_ZL6100=m -CONFIG_SENSORS_SHT15=m -CONFIG_SENSORS_SHT21=m -CONFIG_SENSORS_SMM665=m -CONFIG_SENSORS_DME1737=m -CONFIG_SENSORS_EMC1403=m -CONFIG_SENSORS_EMC2103=m -CONFIG_SENSORS_EMC6W201=m -CONFIG_SENSORS_SMSC47M1=m -CONFIG_SENSORS_SMSC47M192=m -CONFIG_SENSORS_SMSC47B397=m -CONFIG_SENSORS_SCH56XX_COMMON=m -CONFIG_SENSORS_SCH5627=m -CONFIG_SENSORS_SCH5636=m -CONFIG_SENSORS_ADS1015=m -CONFIG_SENSORS_ADS7828=m -CONFIG_SENSORS_AMC6821=m -CONFIG_SENSORS_THMC50=m -CONFIG_SENSORS_TMP102=m -CONFIG_SENSORS_TMP401=m -CONFIG_SENSORS_TMP421=m -CONFIG_SENSORS_TWL4030_MADC=m -CONFIG_SENSORS_VT1211=m -CONFIG_SENSORS_W83781D=m -CONFIG_SENSORS_W83791D=m -CONFIG_SENSORS_W83792D=m -CONFIG_SENSORS_W83793=m -CONFIG_SENSORS_W83795=m -# CONFIG_SENSORS_W83795_FANCTRL is not set -CONFIG_SENSORS_W83L785TS=m -CONFIG_SENSORS_W83L786NG=m -CONFIG_SENSORS_W83627HF=m -CONFIG_SENSORS_W83627EHF=m -CONFIG_THERMAL=y -CONFIG_WATCHDOG=y -CONFIG_WATCHDOG_CORE=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -CONFIG_SOFT_WATCHDOG=m -CONFIG_DW_WATCHDOG=m -CONFIG_MPCORE_WATCHDOG=m -CONFIG_OMAP_WATCHDOG=m -CONFIG_TWL4030_WATCHDOG=m -CONFIG_MAX63XX_WATCHDOG=m - -# -# USB-based Watchdog Cards -# -CONFIG_USBPCWATCHDOG=m -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -CONFIG_SSB=m -CONFIG_SSB_SDIOHOST_POSSIBLE=y -CONFIG_SSB_SDIOHOST=y -# CONFIG_SSB_SILENT is not set -# CONFIG_SSB_DEBUG is not set -CONFIG_BCMA_POSSIBLE=y - -# -# Broadcom specific AMBA -# -CONFIG_BCMA=m -# CONFIG_BCMA_DEBUG is not set - -# -# Multifunction device drivers -# -CONFIG_MFD_CORE=y -# CONFIG_MFD_88PM860X is not set -CONFIG_MFD_SM501=m -# CONFIG_MFD_SM501_GPIO is not set -# CONFIG_MFD_ASIC3 is not set -# CONFIG_HTC_EGPIO is not set -CONFIG_HTC_PASIC3=m -# CONFIG_HTC_I2CPLD is not set -CONFIG_TPS6105X=m -CONFIG_TPS65010=m -CONFIG_TPS6507X=m -# CONFIG_MFD_TPS6586X is not set -# CONFIG_MFD_TPS65910 is not set -# CONFIG_MFD_TPS65912_I2C is not set -CONFIG_MENELAUS=y -CONFIG_TWL4030_CORE=y -CONFIG_TWL4030_MADC=m -CONFIG_TWL4030_POWER=y -CONFIG_MFD_TWL4030_AUDIO=y -CONFIG_TWL6030_PWM=m -CONFIG_TWL6040_CORE=y -# CONFIG_MFD_STMPE is not set -# CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TMIO is not set -# CONFIG_MFD_T7L66XB is not set -# CONFIG_MFD_TC6387XB is not set -# CONFIG_MFD_TC6393XB is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -CONFIG_MFD_WM8400=m -# CONFIG_MFD_WM831X_I2C is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_WM8994 is not set -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_ABX500_CORE is not set -CONFIG_MFD_WL1273_CORE=m -CONFIG_MFD_OMAP_USB_HOST=y -# CONFIG_MFD_AAT2870_CORE is not set -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR_DUMMY is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=y -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -CONFIG_REGULATOR_GPIO=m -# CONFIG_REGULATOR_BQ24022 is not set -# CONFIG_REGULATOR_MAX1586 is not set -# CONFIG_REGULATOR_MAX8649 is not set -# CONFIG_REGULATOR_MAX8660 is not set -# CONFIG_REGULATOR_MAX8952 is not set -CONFIG_REGULATOR_TWL4030=y -# CONFIG_REGULATOR_WM8400 is not set -# CONFIG_REGULATOR_PCF50633 is not set -# CONFIG_REGULATOR_LP3971 is not set -# CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS6105X is not set -# CONFIG_REGULATOR_TPS65023 is not set -# CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set -CONFIG_MEDIA_SUPPORT=m - -# -# Multimedia core support -# -CONFIG_MEDIA_CONTROLLER=y -CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m -CONFIG_VIDEO_V4L2_SUBDEV_API=y -CONFIG_DVB_CORE=m -CONFIG_DVB_NET=y -CONFIG_VIDEO_MEDIA=m - -# -# Multimedia drivers -# -CONFIG_RC_CORE=m -CONFIG_LIRC=m -CONFIG_RC_MAP=m -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_RC5_SZ_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_LIRC_CODEC is not set -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_RC_LOOPBACK is not set -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -CONFIG_VIDEO_IR_I2C=m - -# -# Encoders, decoders, sensors and other helper chips -# - -# -# Audio decoders, processors and mixers -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_AK881X is not set - -# -# Camera sensor devices -# -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_S5K6AA is not set - -# -# Flash devices -# -# CONFIG_VIDEO_ADP1653 is not set - -# -# Video improvement chips -# -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set - -# -# Miscelaneous helper chips -# -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_VPFE_CAPTURE is not set -# CONFIG_VIDEO_OMAP2_VOUT is not set -# CONFIG_VIDEO_BWQCAM is not set -# CONFIG_VIDEO_CQCAM is not set -# CONFIG_VIDEO_W9966 is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_TIMBERDALE is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_SOC_CAMERA is not set -# CONFIG_VIDEO_OMAP2 is not set -# CONFIG_V4L_USB_DRIVERS is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_WL1273 is not set - -# -# Texas Instruments WL128x FM driver (ST based) -# -CONFIG_RADIO_WL128X=m -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y -# CONFIG_TTPCI_EEPROM is not set - -# -# Supported USB Adapters -# -# CONFIG_DVB_USB is not set -# CONFIG_SMS_SIANO_MDTV is not set - -# -# Supported FlexCopII (B2C2) Adapters -# -# CONFIG_DVB_B2C2_FLEXCOP is not set - -# -# Supported DVB Frontends -# -# CONFIG_DVB_FE_CUSTOMISE is not set - -# -# Multistandard (satellite) frontends -# - -# -# Multistandard (cable + terrestrial) frontends -# - -# -# DVB-S (satellite) frontends -# - -# -# DVB-T (terrestrial) frontends -# - -# -# DVB-C (cable) frontends -# - -# -# ATSC (North American/Korean Terrestrial/Cable DTV) frontends -# - -# -# ISDB-T (terrestrial) frontends -# - -# -# Digital terrestrial only tuners/PLL -# - -# -# SEC control devices for DVB-S -# - -# -# Tools to develop new frontends -# -# CONFIG_DVB_DUMMY_FE is not set - -# -# Graphics support -# -CONFIG_DRM=m -# CONFIG_VGASTATE is not set -CONFIG_VIDEO_OUTPUT_CONTROL=m -CONFIG_FB=y -CONFIG_FIRMWARE_EDID=y -# CONFIG_FB_DDC is not set -# CONFIG_FB_BOOT_VESA_SUPPORT is not set -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -CONFIG_FB_SYS_FILLRECT=m -CONFIG_FB_SYS_COPYAREA=m -CONFIG_FB_SYS_IMAGEBLIT=m -# CONFIG_FB_FOREIGN_ENDIAN is not set -CONFIG_FB_SYS_FOPS=m -# CONFIG_FB_WMT_GE_ROPS is not set -CONFIG_FB_DEFERRED_IO=y -# CONFIG_FB_SVGALIB is not set -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_BACKLIGHT is not set -CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y - -# -# Frame buffer hardware drivers -# -CONFIG_FB_UVESA=m -# CONFIG_FB_S1D13XXX is not set -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m -CONFIG_FB_SMSCUFX=m -# CONFIG_FB_UDL is not set -# CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m -# CONFIG_FB_BROADSHEET is not set -# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set -CONFIG_OMAP2_VRAM=y -CONFIG_OMAP2_VRFB=y -CONFIG_OMAP2_DSS=y -CONFIG_OMAP2_VRAM_SIZE=32 -CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y -# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set -CONFIG_OMAP2_DSS_DPI=y -# CONFIG_OMAP2_DSS_RFBI is not set -# CONFIG_OMAP2_DSS_VENC is not set -CONFIG_OMAP4_DSS_HDMI=y -# CONFIG_OMAP2_DSS_SDI is not set -CONFIG_OMAP2_DSS_DSI=y -# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set -CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0 -CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y -CONFIG_FB_OMAP2=y -CONFIG_FB_OMAP2_DEBUG_SUPPORT=y -CONFIG_FB_OMAP2_NUM_FBS=3 - -# -# OMAP2/3 Display Device Drivers -# -CONFIG_PANEL_GENERIC_DPI=y -CONFIG_PANEL_DVI=y -CONFIG_PANEL_SHARP_LS037V7DW01=y -# CONFIG_PANEL_PICODLP is not set -CONFIG_PANEL_TAAL=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_PLATFORM=m -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=y -CONFIG_BACKLIGHT_PWM=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m -CONFIG_BACKLIGHT_PCF50633=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=y - -# -# Display hardware drivers -# - -# -# Console display driver support -# -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -CONFIG_FONTS=y -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -# CONFIG_FONT_6x11 is not set -# CONFIG_FONT_7x14 is not set -# CONFIG_FONT_PEARL_8x8 is not set -# CONFIG_FONT_ACORN_8x8 is not set -# CONFIG_FONT_MINI_4x6 is not set -# CONFIG_FONT_SUN8x16 is not set -# CONFIG_FONT_SUN12x22 is not set -# CONFIG_FONT_10x18 is not set -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_SOUND=m -CONFIG_SOUND_OSS_CORE=y -CONFIG_SOUND_OSS_CORE_PRECLAIM=y -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -CONFIG_SND_HWDEP=m -CONFIG_SND_RAWMIDI=m -CONFIG_SND_JACK=y -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQ_DUMMY=m -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -CONFIG_SND_SEQUENCER_OSS=y -CONFIG_SND_HRTIMER=m -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y -CONFIG_SND_DYNAMIC_MINORS=y -# CONFIG_SND_SUPPORT_OLD_API is not set -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set -CONFIG_SND_RAWMIDI_SEQ=m -# CONFIG_SND_OPL3_LIB_SEQ is not set -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_EMU10K1_SEQ is not set -CONFIG_SND_MPU401_UART=m -CONFIG_SND_DRIVERS=y -CONFIG_SND_DUMMY=m -CONFIG_SND_ALOOP=m -CONFIG_SND_VIRMIDI=m -CONFIG_SND_MTPAV=m -CONFIG_SND_MTS64=m -CONFIG_SND_SERIAL_U16550=m -CONFIG_SND_MPU401=m -CONFIG_SND_PORTMAN2X4=m -CONFIG_SND_ARM=y -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=m -CONFIG_SND_USB_UA101=m -CONFIG_SND_USB_CAIAQ=m -CONFIG_SND_USB_CAIAQ_INPUT=y -CONFIG_SND_USB_6FIRE=m -CONFIG_SND_SOC=m -CONFIG_SND_SOC_CACHE_LZO=y -CONFIG_SND_OMAP_SOC=m -CONFIG_SND_OMAP_SOC_MCBSP=m -CONFIG_SND_OMAP_SOC_MCPDM=m -CONFIG_SND_OMAP_SOC_RX51=m -CONFIG_SND_OMAP_SOC_OVERO=m -CONFIG_SND_OMAP_SOC_OMAP3EVM=m -CONFIG_SND_OMAP_SOC_AM3517EVM=m -CONFIG_SND_OMAP_SOC_SDP3430=m -CONFIG_SND_OMAP_SOC_SDP4430=m -# CONFIG_SND_OMAP_SOC_OMAP4_HDMI is not set -CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m -CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m -CONFIG_SND_OMAP_SOC_ZOOM2=m -CONFIG_SND_OMAP_SOC_IGEP0020=m -CONFIG_SND_SOC_I2C_AND_SPI=m -# CONFIG_SND_SOC_ALL_CODECS is not set -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_TWL4030=m -CONFIG_SND_SOC_TWL6040=m -CONFIG_SND_SOC_TPA6130A2=m -# CONFIG_SOUND_PRIME is not set -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set - -# -# USB Input Devices -# -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y - -# -# USB HID Boot Protocol drivers -# -CONFIG_USB_KBD=m -CONFIG_USB_MOUSE=m - -# -# Special HID drivers -# -CONFIG_HID_A4TECH=m -CONFIG_HID_ACRUX=m -# CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_PRODIKEYS=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -# CONFIG_DRAGONRISE_FF is not set -# CONFIG_HID_EMS_FF is not set -CONFIG_HID_ELECOM=m -CONFIG_HID_EZKEY=m -CONFIG_HID_HOLTEK=m -# CONFIG_HOLTEK_FF is not set -CONFIG_HID_KEYTOUCH=m -CONFIG_HID_KYE=m -CONFIG_HID_UCLOGIC=m -CONFIG_HID_WALTOP=m -CONFIG_HID_GYRATION=m -CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m -CONFIG_HID_LCPOWER=m -CONFIG_HID_LOGITECH=m -CONFIG_HID_LOGITECH_DJ=m -# CONFIG_LOGITECH_FF is not set -# CONFIG_LOGIRUMBLEPAD2_FF is not set -# CONFIG_LOGIG940_FF is not set -# CONFIG_LOGIWHEELS_FF is not set -CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NTRIG=m -CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -# CONFIG_PANTHERLORD_FF is not set -CONFIG_HID_PETALYNX=m -CONFIG_HID_PICOLCD=m -CONFIG_HID_PICOLCD_FB=y -CONFIG_HID_PICOLCD_BACKLIGHT=y -CONFIG_HID_PICOLCD_LCD=y -CONFIG_HID_PICOLCD_LEDS=y -CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m -CONFIG_HID_ROCCAT=m -CONFIG_HID_ROCCAT_COMMON=m -CONFIG_HID_ROCCAT_ARVO=m -CONFIG_HID_ROCCAT_KONE=m -CONFIG_HID_ROCCAT_KONEPLUS=m -CONFIG_HID_ROCCAT_KOVAPLUS=m -CONFIG_HID_ROCCAT_PYRA=m -CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m -CONFIG_HID_SPEEDLINK=m -CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -# CONFIG_GREENASIA_FF is not set -CONFIG_HID_SMARTJOYPLUS=m -# CONFIG_SMARTJOYPLUS_FF is not set -CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -# CONFIG_THRUSTMASTER_FF is not set -CONFIG_HID_WACOM=m -# CONFIG_HID_WACOM_POWER_SUPPLY is not set -CONFIG_HID_WIIMOTE=m -CONFIG_HID_ZEROPLUS=m -# CONFIG_ZEROPLUS_FF is not set -CONFIG_HID_ZYDACRON=m -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB_ARCH_HAS_EHCI=y -# CONFIG_USB_ARCH_HAS_XHCI is not set -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y -# CONFIG_USB_OTG is not set -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set -# CONFIG_USB_MON is not set -# CONFIG_USB_WUSB is not set -# CONFIG_USB_WUSB_CBAF is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_EHCI_HCD_OMAP=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m -# CONFIG_USB_ISP1760_HCD is not set -CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_OHCI_HCD_OMAP1=y -CONFIG_USB_OHCI_HCD_OMAP3=y -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_U132_HCD=m -CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set -CONFIG_USB_R8A66597_HCD=m -# CONFIG_USB_HWA_HCD is not set - -# -# USB Device Class drivers -# -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m -CONFIG_USB_WDM=m -CONFIG_USB_TMC=m - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=m -# CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_REALTEK=m -CONFIG_REALTEK_AUTOPM=y -CONFIG_USB_STORAGE_DATAFAB=m -CONFIG_USB_STORAGE_FREECOM=m -CONFIG_USB_STORAGE_ISD200=m -CONFIG_USB_STORAGE_USBAT=m -CONFIG_USB_STORAGE_SDDR09=m -CONFIG_USB_STORAGE_SDDR55=m -CONFIG_USB_STORAGE_JUMPSHOT=m -CONFIG_USB_STORAGE_ALAUDA=m -CONFIG_USB_STORAGE_ONETOUCH=m -CONFIG_USB_STORAGE_KARMA=m -CONFIG_USB_STORAGE_CYPRESS_ATACB=m -CONFIG_USB_STORAGE_ENE_UB6250=m -# CONFIG_USB_LIBUSUAL is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set - -# -# USB port drivers -# -CONFIG_USB_USS720=m -CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_ARK3116=m -CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_CH341=m -CONFIG_USB_SERIAL_WHITEHEAT=m -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP210X=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m -CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_FUNSOFT=m -CONFIG_USB_SERIAL_VISOR=m -CONFIG_USB_SERIAL_IPAQ=m -CONFIG_USB_SERIAL_IR=m -CONFIG_USB_SERIAL_EDGEPORT=m -CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_IPW=m -CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -CONFIG_USB_SERIAL_MCT_U232=m -CONFIG_USB_SERIAL_MOS7720=m -# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set -CONFIG_USB_SERIAL_MOS7840=m -CONFIG_USB_SERIAL_MOTOROLA=m -# CONFIG_USB_SERIAL_NAVMAN is not set -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_OTI6858=m -CONFIG_USB_SERIAL_QCAUX=m -CONFIG_USB_SERIAL_QUALCOMM=m -CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set -CONFIG_USB_SERIAL_SIEMENS_MPI=m -CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m -# CONFIG_USB_SERIAL_CYBERJACK is not set -CONFIG_USB_SERIAL_XIRCOM=m -CONFIG_USB_SERIAL_WWAN=m -CONFIG_USB_SERIAL_OPTION=m -# CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m -CONFIG_USB_SERIAL_ZIO=m -CONFIG_USB_SERIAL_SSU100=m -# CONFIG_USB_SERIAL_DEBUG is not set - -# -# USB Miscellaneous drivers -# -CONFIG_USB_EMI62=m -CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set -CONFIG_USB_SEVSEG=m -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -CONFIG_USB_LCD=m -CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m -# CONFIG_USB_IDMOUSE is not set -CONFIG_USB_FTDI_ELAN=m -# CONFIG_USB_APPLEDISPLAY is not set -CONFIG_USB_SISUSBVGA=m -CONFIG_USB_SISUSBVGA_CON=y -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -CONFIG_USB_IOWARRIOR=m -# CONFIG_USB_TEST is not set -CONFIG_USB_ISIGHTFW=m -CONFIG_USB_YUREX=m -CONFIG_USB_ATM=m -CONFIG_USB_SPEEDTOUCH=m -CONFIG_USB_CXACRU=m -CONFIG_USB_UEAGLEATM=m -CONFIG_USB_XUSBATM=m -# CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -# CONFIG_ISP1301_OMAP is not set -# CONFIG_USB_ULPI is not set -CONFIG_TWL4030_USB=m -CONFIG_TWL6030_USB=m -# CONFIG_NOP_USB_XCEIV is not set -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_UNSAFE_RESUME is not set -# CONFIG_MMC_CLKGATE is not set - -# -# MMC/SD/SDIO Card Drivers -# -CONFIG_MMC_BLOCK=m -CONFIG_MMC_BLOCK_MINORS=8 -CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m - -# -# MMC/SD/SDIO Host Controller Drivers -# -CONFIG_MMC_SDHCI=m -CONFIG_MMC_SDHCI_PLTFM=m -# CONFIG_MMC_SDHCI_PXAV3 is not set -# CONFIG_MMC_SDHCI_PXAV2 is not set -CONFIG_MMC_OMAP=y -CONFIG_MMC_OMAP_HS=y -CONFIG_MMC_DW=m -# CONFIG_MMC_DW_IDMAC is not set -CONFIG_MMC_VUB300=m -CONFIG_MMC_USHC=m -CONFIG_MEMSTICK=m -# CONFIG_MEMSTICK_DEBUG is not set - -# -# MemoryStick drivers -# -# CONFIG_MEMSTICK_UNSAFE_RESUME is not set -CONFIG_MSPRO_BLOCK=m - -# -# MemoryStick Host Controller Drivers -# -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y - -# -# LED drivers -# -CONFIG_LEDS_LM3530=m -CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_PCA9532_GPIO=y -CONFIG_LEDS_GPIO=m -CONFIG_LEDS_LP3944=m -CONFIG_LEDS_LP5521=m -CONFIG_LEDS_LP5523=m -CONFIG_LEDS_PCA955X=m -# CONFIG_LEDS_PWM is not set -CONFIG_LEDS_REGULATOR=m -CONFIG_LEDS_BD2802=m -CONFIG_LEDS_LT3593=m -# CONFIG_LEDS_RENESAS_TPU is not set -CONFIG_LEDS_TRIGGERS=y - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_LEDS_TRIGGER_BACKLIGHT=m -CONFIG_LEDS_TRIGGER_GPIO=m -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m - -# -# iptables trigger is under Netfilter config (LED target) -# -CONFIG_LEDS_TRIGGER_NETDEV=m -# CONFIG_ACCESSIBILITY is not set -CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -# CONFIG_RTC_DEBUG is not set - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -# CONFIG_RTC_DRV_TEST is not set - -# -# I2C RTC drivers -# -CONFIG_RTC_DRV_DS1307=m -CONFIG_RTC_DRV_DS1374=m -CONFIG_RTC_DRV_DS1672=m -CONFIG_RTC_DRV_DS3232=m -CONFIG_RTC_DRV_MAX6900=m -CONFIG_RTC_DRV_RS5C372=m -CONFIG_RTC_DRV_ISL1208=m -CONFIG_RTC_DRV_ISL12022=m -CONFIG_RTC_DRV_X1205=m -CONFIG_RTC_DRV_PCF8563=m -CONFIG_RTC_DRV_PCF8583=m -CONFIG_RTC_DRV_M41T80=m -CONFIG_RTC_DRV_M41T80_WDT=y -CONFIG_RTC_DRV_BQ32K=y -CONFIG_RTC_DRV_TWL92330=y -CONFIG_RTC_DRV_TWL4030=y -CONFIG_RTC_DRV_S35390A=m -CONFIG_RTC_DRV_FM3130=m -CONFIG_RTC_DRV_RX8581=m -CONFIG_RTC_DRV_RX8025=m -CONFIG_RTC_DRV_EM3027=m -CONFIG_RTC_DRV_RV3029C2=m - -# -# SPI RTC drivers -# - -# -# Platform RTC drivers -# -CONFIG_RTC_DRV_CMOS=m -CONFIG_RTC_DRV_DS1286=m -CONFIG_RTC_DRV_DS1511=m -CONFIG_RTC_DRV_DS1553=m -CONFIG_RTC_DRV_DS1742=m -CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m -CONFIG_RTC_DRV_M48T35=m -CONFIG_RTC_DRV_M48T59=m -CONFIG_RTC_DRV_MSM6242=m -CONFIG_RTC_DRV_BQ4802=y -CONFIG_RTC_DRV_RP5C01=m -CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_PCF50633=m - -# -# on-CPU RTC drivers -# -CONFIG_DMADEVICES=y -# CONFIG_DMADEVICES_DEBUG is not set - -# -# DMA Devices -# -CONFIG_DW_DMAC=m -CONFIG_TIMB_DMA=m -CONFIG_DMA_ENGINE=y - -# -# DMA Clients -# -CONFIG_NET_DMA=y -CONFIG_ASYNC_TX_DMA=y -CONFIG_DMATEST=m -# CONFIG_AUXDISPLAY is not set -CONFIG_UIO=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m - -# -# Virtio drivers -# -# CONFIG_VIRTIO_BALLOON is not set -# CONFIG_VIRTIO_MMIO is not set -CONFIG_STAGING=y -CONFIG_USBIP_CORE=m -CONFIG_USBIP_VHCI_HCD=m -CONFIG_USBIP_HOST=m -# CONFIG_USBIP_DEBUG is not set -# CONFIG_W35UND is not set -# CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set -# CONFIG_ASUS_OLED is not set -# CONFIG_PANEL is not set -# CONFIG_R8712U is not set -# CONFIG_RTS5139 is not set -# CONFIG_TRANZPORT is not set -# CONFIG_POHMELFS is not set -# CONFIG_LINE6_USB is not set -# CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set -# CONFIG_VT6656 is not set -# CONFIG_IIO is not set -# CONFIG_XVMALLOC is not set -# CONFIG_ZRAM is not set -# CONFIG_FB_SM7XX is not set -# CONFIG_TIDSPBRIDGE is not set -# CONFIG_USB_ENESTORAGE is not set -# CONFIG_BCM_WIMAX is not set -# CONFIG_FT1000 is not set - -# -# Speakup console speech -# -# CONFIG_SPEAKUP is not set -# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set -# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set -# CONFIG_STAGING_MEDIA is not set -CONFIG_CLKDEV_LOOKUP=y -CONFIG_HWSPINLOCK=m - -# -# Hardware Spinlock drivers -# -CONFIG_HWSPINLOCK_OMAP=m -CONFIG_CLKSRC_MMIO=y -CONFIG_IOMMU_SUPPORT=y -# CONFIG_OMAP_IOMMU is not set -# CONFIG_VIRT_DRIVERS is not set -# CONFIG_PM_DEVFREQ is not set - -# -# File systems -# -# CONFIG_EXT2_FS is not set -# CONFIG_EXT3_FS is not set -CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT23=y -CONFIG_EXT4_FS_XATTR=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_DEBUG is not set -CONFIG_JBD2=y -CONFIG_FS_MBCACHE=y -CONFIG_REISERFS_FS=m -# CONFIG_REISERFS_CHECK is not set -CONFIG_REISERFS_PROC_INFO=y -CONFIG_REISERFS_FS_XATTR=y -CONFIG_REISERFS_FS_POSIX_ACL=y -CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y -CONFIG_XFS_FS=m -CONFIG_XFS_QUOTA=y -CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set -# CONFIG_XFS_DEBUG is not set -# CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_NILFS2_FS is not set -CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=m -CONFIG_FILE_LOCKING=y -CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=y -CONFIG_INOTIFY_USER=y -CONFIG_FANOTIFY=y -CONFIG_QUOTA=y -CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y -# CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m -CONFIG_QUOTACTL=y -CONFIG_AUTOFS4_FS=m -CONFIG_FUSE_FS=m -CONFIG_CUSE=m - -# -# Caches -# -CONFIG_FSCACHE=m -# CONFIG_FSCACHE_STATS is not set -# CONFIG_FSCACHE_HISTOGRAM is not set -# CONFIG_FSCACHE_DEBUG is not set -# CONFIG_FSCACHE_OBJECT_LIST is not set -CONFIG_CACHEFILES=m -# CONFIG_CACHEFILES_DEBUG is not set -# CONFIG_CACHEFILES_HISTOGRAM is not set - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=m -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -CONFIG_UDF_FS=m -CONFIG_UDF_NLS=y - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=m -# CONFIG_MSDOS_FS is not set -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set -CONFIG_TMPFS_XATTR=y -# CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set -CONFIG_MISC_FILESYSTEMS=y -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -CONFIG_ECRYPT_FS=m -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -# CONFIG_UBIFS_FS is not set -# CONFIG_LOGFS is not set -# CONFIG_CRAMFS is not set -# CONFIG_SQUASHFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_OMFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_PSTORE is not set -# CONFIG_SYSV_FS is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set -# CONFIG_EXOFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=m -CONFIG_NFS_V3=y -CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_V4_1 is not set -# CONFIG_NFS_FSCACHE is not set -# CONFIG_NFS_USE_LEGACY_DNS is not set -CONFIG_NFS_USE_KERNEL_DNS=y -# CONFIG_NFS_USE_NEW_IDMAPPER is not set -CONFIG_NFSD=m -CONFIG_NFSD_V2_ACL=y -CONFIG_NFSD_V3=y -CONFIG_NFSD_V3_ACL=y -CONFIG_NFSD_V4=y -CONFIG_LOCKD=m -CONFIG_LOCKD_V4=y -CONFIG_NFS_ACL_SUPPORT=m -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=m -CONFIG_SUNRPC_GSS=m -CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_CEPH_FS is not set -CONFIG_CIFS=m -CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y -# CONFIG_CIFS_WEAK_PW_HASH is not set -# CONFIG_CIFS_UPCALL is not set -CONFIG_CIFS_XATTR=y -CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_FSCACHE is not set -CONFIG_CIFS_ACL=y -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="cp850" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 -# CONFIG_ENABLE_WARN_DEPRECATED is not set -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_STRIP_ASM_SYMS=y -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_LOCKUP_DETECTOR is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 -CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set -CONFIG_TIMER_STATS=y -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_SPARSE_RCU_POINTER is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_HIGHMEM is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_WRITECOUNT is not set -CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set -# CONFIG_TEST_LIST_SORT is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_CREDENTIALS is not set -CONFIG_FRAME_POINTER=y -# CONFIG_BOOT_PRINTK_DELAY is not set -# CONFIG_RCU_TORTURE_TEST is not set -CONFIG_RCU_CPU_STALL_TIMEOUT=60 -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set -# CONFIG_FAULT_INJECTION is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set -# CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_ATOMIC64_SELFTEST is not set -CONFIG_ASYNC_RAID6_TEST=m -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -# CONFIG_TEST_KSTRTOX is not set -# CONFIG_STRICT_DEVMEM is not set -# CONFIG_ARM_UNWIND is not set -# CONFIG_DEBUG_USER is not set -CONFIG_DEBUG_LL=y -CONFIG_DEBUG_LL_UART_NONE=y -# CONFIG_DEBUG_ICEDCC is not set -CONFIG_EARLY_PRINTK=y - -# -# Security options -# -CONFIG_KEYS=y -# CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_DEFAULT_SECURITY="" -CONFIG_XOR_BLOCKS=m -CONFIG_ASYNC_CORE=m -CONFIG_ASYNC_MEMCPY=m -CONFIG_ASYNC_XOR=m -CONFIG_ASYNC_PQ=m -CONFIG_ASYNC_RAID6_RECOV=m -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=m -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=m -CONFIG_CRYPTO_BLKCIPHER2=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=m -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=m -CONFIG_CRYPTO_PCOMP2=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_USER=m -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set -CONFIG_CRYPTO_PCRYPT=m -CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_CRYPTD=m -CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set - -# -# Authenticated Encryption with Associated Data -# -CONFIG_CRYPTO_CCM=m -CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m - -# -# Block modes -# -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m -CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_XTS=m - -# -# Hash modes -# -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_XCBC=m -CONFIG_CRYPTO_VMAC=m - -# -# Digest -# -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_GHASH=m -CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=m -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_RMD128=m -CONFIG_CRYPTO_RMD160=m -CONFIG_CRYPTO_RMD256=m -CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_WP512=m - -# -# Ciphers -# -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_BLOWFISH_COMMON=m -CONFIG_CRYPTO_CAMELLIA=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_DES=m -CONFIG_CRYPTO_FCRYPT=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SEED=m -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_TWOFISH_COMMON=m - -# -# Compression -# -CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_ZLIB=m -CONFIG_CRYPTO_LZO=m - -# -# Random Number Generation -# -CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_USER_API=m -CONFIG_CRYPTO_USER_API_HASH=m -CONFIG_CRYPTO_USER_API_SKCIPHER=m -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_DEV_OMAP_SHAM=m -CONFIG_CRYPTO_DEV_OMAP_AES=m -# CONFIG_BINARY_PRINTF is not set - -# -# Library routines -# -CONFIG_RAID6_PQ=m -CONFIG_BITREVERSE=y -CONFIG_CRC_CCITT=m -CONFIG_CRC16=y -CONFIG_CRC_T10DIF=m -CONFIG_CRC_ITU_T=m -CONFIG_CRC32=y -CONFIG_CRC7=m -CONFIG_LIBCRC32C=m -CONFIG_CRC8=m -CONFIG_AUDIT_GENERIC=y -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_XZ_DEC=y -CONFIG_XZ_DEC_X86=y -CONFIG_XZ_DEC_POWERPC=y -CONFIG_XZ_DEC_IA64=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_ARMTHUMB=y -CONFIG_XZ_DEC_SPARC=y -CONFIG_XZ_DEC_BCJ=y -# CONFIG_XZ_DEC_TEST is not set -CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=y -CONFIG_DECOMPRESS_LZMA=y -CONFIG_DECOMPRESS_XZ=y -CONFIG_DECOMPRESS_LZO=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y -CONFIG_CPU_RMAP=y -CONFIG_NLATTR=y -CONFIG_GENERIC_ATOMIC64=y -CONFIG_AVERAGE=y -CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.armv5tel-ipfire-rpi b/config/kernel/kernel.config.armv5tel-ipfire-rpi index 1e55886..3f6c8da 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-rpi +++ b/config/kernel/kernel.config.armv5tel-ipfire-rpi @@ -1,40 +1,32 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 3.2.47 Kernel Configuration +# Linux/arm 3.10.22 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_HAVE_SCHED_CLOCK=y -CONFIG_GENERIC_GPIO=y -# CONFIG_ARCH_USES_GETTIMEOFFSET is not set -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_KTIME_SCALAR=y CONFIG_HAVE_PROC_CPU=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_ARCH_HAS_CPUFREQ=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_FIQ=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_NEED_MACH_IO_H=y CONFIG_NEED_MACH_MEMORY_H=y CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y
# # General setup # -CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" @@ -42,9 +34,11 @@ CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y -# CONFIG_KERNEL_GZIP is not set -CONFIG_KERNEL_LZMA=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y @@ -52,28 +46,50 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y # CONFIG_FHANDLE is not set -# CONFIG_TASKSTATS is not set CONFIG_AUDIT=y +# CONFIG_AUDITSYSCALL is not set +# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set CONFIG_HAVE_GENERIC_HARDIRQS=y
# # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y -CONFIG_SPARSE_IRQ=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +# CONFIG_TICK_CPU_ACCOUNTING is not set +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_TASKSTATS is not set
# # RCU Subsystem # CONFIG_TINY_RCU=y # CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_STALL_COMMON is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=19 @@ -81,7 +97,6 @@ CONFIG_LOG_BUF_SHIFT=19 CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set # CONFIG_SCHED_AUTOGROUP is not set @@ -98,12 +113,13 @@ CONFIG_RD_LZO=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y +CONFIG_HAVE_UID16=y +CONFIG_HOTPLUG=y # CONFIG_EXPERT is not set CONFIG_UID16=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set -CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y @@ -123,7 +139,6 @@ CONFIG_PERF_USE_VMALLOC=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y @@ -133,12 +148,29 @@ CONFIG_SLUB=y # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set +CONFIG_JUMP_LABEL=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y
# # GCOV-based kernel profiling @@ -153,6 +185,8 @@ CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y @@ -160,6 +194,29 @@ CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set
# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set + +# # IO Schedulers # CONFIG_IOSCHED_NOOP=y @@ -169,104 +226,60 @@ CONFIG_IOSCHED_CFQ=y CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_ASN1=m CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set -# CONFIG_MUTEX_SPIN_ON_OWNER is not set CONFIG_FREEZER=y
# # System Type # CONFIG_MMU=y +# CONFIG_ARCH_MULTIPLATFORM is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_VEXPRESS is not set # CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_BCMRING is not set -# CONFIG_ARCH_HIGHBANK is not set +CONFIG_ARCH_BCM2708=y # CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CNS3XXX is not set # CONFIG_ARCH_GEMINI is not set -# CONFIG_ARCH_PRIMA2 is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_MXS is not set # CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set # CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_DOVE is not set # CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_MV78XX0 is not set # CONFIG_ARCH_ORION5X is not set # CONFIG_ARCH_MMP is not set # CONFIG_ARCH_KS8695 is not set # CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_TEGRA is not set -# CONFIG_ARCH_PICOXCELL is not set -# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_MSM is not set # CONFIG_ARCH_SHMOBILE is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C24XX is not set # CONFIG_ARCH_S3C64XX is not set # CONFIG_ARCH_S5P64X0 is not set # CONFIG_ARCH_S5PC100 is not set # CONFIG_ARCH_S5PV210 is not set # CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_TCC_926 is not set # CONFIG_ARCH_U300 is not set -# CONFIG_ARCH_U8500 is not set -# CONFIG_ARCH_NOMADIK is not set # CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_PLAT_SPEAR is not set -CONFIG_ARCH_BCM2708=y -# CONFIG_ARCH_VT8500 is not set -# CONFIG_ARCH_ZYNQ is not set +# CONFIG_ARCH_OMAP1 is not set CONFIG_GPIO_PCA953X=m CONFIG_KEYBOARD_GPIO_POLLED=m - -# -# System MMU -# +# CONFIG_PLAT_SPEAR is not set
# # Broadcom BCM2708 Implementations @@ -276,6 +289,7 @@ CONFIG_BCM2708_GPIO=y CONFIG_BCM2708_VCMEM=y # CONFIG_BCM2708_NOL2CACHE is not set CONFIG_BCM2708_DMAER=m +CONFIG_BCM2708_SPIDEV=y
# # Processor Type @@ -291,46 +305,44 @@ CONFIG_CPU_TLB_V6=y CONFIG_CPU_HAS_ASID=y CONFIG_CPU_CP15=y CONFIG_CPU_CP15_MMU=y -CONFIG_CPU_USE_DOMAINS=y
# # Processor Features # +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set CONFIG_ARM_THUMB=y # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set # CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_KUSER_HELPERS=y +# CONFIG_CACHE_L2X0 is not set CONFIG_ARM_L1_CACHE_SHIFT=5 CONFIG_ARM_DMA_MEM_BUFFERABLE=y -CONFIG_CPU_HAS_PMU=y +CONFIG_ARM_NR_BANKS=8 # CONFIG_ARM_ERRATA_326103 is not set CONFIG_ARM_ERRATA_411920=y # CONFIG_ARM_ERRATA_364296 is not set -CONFIG_PL330=y
# # Bus support # CONFIG_ARM_AMBA=y # CONFIG_PCI_SYSCALL is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set # CONFIG_PCCARD is not set
# # Kernel Features # -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_VMSPLIT_3G=y # CONFIG_VMSPLIT_2G is not set # CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_ARCH_NR_GPIO=0 CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set CONFIG_HZ=100 +CONFIG_SCHED_HRTICK=y CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set @@ -338,32 +350,34 @@ CONFIG_AEABI=y CONFIG_HAVE_ARCH_PFN_VALID=y # CONFIG_HIGHMEM is not set CONFIG_HW_PERF_EVENTS=y -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_HAVE_MEMBLOCK=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_COMPACTION is not set +CONFIG_MIGRATION=y # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 -CONFIG_VIRT_TO_BUS=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_NEED_PER_CPU_KM=y -# CONFIG_CLEANCACHE is not set +CONFIG_CLEANCACHE=y +CONFIG_FRONTSWAP=y CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_ALIGNMENT_TRAP=y -CONFIG_UACCESS_WITH_MEMCPY=y CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR=y -# CONFIG_DEPRECATED_PARAM_STRUCT is not set
# # Boot options # CONFIG_USE_OF=y +CONFIG_ATAGS=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 # CONFIG_ARM_APPENDED_DTB is not set @@ -385,6 +399,7 @@ CONFIG_CMDLINE_FROM_BOOTLOADER=y # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=m # CONFIG_CPU_FREQ_STAT_DETAILS is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set @@ -400,10 +415,16 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # # ARM CPU frequency scaling drivers # +# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set +# CONFIG_ARM_EXYNOS4X12_CPUFREQ is not set +# CONFIG_ARM_EXYNOS5250_CPUFREQ is not set +# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set CONFIG_ARM_BCM2835_CPUFREQ=y CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
# # Floating point emulation @@ -418,10 +439,12 @@ CONFIG_VFP=y # Userspace binary formats # CONFIG_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set +CONFIG_BINFMT_SCRIPT=y +# CONFIG_HAVE_AOUT is not set # CONFIG_BINFMT_MISC is not set +CONFIG_COREDUMP=y
# # Power management options @@ -429,6 +452,8 @@ CONFIG_HAVE_AOUT=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_PM_SLEEP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set @@ -443,8 +468,11 @@ CONFIG_NET=y # Networking options # CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m CONFIG_XFRM=y +CONFIG_XFRM_ALGO=m CONFIG_XFRM_USER=m # CONFIG_XFRM_SUB_POLICY is not set CONFIG_XFRM_MIGRATE=y @@ -455,7 +483,7 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y @@ -463,6 +491,7 @@ CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y @@ -471,6 +500,7 @@ CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_ARPD=y CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m @@ -482,6 +512,7 @@ CONFIG_INET_XFRM_MODE_BEET=y CONFIG_INET_LRO=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m CONFIG_TCP_CONG_CUBIC=m @@ -516,9 +547,11 @@ CONFIG_IPV6_SIT=m # CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set # CONFIG_IPV6_MROUTE is not set +# CONFIG_NETLABEL is not set # CONFIG_NETWORK_SECMARK is not set CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y @@ -530,13 +563,17 @@ CONFIG_BRIDGE_NETFILTER=y # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m CONFIG_NF_CONNTRACK_MARK=y # CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_TIMEOUT is not set CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -553,6 +590,19 @@ CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m CONFIG_NETFILTER_TPROXY=m CONFIG_NETFILTER_XTABLES=m
@@ -572,14 +622,18 @@ CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m @@ -590,9 +644,11 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m @@ -600,6 +656,7 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m @@ -611,6 +668,7 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m @@ -661,6 +719,11 @@ CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m
# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# # IPVS application helper # CONFIG_IP_VS_FTP=m @@ -673,37 +736,28 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_IPV4=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m @@ -714,7 +768,6 @@ CONFIG_IP_NF_MATCH_IPP2P=m # CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m @@ -723,13 +776,15 @@ CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +# CONFIG_NF_NAT_IPV6 is not set CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -770,17 +825,15 @@ CONFIG_STP=m CONFIG_GARP=m CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VLAN_8021Q_MVRP is not set # CONFIG_DECNET is not set CONFIG_LLC=m # CONFIG_LLC2 is not set @@ -788,11 +841,10 @@ CONFIG_LLC=m # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set CONFIG_IEEE802154=m CONFIG_IEEE802154_6LOWPAN=m +CONFIG_MAC802154=m CONFIG_NET_SCHED=y
# @@ -816,7 +868,10 @@ CONFIG_NET_SCH_DRR=m CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m
# # Classification @@ -855,7 +910,16 @@ CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y # CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +# CONFIG_VSOCKETS is not set +# CONFIG_NETLINK_MMAP is not set +CONFIG_NETLINK_DIAG=m +CONFIG_BQL=y +CONFIG_BPF_JIT=y
# # Network testing @@ -863,49 +927,8 @@ CONFIG_BATMAN_ADV=m # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_MCS_FIR=m +# CONFIG_IRDA is not set CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -924,6 +947,7 @@ CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -931,7 +955,6 @@ CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m -CONFIG_BT_WILINK=m CONFIG_AF_RXRPC=m # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=m @@ -949,7 +972,6 @@ CONFIG_CFG80211=m # CONFIG_CFG80211_DEFAULT_PS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_WEXT=y -CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -963,6 +985,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m @@ -976,6 +999,7 @@ CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set # CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set # CONFIG_NFC is not set +CONFIG_HAVE_BPF_JIT=y
# # Device Drivers @@ -985,29 +1009,51 @@ CONFIG_CEPH_LIB=m # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y # CONFIG_STANDALONE is not set # CONFIG_PREVENT_FIRMWARE_BUILD is not set CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_REGMAP=y CONFIG_REGMAP_I2C=m +CONFIG_REGMAP_SPI=m +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=16 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 + +# +# Bus devices +# CONFIG_CONNECTOR=m CONFIG_MTD=m -CONFIG_MTD_TESTS=m +# CONFIG_MTD_TESTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=m # CONFIG_MTD_AFS_PARTS is not set CONFIG_MTD_OF_PARTS=m -CONFIG_MTD_AR7_PARTS=m +# CONFIG_MTD_AR7_PARTS is not set
# # User Modules And Translation Layers # -CONFIG_MTD_CHAR=m CONFIG_MTD_BLKDEVS=m CONFIG_MTD_BLOCK=m # CONFIG_MTD_BLOCK_RO is not set @@ -1016,7 +1062,7 @@ CONFIG_MTD_BLOCK=m # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set -CONFIG_SM_FTL=m +# CONFIG_SM_FTL is not set # CONFIG_MTD_OOPS is not set # CONFIG_MTD_SWAP is not set
@@ -1050,6 +1096,9 @@ CONFIG_MTD_PHYSMAP=m # # Self-contained MTD device drivers # +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_M25P80 is not set +# CONFIG_MTD_SST25L is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set @@ -1058,20 +1107,17 @@ CONFIG_MTD_PHYSMAP=m # # Disk-On-Chip Device Drivers # -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set # CONFIG_MTD_DOCG3 is not set CONFIG_MTD_NAND_ECC=m # CONFIG_MTD_NAND_ECC_SMC is not set CONFIG_MTD_NAND=m -# CONFIG_MTD_NAND_VERIFY_WRITE is not set # CONFIG_MTD_NAND_ECC_BCH is not set # CONFIG_MTD_SM_COMMON is not set -# CONFIG_MTD_NAND_MUSEUM_IDS is not set +# CONFIG_MTD_NAND_DENALI is not set # CONFIG_MTD_NAND_GPIO is not set CONFIG_MTD_NAND_IDS=m # CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set # CONFIG_MTD_NAND_NANDSIM is not set CONFIG_MTD_NAND_PLATFORM=m # CONFIG_MTD_ALAUDA is not set @@ -1084,9 +1130,9 @@ CONFIG_MTD_LPDDR=m CONFIG_MTD_QINFO_PROBE=m CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set # CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_DEBUG is not set CONFIG_DTC=y CONFIG_OF=y
@@ -1094,15 +1140,16 @@ CONFIG_OF=y # Device Tree and Open Firmware support # CONFIG_PROC_DEVICETREE=y +# CONFIG_OF_SELFTEST is not set CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_DEVICE=y -CONFIG_OF_GPIO=y CONFIG_OF_I2C=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y +CONFIG_OF_MTD=y CONFIG_PARPORT=m # CONFIG_PARPORT_PC is not set # CONFIG_PARPORT_GSC is not set @@ -1117,7 +1164,6 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m # CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_OSD=m -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=8 CONFIG_BLK_DEV_RAM_SIZE=16384 @@ -1127,41 +1173,50 @@ CONFIG_ATA_OVER_ETH=m CONFIG_MG_DISK=m CONFIG_MG_DISK_RES=0 CONFIG_BLK_DEV_RBD=m -CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y + +# +# Misc devices +# +# CONFIG_SENSORS_LIS3LV02D is not set # CONFIG_AD525X_DPOT is not set # CONFIG_ATMEL_PWM is not set -CONFIG_ICS932S401=m +CONFIG_DUMMY_IRQ=m +# CONFIG_ICS932S401 is not set +# CONFIG_ATMEL_SSC is not set CONFIG_ENCLOSURE_SERVICES=m -CONFIG_APDS9802ALS=m -CONFIG_ISL29003=m -CONFIG_ISL29020=m -CONFIG_SENSORS_TSL2550=m -CONFIG_SENSORS_BH1780=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_APDS990X=m -CONFIG_HMC6352=m +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set CONFIG_DS1682=m -CONFIG_BMP085=m +# CONFIG_TI_DAC7512 is not set +# CONFIG_BMP085_I2C is not set +# CONFIG_BMP085_SPI is not set CONFIG_USB_SWITCH_FSA9480=m -CONFIG_C2PORT=m +# CONFIG_LATTICE_ECP3_CONFIG is not set +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set
# # EEPROM support # CONFIG_EEPROM_AT24=m +# CONFIG_EEPROM_AT25 is not set CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m -CONFIG_IWMC3200TOP=m -# CONFIG_IWMC3200TOP_DEBUG is not set -# CONFIG_IWMC3200TOP_DEBUGFS is not set +# CONFIG_EEPROM_93XX46 is not set
# # Texas Instruments shared transport line discipline # -CONFIG_TI_ST=m -CONFIG_SENSORS_LIS3_I2C=m +# CONFIG_TI_ST is not set +# CONFIG_SENSORS_LIS3_SPI is not set +# CONFIG_SENSORS_LIS3_I2C is not set
# # Altera FPGA firmware download module @@ -1195,7 +1250,6 @@ CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set # CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m
# # SCSI Transports @@ -1211,6 +1265,8 @@ CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m CONFIG_ISCSI_BOOT_SYSFS=m +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PLATFORM=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m # CONFIG_SCSI_DEBUG is not set @@ -1231,31 +1287,8 @@ CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # -CONFIG_SATA_AHCI_PLATFORM=m -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -CONFIG_SATA_MV=m - -# -# PATA SFF controllers with BMDMA -# -CONFIG_PATA_ARASAN_CF=m - -# -# PIO-only SFF controllers -# - -# -# Generic fallback / legacy drivers -# +# CONFIG_SATA_AHCI_PLATFORM is not set +# CONFIG_ATA_SFF is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m @@ -1265,15 +1298,22 @@ CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_EDEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=m +CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_THIN_PROVISIONING=m # CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -# CONFIG_DM_DEBUG_SPACE_MAPS is not set +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CACHE_CLEANER=m CONFIG_DM_MIRROR=m CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m @@ -1284,27 +1324,33 @@ CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y CONFIG_DM_FLAKEY=m +CONFIG_DM_VERITY=m # CONFIG_TARGET_CORE is not set CONFIG_NETDEVICES=y CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m CONFIG_EQUALIZER=m -CONFIG_IMQ=m -# CONFIG_IMQ_BEHAVIOR_AA is not set -CONFIG_IMQ_BEHAVIOR_AB=y -# CONFIG_IMQ_BEHAVIOR_BA is not set -# CONFIG_IMQ_BEHAVIOR_BB is not set -CONFIG_IMQ_NUM_DEVS=2 CONFIG_MII=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m CONFIG_IFB=m +CONFIG_NET_TEAM=m +CONFIG_NET_TEAM_MODE_BROADCAST=m +CONFIG_NET_TEAM_MODE_ROUNDROBIN=m +CONFIG_NET_TEAM_MODE_RANDOM=m +CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m +CONFIG_NET_TEAM_MODE_LOADBALANCE=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m +CONFIG_VXLAN=m # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_IMQ=m +# CONFIG_IMQ_BEHAVIOR_AA is not set +CONFIG_IMQ_BEHAVIOR_AB=y +# CONFIG_IMQ_BEHAVIOR_BA is not set +# CONFIG_IMQ_BEHAVIOR_BB is not set +CONFIG_IMQ_NUM_DEVS=2 CONFIG_TUN=m CONFIG_VETH=m CONFIG_ATM_DRIVERS=y @@ -1314,32 +1360,48 @@ CONFIG_ATM_TCP=m # # CAIF transport drivers # + +# +# Distributed Switch Architecture drivers +# +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_ETHERNET=y +CONFIG_NET_CADENCE=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_MACB=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m -CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_NET_CALXEDA_XGMAC=m +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_CS89x0=m +CONFIG_CS89x0_PLATFORM=y CONFIG_DM9000=m # CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set CONFIG_DNET=m -CONFIG_NET_VENDOR_DLINK=y -CONFIG_DE600=m -CONFIG_DE620=m CONFIG_NET_VENDOR_FARADAY=y -# CONFIG_FTMAC100 is not set -# CONFIG_FTGMAC100 is not set +CONFIG_FTMAC100=m +CONFIG_FTGMAC100=m CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_I825XX=y CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MVMDIO=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m +CONFIG_KS8851=m CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_ENC28J60=m +# CONFIG_ENC28J60_WRITEVERIFY is not set CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NET_VENDOR_8390=y CONFIG_AX88796=m CONFIG_AX88796_93CX6=y CONFIG_ETHOC=m CONFIG_NET_VENDOR_SEEQ=y -CONFIG_SEEQ8005=m CONFIG_NET_VENDOR_SMSC=y CONFIG_SMC91X=m CONFIG_SMC911X=m @@ -1347,14 +1409,21 @@ CONFIG_SMSC911X=m # CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=y # CONFIG_STMMAC_DA is not set -CONFIG_STMMAC_RING=y -# CONFIG_STMMAC_CHAINED is not set +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y CONFIG_PHYLIB=y
# # MII PHY device drivers # +CONFIG_AT803X_PHY=m +CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m CONFIG_DAVICOM_PHY=m CONFIG_QSEMI_PHY=m @@ -1363,6 +1432,7 @@ CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m CONFIG_SMSC_PHY=m CONFIG_BROADCOM_PHY=m +CONFIG_BCM87XX_PHY=m CONFIG_ICPLUS_PHY=m CONFIG_REALTEK_PHY=m CONFIG_NATIONAL_PHY=m @@ -1372,6 +1442,10 @@ CONFIG_MICREL_PHY=m # CONFIG_FIXED_PHY is not set CONFIG_MDIO_BITBANG=m CONFIG_MDIO_GPIO=m +CONFIG_MDIO_BUS_MUX=m +CONFIG_MDIO_BUS_MUX_GPIO=m +CONFIG_MDIO_BUS_MUX_MMIOREG=m +# CONFIG_MICREL_KS8995MA is not set # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m @@ -1398,11 +1472,14 @@ CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m @@ -1421,34 +1498,117 @@ CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m # CONFIG_USB_IPHETH is not set CONFIG_USB_SIERRA_NET=m CONFIG_USB_VL600=m CONFIG_WLAN=y -# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m CONFIG_AT76C50X_USB=m CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8187 is not set +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y # CONFIG_MAC80211_HWSIM is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_BRCMFMAC is not set +CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +# CONFIG_ATH9K_AHB is not set +# CONFIG_ATH9K_DEBUGFS is not set +CONFIG_ATH9K_LEGACY_RATE_CONTROL=y +CONFIG_ATH9K_HTC=m +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +CONFIG_CARL9170_HWRNG=y +CONFIG_ATH6KL=m +CONFIG_ATH6KL_SDIO=m +CONFIG_ATH6KL_USB=m +# CONFIG_ATH6KL_DEBUG is not set +CONFIG_AR5523=m +CONFIG_B43=m +CONFIG_B43_BCMA=y +# CONFIG_B43_BCMA_EXTRA is not set +CONFIG_B43_SSB=y +# CONFIG_B43_SDIO is not set +CONFIG_B43_BCMA_PIO=y +CONFIG_B43_PIO=y +# CONFIG_B43_PHY_N is not set +CONFIG_B43_PHY_LP=y +# CONFIG_B43_PHY_HT is not set +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +CONFIG_B43LEGACY_DEBUG=y +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMSMAC=m +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y +# CONFIG_BRCMFMAC_USB is not set +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y # CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -# CONFIG_IWM is not set -# CONFIG_LIBERTAS is not set -# CONFIG_P54_COMMON is not set -# CONFIG_RT2X00 is not set -# CONFIG_WL1251 is not set -# CONFIG_WL12XX_MENU is not set -# CONFIG_ZD1211RW is not set -# CONFIG_MWIFIEX is not set -# CONFIG_RTL8192CU is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_SDIO=m +CONFIG_LIBERTAS_SPI=m +# CONFIG_LIBERTAS_DEBUG is not set +# CONFIG_LIBERTAS_MESH is not set +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_SPI=m +# CONFIG_P54_SPI_DEFAULT_EEPROM is not set +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_WL_TI=y +CONFIG_WL1251=m +# CONFIG_WL1251_SPI is not set +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +# CONFIG_WLCORE_SPI is not set +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_USB=m +CONFIG_RTL8192CU=m
# # Enable WiMAX (Networking options) to see the WiMAX drivers @@ -1466,6 +1626,11 @@ CONFIG_HDLC_PPP=m # CONFIG_DLCI=m CONFIG_DLCI_MAX=8 +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IEEE802154_FAKELB=m +# CONFIG_IEEE802154_AT86RF230 is not set +# CONFIG_IEEE802154_MRF24J40 is not set CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y @@ -1561,7 +1726,6 @@ CONFIG_MISDN_L1OIP=m # CONFIG_MISDN_HFCUSB=m CONFIG_ISDN_HDLC=m -# CONFIG_PHONE is not set
# # Input device support @@ -1570,6 +1734,7 @@ CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m
# # Userland interfaces @@ -1579,7 +1744,7 @@ CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set
# @@ -1594,13 +1759,16 @@ CONFIG_KEYBOARD_QT2160=m CONFIG_KEYBOARD_LKKBD=m CONFIG_KEYBOARD_GPIO=m CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_TCA8418=m CONFIG_KEYBOARD_MATRIX=m CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_LM8333=m CONFIG_KEYBOARD_MAX7359=m CONFIG_KEYBOARD_MCS=m CONFIG_KEYBOARD_MPR121=m CONFIG_KEYBOARD_NEWTON=m CONFIG_KEYBOARD_OPENCORES=m +CONFIG_KEYBOARD_SAMSUNG=m CONFIG_KEYBOARD_STOWAWAY=m CONFIG_KEYBOARD_SUNKBD=m CONFIG_KEYBOARD_XTKBD=m @@ -1609,23 +1777,24 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_88PM860X_ONKEY=m -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_MPU3050 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set -CONFIG_INPUT_POWERMATE=m -CONFIG_INPUT_YEALINK=m -CONFIG_INPUT_CM109=m +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set # CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_PCF8574=m -CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +# CONFIG_INPUT_PCF8574 is not set +CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set # CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set
# @@ -1639,11 +1808,14 @@ CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set CONFIG_SERIO_ALTERA_PS2=m CONFIG_SERIO_PS2MULT=m +CONFIG_SERIO_ARC_PS2=m +CONFIG_SERIO_APBPS2=m # CONFIG_GAMEPORT is not set
# # Character devices # +CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y @@ -1662,7 +1834,9 @@ CONFIG_DEVKMEM=y # Serial drivers # CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y @@ -1671,6 +1845,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y CONFIG_SERIAL_8250_DW=m +CONFIG_SERIAL_8250_EM=m
# # Non-8250 serial port support @@ -1679,15 +1854,21 @@ CONFIG_SERIAL_AMBA_PL010=y CONFIG_SERIAL_AMBA_PL010_CONSOLE=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_SCCNXP=m CONFIG_SERIAL_TIMBERDALE=m CONFIG_SERIAL_ALTERA_JTAGUART=m CONFIG_SERIAL_ALTERA_UART=m CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +# CONFIG_SERIAL_IFX6X60 is not set CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m @@ -1699,13 +1880,17 @@ CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m -CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_HW_RANDOM_ATMEL is not set +# CONFIG_HW_RANDOM_EXYNOS is not set +CONFIG_HW_RANDOM_BCM2708=y CONFIG_NVRAM=m # CONFIG_R3964 is not set # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set -# CONFIG_RAMOOPS is not set +CONFIG_BRCM_CHAR_DRIVERS=y +CONFIG_BCM_VC_CMA=y CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y @@ -1715,6 +1900,7 @@ CONFIG_I2C_MUX=m # # Multiplexer I2C Chip support # +# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set CONFIG_I2C_MUX_GPIO=m CONFIG_I2C_MUX_PCA9541=m CONFIG_I2C_MUX_PCA954x=m @@ -1732,9 +1918,11 @@ CONFIG_I2C_ALGOPCA=m # CONFIG_I2C_BCM2708=m CONFIG_I2C_BCM2708_BAUDRATE=100000 +CONFIG_I2C_CBUS_GPIO=m CONFIG_I2C_DESIGNWARE_CORE=m CONFIG_I2C_DESIGNWARE_PLATFORM=m CONFIG_I2C_GPIO=m +CONFIG_I2C_NOMADIK=m CONFIG_I2C_OCORES=m CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PXA_PCI is not set @@ -1757,7 +1945,45 @@ CONFIG_I2C_STUB=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_SPI is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +CONFIG_SPI_BCM2708=m +CONFIG_SPI_BITBANG=m +# CONFIG_SPI_BUTTERFLY is not set +CONFIG_SPI_GPIO=m +# CONFIG_SPI_LM70_LLP is not set +# CONFIG_SPI_FSL_SPI is not set +CONFIG_SPI_OC_TINY=m +CONFIG_SPI_PL022=m +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_DESIGNWARE is not set + +# +# SPI Protocol Masters +# +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_TLE62X0 is not set + +# +# Qualcomm MSM SSBI bus support +# +# CONFIG_SSBI is not set +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y + +# +# HSI clients +# +CONFIG_HSI_CHAR=m
# # PPS support @@ -1781,9 +2007,13 @@ CONFIG_PPS=m # PTP clock support # CONFIG_PTP_1588_CLOCK=m -CONFIG_DP83640_PHY=m +# CONFIG_DP83640_PHY is not set +# CONFIG_PTP_1588_CLOCK_PCH is not set +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIO_DEVRES=y CONFIG_GPIOLIB=y +CONFIG_OF_GPIO=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y CONFIG_GPIO_GENERIC=m @@ -1793,8 +2023,11 @@ CONFIG_GPIO_MAX730X=m # Memory mapped GPIO drivers: # CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m +# CONFIG_GPIO_EM is not set CONFIG_GPIO_PL061=y +CONFIG_GPIO_RCAR=m +CONFIG_GPIO_TS5500=m +CONFIG_GPIO_GRGPIO=m
# # I2C GPIO expanders: @@ -1804,6 +2037,7 @@ CONFIG_GPIO_MAX732X=m CONFIG_GPIO_PCF857X=m # CONFIG_GPIO_SX150X is not set CONFIG_GPIO_ADP5588=m +CONFIG_GPIO_ADNP=m
# # PCI GPIO expanders: @@ -1812,16 +2046,22 @@ CONFIG_GPIO_ADP5588=m # # SPI GPIO expanders: # +CONFIG_GPIO_MAX7301=m CONFIG_GPIO_MCP23S08=m +CONFIG_GPIO_MC33880=m +CONFIG_GPIO_74X164=m
# # AC97 GPIO expanders: # -# CONFIG_GPIO_UCB1400 is not set
# # MODULbus GPIO expanders: # + +# +# USB GPIO expanders: +# CONFIG_W1=m CONFIG_W1_CON=y
@@ -1839,28 +2079,40 @@ CONFIG_W1_MASTER_GPIO=m CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set +# CONFIG_GENERIC_ADC_BATTERY is not set # CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set # CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_SBS is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GOLDFISH is not set +# CONFIG_POWER_RESET is not set +# CONFIG_POWER_RESET_RESTART is not set +# CONFIG_POWER_AVS is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -1868,14 +2120,19 @@ CONFIG_HWMON_VID=m # # Native drivers # +CONFIG_SENSORS_AD7314=m CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADCXX=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7310=m +CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m @@ -1891,12 +2148,15 @@ CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_GPIO_FAN=m +CONFIG_SENSORS_HIH6130=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IIO_HWMON=m CONFIG_SENSORS_IT87=m CONFIG_SENSORS_JC42=m CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m @@ -1912,14 +2172,20 @@ CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX1111=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m @@ -1950,7 +2216,10 @@ CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m @@ -1967,6 +2236,14 @@ CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m CONFIG_THERMAL=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +# CONFIG_THERMAL_EMULATION is not set CONFIG_THERMAL_BCM2835=y CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y @@ -1976,9 +2253,9 @@ CONFIG_WATCHDOG_CORE=y # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_ARM_SP805_WATCHDOG=m -CONFIG_DW_WATCHDOG=m -CONFIG_MAX63XX_WATCHDOG=m +# CONFIG_ARM_SP805_WATCHDOG is not set +# CONFIG_DW_WATCHDOG is not set +# CONFIG_MAX63XX_WATCHDOG is not set CONFIG_BCM2708_WDT=m
# @@ -1991,57 +2268,92 @@ CONFIG_SSB_POSSIBLE=y # Sonics Silicon Backplane # CONFIG_SSB=m +CONFIG_SSB_BLOCKIO=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y # CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_GPIO=y CONFIG_BCMA_POSSIBLE=y
# # Broadcom specific AMBA # -CONFIG_BCMA=m +CONFIG_BCMA=y +CONFIG_BCMA_BLOCKIO=y +CONFIG_BCMA_DRIVER_GMAC_CMN=y +CONFIG_BCMA_DRIVER_GPIO=y # CONFIG_BCMA_DEBUG is not set
# # Multifunction device drivers # -CONFIG_MFD_CORE=y -CONFIG_MFD_88PM860X=y -CONFIG_MFD_SM501=m -# CONFIG_MFD_SM501_GPIO is not set +CONFIG_MFD_CORE=m +# CONFIG_MFD_AS3711 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_CROS_EC is not set # CONFIG_MFD_ASIC3 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set # CONFIG_HTC_EGPIO is not set -CONFIG_HTC_PASIC3=m +# CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set -CONFIG_UCB1400_CORE=m -CONFIG_TPS6105X=m -CONFIG_TPS65010=m -CONFIG_TPS6507X=m +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set -# CONFIG_MFD_STMPE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TMIO is not set # CONFIG_MFD_T7L66XB is not set # CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6393XB is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -CONFIG_MFD_WM8400=m +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_ABX500_CORE is not set -CONFIG_MFD_WL1273_CORE=m -# CONFIG_MFD_AAT2870_CORE is not set CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR_DUMMY is not set @@ -2049,265 +2361,437 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=m # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set CONFIG_REGULATOR_GPIO=m -# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_FAN53555 is not set +# CONFIG_REGULATOR_ISL6271A is not set # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_WM8400 is not set -# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_MAX8973 is not set # CONFIG_REGULATOR_LP3971 is not set # CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_LP872X is not set +# CONFIG_REGULATOR_LP8755 is not set +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set # CONFIG_REGULATOR_TPS65023 is not set # CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_88PM8607 is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_TPS6524X is not set CONFIG_MEDIA_SUPPORT=m
# # Multimedia core support # +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_RC_SUPPORT=y CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_VIDEO_V4L2=m +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m CONFIG_DVB_CORE=m CONFIG_DVB_NET=y -CONFIG_VIDEO_MEDIA=m +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +# CONFIG_DVB_DYNAMIC_MINORS is not set
# -# Multimedia drivers +# Media drivers # CONFIG_RC_CORE=m -CONFIG_LIRC=m CONFIG_RC_MAP=m -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_RC5_SZ_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_LIRC_CODEC is not set -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_RC_LOOPBACK is not set -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -CONFIG_VIDEO_IR_I2C=m +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_RC_DEVICES=y +CONFIG_RC_ATI_REMOTE=m +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_USB_SN9C102=m + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160=m +CONFIG_VIDEO_STK1160_AC97=y + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_CX231XX=m +# CONFIG_VIDEO_CX231XX_RC is not set +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG=y + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m +CONFIG_V4L_PLATFORM_DRIVERS=y +# CONFIG_VIDEO_TIMBERDALE is not set +# CONFIG_SOC_CAMERA is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set +# CONFIG_V4L_TEST_DRIVERS is not set + +# +# Supported MMC/SDIO adapters +# +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_MEDIA_PARPORT_SUPPORT is not set +# CONFIG_RADIO_ADAPTERS is not set +CONFIG_MEDIA_COMMON_OPTIONS=y + +# +# common driver options +# +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_DEBUG=y +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y
# -# Encoders, decoders, sensors and other helper chips +# Media ancillary drivers (tuners, sensors, i2c, frontends) # +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=m
# # Audio decoders, processors and mixers # -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m
# # RDS decoders # -# CONFIG_VIDEO_SAA6588 is not set
# # Video decoders # -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_VPX3220 is not set +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m
# # Video and audio decoders # -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set +CONFIG_VIDEO_CX25840=m
# # Video encoders # -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_AK881X is not set
# # Camera sensor devices # -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_S5K6AA is not set +CONFIG_VIDEO_MT9V011=m
# # Flash devices # -# CONFIG_VIDEO_ADP1653 is not set
# # Video improvement chips # -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set
# # Miscelaneous helper chips # -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BWQCAM is not set -# CONFIG_VIDEO_CQCAM is not set -# CONFIG_VIDEO_W9966 is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_TIMBERDALE is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_TLG2300 is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_TM6000 is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_WL1273 is not set - -# -# Texas Instruments WL128x FM driver (ST based) -# -# CONFIG_RADIO_WL128X is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y -# CONFIG_TTPCI_EEPROM is not set - -# -# Supported USB Adapters -# -# CONFIG_DVB_USB is not set -# CONFIG_SMS_SIANO_MDTV is not set - -# -# Supported FlexCopII (B2C2) Adapters -# -# CONFIG_DVB_B2C2_FLEXCOP is not set
# -# Supported DVB Frontends +# Sensors used on soc_camera driver # -# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m
# # Multistandard (satellite) frontends # +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m
# # Multistandard (cable + terrestrial) frontends # +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m
# # DVB-S (satellite) frontends # +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_TDA10071=m
# # DVB-T (terrestrial) frontends # +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m
# # DVB-C (cable) frontends # +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m
# # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # +CONFIG_DVB_NXT200X=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m
# # ISDB-T (terrestrial) frontends # +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m
# # Digital terrestrial only tuners/PLL # +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m
# # SEC control devices for DVB-S # +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m
# # Tools to develop new frontends @@ -2318,8 +2802,21 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # Graphics support # CONFIG_DRM=m +CONFIG_DRM_USB=m +CONFIG_DRM_KMS_HELPER=m +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set +CONFIG_DRM_I2C_NXP_TDA998X=m +CONFIG_DRM_UDL=m +# CONFIG_DRM_TILCDC is not set # CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_HDMI=y CONFIG_FB=y CONFIG_FIRMWARE_EDID=y # CONFIG_FB_DDC is not set @@ -2333,7 +2830,6 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m -# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set @@ -2348,32 +2844,17 @@ CONFIG_FB_BCM2708=y CONFIG_FB_ARMCLCD=y CONFIG_FB_UVESA=m # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m +# CONFIG_FB_TMIO is not set CONFIG_FB_SMSCUFX=m -# CONFIG_FB_UDL is not set +CONFIG_FB_UDL=m +# CONFIG_FB_GOLDFISH is not set # CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m +# CONFIG_FB_METRONOME is not set # CONFIG_FB_BROADSHEET is not set -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_PLATFORM=m -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m -CONFIG_BACKLIGHT_88PM860X=m -CONFIG_BACKLIGHT_PCF50633=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=y - -# -# Display hardware drivers -# +# CONFIG_FB_AUO_K190X is not set +# CONFIG_FB_SIMPLE is not set +# CONFIG_EXYNOS_VIDEO is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
# # Console display driver support @@ -2389,6 +2870,7 @@ CONFIG_LOGO=y CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y CONFIG_LOGO_LINUX_CLUT224=y +# CONFIG_FB_SSD1307 is not set CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y CONFIG_SOUND_OSS_CORE_PRECLAIM=y @@ -2397,6 +2879,7 @@ CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m +CONFIG_SND_COMPRESS_OFFLOAD=m CONFIG_SND_JACK=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m @@ -2434,6 +2917,7 @@ CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 CONFIG_SND_ARM=y CONFIG_SND_ARMAACI=m CONFIG_SND_BCM2835=m +CONFIG_SND_SPI=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m CONFIG_SND_USB_UA101=m @@ -2441,39 +2925,42 @@ CONFIG_SND_USB_CAIAQ=m CONFIG_SND_USB_CAIAQ_INPUT=y CONFIG_SND_USB_6FIRE=m CONFIG_SND_SOC=m -CONFIG_SND_SOC_CACHE_LZO=y +# CONFIG_SND_ATMEL_SOC is not set +CONFIG_SND_DESIGNWARE_I2S=m CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SIMPLE_CARD=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set
# -# USB Input Devices +# HID support # -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +# CONFIG_HIDRAW is not set +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y
# # Special HID drivers # -CONFIG_HID_A4TECH=m +CONFIG_HID_A4TECH=y CONFIG_HID_ACRUX=m # CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y CONFIG_HID_PRODIKEYS=m -CONFIG_HID_CYPRESS=m +CONFIG_HID_CYPRESS=y CONFIG_HID_DRAGONRISE=m # CONFIG_DRAGONRISE_FF is not set # CONFIG_HID_EMS_FF is not set CONFIG_HID_ELECOM=m -CONFIG_HID_EZKEY=m +CONFIG_HID_EZKEY=y CONFIG_HID_HOLTEK=m # CONFIG_HOLTEK_FF is not set CONFIG_HID_KEYTOUCH=m @@ -2481,18 +2968,20 @@ CONFIG_HID_KYE=m CONFIG_HID_UCLOGIC=m CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m +CONFIG_HID_ICADE=m CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m +CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=m -CONFIG_HID_LOGITECH=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y CONFIG_HID_MULTITOUCH=m CONFIG_HID_NTRIG=m CONFIG_HID_ORTEK=m @@ -2501,41 +2990,51 @@ CONFIG_HID_PANTHERLORD=m CONFIG_HID_PETALYNX=m CONFIG_HID_PICOLCD=m CONFIG_HID_PICOLCD_FB=y -CONFIG_HID_PICOLCD_BACKLIGHT=y -CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PICOLCD_CIR=y CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m +CONFIG_HID_PS3REMOTE=m CONFIG_HID_ROCCAT=m -CONFIG_HID_ROCCAT_COMMON=m -CONFIG_HID_ROCCAT_ARVO=m -CONFIG_HID_ROCCAT_KONE=m -CONFIG_HID_ROCCAT_KONEPLUS=m -CONFIG_HID_ROCCAT_KOVAPLUS=m -CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m CONFIG_HID_SPEEDLINK=m +CONFIG_HID_STEELSERIES=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m # CONFIG_GREENASIA_FF is not set CONFIG_HID_SMARTJOYPLUS=m # CONFIG_SMARTJOYPLUS_FF is not set +CONFIG_HID_TIVO=m CONFIG_HID_TOPSEED=m +CONFIG_HID_THINGM=m CONFIG_HID_THRUSTMASTER=m # CONFIG_THRUSTMASTER_FF is not set CONFIG_HID_WACOM=m -# CONFIG_HID_WACOM_POWER_SUPPLY is not set CONFIG_HID_WIIMOTE=m +CONFIG_HID_WIIMOTE_EXT=y CONFIG_HID_ZEROPLUS=m # CONFIG_ZEROPLUS_FF is not set CONFIG_HID_ZYDACRON=m -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_HID_SENSOR_HUB=m + +# +# USB HID support +# +CONFIG_USB_HID=m +# CONFIG_HID_PID is not set +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +CONFIG_I2C_HID=m # CONFIG_USB_ARCH_HAS_OHCI is not set # CONFIG_USB_ARCH_HAS_EHCI is not set # CONFIG_USB_ARCH_HAS_XHCI is not set +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -2543,31 +3042,26 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y +CONFIG_USB_DEFAULT_PERSIST=y CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_MON is not set -# CONFIG_USB_WUSB is not set # CONFIG_USB_WUSB_CBAF is not set
# # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set -CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_U132_HCD=m -CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set -CONFIG_USB_R8A66597_HCD=m -# CONFIG_USB_HWA_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_U132_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_DWCOTG=y +CONFIG_USB_HCD_BCMA=y +# CONFIG_USB_HCD_SSB is not set
# # USB Device Class drivers @@ -2600,21 +3094,20 @@ CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m -CONFIG_USB_UAS=m -# CONFIG_USB_LIBUSUAL is not set
# # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set +# CONFIG_USB_DWC3 is not set +# CONFIG_USB_CHIPIDEA is not set
# # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m @@ -2632,19 +3125,21 @@ CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_F81232=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_METRO=m CONFIG_USB_SERIAL_MOS7720=m # CONFIG_USB_SERIAL_MOS7715_PARPORT is not set CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m -# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_NAVMAN=m CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QCAUX=m @@ -2657,15 +3152,19 @@ CONFIG_USB_SERIAL_SIEMENS_MPI=m CONFIG_USB_SERIAL_SIERRAWIRELESS=m CONFIG_USB_SERIAL_SYMBOL=m CONFIG_USB_SERIAL_TI=m -# CONFIG_USB_SERIAL_CYBERJACK is not set +CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m -# CONFIG_USB_SERIAL_OMNINET is not set +CONFIG_USB_SERIAL_OMNINET=m CONFIG_USB_SERIAL_OPTICON=m CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_XSENS_MT=m CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_WISHBONE=m +CONFIG_USB_SERIAL_ZTE=m CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m # CONFIG_USB_SERIAL_DEBUG is not set
# @@ -2690,20 +3189,15 @@ CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set CONFIG_USB_ISIGHTFW=m CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HSIC_USB3503=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m +# CONFIG_USB_PHY is not set # CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -# CONFIG_USB_ULPI is not set -CONFIG_NOP_USB_XCEIV=m CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set @@ -2729,9 +3223,11 @@ CONFIG_MMC_SDHCI_PXAV3=m CONFIG_MMC_SDHCI_PXAV2=m CONFIG_MMC_SDHCI_BCM2708=y CONFIG_MMC_SDHCI_BCM2708_DMA=y -# CONFIG_MMC_BCM2708 is not set +# CONFIG_MMC_SPI is not set CONFIG_MMC_DW=m # CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_DW_PLTFM=m +CONFIG_MMC_DW_EXYNOS=m CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m CONFIG_MEMSTICK=m @@ -2752,39 +3248,53 @@ CONFIG_LEDS_CLASS=y # # LED drivers # -CONFIG_LEDS_88PM860X=m CONFIG_LEDS_LM3530=m +CONFIG_LEDS_LM3642=m CONFIG_LEDS_PCA9532=m CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_GPIO=m CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP55XX_COMMON=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LP5562=m CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_PCA9633=m +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_PWM=m CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m CONFIG_LEDS_LT3593=m # CONFIG_LEDS_RENESAS_TPU is not set -CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_BLINKM=m
# # LED Triggers # +CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
# # iptables trigger is under Netfilter config (LED target) # +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set +# CONFIG_EDAC is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_HCTOSYS is not set +# CONFIG_RTC_SYSTOHC is not set # CONFIG_RTC_DEBUG is not set
# @@ -2799,7 +3309,6 @@ CONFIG_RTC_INTF_DEV=y # # I2C RTC drivers # -CONFIG_RTC_DRV_88PM860X=y CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m @@ -2809,6 +3318,7 @@ CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m @@ -2824,6 +3334,16 @@ CONFIG_RTC_DRV_RV3029C2=m # # SPI RTC drivers # +CONFIG_RTC_DRV_M41T93=m +CONFIG_RTC_DRV_M41T94=m +CONFIG_RTC_DRV_DS1305=m +CONFIG_RTC_DRV_DS1390=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_R9701=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_DS3234=m +CONFIG_RTC_DRV_PCF2123=m +CONFIG_RTC_DRV_RX4581=m
# # Platform RTC drivers @@ -2841,13 +3361,19 @@ CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_DS2404=m
# # on-CPU RTC drivers # CONFIG_RTC_DRV_PL030=m CONFIG_RTC_DRV_PL031=m +CONFIG_RTC_DRV_SNVS=m + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_HID_SENSOR_TIME=m CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set
@@ -2856,9 +3382,12 @@ CONFIG_DMADEVICES=y # CONFIG_AMBA_PL08X=y CONFIG_DW_DMAC=y +# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set # CONFIG_TIMB_DMA is not set CONFIG_PL330_DMA=y CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_OF=y
# # DMA Clients @@ -2870,12 +3399,17 @@ CONFIG_DMATEST=m CONFIG_UIO=m CONFIG_UIO_PDRV=m CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_DMEM_GENIRQ=m +# CONFIG_VIRT_DRIVERS is not set
# # Virtio drivers # -# CONFIG_VIRTIO_BALLOON is not set # CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# CONFIG_STAGING=y CONFIG_USBIP_CORE=m CONFIG_USBIP_VHCI_HCD=m @@ -2883,21 +3417,113 @@ CONFIG_USBIP_HOST=m # CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set +CONFIG_ECHO=m +# CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set +# CONFIG_RTLLIB is not set # CONFIG_R8712U is not set # CONFIG_RTS5139 is not set # CONFIG_TRANZPORT is not set -# CONFIG_POHMELFS is not set # CONFIG_LINE6_USB is not set # CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6656 is not set -# CONFIG_IIO is not set -# CONFIG_XVMALLOC is not set -# CONFIG_ZRAM is not set -# CONFIG_FB_SM7XX is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# +# CONFIG_ADIS16201 is not set +# CONFIG_ADIS16203 is not set +# CONFIG_ADIS16204 is not set +# CONFIG_ADIS16209 is not set +# CONFIG_ADIS16220 is not set +# CONFIG_ADIS16240 is not set +# CONFIG_LIS3L02DQ is not set + +# +# Analog to digital converters +# +# CONFIG_AD7291 is not set +# CONFIG_AD7606 is not set +# CONFIG_AD799X is not set +# CONFIG_AD7780 is not set +# CONFIG_AD7816 is not set +# CONFIG_AD7192 is not set +# CONFIG_AD7280 is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# +# CONFIG_AD5930 is not set +# CONFIG_AD9832 is not set +# CONFIG_AD9834 is not set +# CONFIG_AD9850 is not set +# CONFIG_AD9852 is not set +# CONFIG_AD9910 is not set +# CONFIG_AD9951 is not set + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16060 is not set +# CONFIG_ADIS16130 is not set +# CONFIG_ADIS16260 is not set + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +# +# Magnetometer sensors +# +# CONFIG_SENSORS_HMC5843 is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7753 is not set +# CONFIG_ADE7754 is not set +# CONFIG_ADE7758 is not set +# CONFIG_ADE7759 is not set +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# +# CONFIG_AD2S90 is not set +# CONFIG_AD2S1200 is not set +# CONFIG_AD2S1210 is not set + +# +# Triggers - standalone +# +# CONFIG_IIO_SIMPLE_DUMMY is not set +# CONFIG_ZSMALLOC is not set # CONFIG_USB_ENESTORAGE is not set # CONFIG_BCM_WIMAX is not set # CONFIG_FT1000 is not set @@ -2909,23 +3535,149 @@ CONFIG_USBIP_HOST=m # CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set # CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set # CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_CSR_WIFI is not set +# CONFIG_CED1401 is not set +# CONFIG_DGRP is not set +# CONFIG_ZCACHE is not set CONFIG_CLKDEV_LOOKUP=y
# # Hardware Spinlock drivers # -CONFIG_IOMMU_SUPPORT=y -# CONFIG_VIRT_DRIVERS is not set +# CONFIG_MAILBOX is not set +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers +# +# CONFIG_STE_MODEM_RPROC is not set + +# +# Rpmsg drivers +# # CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +CONFIG_IIO=m +# CONFIG_IIO_BUFFER is not set +# CONFIG_IIO_TRIGGER is not set + +# +# Accelerometers +# +# CONFIG_HID_SENSOR_ACCEL_3D is not set +# CONFIG_KXSD9 is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set + +# +# Analog to digital converters +# +# CONFIG_AD7266 is not set +# CONFIG_AD7298 is not set +# CONFIG_AD7923 is not set +# CONFIG_AD7791 is not set +# CONFIG_AD7793 is not set +# CONFIG_AD7476 is not set +# CONFIG_AD7887 is not set +# CONFIG_EXYNOS_ADC is not set +# CONFIG_MAX1363 is not set +# CONFIG_TI_ADC081C is not set + +# +# Amplifiers +# +# CONFIG_AD8366 is not set + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +# CONFIG_HID_SENSOR_IIO_TRIGGER is not set +# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5360 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5421 is not set +# CONFIG_AD5624R_SPI is not set +# CONFIG_AD5446 is not set +# CONFIG_AD5449 is not set +# CONFIG_AD5504 is not set +# CONFIG_AD5755 is not set +# CONFIG_AD5764 is not set +# CONFIG_AD5791 is not set +# CONFIG_AD5686 is not set +# CONFIG_MAX517 is not set +# CONFIG_MCP4725 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# +# CONFIG_AD9523 is not set + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# +# CONFIG_ADF4350 is not set + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16080 is not set +# CONFIG_ADIS16136 is not set +# CONFIG_ADXRS450 is not set +# CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Inertial measurement units +# +# CONFIG_ADIS16400 is not set +# CONFIG_ADIS16480 is not set +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_VCNL4000 is not set +# CONFIG_HID_SENSOR_ALS is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +CONFIG_PWM=y +CONFIG_IRQCHIP=y +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set
# # File systems # +CONFIG_DCACHE_WORD_ACCESS=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y -CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set @@ -2946,9 +3698,14 @@ CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_RT is not set +# CONFIG_XFS_WARN is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set # CONFIG_NILFS2_FS is not set CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=m @@ -2957,6 +3714,7 @@ CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y @@ -2968,6 +3726,7 @@ CONFIG_QUOTACTL=y CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_CUSE=m +CONFIG_GENERIC_ACL=y
# # Caches @@ -3005,10 +3764,9 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set @@ -3016,6 +3774,7 @@ CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set CONFIG_ECRYPT_FS=m +# CONFIG_ECRYPT_FS_MESSAGING is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set @@ -3045,6 +3804,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set @@ -3052,21 +3812,24 @@ CONFIG_UFS_FS=m # CONFIG_UFS_FS_WRITE is not set # CONFIG_UFS_DEBUG is not set # CONFIG_EXOFS_FS is not set +# CONFIG_F2FS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m -CONFIG_NFS_V3=y +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y +CONFIG_NFS_V4=m +# CONFIG_NFS_SWAP is not set # CONFIG_NFS_V4_1 is not set # CONFIG_NFS_FSCACHE is not set # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y -# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=m @@ -3074,6 +3837,7 @@ CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y @@ -3082,36 +3846,15 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_UPCALL is not set CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y +CONFIG_CIFS_ACL=y +CONFIG_CIFS_DEBUG=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set +# CONFIG_CIFS_SMB2 is not set # CONFIG_CIFS_FSCACHE is not set -CONFIG_CIFS_ACL=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="cp850" # CONFIG_NLS_CODEPAGE_437 is not set @@ -3151,6 +3894,17 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set CONFIG_NLS_UTF8=y
# @@ -3163,6 +3917,7 @@ CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 # CONFIG_MAGIC_SYSRQ is not set CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set @@ -3170,7 +3925,8 @@ CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set # CONFIG_LOCKUP_DETECTOR is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set @@ -3181,6 +3937,7 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set @@ -3188,7 +3945,6 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set -# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set @@ -3206,47 +3962,221 @@ CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set + +# +# RCU Debugging +# +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_TRACE is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set CONFIG_ASYNC_RAID6_TEST=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set +# CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set # CONFIG_STRICT_DEVMEM is not set # CONFIG_ARM_UNWIND is not set # CONFIG_DEBUG_USER is not set CONFIG_DEBUG_LL=y -CONFIG_DEBUG_LL_UART_NONE=y +# CONFIG_DEBUG_LL_UART_NONE is not set # CONFIG_DEBUG_ICEDCC is not set -# CONFIG_DEBUG_BCM2708_UART0 is not set +# CONFIG_DEBUG_SEMIHOSTING is not set +CONFIG_DEBUG_BCM2708_UART0=y +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +CONFIG_UNCOMPRESS_INCLUDE="mach/uncompress.h" CONFIG_EARLY_PRINTK=y # CONFIG_OC_ETM is not set +# CONFIG_PID_IN_CONTEXTIDR is not set
# # Security options # + +# +# Grsecurity +# +CONFIG_PAX_USERCOPY_SLABS=y +CONFIG_GRKERNSEC=y +# CONFIG_GRKERNSEC_CONFIG_AUTO is not set +CONFIG_GRKERNSEC_CONFIG_CUSTOM=y + +# +# Customize Configuration +# + +# +# PaX +# +CONFIG_PAX=y + +# +# PaX Control +# +# CONFIG_PAX_SOFTMODE is not set +CONFIG_PAX_EI_PAX=y +CONFIG_PAX_PT_PAX_FLAGS=y +# CONFIG_PAX_XATTR_PAX_FLAGS is not set +# CONFIG_PAX_NO_ACL_FLAGS is not set +CONFIG_PAX_HAVE_ACL_FLAGS=y +# CONFIG_PAX_HOOK_ACL_FLAGS is not set + +# +# Non-executable pages +# +CONFIG_PAX_NOEXEC=y +CONFIG_PAX_PAGEEXEC=y +CONFIG_PAX_MPROTECT=y +# CONFIG_PAX_MPROTECT_COMPAT is not set +CONFIG_PAX_ELFRELOCS=y +# CONFIG_PAX_KERNEXEC is not set +CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="" + +# +# Address Space Layout Randomization +# +CONFIG_PAX_ASLR=y +CONFIG_PAX_RANDUSTACK=y +CONFIG_PAX_RANDMMAP=y + +# +# Miscellaneous hardening features +# +CONFIG_PAX_MEMORY_SANITIZE=y +CONFIG_PAX_MEMORY_STRUCTLEAK=y +CONFIG_PAX_MEMORY_UDEREF=y +CONFIG_PAX_REFCOUNT=y +CONFIG_PAX_USERCOPY=y +# CONFIG_PAX_LATENT_ENTROPY is not set + +# +# Memory Protections +# +# CONFIG_GRKERNSEC_KMEM is not set +CONFIG_GRKERNSEC_JIT_HARDEN=y +# CONFIG_GRKERNSEC_PERF_HARDEN is not set +CONFIG_GRKERNSEC_RAND_THREADSTACK=y +CONFIG_GRKERNSEC_PROC_MEMMAP=y +CONFIG_GRKERNSEC_BRUTE=y +CONFIG_GRKERNSEC_MODHARDEN=y +CONFIG_GRKERNSEC_HIDESYM=y +CONFIG_GRKERNSEC_KERN_LOCKOUT=y + +# +# Role Based Access Control Options +# +CONFIG_GRKERNSEC_NO_RBAC=y +# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set +CONFIG_GRKERNSEC_ACL_MAXTRIES=3 +CONFIG_GRKERNSEC_ACL_TIMEOUT=30 + +# +# Filesystem Protections +# +# CONFIG_GRKERNSEC_PROC is not set +CONFIG_GRKERNSEC_LINK=y +# CONFIG_GRKERNSEC_SYMLINKOWN is not set +CONFIG_GRKERNSEC_FIFO=y +# CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set +# CONFIG_GRKERNSEC_ROFS is not set +CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y +CONFIG_GRKERNSEC_CHROOT=y +# CONFIG_GRKERNSEC_CHROOT_MOUNT is not set +CONFIG_GRKERNSEC_CHROOT_DOUBLE=y +CONFIG_GRKERNSEC_CHROOT_PIVOT=y +CONFIG_GRKERNSEC_CHROOT_CHDIR=y +# CONFIG_GRKERNSEC_CHROOT_CHMOD is not set +CONFIG_GRKERNSEC_CHROOT_FCHDIR=y +# CONFIG_GRKERNSEC_CHROOT_MKNOD is not set +CONFIG_GRKERNSEC_CHROOT_SHMAT=y +CONFIG_GRKERNSEC_CHROOT_UNIX=y +CONFIG_GRKERNSEC_CHROOT_FINDTASK=y +CONFIG_GRKERNSEC_CHROOT_NICE=y +CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +# CONFIG_GRKERNSEC_CHROOT_CAPS is not set +CONFIG_GRKERNSEC_CHROOT_INITRD=y + +# +# Kernel Auditing +# +# CONFIG_GRKERNSEC_AUDIT_GROUP is not set +# CONFIG_GRKERNSEC_EXECLOG is not set +CONFIG_GRKERNSEC_RESLOG=y +# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set +# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set +# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set +# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set +CONFIG_GRKERNSEC_SIGNAL=y +CONFIG_GRKERNSEC_FORKFAIL=y +# CONFIG_GRKERNSEC_TIME is not set +CONFIG_GRKERNSEC_PROC_IPADDR=y +# CONFIG_GRKERNSEC_RWXMAP_LOG is not set + +# +# Executable Protections +# +CONFIG_GRKERNSEC_DMESG=y +CONFIG_GRKERNSEC_HARDEN_PTRACE=y +CONFIG_GRKERNSEC_PTRACE_READEXEC=y +CONFIG_GRKERNSEC_SETXID=y +# CONFIG_GRKERNSEC_TPE is not set + +# +# Network Protections +# +CONFIG_GRKERNSEC_RANDNET=y +CONFIG_GRKERNSEC_BLACKHOLE=y +CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y +# CONFIG_GRKERNSEC_SOCKET is not set + +# +# Physical Protections +# +# CONFIG_GRKERNSEC_DENYUSB is not set + +# +# Sysctl Support +# +# CONFIG_GRKERNSEC_SYSCTL is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=6 CONFIG_KEYS=y # CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +# CONFIG_SECURITY_SELINUX is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_IMA is not set +# CONFIG_EVM is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m @@ -3277,7 +4207,7 @@ CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m @@ -3304,6 +4234,7 @@ CONFIG_CRYPTO_XTS=m # # Hash modes # +CONFIG_CRYPTO_CMAC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m @@ -3311,7 +4242,8 @@ CONFIG_CRYPTO_VMAC=m # # Digest # -CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m @@ -3321,7 +4253,8 @@ CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA1_ARM=m +CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m @@ -3329,12 +4262,14 @@ CONFIG_CRYPTO_WP512=m # # Ciphers # -CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_ARM=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m @@ -3362,6 +4297,10 @@ CONFIG_CRYPTO_USER_API=m CONFIG_CRYPTO_USER_API_HASH=m CONFIG_CRYPTO_USER_API_SKCIPHER=m CONFIG_CRYPTO_HW=y +CONFIG_ASYMMETRIC_KEY_TYPE=m +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m +CONFIG_PUBLIC_KEY_ALGO_RSA=m +CONFIG_X509_CERTIFICATE_PARSER=m # CONFIG_BINARY_PRINTF is not set
# @@ -3369,11 +4308,20 @@ CONFIG_CRYPTO_HW=y # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y CONFIG_CRC_CCITT=m CONFIG_CRC16=y CONFIG_CRC_T10DIF=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_CRC8=m @@ -3403,7 +4351,14 @@ CONFIG_TEXTSEARCH_FSM=m CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y +CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_GENERIC_ATOMIC64=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_AVERAGE=y +CONFIG_CLZ_TAB=y CONFIG_CORDIC=m +# CONFIG_DDR is not set +CONFIG_MPILIB=m +CONFIG_OID_REGISTRY=m +# CONFIG_VIRTUALIZATION is not set diff --git a/config/kernel/kernel.config.i586-ipfire b/config/kernel/kernel.config.i586-ipfire index ae5e371..925b0e0 100644 --- a/config/kernel/kernel.config.i586-ipfire +++ b/config/kernel/kernel.config.i586-ipfire @@ -1,46 +1,34 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/i386 3.2.47 Kernel Configuration +# Linux/x86 3.10.11-ipfire Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y -# CONFIG_X86_64 is not set CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y -CONFIG_ZONE_DMA=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_GPIO=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y -# CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y -# CONFIG_GENERIC_TIME_VSYSCALL is not set CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CPU_AUTOPROBE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y # CONFIG_AUDIT_ARCH is not set CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y @@ -48,16 +36,15 @@ CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" -CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y +CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y
# # General setup # -CONFIG_EXPERIMENTAL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" @@ -69,8 +56,8 @@ CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set -CONFIG_KERNEL_LZMA=y -# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZMA is not set +CONFIG_KERNEL_XZ=y # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y @@ -78,54 +65,99 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set -CONFIG_TASKSTATS=y -CONFIG_TASK_DELAY_ACCT=y -# CONFIG_TASK_XACCT is not set +CONFIG_FHANDLE=y CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y +CONFIG_AUDIT_LOGINUID_IMMUTABLE=y CONFIG_HAVE_GENERIC_HARDIRQS=y
# # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +# CONFIG_TICK_CPU_ACCOUNTING is not set +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y
# # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set +CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 # CONFIG_RCU_FANOUT_EXACT is not set -# CONFIG_RCU_FAST_NO_HZ is not set +CONFIG_RCU_FAST_NO_HZ=y # CONFIG_TREE_RCU_TRACE is not set +CONFIG_RCU_NOCB_CPU=y +# CONFIG_RCU_NOCB_CPU_NONE is not set +# CONFIG_RCU_NOCB_CPU_ZERO is not set +CONFIG_RCU_NOCB_CPU_ALL=y # CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_BUF_SHIFT=18 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y -# CONFIG_CGROUPS is not set +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +# CONFIG_MEMCG is not set +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -# CONFIG_PID_NS is not set -# CONFIG_NET_NS is not set -# CONFIG_SCHED_AUTOGROUP is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y @@ -136,17 +168,19 @@ CONFIG_RD_LZO=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EXPERT is not set +CONFIG_HAVE_UID16=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_HOTPLUG=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_EXPERT=y CONFIG_UID16=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -CONFIG_HOTPLUG=y +CONFIG_KALLSYMS_ALL=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y -CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -155,46 +189,69 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y -# CONFIG_EMBEDDED is not set +CONFIG_PCI_QUIRKS=y +CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y
# # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y -CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y +# CONFIG_SLOB is not set # CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y CONFIG_HAVE_OPROFILE=y +CONFIG_OPROFILE_NMI_TIMER=y # CONFIG_KPROBES is not set -# CONFIG_JUMP_LABEL is not set +CONFIG_JUMP_LABEL=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y
# # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -202,15 +259,40 @@ CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_MODULE_SIG is not set CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y -# CONFIG_BLK_DEV_INTEGRITY is not set +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_THROTTLING=y + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set
# # IO Schedulers @@ -218,74 +300,53 @@ CONFIG_BLK_DEV_BSGLIB=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y +CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_ASN1=m CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_FREEZER=y
# # Processor type and features # -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_MPPARSE=y -# CONFIG_X86_BIGSMP is not set +CONFIG_X86_BIGSMP=y CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_GOLDFISH is not set # CONFIG_X86_WANT_INTEL_MID is not set +CONFIG_X86_INTEL_LPSS=y # CONFIG_X86_RDC321X is not set -# CONFIG_X86_32_NON_STANDARD is not set +CONFIG_X86_32_NON_STANDARD=y +# CONFIG_X86_NUMAQ is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y -# CONFIG_X86_32_IRIS is not set +# CONFIG_STA2X11 is not set +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_ES7000 is not set +CONFIG_X86_32_IRIS=m CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_PARAVIRT_GUEST=y -# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +# CONFIG_PARAVIRT_DEBUG is not set +# CONFIG_PARAVIRT_SPINLOCKS is not set # CONFIG_XEN_PRIVILEGED_GUEST is not set -CONFIG_KVM_CLOCK=y CONFIG_KVM_GUEST=y -CONFIG_LGUEST_GUEST=y -CONFIG_PARAVIRT=y -CONFIG_PARAVIRT_SPINLOCKS=y +# CONFIG_LGUEST_GUEST is not set +CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y -# CONFIG_PARAVIRT_DEBUG is not set CONFIG_NO_BOOTMEM=y # CONFIG_MEMTEST is not set -# CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set CONFIG_M586TSC=y @@ -312,21 +373,14 @@ CONFIG_M586TSC=y # CONFIG_MATOM is not set CONFIG_X86_GENERIC=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 -CONFIG_X86_CMPXCHG=y -CONFIG_CMPXCHG_LOCAL=y -CONFIG_CMPXCHG_DOUBLE=y CONFIG_X86_L1_CACHE_SHIFT=6 -CONFIG_X86_XADD=y -CONFIG_X86_PPRO_FENCE=y +# CONFIG_X86_PPRO_FENCE is not set CONFIG_X86_F00F_BUG=y -CONFIG_X86_WP_WORKS_OK=y -CONFIG_X86_INVLPG=y -CONFIG_X86_BSWAP=y -CONFIG_X86_POPAD_OK=y CONFIG_X86_ALIGNMENT_16=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_TSC=y CONFIG_X86_MINIMUM_CPU_FAMILY=4 +# CONFIG_PROCESSOR_SELECT is not set CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_CYRIX_32=y CONFIG_CPU_SUP_AMD=y @@ -336,11 +390,9 @@ CONFIG_CPU_SUP_UMC_32=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y -# CONFIG_IOMMU_HELPER is not set CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y -CONFIG_IRQ_TIME_ACCOUNTING=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set @@ -350,27 +402,33 @@ CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_MCE=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y -CONFIG_X86_ANCIENT_MCE=y +# CONFIG_X86_ANCIENT_MCE is not set CONFIG_X86_MCE_THRESHOLD=y -CONFIG_X86_MCE_INJECT=m +# CONFIG_X86_MCE_INJECT is not set CONFIG_X86_THERMAL_VECTOR=y CONFIG_VM86=y CONFIG_TOSHIBA=m CONFIG_I8K=m -CONFIG_X86_REBOOTFIXUPS=y +# CONFIG_X86_REBOOTFIXUPS is not set CONFIG_MICROCODE=m CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y -CONFIG_X86_MSR=m +CONFIG_MICROCODE_INTEL_LIB=y +CONFIG_MICROCODE_INTEL_EARLY=y +CONFIG_MICROCODE_EARLY=y +# CONFIG_X86_MSR is not set CONFIG_X86_CPUID=y # CONFIG_NOHIGHMEM is not set CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_3G_OPT is not set +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_2G_OPT is not set +# CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y -# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set -# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y @@ -382,9 +440,15 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_ARCH_DISCARD_MEMBLOCK=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_COMPACTION is not set +CONFIG_BALLOON_COMPACTION=y +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y @@ -393,19 +457,28 @@ CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y -# CONFIG_MEMORY_FAILURE is not set -# CONFIG_TRANSPARENT_HUGEPAGE is not set -# CONFIG_CLEANCACHE is not set -# CONFIG_HIGHPTE is not set -# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_MEMORY_FAILURE=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_CLEANCACHE=y +# CONFIG_FRONTSWAP is not set +CONFIG_HIGHPTE=y +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y CONFIG_X86_RESERVE_LOW=64 -CONFIG_MATH_EMULATION=y +# CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y -# CONFIG_MTRR_SANITIZER is not set +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y -# CONFIG_EFI is not set +CONFIG_X86_SMAP=y +CONFIG_EFI=y +CONFIG_EFI_STUB=y CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set @@ -415,12 +488,14 @@ CONFIG_HZ_300=y CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y # CONFIG_KEXEC is not set -# CONFIG_CRASH_DUMP is not set -CONFIG_PHYSICAL_START=0x1000000 -# CONFIG_RELOCATABLE is not set -CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_CRASH_DUMP=y +CONFIG_PHYSICAL_START=0x400000 +CONFIG_RELOCATABLE=y +CONFIG_X86_NEED_RELOCS=y +CONFIG_PHYSICAL_ALIGN=0x400000 CONFIG_HOTPLUG_CPU=y -CONFIG_COMPAT_VDSO=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -429,43 +504,56 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y -# CONFIG_HIBERNATION is not set +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set +CONFIG_PM_CLK=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y -# CONFIG_ACPI_PROCFS is not set -CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_PROCFS=y +# CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_EC_DEBUGFS=m -CONFIG_ACPI_PROC_EVENT=y -CONFIG_ACPI_AC=m -CONFIG_ACPI_BATTERY=m -CONFIG_ACPI_BUTTON=m +# CONFIG_ACPI_PROC_EVENT is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m -CONFIG_ACPI_FAN=m +CONFIG_ACPI_FAN=y CONFIG_ACPI_DOCK=y -CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_I2C=m +CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m -CONFIG_ACPI_THERMAL=m -CONFIG_ACPI_CUSTOM_DSDT_FILE="" +CONFIG_ACPI_THERMAL=y # CONFIG_ACPI_CUSTOM_DSDT is not set -CONFIG_ACPI_BLACKLIST_YEAR=0 +CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y +CONFIG_ACPI_BLACKLIST_YEAR=1999 # CONFIG_ACPI_DEBUG is not set -CONFIG_ACPI_PCI_SLOT=m +CONFIG_ACPI_PCI_SLOT=y CONFIG_X86_PM_TIMER=y -CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_SBS=m -# CONFIG_ACPI_HED is not set -# CONFIG_ACPI_APEI is not set -# CONFIG_SFI is not set +CONFIG_ACPI_HED=y +CONFIG_ACPI_CUSTOM_METHOD=m +# CONFIG_ACPI_BGRT is not set +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +# CONFIG_ACPI_APEI_EINJ is not set +# CONFIG_ACPI_APEI_ERST_DEBUG is not set +CONFIG_SFI=y CONFIG_X86_APM_BOOT=y -CONFIG_APM=m -CONFIG_APM_IGNORE_USER_SUSPEND=y +CONFIG_APM=y +# CONFIG_APM_IGNORE_USER_SUSPEND is not set # CONFIG_APM_DO_ENABLE is not set CONFIG_APM_CPU_IDLE=y # CONFIG_APM_DISPLAY_BLANK is not set @@ -476,46 +564,52 @@ CONFIG_APM_CPU_IDLE=y # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y -CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m -CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
# # x86 CPU frequency scaling drivers # -CONFIG_X86_PCC_CPUFREQ=m -CONFIG_X86_ACPI_CPUFREQ=m -CONFIG_X86_POWERNOW_K6=m -CONFIG_X86_POWERNOW_K7=m +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_PCC_CPUFREQ=y +CONFIG_X86_ACPI_CPUFREQ=y +# CONFIG_X86_ACPI_CPUFREQ_CPB is not set +# CONFIG_X86_POWERNOW_K6 is not set +CONFIG_X86_POWERNOW_K7=y CONFIG_X86_POWERNOW_K7_ACPI=y -CONFIG_X86_POWERNOW_K8=m -CONFIG_X86_GX_SUSPMOD=m -CONFIG_X86_SPEEDSTEP_CENTRINO=m -CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y -CONFIG_X86_SPEEDSTEP_ICH=m -CONFIG_X86_SPEEDSTEP_SMI=m -CONFIG_X86_P4_CLOCKMOD=m -CONFIG_X86_CPUFREQ_NFORCE2=m -CONFIG_X86_LONGRUN=m -CONFIG_X86_LONGHAUL=m -CONFIG_X86_E_POWERSAVER=m +CONFIG_X86_POWERNOW_K8=y +# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set +# CONFIG_X86_GX_SUSPMOD is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +CONFIG_X86_SPEEDSTEP_ICH=y +CONFIG_X86_SPEEDSTEP_SMI=y +CONFIG_X86_P4_CLOCKMOD=y +# CONFIG_X86_CPUFREQ_NFORCE2 is not set +CONFIG_X86_LONGRUN=y +# CONFIG_X86_LONGHAUL is not set +# CONFIG_X86_E_POWERSAVER is not set
# # shared options # -CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_X86_SPEEDSTEP_LIB=y # CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set CONFIG_INTEL_IDLE=y
# @@ -532,16 +626,21 @@ CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y # CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_PCIEAER=y -# CONFIG_PCIE_ECRC is not set -# CONFIG_PCIEAER_INJECT is not set +CONFIG_PCIE_ECRC=y +CONFIG_PCIEAER_INJECT=m CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set +# CONFIG_PCIEASPM_DEFAULT is not set +CONFIG_PCIEASPM_POWERSAVE=y +# CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y # CONFIG_PCI_DEBUG is not set -CONFIG_PCI_STUB=m +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +CONFIG_PCI_STUB=y CONFIG_HT_IRQ=y CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y @@ -552,17 +651,16 @@ CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y CONFIG_EISA=y -CONFIG_EISA_VLB_PRIMING=y +# CONFIG_EISA_VLB_PRIMING is not set CONFIG_EISA_PCI_EISA=y CONFIG_EISA_VIRTUAL_ROOT=y CONFIG_EISA_NAMES=y -CONFIG_MCA=y -CONFIG_MCA_LEGACY=y -# CONFIG_MCA_PROC_FS is not set CONFIG_SCx200=m CONFIG_SCx200HR_TIMER=m # CONFIG_OLPC is not set CONFIG_ALIX=y +CONFIG_NET5501=y +CONFIG_GEOS=y CONFIG_AMD_NB=y CONFIG_PCCARD=m CONFIG_PCMCIA=m @@ -584,17 +682,25 @@ CONFIG_I82365=m CONFIG_TCIC=m CONFIG_PCMCIA_PROBE=y CONFIG_PCCARD_NONSTATIC=y -# CONFIG_HOTPLUG_PCI is not set +CONFIG_HOTPLUG_PCI=y +# CONFIG_HOTPLUG_PCI_COMPAQ is not set +# CONFIG_HOTPLUG_PCI_IBM is not set +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +# CONFIG_HOTPLUG_PCI_SHPC is not set # CONFIG_RAPIDIO is not set
# # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y CONFIG_HAVE_ATOMIC_IOMAP=y CONFIG_HAVE_TEXT_POKE_SMP=y CONFIG_NET=y @@ -603,10 +709,13 @@ CONFIG_NET=y # Networking options # CONFIG_PACKET=y +CONFIG_PACKET_DIAG=y CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m @@ -615,7 +724,7 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y @@ -623,28 +732,31 @@ CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y -# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y +# CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m @@ -655,13 +767,15 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -CONFIG_DEFAULT_RENO=y -CONFIG_DEFAULT_TCP_CONG="reno" -# CONFIG_TCP_MD5SIG is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m @@ -673,14 +787,18 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m -# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETLABEL is not set +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -690,13 +808,18 @@ CONFIG_BRIDGE_NETFILTER=y # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y -# CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -713,14 +836,28 @@ CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m CONFIG_NETFILTER_TPROXY=m -CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XTABLES=y
# # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m
# # Xtables targets @@ -729,20 +866,26 @@ CONFIG_NETFILTER_XT_TARGET_AUDIT=m CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
@@ -750,9 +893,11 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m @@ -760,17 +905,19 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m +# CONFIG_NETFILTER_XT_MATCH_IPVS is not set CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m @@ -790,7 +937,19 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -# CONFIG_IP_SET is not set +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -821,6 +980,11 @@ CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m
# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# # IPVS application helper # CONFIG_IP_VS_FTP=m @@ -830,40 +994,31 @@ CONFIG_IP_VS_PE_SIP=m # # IP: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set +CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y +# CONFIG_IP_NF_TARGET_ULOG is not set +CONFIG_NF_NAT_IPV4=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m @@ -872,10 +1027,9 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV6=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV6=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m @@ -883,13 +1037,17 @@ CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_NF_NAT_IPV6=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -910,49 +1068,52 @@ CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m +# CONFIG_BRIDGE_EBT_ULOG is not set CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y # CONFIG_RDS is not set # CONFIG_TIPC is not set CONFIG_ATM=m CONFIG_ATM_CLIP=m -CONFIG_ATM_CLIP_NO_ICMP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_L2TP=m +# CONFIG_L2TP_DEBUGFS is not set CONFIG_L2TP_V3=y CONFIG_L2TP_IP=m CONFIG_L2TP_ETH=m -CONFIG_STP=m -CONFIG_GARP=m -CONFIG_BRIDGE=m +CONFIG_STP=y +CONFIG_GARP=y +CONFIG_BRIDGE=y CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VLAN_8021Q_MVRP is not set # CONFIG_DECNET is not set -CONFIG_LLC=m +CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set -CONFIG_IEEE802154=m -CONFIG_IEEE802154_6LOWPAN=m +# CONFIG_IEEE802154 is not set CONFIG_NET_SCHED=y
# @@ -976,7 +1137,10 @@ CONFIG_NET_SCH_DRR=m CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m
# # Classification @@ -992,6 +1156,7 @@ CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m @@ -999,6 +1164,7 @@ CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_IPSET=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m @@ -1015,67 +1181,30 @@ CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y # CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +CONFIG_VSOCKETS=m +CONFIG_VMWARE_VMCI_VSOCKETS=m +CONFIG_NETLINK_MMAP=y +CONFIG_NETLINK_DIAG=m CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y +CONFIG_NETPRIO_CGROUP=m +CONFIG_BQL=y
# # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_NSC_FIR=m -CONFIG_WINBOND_FIR=m -CONFIG_TOSHIBA_FIR=m -CONFIG_SMC_IRCC_FIR=m -CONFIG_ALI_FIR=m -CONFIG_VLSI_FIR=m -CONFIG_VIA_FIR=m -CONFIG_MCS_FIR=m +# CONFIG_IRDA is not set CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -1094,11 +1223,12 @@ CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m +# CONFIG_BT_HCIDTL1 is not set +# CONFIG_BT_HCIBT3C is not set CONFIG_BT_HCIBLUECARD=m CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m @@ -1106,9 +1236,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m CONFIG_BT_WILINK=m -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -CONFIG_RXKAD=m +# CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y @@ -1120,10 +1248,11 @@ CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set -# CONFIG_CFG80211_DEFAULT_PS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_WEXT=y -CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -1131,23 +1260,24 @@ CONFIG_LIB80211_CRYPT_TKIP=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m +CONFIG_RFKILL_GPIO=m # CONFIG_NET_9P is not set # CONFIG_CAIF is not set -CONFIG_CEPH_LIB=m -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set
# @@ -1157,100 +1287,31 @@ CONFIG_CEPH_LIB=m # # Generic Driver Options # -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_REGMAP=y CONFIG_REGMAP_I2C=m -CONFIG_CONNECTOR=m -CONFIG_MTD=m -CONFIG_MTD_TESTS=m -# CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_AR7_PARTS=m - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -CONFIG_SM_FTL=m -# CONFIG_MTD_OOPS is not set -# CONFIG_MTD_SWAP is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_TS5500 is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_DOCG3 is not set -CONFIG_MTD_NAND_ECC=m -# CONFIG_MTD_NAND_ECC_SMC is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 -# CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_CMA is not set + +# +# Bus devices +# +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +# CONFIG_MTD is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m @@ -1269,65 +1330,73 @@ CONFIG_PNP=y # CONFIG_ISAPNP=y CONFIG_PNPBIOS=y -CONFIG_PNPBIOS_PROC_FS=y +# CONFIG_PNPBIOS_PROC_FS is not set CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=m -# CONFIG_BLK_DEV_XD is not set # CONFIG_PARIDE is not set +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m CONFIG_BLK_CPQ_DA=m CONFIG_BLK_CPQ_CISS_DA=m # CONFIG_CISS_SCSI_TAPE is not set CONFIG_BLK_DEV_DAC960=m -# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_UMEM=m # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m # CONFIG_BLK_DEV_DRBD is not set -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_OSD=m +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_NVME=m +# CONFIG_BLK_DEV_OSD is not set CONFIG_BLK_DEV_SX8=m -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=8 +CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_BLK_DEV_XIP is not set # CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m +# CONFIG_ATA_OVER_ETH is not set CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set -CONFIG_BLK_DEV_RBD=m +# CONFIG_BLK_DEV_RBD is not set +CONFIG_BLK_DEV_RSXX=m + +# +# Misc devices +# CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y # CONFIG_AD525X_DPOT is not set -# CONFIG_IBM_ASM is not set +# CONFIG_ATMEL_PWM is not set +CONFIG_DUMMY_IRQ=m +CONFIG_IBM_ASM=m # CONFIG_PHANTOM is not set # CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m +# CONFIG_ATMEL_SSC is not set CONFIG_ENCLOSURE_SERVICES=m CONFIG_CS5535_MFGPT=m CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 CONFIG_CS5535_CLOCK_EVENT_SRC=m CONFIG_HP_ILO=m -CONFIG_APDS9802ALS=m -CONFIG_ISL29003=m -CONFIG_ISL29020=m -CONFIG_SENSORS_TSL2550=m -CONFIG_SENSORS_BH1780=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_APDS990X=m -CONFIG_HMC6352=m +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set CONFIG_DS1682=m CONFIG_VMWARE_BALLOON=m -CONFIG_BMP085=m +CONFIG_BMP085=y +CONFIG_BMP085_I2C=m CONFIG_PCH_PHUB=m CONFIG_USB_SWITCH_FSA9480=m -CONFIG_C2PORT=m -CONFIG_C2PORT_DURAMAR_2150=m +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set
# # EEPROM support @@ -1339,62 +1408,63 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y -CONFIG_IWMC3200TOP=m -# CONFIG_IWMC3200TOP_DEBUG is not set -# CONFIG_IWMC3200TOP_DEBUGFS is not set
# # Texas Instruments shared transport line discipline # CONFIG_TI_ST=m -CONFIG_SENSORS_LIS3_I2C=m +# CONFIG_SENSORS_LIS3_I2C is not set
# # Altera FPGA firmware download module # -# CONFIG_ALTERA_STAPL is not set +CONFIG_ALTERA_STAPL=m +CONFIG_INTEL_MEI=m +CONFIG_INTEL_MEI_ME=m +CONFIG_VMWARE_VMCI=m CONFIG_HAVE_IDE=y # CONFIG_IDE is not set
# # SCSI device support # -CONFIG_SCSI_MOD=m +CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=m -CONFIG_SCSI=m +CONFIG_SCSI=y CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set +CONFIG_SCSI_TGT=m CONFIG_SCSI_NETLINK=y CONFIG_SCSI_PROC_FS=y
# # SCSI support type (disk, tape, CD-ROM) # -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_SCH=m CONFIG_SCSI_ENCLOSURE=m CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y
# # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y CONFIG_SCSI_ISCSI_ATTRS=m CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m CONFIG_ISCSI_BOOT_SYSFS=m @@ -1414,25 +1484,23 @@ CONFIG_SCSI_AHA1542=m CONFIG_SCSI_AHA1740=m CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=5000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y # CONFIG_SCSI_AIC7XXX_OLD is not set CONFIG_SCSI_AIC79XX=m CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set +CONFIG_AIC79XX_RESET_DELAY_MS=4000 # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_DEBUG=y -# CONFIG_SCSI_MVSAS_TASKLET is not set +# CONFIG_SCSI_MVSAS_DEBUG is not set +CONFIG_SCSI_MVSAS_TASKLET=y CONFIG_SCSI_MVUMI=m CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ADVANSYS=m @@ -1446,9 +1514,15 @@ CONFIG_MEGARAID_SAS=m CONFIG_SCSI_MPT2SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 # CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +# CONFIG_SCSI_MPT3SAS_LOGGING is not set +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m +CONFIG_SCSI_UFSHCD_PLATFORM=m CONFIG_SCSI_HPTIOP=m CONFIG_SCSI_BUSLOGIC=m -CONFIG_SCSI_FLASHPOINT=y +# CONFIG_SCSI_FLASHPOINT is not set CONFIG_VMWARE_PVSCSI=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m @@ -1458,18 +1532,14 @@ CONFIG_SCSI_DMX3191D=m CONFIG_SCSI_DTC3280=m CONFIG_SCSI_EATA=m CONFIG_SCSI_EATA_TAGGED_QUEUE=y -CONFIG_SCSI_EATA_LINKED_COMMANDS=y +# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set CONFIG_SCSI_EATA_MAX_TAGS=16 CONFIG_SCSI_FUTURE_DOMAIN=m -CONFIG_SCSI_FD_MCS=m CONFIG_SCSI_GDTH=m CONFIG_SCSI_ISCI=m CONFIG_SCSI_GENERIC_NCR5380=m CONFIG_SCSI_GENERIC_NCR5380_MMIO=m -CONFIG_SCSI_GENERIC_NCR53C400=y -CONFIG_SCSI_IBMMCA=m -# CONFIG_IBMMCA_SCSI_ORDER_STANDARD is not set -# CONFIG_IBMMCA_SCSI_DEV_RESET is not set +# CONFIG_SCSI_GENERIC_NCR53C400 is not set CONFIG_SCSI_IPS=m CONFIG_SCSI_INITIO=m CONFIG_SCSI_INIA100=m @@ -1478,7 +1548,6 @@ CONFIG_SCSI_IMM=m # CONFIG_SCSI_IZIP_EPP16 is not set # CONFIG_SCSI_IZIP_SLOW_CTR is not set CONFIG_SCSI_NCR53C406A=m -CONFIG_SCSI_NCR_D700=m CONFIG_SCSI_STEX=m CONFIG_SCSI_SYM53C8XX_2=m CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 @@ -1488,24 +1557,21 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y CONFIG_SCSI_IPR=m CONFIG_SCSI_IPR_TRACE=y CONFIG_SCSI_IPR_DUMP=y -CONFIG_SCSI_NCR_Q720=m -CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 -CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 -CONFIG_SCSI_NCR53C8XX_SYNC=20 CONFIG_SCSI_PAS16=m CONFIG_SCSI_QLOGIC_FAS=m CONFIG_SCSI_QLOGIC_1280=m CONFIG_SCSI_QLA_FC=m CONFIG_SCSI_QLA_ISCSI=m CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_SIM710=m CONFIG_SCSI_SYM53C416=m CONFIG_SCSI_DC395x=m CONFIG_SCSI_DC390T=m CONFIG_SCSI_T128=m CONFIG_SCSI_U14_34F=m -CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y -CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y +# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set +# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set CONFIG_SCSI_U14_34F_MAX_TAGS=8 CONFIG_SCSI_ULTRASTOR=m CONFIG_SCSI_NSP32=m @@ -1514,13 +1580,15 @@ CONFIG_SCSI_PMCRAID=m CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_VIRTIO=m +CONFIG_SCSI_CHELSIO_FCOE=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y CONFIG_PCMCIA_AHA152X=m CONFIG_PCMCIA_FDOMAIN=m CONFIG_PCMCIA_NINJA_SCSI=m CONFIG_PCMCIA_QLOGIC=m CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=m +CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=m @@ -1529,16 +1597,17 @@ CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_ATA=m +CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y +CONFIG_SATA_ZPODD=y CONFIG_SATA_PMP=y
# # Controllers with non-SFF native interface # -CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI=y CONFIG_SATA_AHCI_PLATFORM=m CONFIG_SATA_INIC162X=m CONFIG_SATA_ACARD_AHCI=m @@ -1556,7 +1625,8 @@ CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # -CONFIG_ATA_PIIX=m +CONFIG_ATA_PIIX=y +CONFIG_SATA_HIGHBANK=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m CONFIG_SATA_PROMISE=m @@ -1579,7 +1649,7 @@ CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m +# CONFIG_PATA_CS5535 is not set CONFIG_PATA_CS5536=m CONFIG_PATA_CYPRESS=m CONFIG_PATA_EFAR=m @@ -1587,7 +1657,7 @@ CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y +# CONFIG_PATA_HPT3X3_DMA is not set CONFIG_PATA_IT8213=m CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m @@ -1620,6 +1690,7 @@ CONFIG_PATA_MPIIX=m CONFIG_PATA_NS87410=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PLATFORM=m CONFIG_PATA_QDI=m CONFIG_PATA_RZ1000=m CONFIG_PATA_WINBOND_VLB=m @@ -1631,75 +1702,92 @@ CONFIG_PATA_ACPI=m CONFIG_ATA_GENERIC=m CONFIG_PATA_LEGACY=m CONFIG_MD=y -CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m -# CONFIG_MULTICORE_RAID456 is not set CONFIG_MD_MULTIPATH=m -# CONFIG_MD_FAULTY is not set -CONFIG_BLK_DEV_DM=m +CONFIG_MD_FAULTY=m +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_EDEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BLK_DEV_DM=y # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=m +CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_THIN_PROVISIONING=m -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -# CONFIG_DM_DEBUG_SPACE_MAPS is not set -CONFIG_DM_MIRROR=m +CONFIG_DM_SNAPSHOT=y +# CONFIG_DM_THIN_PROVISIONING is not set +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CACHE_CLEANER=m +CONFIG_DM_MIRROR=y CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m +CONFIG_DM_ZERO=y CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m +# CONFIG_DM_DELAY is not set CONFIG_DM_UEVENT=y -CONFIG_DM_FLAKEY=m +# CONFIG_DM_FLAKEY is not set +CONFIG_DM_VERITY=m # CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_MAX_SGE=40 CONFIG_FUSION_CTL=m -# CONFIG_FUSION_LOGGING is not set +CONFIG_FUSION_LOGGING=y
# # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m +# CONFIG_FIREWIRE_NET is not set # CONFIG_FIREWIRE_NOSY is not set -# CONFIG_I2O is not set -# CONFIG_MACINTOSH_DRIVERS is not set +CONFIG_I2O=m +# CONFIG_I2O_LCT_NOTIFY_ON_CHANGES is not set +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_BUS=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_SCSI=m +CONFIG_I2O_PROC=m +CONFIG_MACINTOSH_DRIVERS=y +# CONFIG_MAC_EMUMOUSEBTN is not set CONFIG_NETDEVICES=y CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m -CONFIG_EQUALIZER=m +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IFB=m +# CONFIG_NET_TEAM is not set +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_VXLAN=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +CONFIG_NETPOLL_TRAP=y +CONFIG_NET_POLL_CONTROLLER=y CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 -# CONFIG_NET_FC is not set -CONFIG_MII=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -CONFIG_IFB=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m CONFIG_VIRTIO_NET=m @@ -1710,22 +1798,14 @@ CONFIG_ATM_DRIVERS=y CONFIG_ATM_TCP=m CONFIG_ATM_LANAI=m CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set CONFIG_ATM_FIRESTREAM=m CONFIG_ATM_ZATM=m # CONFIG_ATM_ZATM_DEBUG is not set CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set CONFIG_ATM_IDT77252=m # CONFIG_ATM_IDT77252_DEBUG is not set # CONFIG_ATM_IDT77252_RCV_ALL is not set @@ -1737,20 +1817,30 @@ CONFIG_ATM_HORIZON=m CONFIG_ATM_IA=m # CONFIG_ATM_IA_DEBUG is not set CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y +# CONFIG_ATM_FORE200E_USE_TASKLET is not set CONFIG_ATM_FORE200E_TX_RETRY=16 CONFIG_ATM_FORE200E_DEBUG=0 CONFIG_ATM_HE=m -CONFIG_ATM_HE_USE_SUNI=y +# CONFIG_ATM_HE_USE_SUNI is not set CONFIG_ATM_SOLOS=m
# # CAIF transport drivers # +CONFIG_VHOST_NET=m +CONFIG_VHOST_RING=m + +# +# Distributed Switch Architecture drivers +# +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_ETHERNET=y CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y -CONFIG_EL1=m CONFIG_EL3=m CONFIG_3C515=m CONFIG_PCMCIA_3C574=m @@ -1766,7 +1856,6 @@ CONFIG_NET_VENDOR_AMD=y CONFIG_AMD8111_ETH=m CONFIG_LANCE=m CONFIG_PCNET32=m -CONFIG_DEPCA=m CONFIG_PCMCIA_NMCLAN=m CONFIG_NI65=m CONFIG_NET_VENDOR_ATHEROS=y @@ -1774,6 +1863,10 @@ CONFIG_ATL2=m CONFIG_ATL1=m CONFIG_ATL1E=m CONFIG_ATL1C=m +CONFIG_ALX=m +CONFIG_NET_CADENCE=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_MACB=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y @@ -1783,8 +1876,10 @@ CONFIG_BNX2=m CONFIG_CNIC=m CONFIG_TIGON3=m CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m +CONFIG_NET_CALXEDA_XGMAC=m CONFIG_NET_VENDOR_CHELSIO=y CONFIG_CHELSIO_T1=m CONFIG_CHELSIO_T1_1G=y @@ -1793,26 +1888,25 @@ CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m CONFIG_NET_VENDOR_CIRRUS=y CONFIG_CS89x0=m +# CONFIG_CS89x0_PLATFORM is not set CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m CONFIG_DNET=m CONFIG_NET_VENDOR_DEC=y -CONFIG_EWRK3=m CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 CONFIG_TULIP=m # CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set +CONFIG_TULIP_MMIO=y +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y CONFIG_DE4X5=m CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m CONFIG_NET_VENDOR_DLINK=y -CONFIG_DE600=m -CONFIG_DE620=m CONFIG_DL2K=m CONFIG_SUNDANCE=m # CONFIG_SUNDANCE_MMIO is not set @@ -1823,47 +1917,32 @@ CONFIG_S2IO=m CONFIG_VXGE=m # CONFIG_VXGE_DEBUG_TRACE_ALL is not set CONFIG_NET_VENDOR_FUJITSU=y -CONFIG_AT1700=m CONFIG_PCMCIA_FMVJ18X=m -CONFIG_ETH16I=m CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m -CONFIG_NET_VENDOR_IBM=y -# CONFIG_IBM_EMAC_ZMII is not set -# CONFIG_IBM_EMAC_RGMII is not set -# CONFIG_IBM_EMAC_TAH is not set -# CONFIG_IBM_EMAC_EMAC4 is not set -# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_E100=m CONFIG_E1000=m CONFIG_E1000E=m CONFIG_IGB=m +CONFIG_IGB_HWMON=y CONFIG_IGB_DCA=y CONFIG_IGBVF=m CONFIG_IXGB=m CONFIG_IXGBE=m +CONFIG_IXGBE_HWMON=y CONFIG_IXGBE_DCA=y CONFIG_IXGBEVF=m CONFIG_NET_VENDOR_I825XX=y -CONFIG_ELPLUS=m -CONFIG_EL16=m -CONFIG_ELMC=m -CONFIG_ELMC_II=m -CONFIG_APRICOT=m -CONFIG_EEXPRESS=m -CONFIG_EEXPRESS_PRO=m -CONFIG_LP486E=m -CONFIG_NI52=m -CONFIG_ZNET=m CONFIG_IP1000=m CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MVMDIO=m CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set CONFIG_NET_VENDOR_MELLANOX=y CONFIG_MLX4_EN=m CONFIG_MLX4_CORE=m @@ -1877,61 +1956,47 @@ CONFIG_MYRI10GE=m CONFIG_MYRI10GE_DCA=y CONFIG_FEALNX=m CONFIG_NET_VENDOR_NATSEMI=y -CONFIG_IBMLANA=m CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_8390=y -CONFIG_EL2=m -CONFIG_AC3200=m CONFIG_PCMCIA_AXNET=m -CONFIG_E2100=m -CONFIG_ES3210=m -CONFIG_HPLAN_PLUS=m -CONFIG_HPLAN=m -CONFIG_LNE390=m CONFIG_NE2000=m -CONFIG_NE2_MCA=m CONFIG_NE2K_PCI=m -CONFIG_NE3210=m CONFIG_PCMCIA_PCNET=m -CONFIG_ULTRAMCA=m CONFIG_ULTRA=m -CONFIG_ULTRA32=m CONFIG_WD80x3=m CONFIG_NET_VENDOR_NVIDIA=y CONFIG_FORCEDETH=m CONFIG_NET_VENDOR_OKI=y CONFIG_PCH_GBE=m CONFIG_ETHOC=m -CONFIG_NET_PACKET_ENGINE=y -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m +# CONFIG_NET_PACKET_ENGINE is not set CONFIG_NET_VENDOR_QLOGIC=y CONFIG_QLA3XXX=m CONFIG_QLCNIC=m +CONFIG_QLCNIC_SRIOV=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m -CONFIG_NET_VENDOR_RACAL=y CONFIG_NET_VENDOR_REALTEK=y CONFIG_ATP=m CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set -CONFIG_8139TOO_TUNE_TWISTER=y +# CONFIG_8139TOO_TUNE_TWISTER is not set CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_R8169=m CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m CONFIG_NET_VENDOR_SEEQ=y -CONFIG_SEEQ8005=m CONFIG_NET_VENDOR_SILAN=y CONFIG_SC92031=m CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m CONFIG_SIS190=m CONFIG_SFC=m -CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_SRIOV=y CONFIG_NET_VENDOR_SMSC=y CONFIG_SMC9194=m CONFIG_PCMCIA_SMC91C92=m @@ -1939,9 +2004,10 @@ CONFIG_EPIC100=m CONFIG_SMSC9420=m CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=y +CONFIG_STMMAC_PCI=y +# CONFIG_STMMAC_DEBUG_FS is not set # CONFIG_STMMAC_DA is not set -CONFIG_STMMAC_RING=y -# CONFIG_STMMAC_CHAINED is not set CONFIG_NET_VENDOR_SUN=y CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m @@ -1955,16 +2021,24 @@ CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y CONFIG_VIA_VELOCITY=m +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y CONFIG_NET_VENDOR_XIRCOM=y CONFIG_PCMCIA_XIRC2PS=m # CONFIG_FDDI is not set # CONFIG_HIPPI is not set -CONFIG_NET_SB1000=m +# CONFIG_NET_SB1000 is not set CONFIG_PHYLIB=y
# # MII PHY device drivers # +CONFIG_AT803X_PHY=m +CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m CONFIG_DAVICOM_PHY=m CONFIG_QSEMI_PHY=m @@ -1973,15 +2047,16 @@ CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m CONFIG_SMSC_PHY=m CONFIG_BROADCOM_PHY=m +CONFIG_BCM87XX_PHY=m CONFIG_ICPLUS_PHY=m CONFIG_REALTEK_PHY=m CONFIG_NATIONAL_PHY=m CONFIG_STE10XP=m CONFIG_LSI_ET1011C_PHY=m CONFIG_MICREL_PHY=m -# CONFIG_FIXED_PHY is not set +CONFIG_FIXED_PHY=y CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m +# CONFIG_MDIO_GPIO is not set # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m @@ -1995,12 +2070,8 @@ CONFIG_PPTP=m CONFIG_PPPOL2TP=m CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m -CONFIG_SLIP=m +# CONFIG_SLIP is not set CONFIG_SLHC=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_TR is not set
# # USB Network Adapters @@ -2009,11 +2080,14 @@ CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m @@ -2032,14 +2106,17 @@ CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -# CONFIG_USB_IPHETH is not set +CONFIG_USB_IPHETH=m CONFIG_USB_SIERRA_NET=m CONFIG_USB_VL600=m CONFIG_WLAN=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS_THINFIRM is not set +# CONFIG_PCMCIA_RAYCS is not set +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m CONFIG_AIRO=m CONFIG_ATMEL=m CONFIG_PCI_ATMEL=m @@ -2050,73 +2127,175 @@ CONFIG_PCMCIA_WL3501=m # CONFIG_PRISM54 is not set CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_BRCMFMAC is not set +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_ADM8211=m +CONFIG_MAC80211_HWSIM=m +CONFIG_MWL8K=m +CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH5K=m +CONFIG_ATH5K_DEBUG=y +# CONFIG_ATH5K_TRACER is not set +CONFIG_ATH5K_PCI=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_AHB=y +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +# CONFIG_ATH6KL is not set +CONFIG_AR5523=m +CONFIG_WIL6210=m +CONFIG_WIL6210_ISR_COR=y +CONFIG_B43=m +CONFIG_B43_SSB=y +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +CONFIG_B43_SDIO=y +CONFIG_B43_PIO=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y +# CONFIG_BRCMFMAC_USB is not set +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_FIRMWARE_NVRAM=y CONFIG_HOSTAP_PLX=m CONFIG_HOSTAP_PCI=m CONFIG_HOSTAP_CS=m -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -# CONFIG_IWL4965 is not set -# CONFIG_IWL3945 is not set -# CONFIG_IWM is not set -# CONFIG_LIBERTAS is not set -# CONFIG_HERMES is not set -# CONFIG_P54_COMMON is not set -# CONFIG_RT2X00 is not set -# CONFIG_RTL8192CE is not set -# CONFIG_RTL8192SE is not set -# CONFIG_RTL8192DE is not set -# CONFIG_RTL8192CU is not set -# CONFIG_WL1251 is not set -# CONFIG_WL12XX_MENU is not set -# CONFIG_ZD1211RW is not set -# CONFIG_MWIFIEX is not set +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLWIFI=m +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m +CONFIG_IWLWIFI_OPMODE_MODULAR=y + +# +# Debugging Options +# +# CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_IWLWIFI_P2P=y +CONFIG_IWLEGACY=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m + +# +# iwl3945 / iwl4965 Debugging Options +# +# CONFIG_IWLEGACY_DEBUG is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y +CONFIG_HERMES=m +# CONFIG_HERMES_PRISM is not set +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ORINOCO_USB=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_MMIO=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RTLWIFI=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTL8192CE=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m +CONFIG_RTL8188EE=m +CONFIG_RTL8192CU=m +CONFIG_RTL8192C_COMMON=m +CONFIG_WL_TI=y +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_USB=m
# # Enable WiMAX (Networking options) to see the WiMAX drivers # -CONFIG_WAN=y -CONFIG_HOSTESS_SV11=m -CONFIG_COSA=m -CONFIG_LANMEDIA=m -CONFIG_SEALEVEL_4021=m -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_N2=m -CONFIG_C101=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_SDLA=m -CONFIG_SBNI=m -CONFIG_SBNI_MULTILINE=y +# CONFIG_WAN is not set CONFIG_VMXNET3=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m @@ -2147,9 +2326,9 @@ CONFIG_ISDN_DRV_HISAX=m # CONFIG_HISAX_EURO=y CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y CONFIG_HISAX_1TR6=y CONFIG_HISAX_NI1=y CONFIG_HISAX_MAX_CARDS=8 @@ -2157,27 +2336,27 @@ CONFIG_HISAX_MAX_CARDS=8 # # HiSax supported cards # -CONFIG_HISAX_16_0=y +# CONFIG_HISAX_16_0 is not set CONFIG_HISAX_16_3=y CONFIG_HISAX_TELESPCI=y CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_AVM_A1=y +# CONFIG_HISAX_AVM_A1 is not set CONFIG_HISAX_FRITZPCI=y CONFIG_HISAX_AVM_A1_PCMCIA=y CONFIG_HISAX_ELSA=y -CONFIG_HISAX_IX1MICROR2=y +# CONFIG_HISAX_IX1MICROR2 is not set CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_ASUSCOM=y -CONFIG_HISAX_TELEINT=y -CONFIG_HISAX_HFCS=y +# CONFIG_HISAX_ASUSCOM is not set +# CONFIG_HISAX_TELEINT is not set +# CONFIG_HISAX_HFCS is not set CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_SPORTSTER=y -CONFIG_HISAX_MIC=y +# CONFIG_HISAX_SPORTSTER is not set +# CONFIG_HISAX_MIC is not set CONFIG_HISAX_NETJET=y CONFIG_HISAX_NETJET_U=y CONFIG_HISAX_NICCY=y -CONFIG_HISAX_ISURF=y -CONFIG_HISAX_HSTSAPHIR=y +# CONFIG_HISAX_ISURF is not set +# CONFIG_HISAX_HSTSAPHIR is not set CONFIG_HISAX_BKM_A4T=y CONFIG_HISAX_SCT_QUADRO=y CONFIG_HISAX_GAZEL=y @@ -2185,15 +2364,15 @@ CONFIG_HISAX_HFC_PCI=y CONFIG_HISAX_W6692=y CONFIG_HISAX_HFC_SX=y CONFIG_HISAX_ENTERNOW_PCI=y -CONFIG_HISAX_DEBUG=y +# CONFIG_HISAX_DEBUG is not set
# # HiSax PCMCIA card service modules # -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_TELES_CS=m +# CONFIG_HISAX_SEDLBAUER_CS is not set +# CONFIG_HISAX_ELSA_CS is not set +# CONFIG_HISAX_AVM_A1_CS is not set +# CONFIG_HISAX_TELES_CS is not set
# # HiSax sub driver modules @@ -2206,10 +2385,10 @@ CONFIG_HISAX_FRITZ_PCIPNP=m # # Active cards # -CONFIG_ISDN_DRV_ICN=m -CONFIG_ISDN_DRV_PCBIT=m -CONFIG_ISDN_DRV_SC=m -CONFIG_ISDN_DRV_ACT2000=m +# CONFIG_ISDN_DRV_ICN is not set +# CONFIG_ISDN_DRV_PCBIT is not set +# CONFIG_ISDN_DRV_SC is not set +# CONFIG_ISDN_DRV_ACT2000 is not set CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_CAPI_TRACE=y @@ -2221,12 +2400,11 @@ CONFIG_ISDN_CAPI_CAPIDRV=m # CAPI hardware drivers # CONFIG_CAPI_AVM=y -CONFIG_ISDN_DRV_AVMB1_B1ISA=m +# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set CONFIG_ISDN_DRV_AVMB1_B1PCI=m CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_T1ISA=m -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set +# CONFIG_ISDN_DRV_AVMB1_B1PCMCIA is not set CONFIG_ISDN_DRV_AVMB1_T1PCI=m CONFIG_ISDN_DRV_AVMB1_C4=m CONFIG_CAPI_EICON=y @@ -2264,15 +2442,15 @@ CONFIG_MISDN_NETJET=m CONFIG_MISDN_IPAC=m CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m -# CONFIG_PHONE is not set
# # Input device support # CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m +# CONFIG_INPUT_FF_MEMLESS is not set CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m
# # Userland interfaces @@ -2282,57 +2460,83 @@ CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set
# # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ADP5589=m +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y -CONFIG_KEYBOARD_QT1070=m -CONFIG_KEYBOARD_QT2160=m -CONFIG_KEYBOARD_LKKBD=m +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set CONFIG_KEYBOARD_GPIO=m CONFIG_KEYBOARD_GPIO_POLLED=m -CONFIG_KEYBOARD_TCA6416=m -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_MCS=m -CONFIG_KEYBOARD_MPR121=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_XTKBD=m -# CONFIG_INPUT_MOUSE is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +CONFIG_KEYBOARD_LM8333=m +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +CONFIG_MOUSE_VSXXXAA=m +# CONFIG_MOUSE_GPIO is not set +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set CONFIG_INPUT_PCSPKR=m # CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_APANEL=m +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set # CONFIG_INPUT_WISTRON_BTNS is not set -# CONFIG_INPUT_ATLAS_BTNS is not set +CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_UINPUT=m +# CONFIG_INPUT_PCF8574 is not set CONFIG_INPUT_GPIO_ROTARY_ENCODER=m # CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set
# @@ -2345,123 +2549,134 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PARKBD is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set +CONFIG_SERIO_RAW=m CONFIG_SERIO_ALTERA_PS2=m -CONFIG_SERIO_PS2MULT=m +# CONFIG_SERIO_PS2MULT is not set +CONFIG_SERIO_ARC_PS2=m # CONFIG_GAMEPORT is not set
# # Character devices # +CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y # CONFIG_LEGACY_PTYS is not set -# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m CONFIG_NOZOMI=m +# CONFIG_ISI is not set +CONFIG_N_HDLC=m CONFIG_N_GSM=m # CONFIG_TRACE_SINK is not set -CONFIG_DEVKMEM=y +# CONFIG_DEVKMEM is not set +# CONFIG_STALDRV is not set
# # Serial drivers # CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_FIX_EARLYCON_MEM=y +CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_PNP=y -CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_CS is not set CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y -CONFIG_SERIAL_8250_FOURPORT=m -CONFIG_SERIAL_8250_ACCENT=m -CONFIG_SERIAL_8250_BOCA=m -CONFIG_SERIAL_8250_EXAR_ST16C554=m -CONFIG_SERIAL_8250_HUB6=m +# CONFIG_SERIAL_8250_FOURPORT is not set +# CONFIG_SERIAL_8250_ACCENT is not set +# CONFIG_SERIAL_8250_BOCA is not set +# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set +# CONFIG_SERIAL_8250_HUB6 is not set CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y -# CONFIG_SERIAL_8250_MCA is not set +CONFIG_SERIAL_8250_DW=m
# # Non-8250 serial port support # -CONFIG_SERIAL_MFD_HSU=m -CONFIG_SERIAL_UARTLITE=m +# CONFIG_SERIAL_MFD_HSU is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -CONFIG_SERIAL_TIMBERDALE=m -CONFIG_SERIAL_ALTERA_JTAGUART=m -CONFIG_SERIAL_ALTERA_UART=m -CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 -CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 -CONFIG_SERIAL_PCH_UART=m -CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_SCCNXP=m +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_PCH_UART is not set +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +CONFIG_SERIAL_RP2=m +CONFIG_SERIAL_RP2_NR_UARTS=32 +# CONFIG_TTY_PRINTK is not set CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set +CONFIG_LP_CONSOLE=y CONFIG_PPDEV=m CONFIG_HVC_DRIVER=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_PANIC_EVENT=y -# CONFIG_IPMI_PANIC_STRING is not set +# CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_ATMEL=m CONFIG_HW_RANDOM_GEODE=m CONFIG_HW_RANDOM_VIA=m CONFIG_HW_RANDOM_VIRTIO=m -CONFIG_NVRAM=m +CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_NVRAM=y # CONFIG_DTLK is not set -# CONFIG_R3964 is not set +CONFIG_R3964=m # CONFIG_APPLICOM is not set -# CONFIG_SONYPI is not set +CONFIG_SONYPI=m
# # PCMCIA character devices # -CONFIG_SYNCLINK_CS=m +# CONFIG_SYNCLINK_CS is not set # CONFIG_CARDMAN_4000 is not set # CONFIG_CARDMAN_4040 is not set -CONFIG_IPWIRELESS=m +# CONFIG_IPWIRELESS is not set CONFIG_MWAVE=m -CONFIG_SCx200_GPIO=m +# CONFIG_SCx200_GPIO is not set CONFIG_PC8736x_GPIO=m CONFIG_NSC_GPIO=m -# CONFIG_RAW_DRIVER is not set +CONFIG_RAW_DRIVER=y +CONFIG_MAX_RAW_DEVS=8192 CONFIG_HPET=y -CONFIG_HPET_MMAP=y +# CONFIG_HPET_MMAP is not set CONFIG_HANGCHECK_TIMER=m # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y -# CONFIG_RAMOOPS is not set CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m -CONFIG_I2C_MUX=m - -# -# Multiplexer I2C Chip support -# -CONFIG_I2C_MUX_GPIO=m -CONFIG_I2C_MUX_PCA9541=m -CONFIG_I2C_MUX_PCA954x=m +# CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -2482,6 +2697,7 @@ CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=m CONFIG_I2C_ISCH=m +CONFIG_I2C_ISMT=m CONFIG_I2C_PIIX4=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_NFORCE2_S4985=m @@ -2499,16 +2715,18 @@ CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # +CONFIG_I2C_CBUS_GPIO=m CONFIG_I2C_DESIGNWARE_CORE=m -CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_GPIO=m -CONFIG_I2C_INTEL_MID=m -CONFIG_I2C_OCORES=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EG20T is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_INTEL_MID is not set +# CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m -CONFIG_I2C_XILINX=m -CONFIG_I2C_EG20T=m +# CONFIG_I2C_XILINX is not set
# # External I2C/SMBus adapter drivers @@ -2516,22 +2734,34 @@ CONFIG_I2C_EG20T=m CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_TAOS_EVM=m +# CONFIG_I2C_TAOS_EVM is not set CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIPERBOARD=m
# # Other I2C/SMBus bus drivers # -CONFIG_I2C_PCA_ISA=m -CONFIG_I2C_STUB=m -# CONFIG_SCx200_I2C is not set +# CONFIG_I2C_PCA_ISA is not set CONFIG_SCx200_ACB=m +# CONFIG_I2C_STUB is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_SPI is not set
# +# Qualcomm MSM SSBI bus support +# +# CONFIG_SSBI is not set +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y + +# +# HSI clients +# +CONFIG_HSI_CHAR=m + +# # PPS support # CONFIG_PPS=m @@ -2553,67 +2783,76 @@ CONFIG_PPS=m # PTP clock support # CONFIG_PTP_1588_CLOCK=m -CONFIG_DP83640_PHY=m + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_GPIO_DEVRES=y CONFIG_GPIOLIB=y +CONFIG_GPIO_ACPI=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_GENERIC=m -CONFIG_GPIO_MAX730X=m
# # Memory mapped GPIO drivers: # -CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_IT8761E is not set +CONFIG_GPIO_TS5500=m CONFIG_GPIO_SCH=m -CONFIG_GPIO_VX855=m +CONFIG_GPIO_ICH=m +# CONFIG_GPIO_VX855 is not set +# CONFIG_GPIO_LYNXPOINT is not set
# # I2C GPIO expanders: # -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m -CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_ADP5588=m +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_ADP5588 is not set
# # PCI GPIO expanders: # -CONFIG_GPIO_CS5535=m -# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_CS5535 is not set +# CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_LANGWELL is not set -CONFIG_GPIO_PCH=m -CONFIG_GPIO_ML_IOH=m -# CONFIG_GPIO_TIMBERDALE is not set -CONFIG_GPIO_RDC321X=m +# CONFIG_GPIO_PCH is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_RDC321X is not set
# # SPI GPIO expanders: # -CONFIG_GPIO_MCP23S08=m +# CONFIG_GPIO_MCP23S08 is not set
# # AC97 GPIO expanders: # -# CONFIG_GPIO_UCB1400 is not set
# # MODULbus GPIO expanders: # -CONFIG_GPIO_JANZ_TTL=m + +# +# USB GPIO expanders: +# +CONFIG_GPIO_VIPERBOARD=m CONFIG_W1=m CONFIG_W1_CON=y
# # 1-wire Bus Masters # -CONFIG_W1_MASTER_MATROX=m +# CONFIG_W1_MASTER_MATROX is not set CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m CONFIG_W1_MASTER_DS1WM=m -CONFIG_W1_MASTER_GPIO=m +# CONFIG_W1_MASTER_GPIO is not set
# # 1-wire Slaves @@ -2621,29 +2860,39 @@ CONFIG_W1_MASTER_GPIO=m CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set +CONFIG_GENERIC_ADC_BATTERY=m # CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set # CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_SBS is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set -CONFIG_HWMON=m +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GOLDFISH is not set +CONFIG_POWER_RESET=y +CONFIG_POWER_AVS=y +CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2660,6 +2909,8 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m @@ -2680,12 +2931,14 @@ CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_GPIO_FAN=m +# CONFIG_SENSORS_GPIO_FAN is not set +CONFIG_SENSORS_HIH6130=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m +# CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_JC42=m +# CONFIG_SENSORS_JC42 is not set CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM73=m @@ -2703,14 +2956,19 @@ CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m @@ -2719,20 +2977,20 @@ CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_LM25066=m -CONFIG_SENSORS_LTC2978=m +# CONFIG_SENSORS_LTC2978 is not set CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m -CONFIG_SENSORS_ZL6100=m +# CONFIG_SENSORS_ZL6100 is not set CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_SMM665=m +# CONFIG_SENSORS_SMM665 is not set CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m -CONFIG_SENSORS_EMC2103=m +# CONFIG_SENSORS_EMC2103 is not set CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m @@ -2743,6 +3001,8 @@ CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m @@ -2769,51 +3029,64 @@ CONFIG_SENSORS_APPLESMC=m CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +CONFIG_INTEL_POWERCLAMP=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y -# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_NOWAYOUT=y
# # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_ACQUIRE_WDT=m -CONFIG_ADVANTECH_WDT=m +CONFIG_RETU_WATCHDOG=m +# CONFIG_ACQUIRE_WDT is not set +# CONFIG_ADVANTECH_WDT is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m CONFIG_F71808E_WDT=m CONFIG_SP5100_TCO=m CONFIG_GEODE_WDT=m -CONFIG_SC520_WDT=m +# CONFIG_SC520_WDT is not set CONFIG_SBC_FITPC2_WATCHDOG=m -CONFIG_EUROTECH_WDT=m +# CONFIG_EUROTECH_WDT is not set CONFIG_IB700_WDT=m CONFIG_IBMASR=m -CONFIG_WAFER_WDT=m +# CONFIG_WAFER_WDT is not set CONFIG_I6300ESB_WDT=m +CONFIG_IE6XX_WDT=m CONFIG_ITCO_WDT=m # CONFIG_ITCO_VENDOR_SUPPORT is not set CONFIG_IT8712F_WDT=m CONFIG_IT87_WDT=m CONFIG_HP_WATCHDOG=m CONFIG_HPWDT_NMI_DECODING=y -CONFIG_SC1200_WDT=m -CONFIG_SCx200_WDT=m -CONFIG_PC87413_WDT=m +# CONFIG_SC1200_WDT is not set +# CONFIG_SCx200_WDT is not set +# CONFIG_PC87413_WDT is not set CONFIG_NV_TCO=m -CONFIG_60XX_WDT=m -CONFIG_SBC8360_WDT=m -CONFIG_SBC7240_WDT=m -CONFIG_CPU5_WDT=m +# CONFIG_60XX_WDT is not set +# CONFIG_SBC8360_WDT is not set +# CONFIG_SBC7240_WDT is not set +# CONFIG_CPU5_WDT is not set CONFIG_SMSC_SCH311X_WDT=m -CONFIG_SMSC37B787_WDT=m +# CONFIG_SMSC37B787_WDT is not set +CONFIG_VIA_WDT=m CONFIG_W83627HF_WDT=m CONFIG_W83697HF_WDT=m CONFIG_W83697UG_WDT=m CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m -CONFIG_SBC_EPX_C3_WATCHDOG=m +# CONFIG_SBC_EPX_C3_WATCHDOG is not set
# # ISA-based Watchdog Cards @@ -2839,397 +3112,629 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB=m CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y -# CONFIG_SSB_B43_PCI_BRIDGE is not set +CONFIG_SSB_B43_PCI_BRIDGE=y CONFIG_SSB_PCMCIAHOST_POSSIBLE=y CONFIG_SSB_PCMCIAHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y -# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_SILENT=y CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_GPIO=y CONFIG_BCMA_POSSIBLE=y
# # Broadcom specific AMBA # -CONFIG_BCMA=m -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -# CONFIG_BCMA_HOST_PCI is not set -# CONFIG_BCMA_DEBUG is not set +# CONFIG_BCMA is not set
# # Multifunction device drivers # CONFIG_MFD_CORE=m -CONFIG_MFD_SM501=m -# CONFIG_MFD_SM501_GPIO is not set -CONFIG_HTC_PASIC3=m -CONFIG_UCB1400_CORE=m -CONFIG_TPS6105X=m -CONFIG_TPS65010=m -CONFIG_TPS6507X=m -# CONFIG_MFD_TMIO is not set -CONFIG_MFD_WM8400=m -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_ABX500_CORE is not set CONFIG_MFD_CS5535=m -CONFIG_MFD_TIMBERDALE=m +# CONFIG_MFD_CROS_EC is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_HTC_PASIC3 is not set +CONFIG_LPC_ICH=m CONFIG_LPC_SCH=m -CONFIG_MFD_RDC321X=m -CONFIG_MFD_JANZ_CMODIO=m -CONFIG_MFD_VX855=m +# CONFIG_MFD_JANZ_CMODIO is not set +CONFIG_MFD_VIPERBOARD=m +CONFIG_MFD_RETU=m +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RDC321X is not set +CONFIG_MFD_RTSX_PCI=m +# CONFIG_MFD_SI476X_CORE is not set +CONFIG_MFD_SM501=m +CONFIG_MFD_SM501_GPIO=y +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TPS65912 is not set CONFIG_MFD_WL1273_CORE=m -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR_DUMMY is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=m -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -CONFIG_REGULATOR_GPIO=m -# CONFIG_REGULATOR_BQ24022 is not set -# CONFIG_REGULATOR_MAX1586 is not set -# CONFIG_REGULATOR_MAX8649 is not set -# CONFIG_REGULATOR_MAX8660 is not set -# CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_WM8400 is not set -# CONFIG_REGULATOR_PCF50633 is not set -# CONFIG_REGULATOR_LP3971 is not set -# CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS6105X is not set -# CONFIG_REGULATOR_TPS65023 is not set -# CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set +CONFIG_MFD_LM3533=m +# CONFIG_MFD_TIMBERDALE is not set +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_VX855=m +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_REGULATOR is not set CONFIG_MEDIA_SUPPORT=m
# # Multimedia core support # +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +# CONFIG_MEDIA_RADIO_SUPPORT is not set +CONFIG_MEDIA_RC_SUPPORT=y CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_VIDEO_V4L2=m +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m CONFIG_DVB_CORE=m CONFIG_DVB_NET=y -CONFIG_VIDEO_MEDIA=m +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y
# -# Multimedia drivers +# Media drivers # CONFIG_RC_CORE=m -CONFIG_LIRC=m CONFIG_RC_MAP=m -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_RC5_SZ_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_LIRC_CODEC is not set -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_ENE is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_ITE_CIR is not set -# CONFIG_IR_FINTEK is not set -# CONFIG_IR_NUVOTON is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_IR_WINBOND_CIR is not set -# CONFIG_RC_LOOPBACK is not set -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -CONFIG_VIDEO_IR_I2C=m - -# -# Encoders, decoders, sensors and other helper chips -# - -# -# Audio decoders, processors and mixers -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_AK881X is not set +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_RC_DEVICES=y +CONFIG_RC_ATI_REMOTE=m +CONFIG_IR_ENE=m +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_ITE_CIR=m +CONFIG_IR_FINTEK=m +CONFIG_IR_NUVOTON=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_WINBOND_CIR=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_USB_SN9C102=m + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160=m +CONFIG_VIDEO_STK1160_AC97=y + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m +CONFIG_MEDIA_PCI_SUPPORT=y + +# +# Media capture support +# +CONFIG_VIDEO_MEYE=m + +# +# Media capture/analog TV support +# +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_MXB=m + +# +# Media capture/analog/hybrid TV support +# +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_BT848=m +CONFIG_DVB_BT8XX=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7164=m + +# +# Media digital TV PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_DM1105=m +CONFIG_DVB_PT1=m +CONFIG_MANTIS_CORE=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_HOPPER=m +CONFIG_DVB_NGENE=m +CONFIG_DVB_DDBRIDGE=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_CAFE_CCIC=m +# CONFIG_VIDEO_VIA_CAMERA is not set +CONFIG_VIDEO_TIMBERDALE=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_VIDEO_SH_MOBILE_CSI2=m +CONFIG_VIDEO_SH_MOBILE_CEU=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m +CONFIG_VIDEO_SH_VEU=m +# CONFIG_V4L_TEST_DRIVERS is not set
# -# Camera sensor devices +# Supported MMC/SDIO adapters # -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_S5K6AA is not set +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_MEDIA_PARPORT_SUPPORT is not set
# -# Flash devices -# -# CONFIG_VIDEO_ADP1653 is not set - -# -# Video improvement chips +# Supported FireWire (IEEE 1394) Adapters # -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_MEDIA_COMMON_OPTIONS=y
# -# Miscelaneous helper chips +# common driver options # -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_PMS is not set -# CONFIG_VIDEO_BWQCAM is not set -# CONFIG_VIDEO_CQCAM is not set -# CONFIG_VIDEO_W9966 is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_MEYE is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_MXB is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_TIMBERDALE is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_CX23885 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_IVTV is not set -# CONFIG_VIDEO_CX18 is not set -# CONFIG_VIDEO_SAA7164 is not set -# CONFIG_VIDEO_CAFE_CCIC is not set -# CONFIG_VIDEO_VIA_CAMERA is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_TLG2300 is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_TM6000 is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_CADET is not set -# CONFIG_RADIO_RTRACK is not set -# CONFIG_RADIO_RTRACK2 is not set -# CONFIG_RADIO_AZTECH is not set -# CONFIG_RADIO_GEMTEK is not set -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MIROPCM20 is not set -# CONFIG_RADIO_SF16FMI is not set -# CONFIG_RADIO_SF16FMR2 is not set -# CONFIG_RADIO_TERRATEC is not set -# CONFIG_RADIO_TRUST is not set -# CONFIG_RADIO_TYPHOON is not set -# CONFIG_RADIO_ZOLTRIX is not set -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_TIMBERDALE is not set -# CONFIG_RADIO_WL1273 is not set - -# -# Texas Instruments WL128x FM driver (ST based) -# -# CONFIG_RADIO_WL128X is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set
# -# Supported SAA7146 based PCI Adapters +# Media ancillary drivers (tuners, sensors, i2c, frontends) # -# CONFIG_TTPCI_EEPROM is not set -# CONFIG_DVB_AV7110 is not set -# CONFIG_DVB_BUDGET_CORE is not set +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=m
# -# Supported USB Adapters +# Audio decoders, processors and mixers # -# CONFIG_DVB_USB is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set -# CONFIG_SMS_SIANO_MDTV is not set +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m
# -# Supported FlexCopII (B2C2) Adapters +# RDS decoders # -# CONFIG_DVB_B2C2_FLEXCOP is not set +CONFIG_VIDEO_SAA6588=m
# -# Supported BT878 Adapters +# Video decoders # +CONFIG_VIDEO_ADV7180=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m
# -# Supported Pluto2 Adapters +# Video and audio decoders # -# CONFIG_DVB_PLUTO2 is not set +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_CX25840=m
# -# Supported SDMC DM1105 Adapters +# Video encoders # -# CONFIG_DVB_DM1105 is not set +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m
# -# Supported FireWire (IEEE 1394) Adapters +# Camera sensor devices # -# CONFIG_DVB_FIREDTV is not set +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_MT9V011=m
# -# Supported Earthsoft PT1 Adapters +# Flash devices # -# CONFIG_DVB_PT1 is not set
# -# Supported Mantis Adapters +# Video improvement chips # -# CONFIG_MANTIS_CORE is not set +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m
# -# Supported nGene Adapters +# Miscelaneous helper chips # -# CONFIG_DVB_NGENE is not set +CONFIG_VIDEO_M52790=m
# -# Supported ddbridge ('Octopus') Adapters +# Sensors used on soc_camera driver # -# CONFIG_DVB_DDBRIDGE is not set
# -# Supported DVB Frontends +# soc_camera sensor drivers # -# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m
# # Multistandard (satellite) frontends # +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m
# # Multistandard (cable + terrestrial) frontends # +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m
# # DVB-S (satellite) frontends # +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_M88DC2800=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m +CONFIG_DVB_TDA10071=m
# # DVB-T (terrestrial) frontends # +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m
# # DVB-C (cable) frontends # +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m
# # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m
# # ISDB-T (terrestrial) frontends # +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m
# # Digital terrestrial only tuners/PLL # +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m
# # SEC control devices for DVB-S # +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m
# # Tools to develop new frontends @@ -3239,27 +3744,40 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # # Graphics support # -CONFIG_AGP=m -CONFIG_AGP_ALI=m -CONFIG_AGP_ATI=m -CONFIG_AGP_AMD=m -CONFIG_AGP_AMD64=m -CONFIG_AGP_INTEL=m -CONFIG_AGP_NVIDIA=m -CONFIG_AGP_SIS=m -CONFIG_AGP_SWORKS=m -CONFIG_AGP_VIA=m -CONFIG_AGP_EFFICEON=m +CONFIG_AGP=y +# CONFIG_AGP_ALI is not set +# CONFIG_AGP_ATI is not set +# CONFIG_AGP_AMD is not set +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=y +# CONFIG_AGP_NVIDIA is not set +CONFIG_AGP_SIS=y +# CONFIG_AGP_SWORKS is not set +CONFIG_AGP_VIA=y +# CONFIG_AGP_EFFICEON is not set CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 -# CONFIG_VGA_SWITCHEROO is not set +CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m +CONFIG_DRM_USB=m CONFIG_DRM_KMS_HELPER=m +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set CONFIG_DRM_TTM=m + +# +# I2C encoder or helper chips +# +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m CONFIG_DRM_TDFX=m CONFIG_DRM_R128=m CONFIG_DRM_RADEON=m -CONFIG_DRM_RADEON_KMS=y +# CONFIG_DRM_RADEON_UMS is not set +CONFIG_DRM_NOUVEAU=m +CONFIG_NOUVEAU_DEBUG=5 +CONFIG_NOUVEAU_DEBUG_DEFAULT=3 +CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_I810=m CONFIG_DRM_I915=m CONFIG_DRM_I915_KMS=y @@ -3268,9 +3786,18 @@ CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m CONFIG_DRM_VMWGFX=m -CONFIG_STUB_POULSBO=m +# CONFIG_DRM_VMWGFX_FBCON is not set +CONFIG_DRM_GMA500=m +CONFIG_DRM_GMA600=y +CONFIG_DRM_GMA3600=y +CONFIG_DRM_UDL=m +CONFIG_DRM_AST=m +CONFIG_DRM_MGAG200=m +CONFIG_DRM_CIRRUS_QEMU=m +CONFIG_DRM_QXL=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_HDMI=y CONFIG_FB=y CONFIG_FIRMWARE_EDID=y CONFIG_FB_DDC=m @@ -3284,7 +3811,6 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m -# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=m # CONFIG_FB_MACMODES is not set @@ -3295,45 +3821,38 @@ CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # -CONFIG_FB_CIRRUS=m +# CONFIG_FB_CIRRUS is not set CONFIG_FB_PM2=m -CONFIG_FB_PM2_FIFO_DISCONNECT=y +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set CONFIG_FB_CYBER2000=m CONFIG_FB_CYBER2000_DDC=y -# CONFIG_FB_ARC is not set -CONFIG_FB_ASILIANT=y +CONFIG_FB_ARC=m +# CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set -# CONFIG_FB_VGA16 is not set -CONFIG_FB_UVESA=m +CONFIG_FB_VGA16=m +# CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y +CONFIG_FB_EFI=y # CONFIG_FB_N411 is not set -# CONFIG_FB_HGA is not set +CONFIG_FB_HGA=m # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_NVIDIA=m -CONFIG_FB_NVIDIA_I2C=y -# CONFIG_FB_NVIDIA_DEBUG is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y +# CONFIG_FB_NVIDIA is not set CONFIG_FB_RIVA=m CONFIG_FB_RIVA_I2C=y # CONFIG_FB_RIVA_DEBUG is not set CONFIG_FB_RIVA_BACKLIGHT=y -CONFIG_FB_I810=m -CONFIG_FB_I810_GTF=y -CONFIG_FB_I810_I2C=y +CONFIG_FB_I740=m +# CONFIG_FB_I810 is not set CONFIG_FB_LE80578=m CONFIG_FB_CARILLO_RANCH=m +# CONFIG_FB_INTEL is not set CONFIG_FB_MATROX=m CONFIG_FB_MATROX_MILLENIUM=y CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=m -CONFIG_FB_MATROX_MAVEN=m -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -CONFIG_FB_ATY128=m -CONFIG_FB_ATY128_BACKLIGHT=y +# CONFIG_FB_MATROX_G is not set +# CONFIG_FB_MATROX_I2C is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set CONFIG_FB_ATY=m CONFIG_FB_ATY_CT=y # CONFIG_FB_ATY_GENERIC_LCD is not set @@ -3344,17 +3863,13 @@ CONFIG_FB_S3_DDC=y CONFIG_FB_SAVAGE=m CONFIG_FB_SAVAGE_I2C=y CONFIG_FB_SAVAGE_ACCEL=y -CONFIG_FB_SIS=m -CONFIG_FB_SIS_300=y -CONFIG_FB_SIS_315=y +# CONFIG_FB_SIS is not set CONFIG_FB_VIA=m # CONFIG_FB_VIA_DIRECT_PROCFS is not set # CONFIG_FB_VIA_X_COMPATIBILITY is not set CONFIG_FB_NEOMAGIC=m CONFIG_FB_KYRO=m -CONFIG_FB_3DFX=m -CONFIG_FB_3DFX_ACCEL=y -CONFIG_FB_3DFX_I2C=y +# CONFIG_FB_3DFX is not set CONFIG_FB_VOODOO1=m CONFIG_FB_VT8623=m CONFIG_FB_TRIDENT=m @@ -3365,43 +3880,38 @@ CONFIG_FB_GEODE=y CONFIG_FB_GEODE_LX=m CONFIG_FB_GEODE_GX=m CONFIG_FB_GEODE_GX1=m -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SM501 is not set CONFIG_FB_SMSCUFX=m -# CONFIG_FB_UDL is not set +CONFIG_FB_UDL=m +# CONFIG_FB_GOLDFISH is not set # CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m +# CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +# CONFIG_EXYNOS_VIDEO is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_PROGEAR=m -CONFIG_BACKLIGHT_CARILLO_RANCH=m +# CONFIG_BACKLIGHT_GENERIC is not set +# CONFIG_BACKLIGHT_LM3533 is not set +# CONFIG_BACKLIGHT_CARILLO_RANCH is not set CONFIG_BACKLIGHT_APPLE=m -CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m -CONFIG_BACKLIGHT_PCF50633=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# +# CONFIG_BACKLIGHT_SAHARA is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3630 is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_LP855X is not set
# # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set -# CONFIG_MDA_CONSOLE is not set +CONFIG_MDA_CONSOLE=m CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y @@ -3410,8 +3920,8 @@ CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set CONFIG_LOGO_LINUX_CLUT224=y CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y @@ -3434,9 +3944,12 @@ CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_VERBOSE is not set +CONFIG_SND_PCM_XRUN_DEBUG=y CONFIG_SND_VMASTER=y +CONFIG_SND_KCTL_JACK=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_RAWMIDI_SEQ=m CONFIG_SND_OPL3_LIB_SEQ=m @@ -3449,7 +3962,7 @@ CONFIG_SND_OPL4_LIB=m CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y -# CONFIG_SND_PCSP is not set +CONFIG_SND_PCSP=m CONFIG_SND_DUMMY=m CONFIG_SND_ALOOP=m CONFIG_SND_VIRMIDI=m @@ -3459,7 +3972,7 @@ CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m CONFIG_SND_AC97_POWER_SAVE=y -CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 CONFIG_SND_WSS_LIB=m CONFIG_SND_SB_COMMON=m CONFIG_SND_SB8_DSP=m @@ -3472,6 +3985,7 @@ CONFIG_SND_ALS100=m CONFIG_SND_AZT1605=m CONFIG_SND_AZT2316=m CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8328=m CONFIG_SND_CMI8330=m CONFIG_SND_CS4231=m CONFIG_SND_CS4236=m @@ -3509,7 +4023,7 @@ CONFIG_SND_ATIIXP_MODEM=m CONFIG_SND_AU8810=m CONFIG_SND_AU8820=m CONFIG_SND_AU8830=m -CONFIG_SND_AW2=m +# CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -3552,11 +4066,10 @@ CONFIG_SND_HDA_PREALLOC_SIZE=64 CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y -CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_BEEP_MODE=1 CONFIG_SND_HDA_INPUT_JACK=y -CONFIG_SND_HDA_PATCH_LOADER=y +# CONFIG_SND_HDA_PATCH_LOADER is not set CONFIG_SND_HDA_CODEC_REALTEK=y -CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y @@ -3565,11 +4078,11 @@ CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y CONFIG_SND_HDA_CODEC_CA0132=y +# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y -CONFIG_SND_HDA_POWER_SAVE=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m CONFIG_SND_ICE1712=m @@ -3588,7 +4101,7 @@ CONFIG_SND_RIPTIDE=m CONFIG_SND_RME32=m CONFIG_SND_RME96=m CONFIG_SND_RME9652=m -CONFIG_SND_SIS7019=m +# CONFIG_SND_SIS7019 is not set CONFIG_SND_SONICVIBES=m CONFIG_SND_TRIDENT=m CONFIG_SND_VIA82XX=m @@ -3607,103 +4120,110 @@ CONFIG_SND_USB_6FIRE=m CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=m CONFIG_SND_FIREWIRE_SPEAKERS=m -CONFIG_SND_ISIGHT=m +# CONFIG_SND_ISIGHT is not set +# CONFIG_SND_SCS1X is not set CONFIG_SND_PCMCIA=y -CONFIG_SND_VXPOCKET=m -CONFIG_SND_PDAUDIOCF=m +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set
# -# USB Input Devices +# HID support # -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y
# # Special HID drivers # -CONFIG_HID_A4TECH=m -CONFIG_HID_ACRUX=m -# CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_PRODIKEYS=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -# CONFIG_DRAGONRISE_FF is not set +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_PRODIKEYS is not set +CONFIG_HID_CYPRESS=y +# CONFIG_HID_DRAGONRISE is not set # CONFIG_HID_EMS_FF is not set -CONFIG_HID_ELECOM=m -CONFIG_HID_EZKEY=m -CONFIG_HID_HOLTEK=m -# CONFIG_HOLTEK_FF is not set +# CONFIG_HID_ELECOM is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_HOLTEK is not set CONFIG_HID_KEYTOUCH=m -CONFIG_HID_KYE=m -CONFIG_HID_UCLOGIC=m -CONFIG_HID_WALTOP=m +CONFIG_HID_KYE=y +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set CONFIG_HID_GYRATION=m +# CONFIG_HID_ICADE is not set CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m +CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=m -CONFIG_HID_LOGITECH=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set -CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NTRIG=m +# CONFIG_HID_MAGICMOUSE is not set +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -# CONFIG_PANTHERLORD_FF is not set +# CONFIG_HID_PANTHERLORD is not set CONFIG_HID_PETALYNX=m CONFIG_HID_PICOLCD=m CONFIG_HID_PICOLCD_FB=y CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y -CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m +CONFIG_HID_PICOLCD_CIR=y +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_PS3REMOTE is not set CONFIG_HID_ROCCAT=m -CONFIG_HID_ROCCAT_COMMON=m -CONFIG_HID_ROCCAT_ARVO=m -CONFIG_HID_ROCCAT_KONE=m -CONFIG_HID_ROCCAT_KONEPLUS=m -CONFIG_HID_ROCCAT_KOVAPLUS=m -CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m +# CONFIG_HID_SONY is not set CONFIG_HID_SPEEDLINK=m +# CONFIG_HID_STEELSERIES is not set CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -# CONFIG_GREENASIA_FF is not set -CONFIG_HID_SMARTJOYPLUS=m -# CONFIG_SMARTJOYPLUS_FF is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +CONFIG_HID_TIVO=m CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -# CONFIG_THRUSTMASTER_FF is not set -CONFIG_HID_WACOM=m -# CONFIG_HID_WACOM_POWER_SUPPLY is not set -CONFIG_HID_WIIMOTE=m -CONFIG_HID_ZEROPLUS=m -# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_THINGM=m +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_ZEROPLUS is not set CONFIG_HID_ZYDACRON=m -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_HID_SENSOR_HUB=m + +# +# USB HID support +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +CONFIG_I2C_HID=m CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -3711,14 +4231,12 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set -# CONFIG_USB_MON is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_MON=m CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_WUSB_CBAF_DEBUG is not set @@ -3728,26 +4246,31 @@ CONFIG_USB_WUSB_CBAF=m # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=m # CONFIG_USB_XHCI_HCD_DEBUGGING is not set CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y -CONFIG_USB_U132_HCD=m +# CONFIG_USB_U132_HCD is not set CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set +CONFIG_USB_SL811_HCD_ISO=y # CONFIG_USB_SL811_CS is not set -CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m +CONFIG_USB_HCD_SSB=m
# # USB Device Class drivers @@ -3764,7 +4287,7 @@ CONFIG_USB_TMC=m # # also be needed; see USB_STORAGE Help for more info # -CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y @@ -3780,20 +4303,24 @@ CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m -# CONFIG_USB_LIBUSUAL is not set
# # USB Imaging devices # -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_DWC3=m +CONFIG_USB_DWC3_HOST=y +# CONFIG_USB_DWC3_DEBUG is not set +CONFIG_USB_CHIPIDEA=m +# CONFIG_USB_CHIPIDEA_HOST is not set +# CONFIG_USB_CHIPIDEA_DEBUG is not set
# # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m @@ -3803,7 +4330,7 @@ CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m +# CONFIG_USB_SERIAL_EMPEG is not set CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_FUNSOFT=m CONFIG_USB_SERIAL_VISOR=m @@ -3811,16 +4338,18 @@ CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_F81232=m +# CONFIG_USB_SERIAL_GARMIN is not set CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m # CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set +CONFIG_USB_SERIAL_KLSI=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_METRO is not set CONFIG_USB_SERIAL_MOS7720=m -# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set +CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set @@ -3829,22 +4358,25 @@ CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set CONFIG_USB_SERIAL_SIEMENS_MPI=m CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m -CONFIG_USB_SERIAL_ZIO=m +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +CONFIG_USB_SERIAL_ZTE=m CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m # CONFIG_USB_SERIAL_DEBUG is not set
# @@ -3852,14 +4384,14 @@ CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set +CONFIG_USB_ADUTUX=m CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set # CONFIG_USB_IDMOUSE is not set CONFIG_USB_FTDI_ELAN=m # CONFIG_USB_APPLEDISPLAY is not set @@ -3869,21 +4401,17 @@ CONFIG_USB_SISUSBVGA_CON=y # CONFIG_USB_TRANCEVIBRATOR is not set CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set -CONFIG_USB_ISIGHTFW=m +# CONFIG_USB_ISIGHTFW is not set CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HSIC_USB3503=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m +# CONFIG_USB_PHY is not set # CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m @@ -3899,23 +4427,27 @@ CONFIG_MMC=m CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set
# # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -# CONFIG_MMC_RICOH_MMC is not set +CONFIG_MMC_RICOH_MMC=y +CONFIG_MMC_SDHCI_ACPI=m CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_PXAV2=m CONFIG_MMC_WBSD=m CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_SDRICOH_CS=m +# CONFIG_MMC_SDRICOH_CS is not set CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m +CONFIG_MMC_REALTEK_PCI=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set
@@ -3931,6 +4463,7 @@ CONFIG_MSPRO_BLOCK=m CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y
@@ -3938,43 +4471,73 @@ CONFIG_LEDS_CLASS=y # LED drivers # CONFIG_LEDS_LM3530=m -CONFIG_LEDS_NET48XX=m -CONFIG_LEDS_NET5501=m -CONFIG_LEDS_WRAP=m -CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_PCA9532_GPIO=y -CONFIG_LEDS_GPIO=m +CONFIG_LEDS_LM3533=m +CONFIG_LEDS_LM3642=m +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_GPIO is not set CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP55XX_COMMON=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LP5562=m CONFIG_LEDS_CLEVO_MAIL=m -CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_REGULATOR=m -CONFIG_LEDS_BD2802=m +# CONFIG_LEDS_PCA955X is not set +CONFIG_LEDS_PCA9633=m +# CONFIG_LEDS_BD2802 is not set CONFIG_LEDS_INTEL_SS4200=m CONFIG_LEDS_LT3593=m CONFIG_LEDS_DELL_NETBOOKS=m -CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_BLINKM=m
# # LED Triggers # +CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
# # iptables trigger is under Netfilter config (LED target) # +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set -# CONFIG_EDAC is not set +CONFIG_EDAC=y +# CONFIG_EDAC_LEGACY_SYSFS is not set +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_MCE_INJ=m +CONFIG_EDAC_MM_EDAC=m +# CONFIG_EDAC_AMD76X is not set +# CONFIG_EDAC_E7XXX is not set +CONFIG_EDAC_E752X=m +# CONFIG_EDAC_I82875P is not set +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I3200=m +CONFIG_EDAC_X38=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I7CORE=m +# CONFIG_EDAC_I82860 is not set +# CONFIG_EDAC_R82600 is not set +CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m +CONFIG_EDAC_I7300=m CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_SYSTOHC=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set
@@ -3999,12 +4562,13 @@ CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m -CONFIG_RTC_DRV_S35390A=m +# CONFIG_RTC_DRV_S35390A is not set CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m @@ -4024,55 +4588,71 @@ CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m +# CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_DS2404=m
# # on-CPU RTC drivers # + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_HID_SENSOR_TIME=m CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set
# # DMA Devices # -CONFIG_INTEL_MID_DMAC=m +# CONFIG_INTEL_MID_DMAC is not set CONFIG_INTEL_IOATDMA=m +CONFIG_DW_DMAC=m +# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set CONFIG_TIMB_DMA=m CONFIG_PCH_DMA=m CONFIG_DMA_ENGINE=y +CONFIG_DMA_ACPI=y
# # DMA Clients # CONFIG_NET_DMA=y CONFIG_ASYNC_TX_DMA=y -CONFIG_DMATEST=m +# CONFIG_DMATEST is not set CONFIG_DCA=m # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m -CONFIG_UIO_CIF=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m +# CONFIG_UIO_CIF is not set +# CONFIG_UIO_PDRV is not set +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m -CONFIG_UIO_NETX=m +# CONFIG_UIO_NETX is not set +# CONFIG_VFIO is not set +CONFIG_VIRT_DRIVERS=y CONFIG_VIRTIO=y -CONFIG_VIRTIO_RING=y
# # Virtio drivers # -CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_MMIO=m +# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set + +# +# Microsoft Hyper-V guest support +# +# CONFIG_HYPERV is not set CONFIG_STAGING=y CONFIG_ET131X=m CONFIG_SLICOSS=m @@ -4082,48 +4662,99 @@ CONFIG_USBIP_HOST=m # CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set +CONFIG_ECHO=m # CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set # CONFIG_R8187SE is not set # CONFIG_RTL8192U is not set -# CONFIG_RTL8192E is not set +# CONFIG_RTLLIB is not set # CONFIG_R8712U is not set -# CONFIG_RTS_PSTOR is not set # CONFIG_RTS5139 is not set # CONFIG_TRANZPORT is not set -# CONFIG_POHMELFS is not set -CONFIG_IDE_PHISON=m +# CONFIG_IDE_PHISON is not set # CONFIG_LINE6_USB is not set -CONFIG_DRM_NOUVEAU=m -CONFIG_DRM_NOUVEAU_BACKLIGHT=y - -# -# I2C encoder or helper chips -# -# CONFIG_DRM_I2C_CH7006 is not set -# CONFIG_DRM_I2C_SIL164 is not set # CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_HYPERV_STORAGE is not set -CONFIG_HYPERV_NET=m -CONFIG_HYPERV_MOUSE=m -# CONFIG_VME_BUS is not set # CONFIG_DX_SEP is not set -# CONFIG_IIO is not set -# CONFIG_XVMALLOC is not set -# CONFIG_ZRAM is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# + +# +# Analog to digital converters +# +# CONFIG_AD7291 is not set +# CONFIG_AD7606 is not set +# CONFIG_AD799X is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# + +# +# Digital gyroscope sensors +# + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +# +# Magnetometer sensors +# +# CONFIG_SENSORS_HMC5843 is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# + +# +# Triggers - standalone +# +# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set +# CONFIG_IIO_GPIO_TRIGGER is not set +# CONFIG_IIO_SYSFS_TRIGGER is not set +# CONFIG_IIO_SIMPLE_DUMMY is not set +# CONFIG_ZSMALLOC is not set # CONFIG_WLAGS49_H2 is not set # CONFIG_WLAGS49_H25 is not set # CONFIG_FB_SM7XX is not set # CONFIG_CRYSTALHD is not set -# CONFIG_CXT1E1 is not set # CONFIG_FB_XGI is not set # CONFIG_ACPI_QUICKSTART is not set -# CONFIG_SBE_2T3E3 is not set # CONFIG_USB_ENESTORAGE is not set # CONFIG_BCM_WIMAX is not set # CONFIG_FT1000 is not set @@ -4134,17 +4765,32 @@ CONFIG_HYPERV_MOUSE=m # CONFIG_SPEAKUP is not set # CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set # CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set -# CONFIG_DRM_PSB is not set -CONFIG_INTEL_MEI=m # CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_CSR_WIFI is not set +# CONFIG_NET_VENDOR_SILICOM is not set +# CONFIG_CED1401 is not set +# CONFIG_DGRP is not set +# CONFIG_FIREWIRE_SERIAL is not set +# CONFIG_USB_DWC2 is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m CONFIG_ASUS_LAPTOP=m +CONFIG_CHROMEOS_LAPTOP=m +CONFIG_DELL_LAPTOP=m CONFIG_DELL_WMI=m CONFIG_DELL_WMI_AIO=m CONFIG_FUJITSU_LAPTOP=m -CONFIG_FUJITSU_LAPTOP_DEBUG=y +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +# CONFIG_FUJITSU_TABLET is not set +CONFIG_AMILO_RFKILL=m CONFIG_TC1100_WMI=m CONFIG_HP_ACCEL=m CONFIG_HP_WMI=m @@ -4152,7 +4798,7 @@ CONFIG_MSI_LAPTOP=m CONFIG_PANASONIC_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m -# CONFIG_SONYPI_COMPAT is not set +CONFIG_SONYPI_COMPAT=y CONFIG_IDEAPAD_LAPTOP=m CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y @@ -4162,21 +4808,34 @@ CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y CONFIG_SENSORS_HDAPS=m -CONFIG_INTEL_MENLOW=m +# CONFIG_INTEL_MENLOW is not set +CONFIG_EEEPC_LAPTOP=m +CONFIG_ASUS_WMI=m +CONFIG_ASUS_NB_WMI=m +CONFIG_EEEPC_WMI=m CONFIG_ACPI_WMI=m CONFIG_MSI_WMI=m -CONFIG_ACPI_ASUS=m CONFIG_TOPSTAR_LAPTOP=m CONFIG_ACPI_TOSHIBA=m CONFIG_TOSHIBA_BT_RFKILL=m CONFIG_ACPI_CMPC=m CONFIG_INTEL_IPS=m -CONFIG_IBM_RTL=m -CONFIG_XO15_EBOOK=m +# CONFIG_IBM_RTL is not set +# CONFIG_XO15_EBOOK is not set CONFIG_SAMSUNG_LAPTOP=m CONFIG_MXM_WMI=m CONFIG_INTEL_OAKTRAIL=m CONFIG_SAMSUNG_Q10=m +# CONFIG_APPLE_GMUX is not set +CONFIG_PVPANIC=m +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_DEBUG is not set
# # Hardware Spinlock drivers @@ -4185,55 +4844,143 @@ CONFIG_CLKSRC_I8253=y CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y +CONFIG_MAILBOX=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y -CONFIG_INTEL_IOMMU_DEFAULT_ON=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set CONFIG_INTEL_IOMMU_FLOPPY_WA=y -CONFIG_VIRT_DRIVERS=y -CONFIG_HYPERV=m -CONFIG_HYPERV_UTILS=m -CONFIG_PM_DEVFREQ=y
# -# DEVFREQ Governors +# Remoteproc drivers +# +# CONFIG_STE_MODEM_RPROC is not set + +# +# Rpmsg drivers # -CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y -CONFIG_DEVFREQ_GOV_PERFORMANCE=y -CONFIG_DEVFREQ_GOV_POWERSAVE=y -CONFIG_DEVFREQ_GOV_USERSPACE=y +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +CONFIG_MEMORY=y +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# -# DEVFREQ Drivers +# Accelerometers # +# CONFIG_HID_SENSOR_ACCEL_3D is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set + +# +# Analog to digital converters +# +# CONFIG_MAX1363 is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_VIPERBOARD_ADC is not set + +# +# Amplifiers +# + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5446 is not set +# CONFIG_MAX517 is not set +# CONFIG_MCP4725 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# + +# +# Digital gyroscope sensors +# +# CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Inertial measurement units +# +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_SENSORS_LM3533 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_VCNL4000 is not set +# CONFIG_HID_SENSOR_ALS is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_VME_BUS is not set +# CONFIG_PWM is not set +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set
# # Firmware Drivers # -# CONFIG_EDD is not set +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y -# CONFIG_DELL_RBU is not set -# CONFIG_DCDBAS is not set +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m CONFIG_DMIID=y -CONFIG_DMI_SYSFS=m +CONFIG_DMI_SYSFS=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m -CONFIG_SIGMA=m # CONFIG_GOOGLE_FIRMWARE is not set
# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_VARS=y +CONFIG_EFI_VARS_PSTORE=y +# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set + +# # File systems # +CONFIG_DCACHE_WORD_ACCESS=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y -CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set @@ -4241,43 +4988,47 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y +# CONFIG_JFS_FS is not set CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set # CONFIG_NILFS2_FS is not set CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=m +CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_PRINT_QUOTA_WARNING is not set # CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m +CONFIG_QUOTA_TREE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y -CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m +CONFIG_GENERIC_ACL=y
# # Caches # CONFIG_FSCACHE=m -# CONFIG_FSCACHE_STATS is not set +CONFIG_FSCACHE_STATS=y # CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set # CONFIG_FSCACHE_OBJECT_LIST is not set @@ -4288,7 +5039,7 @@ CONFIG_CACHEFILES=m # # CD-ROM/DVD Filesystems # -CONFIG_ISO9660_FS=m +CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m @@ -4298,10 +5049,10 @@ CONFIG_UDF_NLS=y # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m -# CONFIG_MSDOS_FS is not set +CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" # CONFIG_NTFS_FS is not set
# @@ -4310,39 +5061,22 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_PROC_FS=y # CONFIG_PROC_KCORE is not set CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set +CONFIG_CONFIGFS_FS=m CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -CONFIG_ECRYPT_FS=m +# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -# CONFIG_UBIFS_FS is not set # CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set @@ -4351,113 +5085,117 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set -# CONFIG_PSTORE is not set +CONFIG_PSTORE=y +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_FTRACE is not set +# CONFIG_PSTORE_RAM is not set # CONFIG_SYSV_FS is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set +# CONFIG_UFS_FS is not set # CONFIG_EXOFS_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_EFIVAR_FS=m +CONFIG_ORE=m CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m -CONFIG_NFS_V3=y +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_V4_1 is not set -# CONFIG_NFS_FSCACHE is not set +CONFIG_NFS_V4=m +# CONFIG_NFS_SWAP is not set +CONFIG_NFS_V4_1=y +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_OBJLAYOUT=m +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="ipfire.org" +CONFIG_NFS_FSCACHE=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y -# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y +# CONFIG_CIFS_STATS2 is not set # CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_UPCALL is not set CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_FSCACHE is not set CONFIG_CIFS_ACL=y +# CONFIG_CIFS_DEBUG is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_FSCACHE=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y -CONFIG_NLS_DEFAULT="cp850" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y +CONFIG_NLS_DEFAULT="utf-8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set
# # Kernel hacking @@ -4467,27 +5205,32 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 +CONFIG_FRAME_WARN=2048 # CONFIG_MAGIC_SYSRQ is not set CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_FS=y +CONFIG_HEADERS_CHECK=y # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_LOCKUP_DETECTOR is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +CONFIG_DEBUG_SHIRQ=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_HARDLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set +CONFIG_SCHEDSTATS=y CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set @@ -4495,10 +5238,10 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set -# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set @@ -4508,38 +5251,79 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set +CONFIG_DEBUG_LIST=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set +CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set + +# +# RCU Debugging +# +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_TRACE is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +# CONFIG_LKDTM is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set -# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_SCHED_TRACER=y +CONFIG_FTRACE_SYSCALLS=y +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +CONFIG_STACK_TRACER=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_UPROBE_EVENT is not set +# CONFIG_PROBE_EVENTS is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_MMIOTRACE is not set +CONFIG_RING_BUFFER_BENCHMARK=m +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +CONFIG_RBTREE_TEST=m +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_BUILD_DOCSRC is not set +CONFIG_DYNAMIC_DEBUG=y # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set CONFIG_ASYNC_RAID6_TEST=m @@ -4547,19 +5331,17 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y -# CONFIG_KMEMCHECK is not set +# CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set -# CONFIG_STRICT_DEVMEM is not set -CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_STRICT_DEVMEM=y +# CONFIG_X86_VERBOSE_BOOTUP is not set CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set -# CONFIG_DEBUG_STACKOVERFLOW is not set +CONFIG_DEBUG_STACKOVERFLOW=y # CONFIG_X86_PTDUMP is not set -CONFIG_DEBUG_RODATA=y -CONFIG_DEBUG_RODATA_TEST=y -# CONFIG_DEBUG_SET_MODULE_RONX is not set -# CONFIG_DEBUG_NX_TEST is not set +CONFIG_DEBUG_NX_TEST=m CONFIG_DOUBLEFAULT=y +# CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 @@ -4571,20 +5353,189 @@ CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 +CONFIG_DEBUG_BOOT_PARAMS=y # CONFIG_CPA_DEBUG is not set -# CONFIG_OPTIMIZE_INLINING is not set -# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set +CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_NMI_SELFTEST is not set
# # Security options # + +# +# Grsecurity +# +CONFIG_ARCH_TRACK_EXEC_LIMIT=y +CONFIG_PAX_USERCOPY_SLABS=y +CONFIG_GRKERNSEC=y +# CONFIG_GRKERNSEC_CONFIG_AUTO is not set +CONFIG_GRKERNSEC_CONFIG_CUSTOM=y + +# +# Customize Configuration +# + +# +# PaX +# +CONFIG_PAX=y + +# +# PaX Control +# +# CONFIG_PAX_SOFTMODE is not set +CONFIG_PAX_EI_PAX=y +CONFIG_PAX_PT_PAX_FLAGS=y +# CONFIG_PAX_XATTR_PAX_FLAGS is not set +# CONFIG_PAX_NO_ACL_FLAGS is not set +CONFIG_PAX_HAVE_ACL_FLAGS=y +# CONFIG_PAX_HOOK_ACL_FLAGS is not set + +# +# Non-executable pages +# +CONFIG_PAX_NOEXEC=y +CONFIG_PAX_PAGEEXEC=y +CONFIG_PAX_SEGMEXEC=y +CONFIG_PAX_EMUTRAMP=y +CONFIG_PAX_MPROTECT=y +# CONFIG_PAX_MPROTECT_COMPAT is not set +CONFIG_PAX_ELFRELOCS=y +# CONFIG_PAX_KERNEXEC is not set +CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="" + +# +# Address Space Layout Randomization +# +CONFIG_PAX_ASLR=y +CONFIG_PAX_RANDKSTACK=y +CONFIG_PAX_RANDUSTACK=y +CONFIG_PAX_RANDMMAP=y + +# +# Miscellaneous hardening features +# +CONFIG_PAX_MEMORY_STACKLEAK=y +CONFIG_PAX_MEMORY_STRUCTLEAK=y +# CONFIG_PAX_MEMORY_UDEREF is not set +CONFIG_PAX_REFCOUNT=y +CONFIG_PAX_USERCOPY=y +# CONFIG_PAX_USERCOPY_DEBUG is not set +# CONFIG_PAX_SIZE_OVERFLOW is not set +# CONFIG_PAX_LATENT_ENTROPY is not set + +# +# Memory Protections +# +# CONFIG_GRKERNSEC_KMEM is not set +CONFIG_GRKERNSEC_VM86=y +# CONFIG_GRKERNSEC_IO is not set +# CONFIG_GRKERNSEC_PERF_HARDEN is not set +CONFIG_GRKERNSEC_RAND_THREADSTACK=y +CONFIG_GRKERNSEC_PROC_MEMMAP=y +CONFIG_GRKERNSEC_BRUTE=y +CONFIG_GRKERNSEC_MODHARDEN=y +CONFIG_GRKERNSEC_HIDESYM=y +CONFIG_GRKERNSEC_KERN_LOCKOUT=y + +# +# Role Based Access Control Options +# +CONFIG_GRKERNSEC_NO_RBAC=y +# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set +CONFIG_GRKERNSEC_ACL_MAXTRIES=3 +CONFIG_GRKERNSEC_ACL_TIMEOUT=30 + +# +# Filesystem Protections +# +# CONFIG_GRKERNSEC_PROC is not set +CONFIG_GRKERNSEC_LINK=y +# CONFIG_GRKERNSEC_SYMLINKOWN is not set +CONFIG_GRKERNSEC_FIFO=y +# CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set +# CONFIG_GRKERNSEC_ROFS is not set +CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y +CONFIG_GRKERNSEC_CHROOT=y +# CONFIG_GRKERNSEC_CHROOT_MOUNT is not set +CONFIG_GRKERNSEC_CHROOT_DOUBLE=y +CONFIG_GRKERNSEC_CHROOT_PIVOT=y +CONFIG_GRKERNSEC_CHROOT_CHDIR=y +# CONFIG_GRKERNSEC_CHROOT_CHMOD is not set +CONFIG_GRKERNSEC_CHROOT_FCHDIR=y +# CONFIG_GRKERNSEC_CHROOT_MKNOD is not set +CONFIG_GRKERNSEC_CHROOT_SHMAT=y +CONFIG_GRKERNSEC_CHROOT_UNIX=y +CONFIG_GRKERNSEC_CHROOT_FINDTASK=y +CONFIG_GRKERNSEC_CHROOT_NICE=y +CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +# CONFIG_GRKERNSEC_CHROOT_CAPS is not set +CONFIG_GRKERNSEC_CHROOT_INITRD=y + +# +# Kernel Auditing +# +# CONFIG_GRKERNSEC_AUDIT_GROUP is not set +# CONFIG_GRKERNSEC_EXECLOG is not set +CONFIG_GRKERNSEC_RESLOG=y +# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set +# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set +# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set +# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set +CONFIG_GRKERNSEC_SIGNAL=y +CONFIG_GRKERNSEC_FORKFAIL=y +# CONFIG_GRKERNSEC_TIME is not set +CONFIG_GRKERNSEC_PROC_IPADDR=y +# CONFIG_GRKERNSEC_RWXMAP_LOG is not set + +# +# Executable Protections +# +CONFIG_GRKERNSEC_DMESG=y +CONFIG_GRKERNSEC_HARDEN_PTRACE=y +CONFIG_GRKERNSEC_PTRACE_READEXEC=y +CONFIG_GRKERNSEC_SETXID=y +# CONFIG_GRKERNSEC_TPE is not set + +# +# Network Protections +# +CONFIG_GRKERNSEC_RANDNET=y +CONFIG_GRKERNSEC_BLACKHOLE=y +CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y +# CONFIG_GRKERNSEC_SOCKET is not set + +# +# Physical Protections +# +# CONFIG_GRKERNSEC_DENYUSB is not set + +# +# Sysctl Support +# +# CONFIG_GRKERNSEC_SYSCTL is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=6 CONFIG_KEYS=y # CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set # CONFIG_INTEL_TXT is not set +# CONFIG_SECURITY_SELINUX is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_IMA is not set +# CONFIG_EVM is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m @@ -4593,58 +5544,60 @@ CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_ASYNC_PQ=m CONFIG_ASYNC_RAID6_RECOV=m -CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y -CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y CONFIG_CRYPTO=y
# # Crypto core or helper # +CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP=m CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_USER=m -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_USER is not set +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_ABLK_HELPER_X86=y +CONFIG_CRYPTO_GLUE_HELPER_X86=m
# # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_SEQIV=y
# # Block modes # -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=y CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_XTS=y
# # Hash modes # +CONFIG_CRYPTO_CMAC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m @@ -4652,18 +5605,20 @@ CONFIG_CRYPTO_VMAC=m # # Digest # -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRC32_PCLMUL=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m @@ -4671,23 +5626,25 @@ CONFIG_CRYPTO_WP512=m # # Ciphers # -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_AES_586=m -CONFIG_CRYPTO_AES_NI_INTEL=m +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_586=y +CONFIG_CRYPTO_AES_NI_INTEL=y CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SALSA20_586=m +# CONFIG_CRYPTO_SALSA20_586 is not set CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SERPENT_SSE2_586=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -4696,7 +5653,7 @@ CONFIG_CRYPTO_TWOFISH_586=m # # Compression # -CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_ZLIB=m CONFIG_CRYPTO_LZO=m
@@ -4704,9 +5661,9 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_USER_API=m -CONFIG_CRYPTO_USER_API_HASH=m -CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m @@ -4714,37 +5671,55 @@ CONFIG_CRYPTO_DEV_PADLOCK_SHA=m CONFIG_CRYPTO_DEV_GEODE=m CONFIG_CRYPTO_DEV_HIFN_795X=m CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_ASYMMETRIC_KEY_TYPE=m +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m +CONFIG_PUBLIC_KEY_ALGO_RSA=m +CONFIG_X509_CERTIFICATE_PARSER=m CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_HAVE_KVM_IRQ_ROUTING=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_APIC_ARCHITECTURE=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y +CONFIG_HAVE_KVM_MSI=y +CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m -CONFIG_VHOST_NET=m -CONFIG_LGUEST=m -# CONFIG_BINARY_PRINTF is not set +CONFIG_KVM_MMU_AUDIT=y +CONFIG_KVM_DEVICE_ASSIGNMENT=y +# CONFIG_LGUEST is not set +CONFIG_BINARY_PRINTF=y
# # Library routines # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_CRC_CCITT=m +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_CRC_CCITT=y CONFIG_CRC16=y -CONFIG_CRC_T10DIF=m +CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y +CONFIG_ZLIB_DEFLATE=m CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_XZ_DEC=y @@ -4761,6 +5736,7 @@ CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y +CONFIG_GENERIC_ALLOCATOR=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -4770,6 +5746,13 @@ CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y +CONFIG_DQL=y CONFIG_NLATTR=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_AVERAGE=y +CONFIG_CLZ_TAB=y CONFIG_CORDIC=m +# CONFIG_DDR is not set +CONFIG_MPILIB=m +CONFIG_OID_REGISTRY=m +CONFIG_UCS2_STRING=y diff --git a/config/kernel/kernel.config.i586-ipfire-pae b/config/kernel/kernel.config.i586-ipfire-pae index b9fd2aa..fc619b8 100644 --- a/config/kernel/kernel.config.i586-ipfire-pae +++ b/config/kernel/kernel.config.i586-ipfire-pae @@ -1,46 +1,34 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/i386 3.2.47 Kernel Configuration +# Linux/x86 3.10.11-ipfire Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y -# CONFIG_X86_64 is not set CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y -CONFIG_ZONE_DMA=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_GPIO=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y -# CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y -# CONFIG_GENERIC_TIME_VSYSCALL is not set CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CPU_AUTOPROBE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y # CONFIG_AUDIT_ARCH is not set CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y @@ -48,16 +36,15 @@ CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" -CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y +CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y
# # General setup # -CONFIG_EXPERIMENTAL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" @@ -69,8 +56,8 @@ CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set -CONFIG_KERNEL_LZMA=y -# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZMA is not set +CONFIG_KERNEL_XZ=y # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y @@ -78,54 +65,99 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_FHANDLE is not set -CONFIG_TASKSTATS=y -CONFIG_TASK_DELAY_ACCT=y -# CONFIG_TASK_XACCT is not set +CONFIG_FHANDLE=y CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y +CONFIG_AUDIT_LOGINUID_IMMUTABLE=y CONFIG_HAVE_GENERIC_HARDIRQS=y
# # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +# CONFIG_TICK_CPU_ACCOUNTING is not set +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y
# # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set +CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 # CONFIG_RCU_FANOUT_EXACT is not set -# CONFIG_RCU_FAST_NO_HZ is not set +CONFIG_RCU_FAST_NO_HZ=y # CONFIG_TREE_RCU_TRACE is not set +CONFIG_RCU_NOCB_CPU=y +# CONFIG_RCU_NOCB_CPU_NONE is not set +# CONFIG_RCU_NOCB_CPU_ZERO is not set +CONFIG_RCU_NOCB_CPU_ALL=y # CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_BUF_SHIFT=18 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y -# CONFIG_CGROUPS is not set +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +# CONFIG_MEMCG is not set +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -# CONFIG_PID_NS is not set -# CONFIG_NET_NS is not set -# CONFIG_SCHED_AUTOGROUP is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y @@ -136,17 +168,19 @@ CONFIG_RD_LZO=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EXPERT is not set +CONFIG_HAVE_UID16=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_HOTPLUG=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_EXPERT=y CONFIG_UID16=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -CONFIG_HOTPLUG=y +CONFIG_KALLSYMS_ALL=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y -CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -155,46 +189,68 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y -# CONFIG_EMBEDDED is not set +CONFIG_PCI_QUIRKS=y +CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y
# # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y -CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y +# CONFIG_SLOB is not set # CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y CONFIG_HAVE_OPROFILE=y +CONFIG_OPROFILE_NMI_TIMER=y # CONFIG_KPROBES is not set -# CONFIG_JUMP_LABEL is not set +CONFIG_JUMP_LABEL=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y
# # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -202,15 +258,40 @@ CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_MODULE_SIG is not set CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y -# CONFIG_BLK_DEV_INTEGRITY is not set +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_THROTTLING=y + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set
# # IO Schedulers @@ -218,84 +299,64 @@ CONFIG_BLK_DEV_BSGLIB=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y +CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_ASN1=m CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_FREEZER=y
# # Processor type and features # -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_MPPARSE=y CONFIG_X86_BIGSMP=y CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_GOLDFISH is not set # CONFIG_X86_WANT_INTEL_MID is not set +CONFIG_X86_INTEL_LPSS=y # CONFIG_X86_RDC321X is not set -# CONFIG_X86_32_NON_STANDARD is not set +CONFIG_X86_32_NON_STANDARD=y +# CONFIG_X86_NUMAQ is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y -# CONFIG_X86_32_IRIS is not set +# CONFIG_STA2X11 is not set +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_ES7000 is not set +CONFIG_X86_32_IRIS=m CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_PARAVIRT_GUEST=y -# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +# CONFIG_PARAVIRT_DEBUG is not set +# CONFIG_PARAVIRT_SPINLOCKS is not set CONFIG_XEN=y CONFIG_XEN_DOM0=y CONFIG_XEN_PRIVILEGED_GUEST=y CONFIG_XEN_PVHVM=y -CONFIG_XEN_MAX_DOMAIN_MEMORY=128 +CONFIG_XEN_MAX_DOMAIN_MEMORY=64 CONFIG_XEN_SAVE_RESTORE=y -CONFIG_KVM_CLOCK=y +CONFIG_XEN_DEBUG_FS=y CONFIG_KVM_GUEST=y -CONFIG_LGUEST_GUEST=y -CONFIG_PARAVIRT=y -CONFIG_PARAVIRT_SPINLOCKS=y +# CONFIG_LGUEST_GUEST is not set +CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y -# CONFIG_PARAVIRT_DEBUG is not set CONFIG_NO_BOOTMEM=y # CONFIG_MEMTEST is not set -# CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set -CONFIG_M586TSC=y +# CONFIG_M586TSC is not set # CONFIG_M586MMX is not set -# CONFIG_M686 is not set +CONFIG_M686=y # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set # CONFIG_MPENTIUMM is not set @@ -317,22 +378,17 @@ CONFIG_M586TSC=y # CONFIG_MATOM is not set CONFIG_X86_GENERIC=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 -CONFIG_X86_CMPXCHG=y -CONFIG_CMPXCHG_LOCAL=y -CONFIG_CMPXCHG_DOUBLE=y CONFIG_X86_L1_CACHE_SHIFT=6 -CONFIG_X86_XADD=y -CONFIG_X86_PPRO_FENCE=y -CONFIG_X86_F00F_BUG=y -CONFIG_X86_WP_WORKS_OK=y -CONFIG_X86_INVLPG=y -CONFIG_X86_BSWAP=y -CONFIG_X86_POPAD_OK=y +# CONFIG_X86_PPRO_FENCE is not set CONFIG_X86_ALIGNMENT_16=y CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=5 +CONFIG_X86_DEBUGCTLMSR=y +# CONFIG_PROCESSOR_SELECT is not set CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_CYRIX_32=y CONFIG_CPU_SUP_AMD=y @@ -344,10 +400,9 @@ CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y -CONFIG_NR_CPUS=256 +CONFIG_NR_CPUS=32 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y -CONFIG_IRQ_TIME_ACCOUNTING=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set @@ -357,28 +412,35 @@ CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_MCE=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y -CONFIG_X86_ANCIENT_MCE=y +# CONFIG_X86_ANCIENT_MCE is not set CONFIG_X86_MCE_THRESHOLD=y -CONFIG_X86_MCE_INJECT=m +# CONFIG_X86_MCE_INJECT is not set CONFIG_X86_THERMAL_VECTOR=y CONFIG_VM86=y CONFIG_TOSHIBA=m CONFIG_I8K=m -CONFIG_X86_REBOOTFIXUPS=y +# CONFIG_X86_REBOOTFIXUPS is not set CONFIG_MICROCODE=m CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y -CONFIG_X86_MSR=m +CONFIG_MICROCODE_INTEL_LIB=y +CONFIG_MICROCODE_INTEL_EARLY=y +CONFIG_MICROCODE_EARLY=y +# CONFIG_X86_MSR is not set CONFIG_X86_CPUID=y # CONFIG_NOHIGHMEM is not set # CONFIG_HIGHMEM4G is not set CONFIG_HIGHMEM64G=y +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y CONFIG_X86_PAE=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y +# CONFIG_NUMA is not set CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y @@ -390,9 +452,15 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_ARCH_DISCARD_MEMBLOCK=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_COMPACTION is not set +CONFIG_BALLOON_COMPACTION=y +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y @@ -401,19 +469,28 @@ CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y -# CONFIG_MEMORY_FAILURE is not set -# CONFIG_TRANSPARENT_HUGEPAGE is not set -# CONFIG_CLEANCACHE is not set -# CONFIG_HIGHPTE is not set -# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_MEMORY_FAILURE=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_CLEANCACHE=y +# CONFIG_FRONTSWAP is not set +CONFIG_HIGHPTE=y +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y CONFIG_X86_RESERVE_LOW=64 -CONFIG_MATH_EMULATION=y +# CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y -# CONFIG_MTRR_SANITIZER is not set +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y -# CONFIG_EFI is not set +CONFIG_X86_SMAP=y +CONFIG_EFI=y +CONFIG_EFI_STUB=y CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set @@ -423,12 +500,14 @@ CONFIG_HZ_300=y CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y # CONFIG_KEXEC is not set -# CONFIG_CRASH_DUMP is not set -CONFIG_PHYSICAL_START=0x1000000 -# CONFIG_RELOCATABLE is not set -CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_CRASH_DUMP=y +CONFIG_PHYSICAL_START=0x400000 +CONFIG_RELOCATABLE=y +CONFIG_X86_NEED_RELOCS=y +CONFIG_PHYSICAL_ALIGN=0x400000 CONFIG_HOTPLUG_CPU=y -CONFIG_COMPAT_VDSO=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -438,43 +517,55 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_HIBERNATE_CALLBACKS=y -# CONFIG_HIBERNATION is not set +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set +CONFIG_PM_CLK=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y -# CONFIG_ACPI_PROCFS is not set -CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_PROCFS=y +# CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_EC_DEBUGFS=m -CONFIG_ACPI_PROC_EVENT=y -CONFIG_ACPI_AC=m -CONFIG_ACPI_BATTERY=m -CONFIG_ACPI_BUTTON=m +# CONFIG_ACPI_PROC_EVENT is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m -CONFIG_ACPI_FAN=m +CONFIG_ACPI_FAN=y CONFIG_ACPI_DOCK=y -CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_I2C=m +CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m -CONFIG_ACPI_THERMAL=m -CONFIG_ACPI_CUSTOM_DSDT_FILE="" +CONFIG_ACPI_THERMAL=y # CONFIG_ACPI_CUSTOM_DSDT is not set -CONFIG_ACPI_BLACKLIST_YEAR=0 +CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y +CONFIG_ACPI_BLACKLIST_YEAR=1999 # CONFIG_ACPI_DEBUG is not set -CONFIG_ACPI_PCI_SLOT=m +CONFIG_ACPI_PCI_SLOT=y CONFIG_X86_PM_TIMER=y -CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_SBS=m -# CONFIG_ACPI_HED is not set -# CONFIG_ACPI_APEI is not set -# CONFIG_SFI is not set +CONFIG_ACPI_HED=y +CONFIG_ACPI_CUSTOM_METHOD=m +# CONFIG_ACPI_BGRT is not set +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +# CONFIG_ACPI_APEI_EINJ is not set +# CONFIG_ACPI_APEI_ERST_DEBUG is not set +CONFIG_SFI=y CONFIG_X86_APM_BOOT=y -CONFIG_APM=m -CONFIG_APM_IGNORE_USER_SUSPEND=y +CONFIG_APM=y +# CONFIG_APM_IGNORE_USER_SUSPEND is not set # CONFIG_APM_DO_ENABLE is not set CONFIG_APM_CPU_IDLE=y # CONFIG_APM_DISPLAY_BLANK is not set @@ -485,46 +576,52 @@ CONFIG_APM_CPU_IDLE=y # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y -CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m -CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
# # x86 CPU frequency scaling drivers # -CONFIG_X86_PCC_CPUFREQ=m -CONFIG_X86_ACPI_CPUFREQ=m -CONFIG_X86_POWERNOW_K6=m -CONFIG_X86_POWERNOW_K7=m +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_PCC_CPUFREQ=y +CONFIG_X86_ACPI_CPUFREQ=y +# CONFIG_X86_ACPI_CPUFREQ_CPB is not set +# CONFIG_X86_POWERNOW_K6 is not set +CONFIG_X86_POWERNOW_K7=y CONFIG_X86_POWERNOW_K7_ACPI=y -CONFIG_X86_POWERNOW_K8=m -CONFIG_X86_GX_SUSPMOD=m -CONFIG_X86_SPEEDSTEP_CENTRINO=m -CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y -CONFIG_X86_SPEEDSTEP_ICH=m -CONFIG_X86_SPEEDSTEP_SMI=m -CONFIG_X86_P4_CLOCKMOD=m -CONFIG_X86_CPUFREQ_NFORCE2=m -CONFIG_X86_LONGRUN=m -CONFIG_X86_LONGHAUL=m -CONFIG_X86_E_POWERSAVER=m +CONFIG_X86_POWERNOW_K8=y +# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set +# CONFIG_X86_GX_SUSPMOD is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +CONFIG_X86_SPEEDSTEP_ICH=y +CONFIG_X86_SPEEDSTEP_SMI=y +CONFIG_X86_P4_CLOCKMOD=y +# CONFIG_X86_CPUFREQ_NFORCE2 is not set +CONFIG_X86_LONGRUN=y +# CONFIG_X86_LONGHAUL is not set +# CONFIG_X86_E_POWERSAVER is not set
# # shared options # -CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_X86_SPEEDSTEP_LIB=y # CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set CONFIG_INTEL_IDLE=y
# @@ -542,17 +639,22 @@ CONFIG_PCI_XEN=y CONFIG_PCI_DOMAINS=y # CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_PCIEAER=y -# CONFIG_PCIE_ECRC is not set -# CONFIG_PCIEAER_INJECT is not set +CONFIG_PCIE_ECRC=y +CONFIG_PCIEAER_INJECT=m CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set +# CONFIG_PCIEASPM_DEFAULT is not set +CONFIG_PCIEASPM_POWERSAVE=y +# CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y # CONFIG_PCI_DEBUG is not set -CONFIG_PCI_STUB=m -CONFIG_XEN_PCIDEV_FRONTEND=y +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +CONFIG_PCI_STUB=y +CONFIG_XEN_PCIDEV_FRONTEND=m CONFIG_HT_IRQ=y CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y @@ -563,16 +665,14 @@ CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y CONFIG_EISA=y -CONFIG_EISA_VLB_PRIMING=y +# CONFIG_EISA_VLB_PRIMING is not set CONFIG_EISA_PCI_EISA=y CONFIG_EISA_VIRTUAL_ROOT=y CONFIG_EISA_NAMES=y -CONFIG_MCA=y -CONFIG_MCA_LEGACY=y -# CONFIG_MCA_PROC_FS is not set -CONFIG_SCx200=m -CONFIG_SCx200HR_TIMER=m -CONFIG_ALIX=y +# CONFIG_SCx200 is not set +# CONFIG_ALIX is not set +# CONFIG_NET5501 is not set +# CONFIG_GEOS is not set CONFIG_AMD_NB=y CONFIG_PCCARD=m CONFIG_PCMCIA=m @@ -594,17 +694,25 @@ CONFIG_I82365=m CONFIG_TCIC=m CONFIG_PCMCIA_PROBE=y CONFIG_PCCARD_NONSTATIC=y -# CONFIG_HOTPLUG_PCI is not set +CONFIG_HOTPLUG_PCI=y +# CONFIG_HOTPLUG_PCI_COMPAQ is not set +# CONFIG_HOTPLUG_PCI_IBM is not set +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +# CONFIG_HOTPLUG_PCI_SHPC is not set # CONFIG_RAPIDIO is not set
# # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y CONFIG_HAVE_ATOMIC_IOMAP=y CONFIG_HAVE_TEXT_POKE_SMP=y CONFIG_NET=y @@ -613,10 +721,13 @@ CONFIG_NET=y # Networking options # CONFIG_PACKET=y +CONFIG_PACKET_DIAG=y CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m @@ -625,7 +736,7 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y @@ -633,28 +744,31 @@ CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y -# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y +# CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m @@ -665,13 +779,15 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -CONFIG_DEFAULT_RENO=y -CONFIG_DEFAULT_TCP_CONG="reno" -# CONFIG_TCP_MD5SIG is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m @@ -683,14 +799,18 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m -# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETLABEL is not set +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -700,13 +820,18 @@ CONFIG_BRIDGE_NETFILTER=y # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y -# CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -723,14 +848,28 @@ CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m CONFIG_NETFILTER_TPROXY=m -CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XTABLES=y
# # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m
# # Xtables targets @@ -739,20 +878,26 @@ CONFIG_NETFILTER_XT_TARGET_AUDIT=m CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
@@ -760,9 +905,11 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m @@ -770,17 +917,19 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m +# CONFIG_NETFILTER_XT_MATCH_IPVS is not set CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m @@ -800,7 +949,19 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -# CONFIG_IP_SET is not set +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -831,6 +992,11 @@ CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m
# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# # IPVS application helper # CONFIG_IP_VS_FTP=m @@ -840,40 +1006,31 @@ CONFIG_IP_VS_PE_SIP=m # # IP: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set +CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y +# CONFIG_IP_NF_TARGET_ULOG is not set +CONFIG_NF_NAT_IPV4=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m @@ -882,10 +1039,9 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # -CONFIG_NF_DEFRAG_IPV6=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m +CONFIG_NF_DEFRAG_IPV6=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m @@ -893,13 +1049,17 @@ CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_NF_NAT_IPV6=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -920,49 +1080,52 @@ CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m +# CONFIG_BRIDGE_EBT_ULOG is not set CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y # CONFIG_RDS is not set # CONFIG_TIPC is not set CONFIG_ATM=m CONFIG_ATM_CLIP=m -CONFIG_ATM_CLIP_NO_ICMP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_L2TP=m +# CONFIG_L2TP_DEBUGFS is not set CONFIG_L2TP_V3=y CONFIG_L2TP_IP=m CONFIG_L2TP_ETH=m -CONFIG_STP=m -CONFIG_GARP=m -CONFIG_BRIDGE=m +CONFIG_STP=y +CONFIG_GARP=y +CONFIG_BRIDGE=y CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VLAN_8021Q_MVRP is not set # CONFIG_DECNET is not set -CONFIG_LLC=m +CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set -CONFIG_IEEE802154=m -CONFIG_IEEE802154_6LOWPAN=m +# CONFIG_IEEE802154 is not set CONFIG_NET_SCHED=y
# @@ -986,7 +1149,10 @@ CONFIG_NET_SCH_DRR=m CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m
# # Classification @@ -1002,6 +1168,7 @@ CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m @@ -1009,6 +1176,7 @@ CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_IPSET=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m @@ -1025,67 +1193,30 @@ CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y # CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +CONFIG_VSOCKETS=m +CONFIG_VMWARE_VMCI_VSOCKETS=m +CONFIG_NETLINK_MMAP=y +CONFIG_NETLINK_DIAG=m CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y +CONFIG_NETPRIO_CGROUP=m +CONFIG_BQL=y
# # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_NSC_FIR=m -CONFIG_WINBOND_FIR=m -CONFIG_TOSHIBA_FIR=m -CONFIG_SMC_IRCC_FIR=m -CONFIG_ALI_FIR=m -CONFIG_VLSI_FIR=m -CONFIG_VIA_FIR=m -CONFIG_MCS_FIR=m +# CONFIG_IRDA is not set CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -1104,11 +1235,12 @@ CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m +# CONFIG_BT_HCIDTL1 is not set +# CONFIG_BT_HCIBT3C is not set CONFIG_BT_HCIBLUECARD=m CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m @@ -1116,9 +1248,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m CONFIG_BT_WILINK=m -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -CONFIG_RXKAD=m +# CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y @@ -1130,10 +1260,11 @@ CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set -# CONFIG_CFG80211_DEFAULT_PS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_WEXT=y -CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -1141,23 +1272,24 @@ CONFIG_LIB80211_CRYPT_TKIP=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m +CONFIG_RFKILL_GPIO=m # CONFIG_NET_9P is not set # CONFIG_CAIF is not set -CONFIG_CEPH_LIB=m -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set
# @@ -1167,100 +1299,30 @@ CONFIG_CEPH_LIB=m # # Generic Driver Options # -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set CONFIG_SYS_HYPERVISOR=y +# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_REGMAP=y CONFIG_REGMAP_I2C=m -CONFIG_CONNECTOR=m -CONFIG_MTD=m -CONFIG_MTD_TESTS=m -# CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_AR7_PARTS=m - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -CONFIG_SM_FTL=m -# CONFIG_MTD_OOPS is not set -# CONFIG_MTD_SWAP is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_TS5500 is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_DOCG3 is not set -CONFIG_MTD_NAND_ECC=m -# CONFIG_MTD_NAND_ECC_SMC is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 -# CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y + +# +# Bus devices +# +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +# CONFIG_MTD is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m @@ -1279,67 +1341,75 @@ CONFIG_PNP=y # CONFIG_ISAPNP=y CONFIG_PNPBIOS=y -CONFIG_PNPBIOS_PROC_FS=y +# CONFIG_PNPBIOS_PROC_FS is not set CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=m -# CONFIG_BLK_DEV_XD is not set # CONFIG_PARIDE is not set +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m CONFIG_BLK_CPQ_DA=m CONFIG_BLK_CPQ_CISS_DA=m # CONFIG_CISS_SCSI_TAPE is not set CONFIG_BLK_DEV_DAC960=m -# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_UMEM=m # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m # CONFIG_BLK_DEV_DRBD is not set -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_OSD=m +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_NVME=m +# CONFIG_BLK_DEV_OSD is not set CONFIG_BLK_DEV_SX8=m -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=8 +CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_BLK_DEV_XIP is not set # CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m -CONFIG_XEN_BLKDEV_FRONTEND=y -CONFIG_XEN_BLKDEV_BACKEND=y +# CONFIG_ATA_OVER_ETH is not set +CONFIG_XEN_BLKDEV_FRONTEND=m +CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set -CONFIG_BLK_DEV_RBD=m +# CONFIG_BLK_DEV_RBD is not set +CONFIG_BLK_DEV_RSXX=m + +# +# Misc devices +# CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y # CONFIG_AD525X_DPOT is not set -# CONFIG_IBM_ASM is not set +# CONFIG_ATMEL_PWM is not set +CONFIG_DUMMY_IRQ=m +CONFIG_IBM_ASM=m # CONFIG_PHANTOM is not set # CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m +# CONFIG_ATMEL_SSC is not set CONFIG_ENCLOSURE_SERVICES=m CONFIG_CS5535_MFGPT=m CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 CONFIG_CS5535_CLOCK_EVENT_SRC=m CONFIG_HP_ILO=m -CONFIG_APDS9802ALS=m -CONFIG_ISL29003=m -CONFIG_ISL29020=m -CONFIG_SENSORS_TSL2550=m -CONFIG_SENSORS_BH1780=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_APDS990X=m -CONFIG_HMC6352=m +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set CONFIG_DS1682=m CONFIG_VMWARE_BALLOON=m -CONFIG_BMP085=m +CONFIG_BMP085=y +CONFIG_BMP085_I2C=m CONFIG_PCH_PHUB=m CONFIG_USB_SWITCH_FSA9480=m -CONFIG_C2PORT=m -CONFIG_C2PORT_DURAMAR_2150=m +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set
# # EEPROM support @@ -1351,62 +1421,63 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y -CONFIG_IWMC3200TOP=m -# CONFIG_IWMC3200TOP_DEBUG is not set -# CONFIG_IWMC3200TOP_DEBUGFS is not set
# # Texas Instruments shared transport line discipline # CONFIG_TI_ST=m -CONFIG_SENSORS_LIS3_I2C=m +# CONFIG_SENSORS_LIS3_I2C is not set
# # Altera FPGA firmware download module # -# CONFIG_ALTERA_STAPL is not set +CONFIG_ALTERA_STAPL=m +CONFIG_INTEL_MEI=m +CONFIG_INTEL_MEI_ME=m +CONFIG_VMWARE_VMCI=m CONFIG_HAVE_IDE=y # CONFIG_IDE is not set
# # SCSI device support # -CONFIG_SCSI_MOD=m +CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=m -CONFIG_SCSI=m +CONFIG_SCSI=y CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set +CONFIG_SCSI_TGT=m CONFIG_SCSI_NETLINK=y CONFIG_SCSI_PROC_FS=y
# # SCSI support type (disk, tape, CD-ROM) # -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_SCH=m CONFIG_SCSI_ENCLOSURE=m CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y
# # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y CONFIG_SCSI_ISCSI_ATTRS=m CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m CONFIG_ISCSI_BOOT_SYSFS=m @@ -1426,25 +1497,23 @@ CONFIG_SCSI_AHA1542=m CONFIG_SCSI_AHA1740=m CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=5000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y # CONFIG_SCSI_AIC7XXX_OLD is not set CONFIG_SCSI_AIC79XX=m CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set +CONFIG_AIC79XX_RESET_DELAY_MS=4000 # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_DEBUG=y -# CONFIG_SCSI_MVSAS_TASKLET is not set +# CONFIG_SCSI_MVSAS_DEBUG is not set +CONFIG_SCSI_MVSAS_TASKLET=y CONFIG_SCSI_MVUMI=m CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ADVANSYS=m @@ -1458,9 +1527,15 @@ CONFIG_MEGARAID_SAS=m CONFIG_SCSI_MPT2SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 # CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +# CONFIG_SCSI_MPT3SAS_LOGGING is not set +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m +CONFIG_SCSI_UFSHCD_PLATFORM=m CONFIG_SCSI_HPTIOP=m CONFIG_SCSI_BUSLOGIC=m -CONFIG_SCSI_FLASHPOINT=y +# CONFIG_SCSI_FLASHPOINT is not set CONFIG_VMWARE_PVSCSI=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m @@ -1470,18 +1545,14 @@ CONFIG_SCSI_DMX3191D=m CONFIG_SCSI_DTC3280=m CONFIG_SCSI_EATA=m CONFIG_SCSI_EATA_TAGGED_QUEUE=y -CONFIG_SCSI_EATA_LINKED_COMMANDS=y +# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set CONFIG_SCSI_EATA_MAX_TAGS=16 CONFIG_SCSI_FUTURE_DOMAIN=m -CONFIG_SCSI_FD_MCS=m CONFIG_SCSI_GDTH=m CONFIG_SCSI_ISCI=m CONFIG_SCSI_GENERIC_NCR5380=m CONFIG_SCSI_GENERIC_NCR5380_MMIO=m -CONFIG_SCSI_GENERIC_NCR53C400=y -CONFIG_SCSI_IBMMCA=m -# CONFIG_IBMMCA_SCSI_ORDER_STANDARD is not set -# CONFIG_IBMMCA_SCSI_DEV_RESET is not set +# CONFIG_SCSI_GENERIC_NCR53C400 is not set CONFIG_SCSI_IPS=m CONFIG_SCSI_INITIO=m CONFIG_SCSI_INIA100=m @@ -1490,7 +1561,6 @@ CONFIG_SCSI_IMM=m # CONFIG_SCSI_IZIP_EPP16 is not set # CONFIG_SCSI_IZIP_SLOW_CTR is not set CONFIG_SCSI_NCR53C406A=m -CONFIG_SCSI_NCR_D700=m CONFIG_SCSI_STEX=m CONFIG_SCSI_SYM53C8XX_2=m CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 @@ -1500,24 +1570,21 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y CONFIG_SCSI_IPR=m CONFIG_SCSI_IPR_TRACE=y CONFIG_SCSI_IPR_DUMP=y -CONFIG_SCSI_NCR_Q720=m -CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 -CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 -CONFIG_SCSI_NCR53C8XX_SYNC=20 CONFIG_SCSI_PAS16=m CONFIG_SCSI_QLOGIC_FAS=m CONFIG_SCSI_QLOGIC_1280=m CONFIG_SCSI_QLA_FC=m CONFIG_SCSI_QLA_ISCSI=m CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_SIM710=m CONFIG_SCSI_SYM53C416=m CONFIG_SCSI_DC395x=m CONFIG_SCSI_DC390T=m CONFIG_SCSI_T128=m CONFIG_SCSI_U14_34F=m -CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y -CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y +# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set +# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set CONFIG_SCSI_U14_34F_MAX_TAGS=8 CONFIG_SCSI_ULTRASTOR=m CONFIG_SCSI_NSP32=m @@ -1526,13 +1593,15 @@ CONFIG_SCSI_PMCRAID=m CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_VIRTIO=m +CONFIG_SCSI_CHELSIO_FCOE=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y CONFIG_PCMCIA_AHA152X=m CONFIG_PCMCIA_FDOMAIN=m CONFIG_PCMCIA_NINJA_SCSI=m CONFIG_PCMCIA_QLOGIC=m CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=m +CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=m @@ -1541,16 +1610,17 @@ CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_ATA=m +CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y +CONFIG_SATA_ZPODD=y CONFIG_SATA_PMP=y
# # Controllers with non-SFF native interface # -CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI=y CONFIG_SATA_AHCI_PLATFORM=m CONFIG_SATA_INIC162X=m CONFIG_SATA_ACARD_AHCI=m @@ -1568,7 +1638,8 @@ CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # -CONFIG_ATA_PIIX=m +CONFIG_ATA_PIIX=y +CONFIG_SATA_HIGHBANK=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m CONFIG_SATA_PROMISE=m @@ -1591,7 +1662,7 @@ CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m +# CONFIG_PATA_CS5535 is not set CONFIG_PATA_CS5536=m CONFIG_PATA_CYPRESS=m CONFIG_PATA_EFAR=m @@ -1599,7 +1670,7 @@ CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y +# CONFIG_PATA_HPT3X3_DMA is not set CONFIG_PATA_IT8213=m CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m @@ -1632,6 +1703,7 @@ CONFIG_PATA_MPIIX=m CONFIG_PATA_NS87410=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PLATFORM=m CONFIG_PATA_QDI=m CONFIG_PATA_RZ1000=m CONFIG_PATA_WINBOND_VLB=m @@ -1643,75 +1715,93 @@ CONFIG_PATA_ACPI=m CONFIG_ATA_GENERIC=m CONFIG_PATA_LEGACY=m CONFIG_MD=y -CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m -# CONFIG_MULTICORE_RAID456 is not set CONFIG_MD_MULTIPATH=m -# CONFIG_MD_FAULTY is not set -CONFIG_BLK_DEV_DM=m +CONFIG_MD_FAULTY=m +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_EDEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BLK_DEV_DM=y # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=m +CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_THIN_PROVISIONING=m -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -# CONFIG_DM_DEBUG_SPACE_MAPS is not set -CONFIG_DM_MIRROR=m +CONFIG_DM_SNAPSHOT=y +# CONFIG_DM_THIN_PROVISIONING is not set +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CACHE_CLEANER=m +CONFIG_DM_MIRROR=y CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m +CONFIG_DM_ZERO=y CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m +# CONFIG_DM_DELAY is not set CONFIG_DM_UEVENT=y -CONFIG_DM_FLAKEY=m +# CONFIG_DM_FLAKEY is not set +CONFIG_DM_VERITY=m # CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_MAX_SGE=40 CONFIG_FUSION_CTL=m -# CONFIG_FUSION_LOGGING is not set +CONFIG_FUSION_LOGGING=y
# # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m +# CONFIG_FIREWIRE_NET is not set # CONFIG_FIREWIRE_NOSY is not set -# CONFIG_I2O is not set -# CONFIG_MACINTOSH_DRIVERS is not set +CONFIG_I2O=m +# CONFIG_I2O_LCT_NOTIFY_ON_CHANGES is not set +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_BUS=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_SCSI=m +CONFIG_I2O_PROC=m +CONFIG_MACINTOSH_DRIVERS=y +# CONFIG_MAC_EMUMOUSEBTN is not set CONFIG_NETDEVICES=y CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m -CONFIG_EQUALIZER=m +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IFB=m +# CONFIG_NET_TEAM is not set +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_VXLAN=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +CONFIG_NETPOLL_TRAP=y +CONFIG_NET_POLL_CONTROLLER=y CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 -# CONFIG_NET_FC is not set -CONFIG_MII=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -CONFIG_IFB=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m CONFIG_VIRTIO_NET=m @@ -1722,22 +1812,14 @@ CONFIG_ATM_DRIVERS=y CONFIG_ATM_TCP=m CONFIG_ATM_LANAI=m CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set CONFIG_ATM_FIRESTREAM=m CONFIG_ATM_ZATM=m # CONFIG_ATM_ZATM_DEBUG is not set CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set CONFIG_ATM_IDT77252=m # CONFIG_ATM_IDT77252_DEBUG is not set # CONFIG_ATM_IDT77252_RCV_ALL is not set @@ -1749,20 +1831,30 @@ CONFIG_ATM_HORIZON=m CONFIG_ATM_IA=m # CONFIG_ATM_IA_DEBUG is not set CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y +# CONFIG_ATM_FORE200E_USE_TASKLET is not set CONFIG_ATM_FORE200E_TX_RETRY=16 CONFIG_ATM_FORE200E_DEBUG=0 CONFIG_ATM_HE=m -CONFIG_ATM_HE_USE_SUNI=y +# CONFIG_ATM_HE_USE_SUNI is not set CONFIG_ATM_SOLOS=m
# # CAIF transport drivers # +CONFIG_VHOST_NET=m +CONFIG_VHOST_RING=m + +# +# Distributed Switch Architecture drivers +# +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_ETHERNET=y CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y -CONFIG_EL1=m CONFIG_EL3=m CONFIG_3C515=m CONFIG_PCMCIA_3C574=m @@ -1778,7 +1870,6 @@ CONFIG_NET_VENDOR_AMD=y CONFIG_AMD8111_ETH=m CONFIG_LANCE=m CONFIG_PCNET32=m -CONFIG_DEPCA=m CONFIG_PCMCIA_NMCLAN=m CONFIG_NI65=m CONFIG_NET_VENDOR_ATHEROS=y @@ -1786,6 +1877,10 @@ CONFIG_ATL2=m CONFIG_ATL1=m CONFIG_ATL1E=m CONFIG_ATL1C=m +CONFIG_ALX=m +CONFIG_NET_CADENCE=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_MACB=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y @@ -1795,8 +1890,10 @@ CONFIG_BNX2=m CONFIG_CNIC=m CONFIG_TIGON3=m CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m +CONFIG_NET_CALXEDA_XGMAC=m CONFIG_NET_VENDOR_CHELSIO=y CONFIG_CHELSIO_T1=m CONFIG_CHELSIO_T1_1G=y @@ -1805,26 +1902,25 @@ CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m CONFIG_NET_VENDOR_CIRRUS=y CONFIG_CS89x0=m +# CONFIG_CS89x0_PLATFORM is not set CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m CONFIG_DNET=m CONFIG_NET_VENDOR_DEC=y -CONFIG_EWRK3=m CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 CONFIG_TULIP=m # CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set +CONFIG_TULIP_MMIO=y +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y CONFIG_DE4X5=m CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m CONFIG_NET_VENDOR_DLINK=y -CONFIG_DE600=m -CONFIG_DE620=m CONFIG_DL2K=m CONFIG_SUNDANCE=m # CONFIG_SUNDANCE_MMIO is not set @@ -1835,47 +1931,32 @@ CONFIG_S2IO=m CONFIG_VXGE=m # CONFIG_VXGE_DEBUG_TRACE_ALL is not set CONFIG_NET_VENDOR_FUJITSU=y -CONFIG_AT1700=m CONFIG_PCMCIA_FMVJ18X=m -CONFIG_ETH16I=m CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m -CONFIG_NET_VENDOR_IBM=y -# CONFIG_IBM_EMAC_ZMII is not set -# CONFIG_IBM_EMAC_RGMII is not set -# CONFIG_IBM_EMAC_TAH is not set -# CONFIG_IBM_EMAC_EMAC4 is not set -# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_E100=m CONFIG_E1000=m CONFIG_E1000E=m CONFIG_IGB=m +CONFIG_IGB_HWMON=y CONFIG_IGB_DCA=y CONFIG_IGBVF=m CONFIG_IXGB=m CONFIG_IXGBE=m +CONFIG_IXGBE_HWMON=y CONFIG_IXGBE_DCA=y CONFIG_IXGBEVF=m CONFIG_NET_VENDOR_I825XX=y -CONFIG_ELPLUS=m -CONFIG_EL16=m -CONFIG_ELMC=m -CONFIG_ELMC_II=m -CONFIG_APRICOT=m -CONFIG_EEXPRESS=m -CONFIG_EEXPRESS_PRO=m -CONFIG_LP486E=m -CONFIG_NI52=m -CONFIG_ZNET=m CONFIG_IP1000=m CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MVMDIO=m CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set CONFIG_NET_VENDOR_MELLANOX=y CONFIG_MLX4_EN=m CONFIG_MLX4_CORE=m @@ -1889,61 +1970,47 @@ CONFIG_MYRI10GE=m CONFIG_MYRI10GE_DCA=y CONFIG_FEALNX=m CONFIG_NET_VENDOR_NATSEMI=y -CONFIG_IBMLANA=m CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_8390=y -CONFIG_EL2=m -CONFIG_AC3200=m CONFIG_PCMCIA_AXNET=m -CONFIG_E2100=m -CONFIG_ES3210=m -CONFIG_HPLAN_PLUS=m -CONFIG_HPLAN=m -CONFIG_LNE390=m CONFIG_NE2000=m -CONFIG_NE2_MCA=m CONFIG_NE2K_PCI=m -CONFIG_NE3210=m CONFIG_PCMCIA_PCNET=m -CONFIG_ULTRAMCA=m CONFIG_ULTRA=m -CONFIG_ULTRA32=m CONFIG_WD80x3=m CONFIG_NET_VENDOR_NVIDIA=y CONFIG_FORCEDETH=m CONFIG_NET_VENDOR_OKI=y CONFIG_PCH_GBE=m CONFIG_ETHOC=m -CONFIG_NET_PACKET_ENGINE=y -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m +# CONFIG_NET_PACKET_ENGINE is not set CONFIG_NET_VENDOR_QLOGIC=y CONFIG_QLA3XXX=m CONFIG_QLCNIC=m +CONFIG_QLCNIC_SRIOV=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m -CONFIG_NET_VENDOR_RACAL=y CONFIG_NET_VENDOR_REALTEK=y CONFIG_ATP=m CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set -CONFIG_8139TOO_TUNE_TWISTER=y +# CONFIG_8139TOO_TUNE_TWISTER is not set CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_R8169=m CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m CONFIG_NET_VENDOR_SEEQ=y -CONFIG_SEEQ8005=m CONFIG_NET_VENDOR_SILAN=y CONFIG_SC92031=m CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m CONFIG_SIS190=m CONFIG_SFC=m -CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_SRIOV=y CONFIG_NET_VENDOR_SMSC=y CONFIG_SMC9194=m CONFIG_PCMCIA_SMC91C92=m @@ -1951,9 +2018,10 @@ CONFIG_EPIC100=m CONFIG_SMSC9420=m CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=y +CONFIG_STMMAC_PCI=y +# CONFIG_STMMAC_DEBUG_FS is not set # CONFIG_STMMAC_DA is not set -CONFIG_STMMAC_RING=y -# CONFIG_STMMAC_CHAINED is not set CONFIG_NET_VENDOR_SUN=y CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m @@ -1967,16 +2035,24 @@ CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y CONFIG_VIA_VELOCITY=m +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y CONFIG_NET_VENDOR_XIRCOM=y CONFIG_PCMCIA_XIRC2PS=m # CONFIG_FDDI is not set # CONFIG_HIPPI is not set -CONFIG_NET_SB1000=m +# CONFIG_NET_SB1000 is not set CONFIG_PHYLIB=y
# # MII PHY device drivers # +CONFIG_AT803X_PHY=m +CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m CONFIG_DAVICOM_PHY=m CONFIG_QSEMI_PHY=m @@ -1985,15 +2061,16 @@ CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m CONFIG_SMSC_PHY=m CONFIG_BROADCOM_PHY=m +CONFIG_BCM87XX_PHY=m CONFIG_ICPLUS_PHY=m CONFIG_REALTEK_PHY=m CONFIG_NATIONAL_PHY=m CONFIG_STE10XP=m CONFIG_LSI_ET1011C_PHY=m CONFIG_MICREL_PHY=m -# CONFIG_FIXED_PHY is not set +CONFIG_FIXED_PHY=y CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m +# CONFIG_MDIO_GPIO is not set # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m @@ -2007,12 +2084,8 @@ CONFIG_PPTP=m CONFIG_PPPOL2TP=m CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m -CONFIG_SLIP=m +# CONFIG_SLIP is not set CONFIG_SLHC=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_TR is not set
# # USB Network Adapters @@ -2021,11 +2094,14 @@ CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m @@ -2044,14 +2120,17 @@ CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -# CONFIG_USB_IPHETH is not set +CONFIG_USB_IPHETH=m CONFIG_USB_SIERRA_NET=m CONFIG_USB_VL600=m CONFIG_WLAN=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS_THINFIRM is not set +# CONFIG_PCMCIA_RAYCS is not set +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m CONFIG_AIRO=m CONFIG_ATMEL=m CONFIG_PCI_ATMEL=m @@ -2062,73 +2141,175 @@ CONFIG_PCMCIA_WL3501=m # CONFIG_PRISM54 is not set CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_BRCMFMAC is not set +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_ADM8211=m +CONFIG_MAC80211_HWSIM=m +CONFIG_MWL8K=m +CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH5K=m +CONFIG_ATH5K_DEBUG=y +# CONFIG_ATH5K_TRACER is not set +CONFIG_ATH5K_PCI=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_AHB=y +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +# CONFIG_ATH6KL is not set +CONFIG_AR5523=m +CONFIG_WIL6210=m +CONFIG_WIL6210_ISR_COR=y +CONFIG_B43=m +CONFIG_B43_SSB=y +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +CONFIG_B43_SDIO=y +CONFIG_B43_PIO=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y +# CONFIG_BRCMFMAC_USB is not set +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_FIRMWARE_NVRAM=y CONFIG_HOSTAP_PLX=m CONFIG_HOSTAP_PCI=m CONFIG_HOSTAP_CS=m -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -# CONFIG_IWL4965 is not set -# CONFIG_IWL3945 is not set -# CONFIG_IWM is not set -# CONFIG_LIBERTAS is not set -# CONFIG_HERMES is not set -# CONFIG_P54_COMMON is not set -# CONFIG_RT2X00 is not set -# CONFIG_RTL8192CE is not set -# CONFIG_RTL8192SE is not set -# CONFIG_RTL8192DE is not set -# CONFIG_RTL8192CU is not set -# CONFIG_WL1251 is not set -# CONFIG_WL12XX_MENU is not set -# CONFIG_ZD1211RW is not set -# CONFIG_MWIFIEX is not set +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLWIFI=m +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m +CONFIG_IWLWIFI_OPMODE_MODULAR=y + +# +# Debugging Options +# +# CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_IWLWIFI_P2P=y +CONFIG_IWLEGACY=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m + +# +# iwl3945 / iwl4965 Debugging Options +# +# CONFIG_IWLEGACY_DEBUG is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y +CONFIG_HERMES=m +# CONFIG_HERMES_PRISM is not set +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ORINOCO_USB=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_MMIO=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RTLWIFI=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTL8192CE=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m +CONFIG_RTL8188EE=m +CONFIG_RTL8192CU=m +CONFIG_RTL8192C_COMMON=m +CONFIG_WL_TI=y +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_USB=m
# # Enable WiMAX (Networking options) to see the WiMAX drivers # -CONFIG_WAN=y -CONFIG_HOSTESS_SV11=m -CONFIG_COSA=m -CONFIG_LANMEDIA=m -CONFIG_SEALEVEL_4021=m -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_N2=m -CONFIG_C101=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_SDLA=m -CONFIG_SBNI=m -CONFIG_SBNI_MULTILINE=y +# CONFIG_WAN is not set CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_NETDEV_BACKEND=m CONFIG_VMXNET3=m @@ -2161,9 +2342,9 @@ CONFIG_ISDN_DRV_HISAX=m # CONFIG_HISAX_EURO=y CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y CONFIG_HISAX_1TR6=y CONFIG_HISAX_NI1=y CONFIG_HISAX_MAX_CARDS=8 @@ -2171,27 +2352,27 @@ CONFIG_HISAX_MAX_CARDS=8 # # HiSax supported cards # -CONFIG_HISAX_16_0=y +# CONFIG_HISAX_16_0 is not set CONFIG_HISAX_16_3=y CONFIG_HISAX_TELESPCI=y CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_AVM_A1=y +# CONFIG_HISAX_AVM_A1 is not set CONFIG_HISAX_FRITZPCI=y CONFIG_HISAX_AVM_A1_PCMCIA=y CONFIG_HISAX_ELSA=y -CONFIG_HISAX_IX1MICROR2=y +# CONFIG_HISAX_IX1MICROR2 is not set CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_ASUSCOM=y -CONFIG_HISAX_TELEINT=y -CONFIG_HISAX_HFCS=y +# CONFIG_HISAX_ASUSCOM is not set +# CONFIG_HISAX_TELEINT is not set +# CONFIG_HISAX_HFCS is not set CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_SPORTSTER=y -CONFIG_HISAX_MIC=y +# CONFIG_HISAX_SPORTSTER is not set +# CONFIG_HISAX_MIC is not set CONFIG_HISAX_NETJET=y CONFIG_HISAX_NETJET_U=y CONFIG_HISAX_NICCY=y -CONFIG_HISAX_ISURF=y -CONFIG_HISAX_HSTSAPHIR=y +# CONFIG_HISAX_ISURF is not set +# CONFIG_HISAX_HSTSAPHIR is not set CONFIG_HISAX_BKM_A4T=y CONFIG_HISAX_SCT_QUADRO=y CONFIG_HISAX_GAZEL=y @@ -2199,15 +2380,15 @@ CONFIG_HISAX_HFC_PCI=y CONFIG_HISAX_W6692=y CONFIG_HISAX_HFC_SX=y CONFIG_HISAX_ENTERNOW_PCI=y -CONFIG_HISAX_DEBUG=y +# CONFIG_HISAX_DEBUG is not set
# # HiSax PCMCIA card service modules # -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_TELES_CS=m +# CONFIG_HISAX_SEDLBAUER_CS is not set +# CONFIG_HISAX_ELSA_CS is not set +# CONFIG_HISAX_AVM_A1_CS is not set +# CONFIG_HISAX_TELES_CS is not set
# # HiSax sub driver modules @@ -2220,10 +2401,10 @@ CONFIG_HISAX_FRITZ_PCIPNP=m # # Active cards # -CONFIG_ISDN_DRV_ICN=m -CONFIG_ISDN_DRV_PCBIT=m -CONFIG_ISDN_DRV_SC=m -CONFIG_ISDN_DRV_ACT2000=m +# CONFIG_ISDN_DRV_ICN is not set +# CONFIG_ISDN_DRV_PCBIT is not set +# CONFIG_ISDN_DRV_SC is not set +# CONFIG_ISDN_DRV_ACT2000 is not set CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_CAPI_TRACE=y @@ -2235,12 +2416,11 @@ CONFIG_ISDN_CAPI_CAPIDRV=m # CAPI hardware drivers # CONFIG_CAPI_AVM=y -CONFIG_ISDN_DRV_AVMB1_B1ISA=m +# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set CONFIG_ISDN_DRV_AVMB1_B1PCI=m CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_T1ISA=m -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set +# CONFIG_ISDN_DRV_AVMB1_B1PCMCIA is not set CONFIG_ISDN_DRV_AVMB1_T1PCI=m CONFIG_ISDN_DRV_AVMB1_C4=m CONFIG_CAPI_EICON=y @@ -2278,15 +2458,15 @@ CONFIG_MISDN_NETJET=m CONFIG_MISDN_IPAC=m CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m -# CONFIG_PHONE is not set
# # Input device support # CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m +# CONFIG_INPUT_FF_MEMLESS is not set CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m
# # Userland interfaces @@ -2296,59 +2476,85 @@ CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set
# # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ADP5589=m +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y -CONFIG_KEYBOARD_QT1070=m -CONFIG_KEYBOARD_QT2160=m -CONFIG_KEYBOARD_LKKBD=m +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set CONFIG_KEYBOARD_GPIO=m CONFIG_KEYBOARD_GPIO_POLLED=m -CONFIG_KEYBOARD_TCA6416=m -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_MCS=m -CONFIG_KEYBOARD_MPR121=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_XTKBD=m -# CONFIG_INPUT_MOUSE is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +CONFIG_KEYBOARD_LM8333=m +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +CONFIG_MOUSE_VSXXXAA=m +# CONFIG_MOUSE_GPIO is not set +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set CONFIG_INPUT_PCSPKR=m # CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_APANEL=m +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set # CONFIG_INPUT_WISTRON_BTNS is not set -# CONFIG_INPUT_ATLAS_BTNS is not set +CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_UINPUT=m +# CONFIG_INPUT_PCF8574 is not set CONFIG_INPUT_GPIO_ROTARY_ENCODER=m # CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set -CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
# # Hardware I/O ports @@ -2360,125 +2566,136 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PARKBD is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set +CONFIG_SERIO_RAW=m CONFIG_SERIO_ALTERA_PS2=m -CONFIG_SERIO_PS2MULT=m +# CONFIG_SERIO_PS2MULT is not set +CONFIG_SERIO_ARC_PS2=m # CONFIG_GAMEPORT is not set
# # Character devices # +CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y # CONFIG_LEGACY_PTYS is not set -# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m CONFIG_NOZOMI=m +# CONFIG_ISI is not set +CONFIG_N_HDLC=m CONFIG_N_GSM=m # CONFIG_TRACE_SINK is not set -CONFIG_DEVKMEM=y +# CONFIG_DEVKMEM is not set +# CONFIG_STALDRV is not set
# # Serial drivers # CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_FIX_EARLYCON_MEM=y +CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_PNP=y -CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_CS is not set CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y -CONFIG_SERIAL_8250_FOURPORT=m -CONFIG_SERIAL_8250_ACCENT=m -CONFIG_SERIAL_8250_BOCA=m -CONFIG_SERIAL_8250_EXAR_ST16C554=m -CONFIG_SERIAL_8250_HUB6=m +# CONFIG_SERIAL_8250_FOURPORT is not set +# CONFIG_SERIAL_8250_ACCENT is not set +# CONFIG_SERIAL_8250_BOCA is not set +# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set +# CONFIG_SERIAL_8250_HUB6 is not set CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y -# CONFIG_SERIAL_8250_MCA is not set +CONFIG_SERIAL_8250_DW=m
# # Non-8250 serial port support # -CONFIG_SERIAL_MFD_HSU=m -CONFIG_SERIAL_UARTLITE=m +# CONFIG_SERIAL_MFD_HSU is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -CONFIG_SERIAL_TIMBERDALE=m -CONFIG_SERIAL_ALTERA_JTAGUART=m -CONFIG_SERIAL_ALTERA_UART=m -CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 -CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 -CONFIG_SERIAL_PCH_UART=m -CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_SCCNXP=m +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_PCH_UART is not set +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +CONFIG_SERIAL_RP2=m +CONFIG_SERIAL_RP2_NR_UARTS=32 +# CONFIG_TTY_PRINTK is not set CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set +CONFIG_LP_CONSOLE=y CONFIG_PPDEV=m CONFIG_HVC_DRIVER=y CONFIG_HVC_IRQ=y CONFIG_HVC_XEN=y +CONFIG_HVC_XEN_FRONTEND=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_PANIC_EVENT=y -# CONFIG_IPMI_PANIC_STRING is not set +# CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_ATMEL=m CONFIG_HW_RANDOM_GEODE=m CONFIG_HW_RANDOM_VIA=m CONFIG_HW_RANDOM_VIRTIO=m -CONFIG_NVRAM=m +CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_NVRAM=y # CONFIG_DTLK is not set -# CONFIG_R3964 is not set +CONFIG_R3964=m # CONFIG_APPLICOM is not set -# CONFIG_SONYPI is not set +CONFIG_SONYPI=m
# # PCMCIA character devices # -CONFIG_SYNCLINK_CS=m +# CONFIG_SYNCLINK_CS is not set # CONFIG_CARDMAN_4000 is not set # CONFIG_CARDMAN_4040 is not set -CONFIG_IPWIRELESS=m +# CONFIG_IPWIRELESS is not set CONFIG_MWAVE=m -CONFIG_SCx200_GPIO=m CONFIG_PC8736x_GPIO=m CONFIG_NSC_GPIO=m -# CONFIG_RAW_DRIVER is not set +CONFIG_RAW_DRIVER=y +CONFIG_MAX_RAW_DEVS=8192 CONFIG_HPET=y -CONFIG_HPET_MMAP=y +# CONFIG_HPET_MMAP is not set CONFIG_HANGCHECK_TIMER=m # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y -# CONFIG_RAMOOPS is not set CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m -CONFIG_I2C_MUX=m - -# -# Multiplexer I2C Chip support -# -CONFIG_I2C_MUX_GPIO=m -CONFIG_I2C_MUX_PCA9541=m -CONFIG_I2C_MUX_PCA954x=m +# CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -2499,6 +2716,7 @@ CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=m CONFIG_I2C_ISCH=m +CONFIG_I2C_ISMT=m CONFIG_I2C_PIIX4=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_NFORCE2_S4985=m @@ -2516,16 +2734,18 @@ CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # +CONFIG_I2C_CBUS_GPIO=m CONFIG_I2C_DESIGNWARE_CORE=m -CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_GPIO=m -CONFIG_I2C_INTEL_MID=m -CONFIG_I2C_OCORES=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EG20T is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_INTEL_MID is not set +# CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m -CONFIG_I2C_XILINX=m -CONFIG_I2C_EG20T=m +# CONFIG_I2C_XILINX is not set
# # External I2C/SMBus adapter drivers @@ -2533,22 +2753,34 @@ CONFIG_I2C_EG20T=m CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_TAOS_EVM=m +# CONFIG_I2C_TAOS_EVM is not set CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIPERBOARD=m
# # Other I2C/SMBus bus drivers # -CONFIG_I2C_PCA_ISA=m -CONFIG_I2C_STUB=m -# CONFIG_SCx200_I2C is not set +# CONFIG_I2C_PCA_ISA is not set CONFIG_SCx200_ACB=m +# CONFIG_I2C_STUB is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_SPI is not set
# +# Qualcomm MSM SSBI bus support +# +# CONFIG_SSBI is not set +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y + +# +# HSI clients +# +CONFIG_HSI_CHAR=m + +# # PPS support # CONFIG_PPS=m @@ -2570,67 +2802,76 @@ CONFIG_PPS=m # PTP clock support # CONFIG_PTP_1588_CLOCK=m -CONFIG_DP83640_PHY=m + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_GPIO_DEVRES=y CONFIG_GPIOLIB=y +CONFIG_GPIO_ACPI=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_GENERIC=m -CONFIG_GPIO_MAX730X=m
# # Memory mapped GPIO drivers: # -CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_IT8761E is not set +CONFIG_GPIO_TS5500=m CONFIG_GPIO_SCH=m -CONFIG_GPIO_VX855=m +CONFIG_GPIO_ICH=m +# CONFIG_GPIO_VX855 is not set +# CONFIG_GPIO_LYNXPOINT is not set
# # I2C GPIO expanders: # -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m -CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_ADP5588=m +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_ADP5588 is not set
# # PCI GPIO expanders: # -CONFIG_GPIO_CS5535=m -# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_CS5535 is not set +# CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_LANGWELL is not set -CONFIG_GPIO_PCH=m -CONFIG_GPIO_ML_IOH=m -# CONFIG_GPIO_TIMBERDALE is not set -CONFIG_GPIO_RDC321X=m +# CONFIG_GPIO_PCH is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_RDC321X is not set
# # SPI GPIO expanders: # -CONFIG_GPIO_MCP23S08=m +# CONFIG_GPIO_MCP23S08 is not set
# # AC97 GPIO expanders: # -# CONFIG_GPIO_UCB1400 is not set
# # MODULbus GPIO expanders: # -CONFIG_GPIO_JANZ_TTL=m + +# +# USB GPIO expanders: +# +CONFIG_GPIO_VIPERBOARD=m CONFIG_W1=m CONFIG_W1_CON=y
# # 1-wire Bus Masters # -CONFIG_W1_MASTER_MATROX=m +# CONFIG_W1_MASTER_MATROX is not set CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m CONFIG_W1_MASTER_DS1WM=m -CONFIG_W1_MASTER_GPIO=m +# CONFIG_W1_MASTER_GPIO is not set
# # 1-wire Slaves @@ -2638,29 +2879,39 @@ CONFIG_W1_MASTER_GPIO=m CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set +CONFIG_GENERIC_ADC_BATTERY=m # CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set # CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_SBS is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set -CONFIG_HWMON=m +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GOLDFISH is not set +CONFIG_POWER_RESET=y +CONFIG_POWER_AVS=y +CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2677,6 +2928,8 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m @@ -2697,12 +2950,14 @@ CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_GPIO_FAN=m +# CONFIG_SENSORS_GPIO_FAN is not set +CONFIG_SENSORS_HIH6130=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m +# CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_JC42=m +# CONFIG_SENSORS_JC42 is not set CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM73=m @@ -2720,14 +2975,19 @@ CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m @@ -2736,20 +2996,20 @@ CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_LM25066=m -CONFIG_SENSORS_LTC2978=m +# CONFIG_SENSORS_LTC2978 is not set CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m -CONFIG_SENSORS_ZL6100=m +# CONFIG_SENSORS_ZL6100 is not set CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_SMM665=m +# CONFIG_SENSORS_SMM665 is not set CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m -CONFIG_SENSORS_EMC2103=m +# CONFIG_SENSORS_EMC2103 is not set CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m @@ -2760,6 +3020,8 @@ CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m @@ -2786,51 +3048,63 @@ CONFIG_SENSORS_APPLESMC=m CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +CONFIG_INTEL_POWERCLAMP=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y -# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_NOWAYOUT=y
# # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_ACQUIRE_WDT=m -CONFIG_ADVANTECH_WDT=m +CONFIG_RETU_WATCHDOG=m +# CONFIG_ACQUIRE_WDT is not set +# CONFIG_ADVANTECH_WDT is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m CONFIG_F71808E_WDT=m CONFIG_SP5100_TCO=m CONFIG_GEODE_WDT=m -CONFIG_SC520_WDT=m +# CONFIG_SC520_WDT is not set CONFIG_SBC_FITPC2_WATCHDOG=m -CONFIG_EUROTECH_WDT=m +# CONFIG_EUROTECH_WDT is not set CONFIG_IB700_WDT=m CONFIG_IBMASR=m -CONFIG_WAFER_WDT=m +# CONFIG_WAFER_WDT is not set CONFIG_I6300ESB_WDT=m +CONFIG_IE6XX_WDT=m CONFIG_ITCO_WDT=m # CONFIG_ITCO_VENDOR_SUPPORT is not set CONFIG_IT8712F_WDT=m CONFIG_IT87_WDT=m CONFIG_HP_WATCHDOG=m CONFIG_HPWDT_NMI_DECODING=y -CONFIG_SC1200_WDT=m -CONFIG_SCx200_WDT=m -CONFIG_PC87413_WDT=m +# CONFIG_SC1200_WDT is not set +# CONFIG_PC87413_WDT is not set CONFIG_NV_TCO=m -CONFIG_60XX_WDT=m -CONFIG_SBC8360_WDT=m -CONFIG_SBC7240_WDT=m -CONFIG_CPU5_WDT=m +# CONFIG_60XX_WDT is not set +# CONFIG_SBC8360_WDT is not set +# CONFIG_SBC7240_WDT is not set +# CONFIG_CPU5_WDT is not set CONFIG_SMSC_SCH311X_WDT=m -CONFIG_SMSC37B787_WDT=m +# CONFIG_SMSC37B787_WDT is not set +CONFIG_VIA_WDT=m CONFIG_W83627HF_WDT=m CONFIG_W83697HF_WDT=m CONFIG_W83697UG_WDT=m CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m -CONFIG_SBC_EPX_C3_WATCHDOG=m +# CONFIG_SBC_EPX_C3_WATCHDOG is not set CONFIG_XEN_WDT=m
# @@ -2857,397 +3131,629 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB=m CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y -# CONFIG_SSB_B43_PCI_BRIDGE is not set +CONFIG_SSB_B43_PCI_BRIDGE=y CONFIG_SSB_PCMCIAHOST_POSSIBLE=y CONFIG_SSB_PCMCIAHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y -# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_SILENT=y CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_GPIO=y CONFIG_BCMA_POSSIBLE=y
# # Broadcom specific AMBA # -CONFIG_BCMA=m -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -# CONFIG_BCMA_HOST_PCI is not set -# CONFIG_BCMA_DEBUG is not set +# CONFIG_BCMA is not set
# # Multifunction device drivers # CONFIG_MFD_CORE=m -CONFIG_MFD_SM501=m -# CONFIG_MFD_SM501_GPIO is not set -CONFIG_HTC_PASIC3=m -CONFIG_UCB1400_CORE=m -CONFIG_TPS6105X=m -CONFIG_TPS65010=m -CONFIG_TPS6507X=m -# CONFIG_MFD_TMIO is not set -CONFIG_MFD_WM8400=m -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_ABX500_CORE is not set CONFIG_MFD_CS5535=m -CONFIG_MFD_TIMBERDALE=m +# CONFIG_MFD_CROS_EC is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_HTC_PASIC3 is not set +CONFIG_LPC_ICH=m CONFIG_LPC_SCH=m -CONFIG_MFD_RDC321X=m -CONFIG_MFD_JANZ_CMODIO=m -CONFIG_MFD_VX855=m +# CONFIG_MFD_JANZ_CMODIO is not set +CONFIG_MFD_VIPERBOARD=m +CONFIG_MFD_RETU=m +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RDC321X is not set +CONFIG_MFD_RTSX_PCI=m +# CONFIG_MFD_SI476X_CORE is not set +CONFIG_MFD_SM501=m +CONFIG_MFD_SM501_GPIO=y +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TPS65912 is not set CONFIG_MFD_WL1273_CORE=m -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR_DUMMY is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=m -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -CONFIG_REGULATOR_GPIO=m -# CONFIG_REGULATOR_BQ24022 is not set -# CONFIG_REGULATOR_MAX1586 is not set -# CONFIG_REGULATOR_MAX8649 is not set -# CONFIG_REGULATOR_MAX8660 is not set -# CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_WM8400 is not set -# CONFIG_REGULATOR_PCF50633 is not set -# CONFIG_REGULATOR_LP3971 is not set -# CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS6105X is not set -# CONFIG_REGULATOR_TPS65023 is not set -# CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set +CONFIG_MFD_LM3533=m +# CONFIG_MFD_TIMBERDALE is not set +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_VX855=m +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_REGULATOR is not set CONFIG_MEDIA_SUPPORT=m
# # Multimedia core support # +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +# CONFIG_MEDIA_RADIO_SUPPORT is not set +CONFIG_MEDIA_RC_SUPPORT=y CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_VIDEO_V4L2=m +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m CONFIG_DVB_CORE=m CONFIG_DVB_NET=y -CONFIG_VIDEO_MEDIA=m +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y
# -# Multimedia drivers +# Media drivers # CONFIG_RC_CORE=m -CONFIG_LIRC=m CONFIG_RC_MAP=m -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_RC5_SZ_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_LIRC_CODEC is not set -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_ENE is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_ITE_CIR is not set -# CONFIG_IR_FINTEK is not set -# CONFIG_IR_NUVOTON is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_IR_WINBOND_CIR is not set -# CONFIG_RC_LOOPBACK is not set -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -CONFIG_VIDEO_IR_I2C=m - -# -# Encoders, decoders, sensors and other helper chips -# - -# -# Audio decoders, processors and mixers -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_AK881X is not set +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_RC_DEVICES=y +CONFIG_RC_ATI_REMOTE=m +CONFIG_IR_ENE=m +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_ITE_CIR=m +CONFIG_IR_FINTEK=m +CONFIG_IR_NUVOTON=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_WINBOND_CIR=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_USB_SN9C102=m + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160=m +CONFIG_VIDEO_STK1160_AC97=y + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m +CONFIG_MEDIA_PCI_SUPPORT=y + +# +# Media capture support +# +CONFIG_VIDEO_MEYE=m + +# +# Media capture/analog TV support +# +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_MXB=m + +# +# Media capture/analog/hybrid TV support +# +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_BT848=m +CONFIG_DVB_BT8XX=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7164=m + +# +# Media digital TV PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_DM1105=m +CONFIG_DVB_PT1=m +CONFIG_MANTIS_CORE=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_HOPPER=m +CONFIG_DVB_NGENE=m +CONFIG_DVB_DDBRIDGE=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_CAFE_CCIC=m +# CONFIG_VIDEO_VIA_CAMERA is not set +CONFIG_VIDEO_TIMBERDALE=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_VIDEO_SH_MOBILE_CSI2=m +CONFIG_VIDEO_SH_MOBILE_CEU=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m +CONFIG_VIDEO_SH_VEU=m +# CONFIG_V4L_TEST_DRIVERS is not set
# -# Camera sensor devices +# Supported MMC/SDIO adapters # -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_S5K6AA is not set +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_MEDIA_PARPORT_SUPPORT is not set
# -# Flash devices -# -# CONFIG_VIDEO_ADP1653 is not set - -# -# Video improvement chips +# Supported FireWire (IEEE 1394) Adapters # -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_MEDIA_COMMON_OPTIONS=y
# -# Miscelaneous helper chips +# common driver options # -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_PMS is not set -# CONFIG_VIDEO_BWQCAM is not set -# CONFIG_VIDEO_CQCAM is not set -# CONFIG_VIDEO_W9966 is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_MEYE is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_MXB is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_TIMBERDALE is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_CX23885 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_IVTV is not set -# CONFIG_VIDEO_CX18 is not set -# CONFIG_VIDEO_SAA7164 is not set -# CONFIG_VIDEO_CAFE_CCIC is not set -# CONFIG_VIDEO_VIA_CAMERA is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_TLG2300 is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_TM6000 is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_CADET is not set -# CONFIG_RADIO_RTRACK is not set -# CONFIG_RADIO_RTRACK2 is not set -# CONFIG_RADIO_AZTECH is not set -# CONFIG_RADIO_GEMTEK is not set -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MIROPCM20 is not set -# CONFIG_RADIO_SF16FMI is not set -# CONFIG_RADIO_SF16FMR2 is not set -# CONFIG_RADIO_TERRATEC is not set -# CONFIG_RADIO_TRUST is not set -# CONFIG_RADIO_TYPHOON is not set -# CONFIG_RADIO_ZOLTRIX is not set -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_TIMBERDALE is not set -# CONFIG_RADIO_WL1273 is not set - -# -# Texas Instruments WL128x FM driver (ST based) -# -# CONFIG_RADIO_WL128X is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set
# -# Supported SAA7146 based PCI Adapters +# Media ancillary drivers (tuners, sensors, i2c, frontends) # -# CONFIG_TTPCI_EEPROM is not set -# CONFIG_DVB_AV7110 is not set -# CONFIG_DVB_BUDGET_CORE is not set +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=m
# -# Supported USB Adapters +# Audio decoders, processors and mixers # -# CONFIG_DVB_USB is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set -# CONFIG_SMS_SIANO_MDTV is not set +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m
# -# Supported FlexCopII (B2C2) Adapters +# RDS decoders # -# CONFIG_DVB_B2C2_FLEXCOP is not set +CONFIG_VIDEO_SAA6588=m
# -# Supported BT878 Adapters +# Video decoders # +CONFIG_VIDEO_ADV7180=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m
# -# Supported Pluto2 Adapters +# Video and audio decoders # -# CONFIG_DVB_PLUTO2 is not set +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_CX25840=m
# -# Supported SDMC DM1105 Adapters +# Video encoders # -# CONFIG_DVB_DM1105 is not set +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m
# -# Supported FireWire (IEEE 1394) Adapters +# Camera sensor devices # -# CONFIG_DVB_FIREDTV is not set +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_MT9V011=m
# -# Supported Earthsoft PT1 Adapters +# Flash devices # -# CONFIG_DVB_PT1 is not set
# -# Supported Mantis Adapters +# Video improvement chips # -# CONFIG_MANTIS_CORE is not set +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m
# -# Supported nGene Adapters +# Miscelaneous helper chips # -# CONFIG_DVB_NGENE is not set +CONFIG_VIDEO_M52790=m
# -# Supported ddbridge ('Octopus') Adapters +# Sensors used on soc_camera driver # -# CONFIG_DVB_DDBRIDGE is not set
# -# Supported DVB Frontends +# soc_camera sensor drivers # -# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m
# # Multistandard (satellite) frontends # +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m
# # Multistandard (cable + terrestrial) frontends # +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m
# # DVB-S (satellite) frontends # +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_M88DC2800=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m +CONFIG_DVB_TDA10071=m
# # DVB-T (terrestrial) frontends # +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m
# # DVB-C (cable) frontends # +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m
# # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m
# # ISDB-T (terrestrial) frontends # +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m
# # Digital terrestrial only tuners/PLL # +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m
# # SEC control devices for DVB-S # +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m
# # Tools to develop new frontends @@ -3257,27 +3763,40 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # # Graphics support # -CONFIG_AGP=m -CONFIG_AGP_ALI=m -CONFIG_AGP_ATI=m -CONFIG_AGP_AMD=m -CONFIG_AGP_AMD64=m -CONFIG_AGP_INTEL=m -CONFIG_AGP_NVIDIA=m -CONFIG_AGP_SIS=m -CONFIG_AGP_SWORKS=m -CONFIG_AGP_VIA=m -CONFIG_AGP_EFFICEON=m +CONFIG_AGP=y +# CONFIG_AGP_ALI is not set +# CONFIG_AGP_ATI is not set +# CONFIG_AGP_AMD is not set +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=y +# CONFIG_AGP_NVIDIA is not set +CONFIG_AGP_SIS=y +# CONFIG_AGP_SWORKS is not set +CONFIG_AGP_VIA=y +# CONFIG_AGP_EFFICEON is not set CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 -# CONFIG_VGA_SWITCHEROO is not set +CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m +CONFIG_DRM_USB=m CONFIG_DRM_KMS_HELPER=m +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set CONFIG_DRM_TTM=m + +# +# I2C encoder or helper chips +# +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m CONFIG_DRM_TDFX=m CONFIG_DRM_R128=m CONFIG_DRM_RADEON=m -CONFIG_DRM_RADEON_KMS=y +# CONFIG_DRM_RADEON_UMS is not set +CONFIG_DRM_NOUVEAU=m +CONFIG_NOUVEAU_DEBUG=5 +CONFIG_NOUVEAU_DEBUG_DEFAULT=3 +CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_I810=m CONFIG_DRM_I915=m CONFIG_DRM_I915_KMS=y @@ -3286,9 +3805,18 @@ CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m CONFIG_DRM_VMWGFX=m -CONFIG_STUB_POULSBO=m +# CONFIG_DRM_VMWGFX_FBCON is not set +CONFIG_DRM_GMA500=m +CONFIG_DRM_GMA600=y +CONFIG_DRM_GMA3600=y +CONFIG_DRM_UDL=m +CONFIG_DRM_AST=m +CONFIG_DRM_MGAG200=m +CONFIG_DRM_CIRRUS_QEMU=m +CONFIG_DRM_QXL=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_HDMI=y CONFIG_FB=y CONFIG_FIRMWARE_EDID=y CONFIG_FB_DDC=m @@ -3302,7 +3830,6 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m -# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=m # CONFIG_FB_MACMODES is not set @@ -3313,45 +3840,38 @@ CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # -CONFIG_FB_CIRRUS=m +# CONFIG_FB_CIRRUS is not set CONFIG_FB_PM2=m -CONFIG_FB_PM2_FIFO_DISCONNECT=y +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set CONFIG_FB_CYBER2000=m CONFIG_FB_CYBER2000_DDC=y -# CONFIG_FB_ARC is not set -CONFIG_FB_ASILIANT=y +CONFIG_FB_ARC=m +# CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set -# CONFIG_FB_VGA16 is not set -CONFIG_FB_UVESA=m +CONFIG_FB_VGA16=m +# CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y +CONFIG_FB_EFI=y # CONFIG_FB_N411 is not set -# CONFIG_FB_HGA is not set +CONFIG_FB_HGA=m # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_NVIDIA=m -CONFIG_FB_NVIDIA_I2C=y -# CONFIG_FB_NVIDIA_DEBUG is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y +# CONFIG_FB_NVIDIA is not set CONFIG_FB_RIVA=m CONFIG_FB_RIVA_I2C=y # CONFIG_FB_RIVA_DEBUG is not set CONFIG_FB_RIVA_BACKLIGHT=y -CONFIG_FB_I810=m -CONFIG_FB_I810_GTF=y -CONFIG_FB_I810_I2C=y +CONFIG_FB_I740=m +# CONFIG_FB_I810 is not set CONFIG_FB_LE80578=m CONFIG_FB_CARILLO_RANCH=m +# CONFIG_FB_INTEL is not set CONFIG_FB_MATROX=m CONFIG_FB_MATROX_MILLENIUM=y CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=m -CONFIG_FB_MATROX_MAVEN=m -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -CONFIG_FB_ATY128=m -CONFIG_FB_ATY128_BACKLIGHT=y +# CONFIG_FB_MATROX_G is not set +# CONFIG_FB_MATROX_I2C is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set CONFIG_FB_ATY=m CONFIG_FB_ATY_CT=y # CONFIG_FB_ATY_GENERIC_LCD is not set @@ -3362,17 +3882,13 @@ CONFIG_FB_S3_DDC=y CONFIG_FB_SAVAGE=m CONFIG_FB_SAVAGE_I2C=y CONFIG_FB_SAVAGE_ACCEL=y -CONFIG_FB_SIS=m -CONFIG_FB_SIS_300=y -CONFIG_FB_SIS_315=y +# CONFIG_FB_SIS is not set CONFIG_FB_VIA=m # CONFIG_FB_VIA_DIRECT_PROCFS is not set # CONFIG_FB_VIA_X_COMPATIBILITY is not set CONFIG_FB_NEOMAGIC=m CONFIG_FB_KYRO=m -CONFIG_FB_3DFX=m -CONFIG_FB_3DFX_ACCEL=y -CONFIG_FB_3DFX_I2C=y +# CONFIG_FB_3DFX is not set CONFIG_FB_VOODOO1=m CONFIG_FB_VT8623=m CONFIG_FB_TRIDENT=m @@ -3383,44 +3899,39 @@ CONFIG_FB_GEODE=y CONFIG_FB_GEODE_LX=m CONFIG_FB_GEODE_GX=m CONFIG_FB_GEODE_GX1=m -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SM501 is not set CONFIG_FB_SMSCUFX=m -# CONFIG_FB_UDL is not set +CONFIG_FB_UDL=m +# CONFIG_FB_GOLDFISH is not set # CONFIG_FB_VIRTUAL is not set CONFIG_XEN_FBDEV_FRONTEND=m -CONFIG_FB_METRONOME=m +# CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +# CONFIG_EXYNOS_VIDEO is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_PROGEAR=m -CONFIG_BACKLIGHT_CARILLO_RANCH=m +# CONFIG_BACKLIGHT_GENERIC is not set +# CONFIG_BACKLIGHT_LM3533 is not set +# CONFIG_BACKLIGHT_CARILLO_RANCH is not set CONFIG_BACKLIGHT_APPLE=m -CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m -CONFIG_BACKLIGHT_PCF50633=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# +# CONFIG_BACKLIGHT_SAHARA is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3630 is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_LP855X is not set
# # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set -# CONFIG_MDA_CONSOLE is not set +CONFIG_MDA_CONSOLE=m CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y @@ -3429,8 +3940,8 @@ CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set CONFIG_LOGO_LINUX_CLUT224=y CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y @@ -3453,9 +3964,12 @@ CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_VERBOSE is not set +CONFIG_SND_PCM_XRUN_DEBUG=y CONFIG_SND_VMASTER=y +CONFIG_SND_KCTL_JACK=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_RAWMIDI_SEQ=m CONFIG_SND_OPL3_LIB_SEQ=m @@ -3468,7 +3982,7 @@ CONFIG_SND_OPL4_LIB=m CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y -# CONFIG_SND_PCSP is not set +CONFIG_SND_PCSP=m CONFIG_SND_DUMMY=m CONFIG_SND_ALOOP=m CONFIG_SND_VIRMIDI=m @@ -3478,7 +3992,7 @@ CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m CONFIG_SND_AC97_POWER_SAVE=y -CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 CONFIG_SND_WSS_LIB=m CONFIG_SND_SB_COMMON=m CONFIG_SND_SB8_DSP=m @@ -3491,6 +4005,7 @@ CONFIG_SND_ALS100=m CONFIG_SND_AZT1605=m CONFIG_SND_AZT2316=m CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8328=m CONFIG_SND_CMI8330=m CONFIG_SND_CS4231=m CONFIG_SND_CS4236=m @@ -3528,7 +4043,7 @@ CONFIG_SND_ATIIXP_MODEM=m CONFIG_SND_AU8810=m CONFIG_SND_AU8820=m CONFIG_SND_AU8830=m -CONFIG_SND_AW2=m +# CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -3571,11 +4086,10 @@ CONFIG_SND_HDA_PREALLOC_SIZE=64 CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y -CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_BEEP_MODE=1 CONFIG_SND_HDA_INPUT_JACK=y -CONFIG_SND_HDA_PATCH_LOADER=y +# CONFIG_SND_HDA_PATCH_LOADER is not set CONFIG_SND_HDA_CODEC_REALTEK=y -CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y @@ -3584,11 +4098,11 @@ CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y CONFIG_SND_HDA_CODEC_CA0132=y +# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y -CONFIG_SND_HDA_POWER_SAVE=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m CONFIG_SND_ICE1712=m @@ -3607,7 +4121,7 @@ CONFIG_SND_RIPTIDE=m CONFIG_SND_RME32=m CONFIG_SND_RME96=m CONFIG_SND_RME9652=m -CONFIG_SND_SIS7019=m +# CONFIG_SND_SIS7019 is not set CONFIG_SND_SONICVIBES=m CONFIG_SND_TRIDENT=m CONFIG_SND_VIA82XX=m @@ -3626,103 +4140,110 @@ CONFIG_SND_USB_6FIRE=m CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=m CONFIG_SND_FIREWIRE_SPEAKERS=m -CONFIG_SND_ISIGHT=m +# CONFIG_SND_ISIGHT is not set +# CONFIG_SND_SCS1X is not set CONFIG_SND_PCMCIA=y -CONFIG_SND_VXPOCKET=m -CONFIG_SND_PDAUDIOCF=m +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set
# -# USB Input Devices +# HID support # -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y
# # Special HID drivers # -CONFIG_HID_A4TECH=m -CONFIG_HID_ACRUX=m -# CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_PRODIKEYS=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -# CONFIG_DRAGONRISE_FF is not set +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_PRODIKEYS is not set +CONFIG_HID_CYPRESS=y +# CONFIG_HID_DRAGONRISE is not set # CONFIG_HID_EMS_FF is not set -CONFIG_HID_ELECOM=m -CONFIG_HID_EZKEY=m -CONFIG_HID_HOLTEK=m -# CONFIG_HOLTEK_FF is not set +# CONFIG_HID_ELECOM is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_HOLTEK is not set CONFIG_HID_KEYTOUCH=m -CONFIG_HID_KYE=m -CONFIG_HID_UCLOGIC=m -CONFIG_HID_WALTOP=m +CONFIG_HID_KYE=y +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set CONFIG_HID_GYRATION=m +# CONFIG_HID_ICADE is not set CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m +CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=m -CONFIG_HID_LOGITECH=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set -CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NTRIG=m +# CONFIG_HID_MAGICMOUSE is not set +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -# CONFIG_PANTHERLORD_FF is not set +# CONFIG_HID_PANTHERLORD is not set CONFIG_HID_PETALYNX=m CONFIG_HID_PICOLCD=m CONFIG_HID_PICOLCD_FB=y CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y -CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m +CONFIG_HID_PICOLCD_CIR=y +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_PS3REMOTE is not set CONFIG_HID_ROCCAT=m -CONFIG_HID_ROCCAT_COMMON=m -CONFIG_HID_ROCCAT_ARVO=m -CONFIG_HID_ROCCAT_KONE=m -CONFIG_HID_ROCCAT_KONEPLUS=m -CONFIG_HID_ROCCAT_KOVAPLUS=m -CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m +# CONFIG_HID_SONY is not set CONFIG_HID_SPEEDLINK=m +# CONFIG_HID_STEELSERIES is not set CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -# CONFIG_GREENASIA_FF is not set -CONFIG_HID_SMARTJOYPLUS=m -# CONFIG_SMARTJOYPLUS_FF is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +CONFIG_HID_TIVO=m CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -# CONFIG_THRUSTMASTER_FF is not set -CONFIG_HID_WACOM=m -# CONFIG_HID_WACOM_POWER_SUPPLY is not set -CONFIG_HID_WIIMOTE=m -CONFIG_HID_ZEROPLUS=m -# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_THINGM=m +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_ZEROPLUS is not set CONFIG_HID_ZYDACRON=m -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_HID_SENSOR_HUB=m + +# +# USB HID support +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +CONFIG_I2C_HID=m CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -3730,14 +4251,12 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set -# CONFIG_USB_MON is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_MON=m CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_WUSB_CBAF_DEBUG is not set @@ -3747,26 +4266,31 @@ CONFIG_USB_WUSB_CBAF=m # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=m # CONFIG_USB_XHCI_HCD_DEBUGGING is not set CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y -CONFIG_USB_U132_HCD=m +# CONFIG_USB_U132_HCD is not set CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set +CONFIG_USB_SL811_HCD_ISO=y # CONFIG_USB_SL811_CS is not set -CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m +CONFIG_USB_HCD_SSB=m
# # USB Device Class drivers @@ -3783,7 +4307,7 @@ CONFIG_USB_TMC=m # # also be needed; see USB_STORAGE Help for more info # -CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y @@ -3799,20 +4323,24 @@ CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m -# CONFIG_USB_LIBUSUAL is not set
# # USB Imaging devices # -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_DWC3=m +CONFIG_USB_DWC3_HOST=y +# CONFIG_USB_DWC3_DEBUG is not set +CONFIG_USB_CHIPIDEA=m +# CONFIG_USB_CHIPIDEA_HOST is not set +# CONFIG_USB_CHIPIDEA_DEBUG is not set
# # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m @@ -3822,7 +4350,7 @@ CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m +# CONFIG_USB_SERIAL_EMPEG is not set CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_FUNSOFT=m CONFIG_USB_SERIAL_VISOR=m @@ -3830,16 +4358,18 @@ CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_F81232=m +# CONFIG_USB_SERIAL_GARMIN is not set CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m # CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set +CONFIG_USB_SERIAL_KLSI=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_METRO is not set CONFIG_USB_SERIAL_MOS7720=m -# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set +CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set @@ -3848,22 +4378,25 @@ CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set CONFIG_USB_SERIAL_SIEMENS_MPI=m CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m -CONFIG_USB_SERIAL_ZIO=m +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +CONFIG_USB_SERIAL_ZTE=m CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m # CONFIG_USB_SERIAL_DEBUG is not set
# @@ -3871,14 +4404,14 @@ CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set +CONFIG_USB_ADUTUX=m CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set # CONFIG_USB_IDMOUSE is not set CONFIG_USB_FTDI_ELAN=m # CONFIG_USB_APPLEDISPLAY is not set @@ -3888,21 +4421,17 @@ CONFIG_USB_SISUSBVGA_CON=y # CONFIG_USB_TRANCEVIBRATOR is not set CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set -CONFIG_USB_ISIGHTFW=m +# CONFIG_USB_ISIGHTFW is not set CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HSIC_USB3503=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m +# CONFIG_USB_PHY is not set # CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m @@ -3918,23 +4447,27 @@ CONFIG_MMC=m CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set
# # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -# CONFIG_MMC_RICOH_MMC is not set +CONFIG_MMC_RICOH_MMC=y +CONFIG_MMC_SDHCI_ACPI=m CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_PXAV2=m CONFIG_MMC_WBSD=m CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_SDRICOH_CS=m +# CONFIG_MMC_SDRICOH_CS is not set CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m +CONFIG_MMC_REALTEK_PCI=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set
@@ -3950,6 +4483,7 @@ CONFIG_MSPRO_BLOCK=m CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y
@@ -3957,43 +4491,73 @@ CONFIG_LEDS_CLASS=y # LED drivers # CONFIG_LEDS_LM3530=m -CONFIG_LEDS_NET48XX=m -CONFIG_LEDS_NET5501=m -CONFIG_LEDS_WRAP=m -CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_PCA9532_GPIO=y -CONFIG_LEDS_GPIO=m +CONFIG_LEDS_LM3533=m +CONFIG_LEDS_LM3642=m +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_GPIO is not set CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP55XX_COMMON=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LP5562=m CONFIG_LEDS_CLEVO_MAIL=m -CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_REGULATOR=m -CONFIG_LEDS_BD2802=m +# CONFIG_LEDS_PCA955X is not set +CONFIG_LEDS_PCA9633=m +# CONFIG_LEDS_BD2802 is not set CONFIG_LEDS_INTEL_SS4200=m CONFIG_LEDS_LT3593=m CONFIG_LEDS_DELL_NETBOOKS=m -CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_BLINKM=m
# # LED Triggers # +CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
# # iptables trigger is under Netfilter config (LED target) # +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set -# CONFIG_EDAC is not set +CONFIG_EDAC=y +# CONFIG_EDAC_LEGACY_SYSFS is not set +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_MCE_INJ=m +CONFIG_EDAC_MM_EDAC=m +# CONFIG_EDAC_AMD76X is not set +# CONFIG_EDAC_E7XXX is not set +CONFIG_EDAC_E752X=m +# CONFIG_EDAC_I82875P is not set +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I3200=m +CONFIG_EDAC_X38=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I7CORE=m +# CONFIG_EDAC_I82860 is not set +# CONFIG_EDAC_R82600 is not set +CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m +CONFIG_EDAC_I7300=m CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_SYSTOHC=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set
@@ -4018,12 +4582,13 @@ CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m -CONFIG_RTC_DRV_S35390A=m +# CONFIG_RTC_DRV_S35390A is not set CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m @@ -4043,60 +4608,77 @@ CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m +# CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_DS2404=m
# # on-CPU RTC drivers # + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_HID_SENSOR_TIME=m CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set
# # DMA Devices # -CONFIG_INTEL_MID_DMAC=m +# CONFIG_INTEL_MID_DMAC is not set CONFIG_INTEL_IOATDMA=m +CONFIG_DW_DMAC=m +# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set CONFIG_TIMB_DMA=m CONFIG_PCH_DMA=m CONFIG_DMA_ENGINE=y +CONFIG_DMA_ACPI=y
# # DMA Clients # CONFIG_NET_DMA=y CONFIG_ASYNC_TX_DMA=y -CONFIG_DMATEST=m +# CONFIG_DMATEST is not set CONFIG_DCA=m # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m -CONFIG_UIO_CIF=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m +# CONFIG_UIO_CIF is not set +# CONFIG_UIO_PDRV is not set +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m -CONFIG_UIO_NETX=m +# CONFIG_UIO_NETX is not set +# CONFIG_VFIO is not set +CONFIG_VIRT_DRIVERS=y CONFIG_VIRTIO=y -CONFIG_VIRTIO_RING=y
# # Virtio drivers # -CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_MMIO=m +# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set + +# +# Microsoft Hyper-V guest support +# +# CONFIG_HYPERV is not set
# # Xen driver support # CONFIG_XEN_BALLOON=y +CONFIG_XEN_SELFBALLOONING=y CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DEV_EVTCHN=m CONFIG_XEN_BACKEND=y @@ -4107,7 +4689,11 @@ CONFIG_XEN_XENBUS_FRONTEND=y CONFIG_XEN_GNTDEV=m CONFIG_XEN_GRANT_DEV_ALLOC=m CONFIG_SWIOTLB_XEN=y +CONFIG_XEN_TMEM=m CONFIG_XEN_PCIDEV_BACKEND=m +CONFIG_XEN_PRIVCMD=m +CONFIG_XEN_ACPI_PROCESSOR=m +CONFIG_XEN_HAVE_PVMMU=y CONFIG_STAGING=y CONFIG_ET131X=m CONFIG_SLICOSS=m @@ -4117,48 +4703,99 @@ CONFIG_USBIP_HOST=m # CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set +CONFIG_ECHO=m # CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set # CONFIG_R8187SE is not set # CONFIG_RTL8192U is not set -# CONFIG_RTL8192E is not set +# CONFIG_RTLLIB is not set # CONFIG_R8712U is not set -# CONFIG_RTS_PSTOR is not set # CONFIG_RTS5139 is not set # CONFIG_TRANZPORT is not set -# CONFIG_POHMELFS is not set -CONFIG_IDE_PHISON=m +# CONFIG_IDE_PHISON is not set # CONFIG_LINE6_USB is not set -CONFIG_DRM_NOUVEAU=m -CONFIG_DRM_NOUVEAU_BACKLIGHT=y - -# -# I2C encoder or helper chips -# -# CONFIG_DRM_I2C_CH7006 is not set -# CONFIG_DRM_I2C_SIL164 is not set # CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_HYPERV_STORAGE is not set -CONFIG_HYPERV_NET=m -CONFIG_HYPERV_MOUSE=m -# CONFIG_VME_BUS is not set # CONFIG_DX_SEP is not set -# CONFIG_IIO is not set -# CONFIG_XVMALLOC is not set -# CONFIG_ZRAM is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# + +# +# Analog to digital converters +# +# CONFIG_AD7291 is not set +# CONFIG_AD7606 is not set +# CONFIG_AD799X is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# + +# +# Digital gyroscope sensors +# + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +# +# Magnetometer sensors +# +# CONFIG_SENSORS_HMC5843 is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# + +# +# Triggers - standalone +# +# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set +# CONFIG_IIO_GPIO_TRIGGER is not set +# CONFIG_IIO_SYSFS_TRIGGER is not set +# CONFIG_IIO_SIMPLE_DUMMY is not set +# CONFIG_ZSMALLOC is not set # CONFIG_WLAGS49_H2 is not set # CONFIG_WLAGS49_H25 is not set # CONFIG_FB_SM7XX is not set # CONFIG_CRYSTALHD is not set -# CONFIG_CXT1E1 is not set # CONFIG_FB_XGI is not set # CONFIG_ACPI_QUICKSTART is not set -# CONFIG_SBE_2T3E3 is not set # CONFIG_USB_ENESTORAGE is not set # CONFIG_BCM_WIMAX is not set # CONFIG_FT1000 is not set @@ -4169,17 +4806,32 @@ CONFIG_HYPERV_MOUSE=m # CONFIG_SPEAKUP is not set # CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set # CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set -# CONFIG_DRM_PSB is not set -CONFIG_INTEL_MEI=m # CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_CSR_WIFI is not set +# CONFIG_NET_VENDOR_SILICOM is not set +# CONFIG_CED1401 is not set +# CONFIG_DGRP is not set +# CONFIG_FIREWIRE_SERIAL is not set +# CONFIG_USB_DWC2 is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m CONFIG_ASUS_LAPTOP=m +CONFIG_CHROMEOS_LAPTOP=m +CONFIG_DELL_LAPTOP=m CONFIG_DELL_WMI=m CONFIG_DELL_WMI_AIO=m CONFIG_FUJITSU_LAPTOP=m -CONFIG_FUJITSU_LAPTOP_DEBUG=y +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +# CONFIG_FUJITSU_TABLET is not set +CONFIG_AMILO_RFKILL=m CONFIG_TC1100_WMI=m CONFIG_HP_ACCEL=m CONFIG_HP_WMI=m @@ -4187,7 +4839,7 @@ CONFIG_MSI_LAPTOP=m CONFIG_PANASONIC_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m -# CONFIG_SONYPI_COMPAT is not set +CONFIG_SONYPI_COMPAT=y CONFIG_IDEAPAD_LAPTOP=m CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y @@ -4197,21 +4849,34 @@ CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y CONFIG_SENSORS_HDAPS=m -CONFIG_INTEL_MENLOW=m +# CONFIG_INTEL_MENLOW is not set +CONFIG_EEEPC_LAPTOP=m +CONFIG_ASUS_WMI=m +CONFIG_ASUS_NB_WMI=m +CONFIG_EEEPC_WMI=m CONFIG_ACPI_WMI=m CONFIG_MSI_WMI=m -CONFIG_ACPI_ASUS=m CONFIG_TOPSTAR_LAPTOP=m CONFIG_ACPI_TOSHIBA=m CONFIG_TOSHIBA_BT_RFKILL=m CONFIG_ACPI_CMPC=m CONFIG_INTEL_IPS=m -CONFIG_IBM_RTL=m -CONFIG_XO15_EBOOK=m +# CONFIG_IBM_RTL is not set +# CONFIG_XO15_EBOOK is not set CONFIG_SAMSUNG_LAPTOP=m CONFIG_MXM_WMI=m CONFIG_INTEL_OAKTRAIL=m CONFIG_SAMSUNG_Q10=m +# CONFIG_APPLE_GMUX is not set +CONFIG_PVPANIC=m +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_DEBUG is not set
# # Hardware Spinlock drivers @@ -4220,55 +4885,143 @@ CONFIG_CLKSRC_I8253=y CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y +CONFIG_MAILBOX=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y -CONFIG_INTEL_IOMMU_DEFAULT_ON=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set CONFIG_INTEL_IOMMU_FLOPPY_WA=y -CONFIG_VIRT_DRIVERS=y -CONFIG_HYPERV=m -CONFIG_HYPERV_UTILS=m -CONFIG_PM_DEVFREQ=y
# -# DEVFREQ Governors +# Remoteproc drivers +# +# CONFIG_STE_MODEM_RPROC is not set + +# +# Rpmsg drivers # -CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y -CONFIG_DEVFREQ_GOV_PERFORMANCE=y -CONFIG_DEVFREQ_GOV_POWERSAVE=y -CONFIG_DEVFREQ_GOV_USERSPACE=y +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +CONFIG_MEMORY=y +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# -# DEVFREQ Drivers +# Accelerometers # +# CONFIG_HID_SENSOR_ACCEL_3D is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set + +# +# Analog to digital converters +# +# CONFIG_MAX1363 is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_VIPERBOARD_ADC is not set + +# +# Amplifiers +# + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5446 is not set +# CONFIG_MAX517 is not set +# CONFIG_MCP4725 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# + +# +# Digital gyroscope sensors +# +# CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Inertial measurement units +# +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_SENSORS_LM3533 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_VCNL4000 is not set +# CONFIG_HID_SENSOR_ALS is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_VME_BUS is not set +# CONFIG_PWM is not set +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set
# # Firmware Drivers # -# CONFIG_EDD is not set +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y -# CONFIG_DELL_RBU is not set -# CONFIG_DCDBAS is not set +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m CONFIG_DMIID=y -CONFIG_DMI_SYSFS=m +CONFIG_DMI_SYSFS=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m -CONFIG_SIGMA=m # CONFIG_GOOGLE_FIRMWARE is not set
# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_VARS=y +CONFIG_EFI_VARS_PSTORE=y +# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set + +# # File systems # +CONFIG_DCACHE_WORD_ACCESS=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y -CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set @@ -4276,43 +5029,47 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y +# CONFIG_JFS_FS is not set CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set # CONFIG_NILFS2_FS is not set CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=m +CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_PRINT_QUOTA_WARNING is not set # CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m +CONFIG_QUOTA_TREE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y -CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m +CONFIG_GENERIC_ACL=y
# # Caches # CONFIG_FSCACHE=m -# CONFIG_FSCACHE_STATS is not set +CONFIG_FSCACHE_STATS=y # CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set # CONFIG_FSCACHE_OBJECT_LIST is not set @@ -4323,7 +5080,7 @@ CONFIG_CACHEFILES=m # # CD-ROM/DVD Filesystems # -CONFIG_ISO9660_FS=m +CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m @@ -4333,10 +5090,10 @@ CONFIG_UDF_NLS=y # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m -# CONFIG_MSDOS_FS is not set +CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" # CONFIG_NTFS_FS is not set
# @@ -4345,39 +5102,22 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_PROC_FS=y # CONFIG_PROC_KCORE is not set CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set +CONFIG_CONFIGFS_FS=m CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -CONFIG_ECRYPT_FS=m +# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -# CONFIG_UBIFS_FS is not set # CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set @@ -4386,113 +5126,117 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set -# CONFIG_PSTORE is not set +CONFIG_PSTORE=y +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_FTRACE is not set +# CONFIG_PSTORE_RAM is not set # CONFIG_SYSV_FS is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set +# CONFIG_UFS_FS is not set # CONFIG_EXOFS_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_EFIVAR_FS=m +CONFIG_ORE=m CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m -CONFIG_NFS_V3=y +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_V4_1 is not set -# CONFIG_NFS_FSCACHE is not set +CONFIG_NFS_V4=m +# CONFIG_NFS_SWAP is not set +CONFIG_NFS_V4_1=y +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_OBJLAYOUT=m +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="ipfire.org" +CONFIG_NFS_FSCACHE=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y -# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y +# CONFIG_CIFS_STATS2 is not set # CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_UPCALL is not set CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_FSCACHE is not set CONFIG_CIFS_ACL=y +# CONFIG_CIFS_DEBUG is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_FSCACHE=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y -CONFIG_NLS_DEFAULT="cp850" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y +CONFIG_NLS_DEFAULT="utf-8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set
# # Kernel hacking @@ -4502,27 +5246,32 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 +CONFIG_FRAME_WARN=2048 # CONFIG_MAGIC_SYSRQ is not set CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_FS=y +CONFIG_HEADERS_CHECK=y # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_LOCKUP_DETECTOR is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +CONFIG_DEBUG_SHIRQ=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_HARDLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set +CONFIG_SCHEDSTATS=y CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set @@ -4530,10 +5279,10 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set -# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set @@ -4543,38 +5292,79 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set +CONFIG_DEBUG_LIST=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set +CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set + +# +# RCU Debugging +# +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_TRACE is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +# CONFIG_LKDTM is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set -# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_SCHED_TRACER=y +CONFIG_FTRACE_SYSCALLS=y +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +CONFIG_STACK_TRACER=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_UPROBE_EVENT is not set +# CONFIG_PROBE_EVENTS is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_MMIOTRACE is not set +CONFIG_RING_BUFFER_BENCHMARK=m +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +CONFIG_RBTREE_TEST=m +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_BUILD_DOCSRC is not set +CONFIG_DYNAMIC_DEBUG=y # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set CONFIG_ASYNC_RAID6_TEST=m @@ -4582,19 +5372,17 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y -# CONFIG_KMEMCHECK is not set +# CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set -# CONFIG_STRICT_DEVMEM is not set -CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_STRICT_DEVMEM=y +# CONFIG_X86_VERBOSE_BOOTUP is not set CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set -# CONFIG_DEBUG_STACKOVERFLOW is not set +CONFIG_DEBUG_STACKOVERFLOW=y # CONFIG_X86_PTDUMP is not set -CONFIG_DEBUG_RODATA=y -CONFIG_DEBUG_RODATA_TEST=y -# CONFIG_DEBUG_SET_MODULE_RONX is not set -# CONFIG_DEBUG_NX_TEST is not set +CONFIG_DEBUG_NX_TEST=m CONFIG_DOUBLEFAULT=y +# CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 @@ -4606,20 +5394,187 @@ CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 +CONFIG_DEBUG_BOOT_PARAMS=y # CONFIG_CPA_DEBUG is not set -# CONFIG_OPTIMIZE_INLINING is not set -# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set +CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_NMI_SELFTEST is not set
# # Security options # + +# +# Grsecurity +# +CONFIG_ARCH_TRACK_EXEC_LIMIT=y +CONFIG_PAX_USERCOPY_SLABS=y +CONFIG_GRKERNSEC=y +# CONFIG_GRKERNSEC_CONFIG_AUTO is not set +CONFIG_GRKERNSEC_CONFIG_CUSTOM=y + +# +# Customize Configuration +# + +# +# PaX +# +CONFIG_PAX=y + +# +# PaX Control +# +# CONFIG_PAX_SOFTMODE is not set +CONFIG_PAX_EI_PAX=y +CONFIG_PAX_PT_PAX_FLAGS=y +# CONFIG_PAX_XATTR_PAX_FLAGS is not set +# CONFIG_PAX_NO_ACL_FLAGS is not set +CONFIG_PAX_HAVE_ACL_FLAGS=y +# CONFIG_PAX_HOOK_ACL_FLAGS is not set + +# +# Non-executable pages +# +CONFIG_PAX_NOEXEC=y +CONFIG_PAX_PAGEEXEC=y +CONFIG_PAX_SEGMEXEC=y +CONFIG_PAX_EMUTRAMP=y +CONFIG_PAX_MPROTECT=y +# CONFIG_PAX_MPROTECT_COMPAT is not set +CONFIG_PAX_ELFRELOCS=y +CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="" + +# +# Address Space Layout Randomization +# +CONFIG_PAX_ASLR=y +CONFIG_PAX_RANDKSTACK=y +CONFIG_PAX_RANDUSTACK=y +CONFIG_PAX_RANDMMAP=y + +# +# Miscellaneous hardening features +# +CONFIG_PAX_MEMORY_STACKLEAK=y +CONFIG_PAX_MEMORY_STRUCTLEAK=y +CONFIG_PAX_REFCOUNT=y +CONFIG_PAX_USERCOPY=y +# CONFIG_PAX_USERCOPY_DEBUG is not set +# CONFIG_PAX_SIZE_OVERFLOW is not set +# CONFIG_PAX_LATENT_ENTROPY is not set + +# +# Memory Protections +# +# CONFIG_GRKERNSEC_KMEM is not set +CONFIG_GRKERNSEC_VM86=y +# CONFIG_GRKERNSEC_IO is not set +# CONFIG_GRKERNSEC_PERF_HARDEN is not set +CONFIG_GRKERNSEC_RAND_THREADSTACK=y +CONFIG_GRKERNSEC_PROC_MEMMAP=y +CONFIG_GRKERNSEC_BRUTE=y +CONFIG_GRKERNSEC_MODHARDEN=y +CONFIG_GRKERNSEC_HIDESYM=y +CONFIG_GRKERNSEC_KERN_LOCKOUT=y + +# +# Role Based Access Control Options +# +CONFIG_GRKERNSEC_NO_RBAC=y +# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set +CONFIG_GRKERNSEC_ACL_MAXTRIES=3 +CONFIG_GRKERNSEC_ACL_TIMEOUT=30 + +# +# Filesystem Protections +# +# CONFIG_GRKERNSEC_PROC is not set +CONFIG_GRKERNSEC_LINK=y +# CONFIG_GRKERNSEC_SYMLINKOWN is not set +CONFIG_GRKERNSEC_FIFO=y +# CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set +# CONFIG_GRKERNSEC_ROFS is not set +CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y +CONFIG_GRKERNSEC_CHROOT=y +# CONFIG_GRKERNSEC_CHROOT_MOUNT is not set +CONFIG_GRKERNSEC_CHROOT_DOUBLE=y +CONFIG_GRKERNSEC_CHROOT_PIVOT=y +CONFIG_GRKERNSEC_CHROOT_CHDIR=y +# CONFIG_GRKERNSEC_CHROOT_CHMOD is not set +CONFIG_GRKERNSEC_CHROOT_FCHDIR=y +# CONFIG_GRKERNSEC_CHROOT_MKNOD is not set +CONFIG_GRKERNSEC_CHROOT_SHMAT=y +CONFIG_GRKERNSEC_CHROOT_UNIX=y +CONFIG_GRKERNSEC_CHROOT_FINDTASK=y +CONFIG_GRKERNSEC_CHROOT_NICE=y +CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +# CONFIG_GRKERNSEC_CHROOT_CAPS is not set +CONFIG_GRKERNSEC_CHROOT_INITRD=y + +# +# Kernel Auditing +# +# CONFIG_GRKERNSEC_AUDIT_GROUP is not set +# CONFIG_GRKERNSEC_EXECLOG is not set +CONFIG_GRKERNSEC_RESLOG=y +# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set +# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set +# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set +# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set +CONFIG_GRKERNSEC_SIGNAL=y +CONFIG_GRKERNSEC_FORKFAIL=y +# CONFIG_GRKERNSEC_TIME is not set +CONFIG_GRKERNSEC_PROC_IPADDR=y +# CONFIG_GRKERNSEC_RWXMAP_LOG is not set + +# +# Executable Protections +# +CONFIG_GRKERNSEC_DMESG=y +CONFIG_GRKERNSEC_HARDEN_PTRACE=y +CONFIG_GRKERNSEC_PTRACE_READEXEC=y +CONFIG_GRKERNSEC_SETXID=y +# CONFIG_GRKERNSEC_TPE is not set + +# +# Network Protections +# +CONFIG_GRKERNSEC_RANDNET=y +CONFIG_GRKERNSEC_BLACKHOLE=y +CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y +# CONFIG_GRKERNSEC_SOCKET is not set + +# +# Physical Protections +# +# CONFIG_GRKERNSEC_DENYUSB is not set + +# +# Sysctl Support +# +# CONFIG_GRKERNSEC_SYSCTL is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=6 CONFIG_KEYS=y # CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set # CONFIG_INTEL_TXT is not set +# CONFIG_SECURITY_SELINUX is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_IMA is not set +# CONFIG_EVM is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m @@ -4628,58 +5583,60 @@ CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_ASYNC_PQ=m CONFIG_ASYNC_RAID6_RECOV=m -CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y -CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y CONFIG_CRYPTO=y
# # Crypto core or helper # +CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP=m CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_USER=m -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_USER is not set +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_ABLK_HELPER_X86=y +CONFIG_CRYPTO_GLUE_HELPER_X86=m
# # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_SEQIV=y
# # Block modes # -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=y CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_XTS=y
# # Hash modes # +CONFIG_CRYPTO_CMAC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m @@ -4687,18 +5644,20 @@ CONFIG_CRYPTO_VMAC=m # # Digest # -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRC32_PCLMUL=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m @@ -4706,23 +5665,25 @@ CONFIG_CRYPTO_WP512=m # # Ciphers # -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_AES_586=m -CONFIG_CRYPTO_AES_NI_INTEL=m +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_586=y +CONFIG_CRYPTO_AES_NI_INTEL=y CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SALSA20_586=m +# CONFIG_CRYPTO_SALSA20_586 is not set CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SERPENT_SSE2_586=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -4731,7 +5692,7 @@ CONFIG_CRYPTO_TWOFISH_586=m # # Compression # -CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_ZLIB=m CONFIG_CRYPTO_LZO=m
@@ -4739,45 +5700,63 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_USER_API=m -CONFIG_CRYPTO_USER_API_HASH=m -CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m CONFIG_CRYPTO_DEV_PADLOCK_SHA=m CONFIG_CRYPTO_DEV_GEODE=m +CONFIG_ASYMMETRIC_KEY_TYPE=m +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m +CONFIG_PUBLIC_KEY_ALGO_RSA=m +CONFIG_X509_CERTIFICATE_PARSER=m CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_HAVE_KVM_IRQ_ROUTING=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_APIC_ARCHITECTURE=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y +CONFIG_HAVE_KVM_MSI=y +CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m -CONFIG_VHOST_NET=m -CONFIG_LGUEST=m -# CONFIG_BINARY_PRINTF is not set +CONFIG_KVM_MMU_AUDIT=y +CONFIG_KVM_DEVICE_ASSIGNMENT=y +# CONFIG_LGUEST is not set +CONFIG_BINARY_PRINTF=y
# # Library routines # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_CRC_CCITT=m +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_CRC_CCITT=y CONFIG_CRC16=y -CONFIG_CRC_T10DIF=m +CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y +CONFIG_ZLIB_DEFLATE=m CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_XZ_DEC=y @@ -4794,6 +5773,7 @@ CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y +CONFIG_GENERIC_ALLOCATOR=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -4803,6 +5783,13 @@ CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y +CONFIG_DQL=y CONFIG_NLATTR=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_AVERAGE=y +CONFIG_CLZ_TAB=y CONFIG_CORDIC=m +# CONFIG_DDR is not set +CONFIG_MPILIB=m +CONFIG_OID_REGISTRY=m +CONFIG_UCS2_STRING=y diff --git a/config/kernel/kernel.config.i586-ipfire-xen b/config/kernel/kernel.config.i586-ipfire-xen deleted file mode 100644 index 5be047d..0000000 --- a/config/kernel/kernel.config.i586-ipfire-xen +++ /dev/null @@ -1,3749 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.61-ipfire-xen -# Wed Jun 19 10:32:43 2013 -# -# CONFIG_64BIT is not set -CONFIG_X86_32=y -# CONFIG_X86_64 is not set -CONFIG_X86=y -CONFIG_OUTPUT_FORMAT="elf32-i386" -CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_TIME=y -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_MMU=y -CONFIG_ZONE_DMA=y -CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_ARCH_MAY_HAVE_PC_FDC=y -# CONFIG_RWSEM_GENERIC_SPINLOCK is not set -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -# CONFIG_GENERIC_TIME_VSYSCALL is not set -CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_DEFAULT_IDLE=y -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_HAVE_SETUP_PER_CPU_AREA=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set -CONFIG_ARCH_SUSPEND_POSSIBLE=y -# CONFIG_ZONE_DMA32 is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y -# CONFIG_AUDIT_ARCH is not set -CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_GENERIC_HARDIRQS=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_USE_GENERIC_SMP_HELPERS=y -CONFIG_X86_32_SMP=y -CONFIG_X86_NO_TSS=y -CONFIG_X86_NO_IDT=y -CONFIG_KTIME_SCALAR=y -CONFIG_ARCH_CPU_PROBE_RELEASE=y -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_LOCK_KERNEL=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_KERNEL_GZIP=y -# CONFIG_KERNEL_BZIP2 is not set -# CONFIG_KERNEL_LZMA is not set -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -CONFIG_POSIX_MQUEUE=y -CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_TASKSTATS is not set -CONFIG_AUDIT=y -CONFIG_AUDITSYSCALL=y -CONFIG_AUDIT_TREE=y - -# -# RCU Subsystem -# -CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set -CONFIG_RCU_FANOUT=32 -# CONFIG_RCU_FANOUT_EXACT is not set -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=17 -CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y -# CONFIG_CGROUPS is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -# CONFIG_PID_NS is not set -# CONFIG_NET_NS is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=y -CONFIG_RD_LZMA=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -# CONFIG_EMBEDDED is not set -CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_PCSPKR_PLATFORM=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_AIO=y - -# -# Kernel Performance Events And Counters -# -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_PCI_QUIRKS=y -CONFIG_SLUB_DEBUG=y -# CONFIG_COMPAT_BRK is not set -# CONFIG_SLAB is not set -CONFIG_SLUB=y -# CONFIG_SLOB is not set -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_ATTRS=y -CONFIG_HAVE_DMA_API_DEBUG=y - -# -# GCOV-based kernel profiling -# -CONFIG_SLOW_WORK=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_STOP_MACHINE=y -CONFIG_BLOCK=y -CONFIG_LBDAF=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set -# CONFIG_DEFAULT_DEADLINE is not set -CONFIG_DEFAULT_CFQ=y -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="cfq" -CONFIG_FREEZER=y - -# -# Processor type and features -# -CONFIG_SMP=y -CONFIG_SPARSE_IRQ=y -CONFIG_X86_MPPARSE=y -CONFIG_X86_XEN=y -CONFIG_SCHED_OMIT_FRAME_POINTER=y -# CONFIG_M386 is not set -# CONFIG_M486 is not set -# CONFIG_M586 is not set -CONFIG_M586TSC=y -# CONFIG_M586MMX is not set -# CONFIG_M686 is not set -# CONFIG_MPENTIUMII is not set -# CONFIG_MPENTIUMIII is not set -# CONFIG_MPENTIUMM is not set -# CONFIG_MPENTIUM4 is not set -# CONFIG_MK6 is not set -# CONFIG_MK7 is not set -# CONFIG_MK8 is not set -# CONFIG_MCRUSOE is not set -# CONFIG_MEFFICEON is not set -# CONFIG_MWINCHIPC6 is not set -# CONFIG_MWINCHIP3D is not set -# CONFIG_MGEODEGX1 is not set -# CONFIG_MGEODE_LX is not set -# CONFIG_MCYRIXIII is not set -# CONFIG_MVIAC3_2 is not set -# CONFIG_MVIAC7 is not set -# CONFIG_MPSC is not set -# CONFIG_MCORE2 is not set -# CONFIG_MATOM is not set -# CONFIG_GENERIC_CPU is not set -CONFIG_X86_GENERIC=y -CONFIG_X86_CPU=y -CONFIG_X86_L1_CACHE_BYTES=64 -CONFIG_X86_INTERNODE_CACHE_BYTES=64 -CONFIG_X86_CMPXCHG=y -CONFIG_X86_L1_CACHE_SHIFT=5 -CONFIG_X86_XADD=y -# CONFIG_X86_PPRO_FENCE is not set -CONFIG_X86_WP_WORKS_OK=y -CONFIG_X86_INVLPG=y -CONFIG_X86_BSWAP=y -CONFIG_X86_POPAD_OK=y -CONFIG_X86_ALIGNMENT_16=y -CONFIG_X86_INTEL_USERCOPY=y -CONFIG_X86_CMPXCHG64=y -CONFIG_X86_MINIMUM_CPU_FAMILY=5 -CONFIG_CPU_SUP_INTEL=y -CONFIG_CPU_SUP_CYRIX_32=y -CONFIG_CPU_SUP_AMD=y -CONFIG_CPU_SUP_CENTAUR=y -CONFIG_CPU_SUP_TRANSMETA_32=y -CONFIG_DMI=y -CONFIG_SWIOTLB=y -CONFIG_IOMMU_HELPER=y -# CONFIG_IOMMU_API is not set -CONFIG_NR_CPUS=8 -CONFIG_IRQ_TIME_ACCOUNTING=y -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set -CONFIG_X86_LOCAL_APIC=y -CONFIG_X86_IO_APIC=y -# CONFIG_X86_MCE is not set -CONFIG_VM86=y -CONFIG_TOSHIBA=m -CONFIG_I8K=m -CONFIG_MICROCODE=m -CONFIG_MICROCODE_OLD_INTERFACE=y -CONFIG_X86_MSR=m -CONFIG_X86_CPUID=y -# CONFIG_NOHIGHMEM is not set -CONFIG_HIGHMEM4G=y -# CONFIG_HIGHMEM64G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_HIGHMEM=y -CONFIG_X86_PAE=y -CONFIG_ARCH_PHYS_ADDR_T_64BIT=y -CONFIG_ILLEGAL_POINTER_VALUE=0 -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_ZONE_DMA_FLAG=1 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y -CONFIG_KSM=y -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -# CONFIG_HIGHPTE is not set -CONFIG_MTRR=y -# CONFIG_X86_PAT is not set -CONFIG_ARCH_RANDOM=y -CONFIG_SECCOMP=y -CONFIG_CC_STACKPROTECTOR=y -# CONFIG_HZ_100 is not set -# CONFIG_HZ_250 is not set -CONFIG_HZ_300=y -# CONFIG_HZ_1000 is not set -CONFIG_HZ=300 -# CONFIG_SCHED_HRTICK is not set -# CONFIG_KEXEC is not set -CONFIG_PHYSICAL_START=0x100000 -CONFIG_PHYSICAL_ALIGN=0x2000 -CONFIG_HOTPLUG_CPU=y -CONFIG_COMPAT_VDSO=y -# CONFIG_CMDLINE_BOOL is not set - -# -# Power management and ACPI options -# -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_SLEEP=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_PM_RUNTIME=y -CONFIG_ACPI=y -CONFIG_ACPI_SLEEP=y -# CONFIG_ACPI_PROCFS is not set -CONFIG_ACPI_PROCFS_POWER=y -CONFIG_ACPI_POWER_METER=m -CONFIG_ACPI_SYSFS_POWER=y -CONFIG_ACPI_PROC_EVENT=y -CONFIG_ACPI_AC=m -CONFIG_ACPI_BATTERY=m -CONFIG_ACPI_BUTTON=m -CONFIG_ACPI_VIDEO=m -CONFIG_ACPI_FAN=m -CONFIG_ACPI_DOCK=y -CONFIG_ACPI_PROCESSOR=m -CONFIG_ACPI_HOTPLUG_CPU=y -CONFIG_ACPI_PROCESSOR_AGGREGATOR=m -CONFIG_ACPI_THERMAL=m -CONFIG_ACPI_CUSTOM_DSDT_FILE="" -# CONFIG_ACPI_CUSTOM_DSDT is not set -CONFIG_ACPI_BLACKLIST_YEAR=0 -# CONFIG_ACPI_DEBUG is not set -CONFIG_ACPI_PCI_SLOT=m -CONFIG_ACPI_CONTAINER=m -CONFIG_ACPI_SBS=m -CONFIG_ACPI_PV_SLEEP=y -CONFIG_PROCESSOR_EXTERNAL_CONTROL=y -# CONFIG_SFI is not set - -# -# CPU Frequency scaling -# - -# -# Bus options (PCI etc.) -# -CONFIG_PCI=y -# CONFIG_PCI_GOBIOS is not set -# CONFIG_PCI_GOMMCONFIG is not set -# CONFIG_PCI_GODIRECT is not set -# CONFIG_PCI_GOOLPC is not set -# CONFIG_PCI_GOXEN_FE is not set -CONFIG_PCI_GOANY=y -CONFIG_PCI_DIRECT=y -CONFIG_PCI_MMCONFIG=y -CONFIG_PCI_DOMAINS=y -CONFIG_XEN_PCIDEV_FRONTEND=y -# CONFIG_XEN_PCIDEV_FE_DEBUG is not set -CONFIG_PCIEPORTBUS=y -CONFIG_PCIEAER=y -# CONFIG_PCIE_ECRC is not set -# CONFIG_PCIEAER_INJECT is not set -CONFIG_PCIEASPM=y -# CONFIG_PCIEASPM_DEBUG is not set -CONFIG_ARCH_SUPPORTS_MSI=y -CONFIG_PCI_MSI=y -CONFIG_PCI_LEGACY=y -# CONFIG_PCI_DEBUG is not set -CONFIG_PCI_GUESTDEV=y -CONFIG_PCI_IOMULTI=y -CONFIG_PCI_RESERVE=y -CONFIG_PCI_STUB=m -CONFIG_PCI_IOV=y -CONFIG_ISA_DMA_API=y -CONFIG_SCx200=m -CONFIG_SCx200HR_TIMER=m -# CONFIG_OLPC is not set -CONFIG_K8_NB=y -CONFIG_PCCARD=m -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=m -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -CONFIG_YENTA=m -CONFIG_YENTA_O2=y -CONFIG_YENTA_RICOH=y -CONFIG_YENTA_TI=y -CONFIG_YENTA_ENE_TUNE=y -CONFIG_YENTA_TOSHIBA=y -CONFIG_PD6729=m -CONFIG_I82092=m -CONFIG_PCCARD_NONSTATIC=m -# CONFIG_HOTPLUG_PCI is not set - -# -# Executable file formats / Emulations -# -CONFIG_BINFMT_ELF=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -CONFIG_HAVE_ATOMIC_IOMAP=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y -CONFIG_UNIX=y -CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set -CONFIG_XFRM_MIGRATE=y -CONFIG_XFRM_STATISTICS=y -CONFIG_XFRM_IPCOMP=m -CONFIG_NET_KEY=m -CONFIG_NET_KEY_MIGRATE=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -# CONFIG_IP_PNP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_XFRM_TUNNEL=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y -CONFIG_INET_LRO=y -CONFIG_INET_DIAG=m -CONFIG_INET_TCP_DIAG=m -CONFIG_TCP_CONG_ADVANCED=y -CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m -CONFIG_TCP_CONG_WESTWOOD=m -CONFIG_TCP_CONG_HTCP=m -CONFIG_TCP_CONG_HSTCP=m -CONFIG_TCP_CONG_HYBLA=m -CONFIG_TCP_CONG_VEGAS=m -CONFIG_TCP_CONG_SCALABLE=m -CONFIG_TCP_CONG_LP=m -CONFIG_TCP_CONG_VENO=m -CONFIG_TCP_CONG_YEAH=m -CONFIG_TCP_CONG_ILLINOIS=m -# CONFIG_DEFAULT_BIC is not set -# CONFIG_DEFAULT_CUBIC is not set -# CONFIG_DEFAULT_HTCP is not set -# CONFIG_DEFAULT_VEGAS is not set -# CONFIG_DEFAULT_WESTWOOD is not set -CONFIG_DEFAULT_RENO=y -CONFIG_DEFAULT_TCP_CONG="reno" -# CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=y -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_IPV6_MIP6=m -CONFIG_INET6_XFRM_TUNNEL=m -CONFIG_INET6_TUNNEL=m -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET6_XFRM_MODE_BEET=m -CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m -CONFIG_IPV6_SIT=m -CONFIG_IPV6_NDISC_NODETYPE=y -CONFIG_IPV6_TUNNEL=m -CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_NETFILTER_ADVANCED=y -CONFIG_BRIDGE_NETFILTER=y - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m -CONFIG_NF_CT_ACCT=y -CONFIG_NF_CONNTRACK_MARK=y -CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CT_PROTO_DCCP=m -CONFIG_NF_CT_PROTO_GRE=m -CONFIG_NF_CT_PROTO_SCTP=m -CONFIG_NF_CT_PROTO_UDPLITE=m -CONFIG_NF_CONNTRACK_AMANDA=m -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_PPTP=m -CONFIG_NF_CONNTRACK_SANE=m -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_TFTP=m -CONFIG_NF_CT_NETLINK=m -CONFIG_NETFILTER_TPROXY=m -CONFIG_NETFILTER_XTABLES=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -CONFIG_NETFILTER_XT_TARGET_DSCP=m -CONFIG_NETFILTER_XT_TARGET_HL=m -CONFIG_NETFILTER_XT_TARGET_LED=m -CONFIG_NETFILTER_XT_TARGET_IMQ=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFLOG=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_TARGET_RATEEST=m -CONFIG_NETFILTER_XT_TARGET_TPROXY=m -CONFIG_NETFILTER_XT_TARGET_TRACE=m -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m -CONFIG_NETFILTER_XT_MATCH_CLUSTER=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_DSCP=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_HL=m -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_OWNER=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_RATEEST=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_SOCKET=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_LAYER7=m -# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -CONFIG_NETFILTER_XT_MATCH_TIME=m -CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_MATCH_OSF=m -CONFIG_IP_VS=m -CONFIG_IP_VS_IPV6=y -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_TAB_BITS=12 - -# -# IPVS transport protocol load balancing support -# -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_PROTO_AH_ESP=y -CONFIG_IP_VS_PROTO_ESP=y -CONFIG_IP_VS_PROTO_AH=y - -# -# IPVS scheduler -# -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -CONFIG_IP_VS_SED=m -CONFIG_IP_VS_NQ=m - -# -# IPVS application helper -# -CONFIG_IP_VS_FTP=m - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m -CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m -CONFIG_NF_NAT_PPTP=m -CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m -CONFIG_IP_NF_MATCH_IPP2P=m - -# -# IPv6: Netfilter Configuration -# -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_MH=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_RAW=m -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_IP6=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m -CONFIG_BRIDGE_EBT_NFLOG=m -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -CONFIG_ATM=m -CONFIG_ATM_CLIP=m -CONFIG_ATM_CLIP_NO_ICMP=y -# CONFIG_ATM_LANE is not set -CONFIG_ATM_BR2684=m -# CONFIG_ATM_BR2684_IPFILTER is not set -CONFIG_STP=m -CONFIG_GARP=m -CONFIG_BRIDGE=m -CONFIG_NET_DSA=y -CONFIG_NET_DSA_TAG_DSA=y -CONFIG_NET_DSA_TAG_EDSA=y -CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y -CONFIG_VLAN_8021Q=m -CONFIG_VLAN_8021Q_GVRP=y -# CONFIG_DECNET is not set -CONFIG_LLC=m -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_PHONET is not set -CONFIG_IEEE802154=m -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_ATM=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_MULTIQ=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_DRR=m -CONFIG_NET_SCH_INGRESS=m - -# -# Classification -# -CONFIG_NET_CLS=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -CONFIG_CLS_U32_PERF=y -CONFIG_CLS_U32_MARK=y -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -CONFIG_NET_CLS_FLOW=m -CONFIG_NET_EMATCH=y -CONFIG_NET_EMATCH_STACK=32 -CONFIG_NET_EMATCH_CMP=m -CONFIG_NET_EMATCH_NBYTE=m -CONFIG_NET_EMATCH_U32=m -CONFIG_NET_EMATCH_META=m -CONFIG_NET_EMATCH_TEXT=m -CONFIG_NET_CLS_ACT=y -CONFIG_NET_ACT_POLICE=m -CONFIG_NET_ACT_GACT=m -CONFIG_GACT_PROB=y -CONFIG_NET_ACT_MIRRED=m -CONFIG_NET_ACT_IPT=m -CONFIG_NET_ACT_NAT=m -CONFIG_NET_ACT_PEDIT=m -# CONFIG_NET_ACT_SIMP is not set -CONFIG_NET_ACT_SKBEDIT=m -CONFIG_NET_CLS_IND=y -CONFIG_NET_SCH_FIFO=y -# CONFIG_DCB is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_NSC_FIR=m -CONFIG_WINBOND_FIR=m -CONFIG_TOSHIBA_FIR=m -CONFIG_SMC_IRCC_FIR=m -CONFIG_ALI_FIR=m -CONFIG_VLSI_FIR=m -CONFIG_VIA_FIR=m -CONFIG_MCS_FIR=m -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_CMTP=m -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIBTUSB=m -CONFIG_BT_HCIBTSDIO=m -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_LL=y -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBTUART=m -CONFIG_BT_HCIVHCI=m -CONFIG_BT_MRVL=m -CONFIG_BT_MRVL_SDIO=m -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -CONFIG_RXKAD=m -CONFIG_FIB_RULES=y -CONFIG_WIRELESS=y -CONFIG_CFG80211=m -# CONFIG_NL80211_TESTMODE is not set -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -# CONFIG_CFG80211_REG_DEBUG is not set -# CONFIG_CFG80211_DEFAULT_PS is not set -CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y -CONFIG_WIRELESS_EXT_SYSFS=y -CONFIG_LIB80211=m -CONFIG_LIB80211_CRYPT_WEP=m -CONFIG_LIB80211_CRYPT_CCMP=m -CONFIG_LIB80211_CRYPT_TKIP=m -# CONFIG_LIB80211_DEBUG is not set -CONFIG_MAC80211=m -CONFIG_MAC80211_HAS_RC=y -CONFIG_MAC80211_RC_MINSTREL=y -# CONFIG_MAC80211_RC_DEFAULT_PID is not set -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel" -CONFIG_MAC80211_MESH=y -CONFIG_MAC80211_LEDS=y -# CONFIG_MAC80211_DEBUG_MENU is not set -# CONFIG_WIMAX is not set -CONFIG_RFKILL=m -CONFIG_RFKILL_LEDS=y -CONFIG_RFKILL_INPUT=y -# CONFIG_NET_9P is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -CONFIG_FW_LOADER=y -# CONFIG_FIRMWARE_IN_KERNEL is not set -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -CONFIG_SYS_HYPERVISOR=y -CONFIG_CONNECTOR=m -CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_TESTS=m -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_AR7_PARTS=m - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -# CONFIG_MTD_OOPS is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_TS5500 is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m - -# -# UBI - Unsorted block images -# -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 -# CONFIG_MTD_UBI_GLUEBI is not set - -# -# UBI debugging options -# -# CONFIG_MTD_UBI_DEBUG is not set -CONFIG_PARPORT=m -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_FIFO=y -CONFIG_PARPORT_PC_SUPERIO=y -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_GSC is not set -CONFIG_PARPORT_AX88796=m -CONFIG_PARPORT_1284=y -CONFIG_PARPORT_NOT_PC=y -CONFIG_PNP=y -# CONFIG_PNP_DEBUG_MESSAGES is not set - -# -# Protocols -# -CONFIG_PNPACPI=y -CONFIG_BLK_DEV=y -CONFIG_BLK_DEV_FD=m -# CONFIG_PARIDE is not set -CONFIG_BLK_CPQ_DA=m -CONFIG_BLK_CPQ_CISS_DA=m -# CONFIG_CISS_SCSI_TAPE is not set -CONFIG_BLK_DEV_DAC960=m -# CONFIG_BLK_DEV_UMEM is not set -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_CRYPTOLOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_OSD=m -CONFIG_BLK_DEV_SX8=m -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=8 -CONFIG_BLK_DEV_RAM_SIZE=16384 -# CONFIG_BLK_DEV_XIP is not set -# CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m -# CONFIG_BLK_DEV_HD is not set -CONFIG_MISC_DEVICES=y -# CONFIG_IBM_ASM is not set -# CONFIG_PHANTOM is not set -# CONFIG_SGI_IOC4 is not set -CONFIG_TIFM_CORE=m -CONFIG_TIFM_7XX1=m -CONFIG_ICS932S401=m -CONFIG_ENCLOSURE_SERVICES=m -CONFIG_HP_ILO=m -CONFIG_ISL29003=m -CONFIG_C2PORT=m -CONFIG_C2PORT_DURAMAR_2150=m - -# -# EEPROM support -# -CONFIG_EEPROM_AT24=m -CONFIG_EEPROM_LEGACY=m -CONFIG_EEPROM_MAX6875=m -CONFIG_EEPROM_93CX6=m -CONFIG_CB710_CORE=m -# CONFIG_CB710_DEBUG is not set -CONFIG_CB710_DEBUG_ASSUMPTIONS=y -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set - -# -# SCSI device support -# -CONFIG_RAID_ATTRS=y -CONFIG_SCSI=m -CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set -CONFIG_SCSI_NETLINK=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m -CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m -CONFIG_CHR_DEV_SCH=m -CONFIG_SCSI_ENCLOSURE=m -CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m - -# -# SCSI Transports -# -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_FC_ATTRS=m -CONFIG_SCSI_ISCSI_ATTRS=m -CONFIG_SCSI_SAS_ATTRS=m -CONFIG_SCSI_SAS_LIBSAS=m -CONFIG_SCSI_SAS_ATA=y -CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS_DEBUG=y -CONFIG_SCSI_SRP_ATTRS=m -CONFIG_SCSI_LOWLEVEL=y -CONFIG_ISCSI_TCP=m -CONFIG_SCSI_CXGB3_ISCSI=m -CONFIG_SCSI_BNX2_ISCSI=m -CONFIG_BE2ISCSI=m -CONFIG_BLK_DEV_3W_XXXX_RAID=m -CONFIG_SCSI_3W_9XXX=m -CONFIG_SCSI_ACARD=m -CONFIG_SCSI_AACRAID=m -CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set -CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set -# CONFIG_SCSI_AIC7XXX_OLD is not set -CONFIG_SCSI_AIC79XX=m -CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set -# CONFIG_AIC79XX_DEBUG_ENABLE is not set -CONFIG_AIC79XX_DEBUG_MASK=0 -# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set -CONFIG_SCSI_AIC94XX=m -# CONFIG_AIC94XX_DEBUG is not set -CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_DEBUG=y -CONFIG_SCSI_DPT_I2O=m -CONFIG_SCSI_ADVANSYS=m -CONFIG_SCSI_ARCMSR=m -# CONFIG_SCSI_ARCMSR_AER is not set -CONFIG_MEGARAID_NEWGEN=y -CONFIG_MEGARAID_MM=m -CONFIG_MEGARAID_MAILBOX=m -CONFIG_MEGARAID_LEGACY=m -CONFIG_MEGARAID_SAS=m -# CONFIG_SCSI_MPT2SAS is not set -CONFIG_SCSI_HPTIOP=m -CONFIG_SCSI_BUSLOGIC=m -CONFIG_SCSI_FLASHPOINT=y -CONFIG_LIBFC=m -CONFIG_LIBFCOE=m -CONFIG_FCOE=m -CONFIG_FCOE_FNIC=m -CONFIG_SCSI_DMX3191D=m -CONFIG_SCSI_EATA=m -CONFIG_SCSI_EATA_TAGGED_QUEUE=y -CONFIG_SCSI_EATA_LINKED_COMMANDS=y -CONFIG_SCSI_EATA_MAX_TAGS=16 -CONFIG_SCSI_FUTURE_DOMAIN=m -CONFIG_SCSI_GDTH=m -CONFIG_SCSI_IPS=m -CONFIG_SCSI_INITIO=m -CONFIG_SCSI_INIA100=m -CONFIG_SCSI_PPA=m -CONFIG_SCSI_IMM=m -# CONFIG_SCSI_IZIP_EPP16 is not set -# CONFIG_SCSI_IZIP_SLOW_CTR is not set -CONFIG_SCSI_STEX=m -CONFIG_SCSI_SYM53C8XX_2=m -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -CONFIG_SCSI_SYM53C8XX_MMIO=y -CONFIG_SCSI_IPR=m -CONFIG_SCSI_IPR_TRACE=y -CONFIG_SCSI_IPR_DUMP=y -CONFIG_SCSI_QLOGIC_1280=m -CONFIG_SCSI_QLA_FC=m -CONFIG_SCSI_QLA_ISCSI=m -CONFIG_SCSI_LPFC=m -CONFIG_SCSI_DC395x=m -CONFIG_SCSI_DC390T=m -CONFIG_SCSI_NSP32=m -# CONFIG_SCSI_DEBUG is not set -CONFIG_SCSI_PMCRAID=m -# CONFIG_SCSI_SRP is not set -CONFIG_SCSI_BFA_FC=m -CONFIG_SCSI_LOWLEVEL_PCMCIA=y -CONFIG_PCMCIA_AHA152X=m -CONFIG_PCMCIA_FDOMAIN=m -CONFIG_PCMCIA_NINJA_SCSI=m -CONFIG_PCMCIA_QLOGIC=m -CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=m -CONFIG_SCSI_DH_RDAC=m -CONFIG_SCSI_DH_HP_SW=m -CONFIG_SCSI_DH_EMC=m -CONFIG_SCSI_DH_ALUA=m -CONFIG_SCSI_OSD_INITIATOR=m -CONFIG_SCSI_OSD_ULD=m -CONFIG_SCSI_OSD_DPRINT_SENSE=1 -# CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_ATA=m -# CONFIG_ATA_NONSTANDARD is not set -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA_ACPI=y -CONFIG_SATA_PMP=y -CONFIG_SATA_AHCI=m -CONFIG_SATA_SIL24=m -CONFIG_ATA_SFF=y -CONFIG_SATA_SVW=m -CONFIG_ATA_PIIX=m -CONFIG_SATA_MV=m -CONFIG_SATA_NV=m -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_PROMISE=m -CONFIG_SATA_SX4=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m -CONFIG_SATA_INIC162X=m -CONFIG_PATA_ACPI=m -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATP867X=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m -CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -CONFIG_ATA_GENERIC=m -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_IT821X=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_JMICRON=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OPTI=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_RADISYS=m -CONFIG_PATA_RDC=m -CONFIG_PATA_RZ1000=m -CONFIG_PATA_SC1200=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m -CONFIG_PATA_SCH=m -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -CONFIG_MD_LINEAR=m -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID10=m -CONFIG_MD_RAID456=m -# CONFIG_MULTICORE_RAID456 is not set -CONFIG_MD_RAID6_PQ=m -# CONFIG_ASYNC_RAID6_TEST is not set -CONFIG_MD_MULTIPATH=m -# CONFIG_MD_FAULTY is not set -CONFIG_BLK_DEV_DM=m -# CONFIG_DM_DEBUG is not set -CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_MIRROR=m -CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m -CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_QL=m -CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m -CONFIG_DM_UEVENT=y -CONFIG_FUSION=y -CONFIG_FUSION_SPI=m -CONFIG_FUSION_FC=m -CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 -CONFIG_FUSION_CTL=m -# CONFIG_FUSION_LOGGING is not set - -# -# IEEE 1394 (FireWire) support -# - -# -# You can enable one or both FireWire driver stacks. -# - -# -# See the help texts for more information. -# -CONFIG_FIREWIRE=m -CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_OHCI_DEBUG=y -CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m -# CONFIG_IEEE1394 is not set -# CONFIG_I2O is not set -# CONFIG_MACINTOSH_DRIVERS is not set -CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m -CONFIG_BONDING=m -CONFIG_MACVLAN=m -CONFIG_EQUALIZER=m -CONFIG_IMQ=m -# CONFIG_IMQ_BEHAVIOR_AA is not set -CONFIG_IMQ_BEHAVIOR_AB=y -# CONFIG_IMQ_BEHAVIOR_BA is not set -# CONFIG_IMQ_BEHAVIOR_BB is not set -CONFIG_IMQ_NUM_DEVS=2 -CONFIG_TUN=m -CONFIG_VETH=m -CONFIG_NET_SB1000=m -# CONFIG_ARCNET is not set -CONFIG_PHYLIB=y - -# -# MII PHY device drivers -# -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -# CONFIG_FIXED_PHY is not set -CONFIG_MDIO_BITBANG=m -CONFIG_NET_ETHERNET=y -CONFIG_MII=m -CONFIG_HAPPYMEAL=m -CONFIG_SUNGEM=m -CONFIG_CASSINI=m -CONFIG_NET_VENDOR_3COM=y -CONFIG_VORTEX=m -CONFIG_TYPHOON=m -CONFIG_ETHOC=m -CONFIG_DNET=m -CONFIG_NET_TULIP=y -CONFIG_DE2104X=m -CONFIG_DE2104X_DSL=0 -CONFIG_TULIP=m -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set -CONFIG_DE4X5=m -CONFIG_WINBOND_840=m -CONFIG_DM9102=m -CONFIG_ULI526X=m -CONFIG_PCMCIA_XIRCOM=m -CONFIG_HP100=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -CONFIG_ADAPTEC_STARFIRE=m -CONFIG_B44=m -CONFIG_B44_PCI_AUTOSELECT=y -CONFIG_B44_PCICORE_AUTOSELECT=y -CONFIG_B44_PCI=y -CONFIG_FORCEDETH=m -# CONFIG_FORCEDETH_NAPI is not set -CONFIG_E100=m -CONFIG_FEALNX=m -CONFIG_NATSEMI=m -CONFIG_NE2K_PCI=m -CONFIG_8139CP=m -CONFIG_8139TOO=m -# CONFIG_8139TOO_PIO is not set -CONFIG_8139TOO_TUNE_TWISTER=y -CONFIG_8139TOO_8129=y -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_R6040=m -CONFIG_SIS900=m -CONFIG_EPIC100=m -CONFIG_SMSC9420=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set -CONFIG_TLAN=m -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m -CONFIG_VIA_RHINE=m -CONFIG_VIA_RHINE_MMIO=y -CONFIG_SC92031=m -CONFIG_NET_POCKET=y -CONFIG_ATP=m -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_ATL2=m -CONFIG_NETDEV_1000=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -CONFIG_E1000E=m -CONFIG_IP1000=m -CONFIG_IGB=m -CONFIG_IGB_DCA=y -CONFIG_IGBVF=m -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -CONFIG_R8169_VLAN=y -CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m -CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m -CONFIG_CNIC=m -CONFIG_QLA3XXX=m -CONFIG_ATL1=m -CONFIG_ATL1E=m -CONFIG_ATL1C=m -CONFIG_JME=m -CONFIG_NETDEV_10000=y -CONFIG_MDIO=m -CONFIG_CHELSIO_T1=m -# CONFIG_CHELSIO_T1_1G is not set -CONFIG_CHELSIO_T3_DEPENDS=y -CONFIG_CHELSIO_T3=m -CONFIG_ENIC=m -CONFIG_IXGBE=m -CONFIG_IXGBE_DCA=y -CONFIG_IXGB=m -CONFIG_S2IO=m -CONFIG_VXGE=m -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_MYRI10GE=m -CONFIG_MYRI10GE_DCA=y -CONFIG_NETXEN_NIC=m -CONFIG_NIU=m -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_TEHUTI=m -CONFIG_BNX2X=m -CONFIG_QLGE=m -# CONFIG_SFC is not set -CONFIG_BE2NET=m -# CONFIG_TR is not set -CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_AIRO=m -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m -# CONFIG_PRISM54 is not set -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_P54_COMMON is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set -# CONFIG_RT2X00 is not set -# CONFIG_HERMES is not set -# CONFIG_WL12XX is not set -# CONFIG_IWM is not set - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -# - -# -# USB Network Adapters -# -CONFIG_USB_CATC=m -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_RTL8150=m -CONFIG_USB_USBNET=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_DM9601=m -CONFIG_USB_NET_SMSC95XX=m -CONFIG_USB_NET_GL620A=m -CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_KC2190=y -CONFIG_USB_NET_ZAURUS=m -CONFIG_USB_HSO=m -CONFIG_USB_NET_INT51X1=m -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m -# CONFIG_WAN is not set -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_ATM_LANAI=m -CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set -CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y -CONFIG_ATM_IDT77252=m -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 -CONFIG_ATM_HE=m -CONFIG_ATM_HE_USE_SUNI=y -CONFIG_ATM_SOLOS=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NET_FC is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_ISDN=y -CONFIG_ISDN_I4L=m -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m -CONFIG_ISDN_PPP=y -CONFIG_ISDN_PPP_VJ=y -CONFIG_ISDN_MPP=y -CONFIG_IPPP_FILTER=y -CONFIG_ISDN_PPP_BSDCOMP=m -CONFIG_ISDN_AUDIO=y -CONFIG_ISDN_TTY_FAX=y - -# -# ISDN feature submodules -# -CONFIG_ISDN_DIVERSION=m - -# -# ISDN4Linux hardware drivers -# - -# -# Passive cards -# -CONFIG_ISDN_DRV_HISAX=m - -# -# D-channel protocol features -# -CONFIG_HISAX_EURO=y -CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set -CONFIG_HISAX_1TR6=y -CONFIG_HISAX_NI1=y -CONFIG_HISAX_MAX_CARDS=8 - -# -# HiSax supported cards -# -CONFIG_HISAX_16_3=y -CONFIG_HISAX_TELESPCI=y -CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_FRITZPCI=y -CONFIG_HISAX_AVM_A1_PCMCIA=y -CONFIG_HISAX_ELSA=y -CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_NETJET=y -CONFIG_HISAX_NETJET_U=y -CONFIG_HISAX_NICCY=y -CONFIG_HISAX_BKM_A4T=y -CONFIG_HISAX_SCT_QUADRO=y -CONFIG_HISAX_GAZEL=y -CONFIG_HISAX_HFC_PCI=y -CONFIG_HISAX_W6692=y -CONFIG_HISAX_HFC_SX=y -CONFIG_HISAX_ENTERNOW_PCI=y -CONFIG_HISAX_DEBUG=y - -# -# HiSax PCMCIA card service modules -# -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_TELES_CS=m - -# -# HiSax sub driver modules -# -CONFIG_HISAX_ST5481=m -CONFIG_HISAX_HFCUSB=m -CONFIG_HISAX_HFC4S8S=m -CONFIG_HISAX_FRITZ_PCIPNP=m - -# -# Active cards -# -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_ISDN_HDLC=m -CONFIG_ISDN_CAPI=m -CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y -CONFIG_CAPI_TRACE=y -CONFIG_ISDN_CAPI_MIDDLEWARE=y -CONFIG_ISDN_CAPI_CAPI20=m -# CONFIG_ISDN_CAPI_CAPIFS_BOOL is not set -CONFIG_ISDN_CAPI_CAPIDRV=m - -# -# CAPI hardware drivers -# -CONFIG_CAPI_AVM=y -CONFIG_ISDN_DRV_AVMB1_B1PCI=m -# CONFIG_ISDN_DRV_AVMB1_B1PCIV4 is not set -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m -CONFIG_ISDN_DRV_AVMB1_T1PCI=m -CONFIG_ISDN_DRV_AVMB1_C4=m -CONFIG_CAPI_EICON=y -CONFIG_ISDN_DIVAS=m -CONFIG_ISDN_DIVAS_BRIPCI=y -CONFIG_ISDN_DIVAS_PRIPCI=y -CONFIG_ISDN_DIVAS_DIVACAPI=m -CONFIG_ISDN_DIVAS_USERIDI=m -CONFIG_ISDN_DIVAS_MAINT=m -CONFIG_ISDN_DRV_GIGASET=m -CONFIG_GIGASET_BASE=m -CONFIG_GIGASET_M105=m -CONFIG_GIGASET_M101=m -# CONFIG_GIGASET_DEBUG is not set -# CONFIG_PHONE is not set - -# -# Input device support -# -CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m -CONFIG_INPUT_POLLDEV=m - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ATKBD=y -CONFIG_QT2160=m -CONFIG_KEYBOARD_LKKBD=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_XTKBD=m -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -CONFIG_INPUT_MISC=y -CONFIG_INPUT_PCSPKR=m -CONFIG_INPUT_APANEL=m -# CONFIG_INPUT_WISTRON_BTNS is not set -# CONFIG_INPUT_ATLAS_BTNS is not set -CONFIG_INPUT_ATI_REMOTE=m -CONFIG_INPUT_ATI_REMOTE2=m -CONFIG_INPUT_KEYSPAN_REMOTE=m -CONFIG_INPUT_POWERMATE=m -CONFIG_INPUT_YEALINK=m -CONFIG_INPUT_CM109=m -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_WINBOND_CIR=m -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_WM831X_ON=m - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_SERIO_I8042=y -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_CT82C710 is not set -# CONFIG_SERIO_PARKBD is not set -# CONFIG_SERIO_PCIPS2 is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_DEVKMEM=y -# CONFIG_SERIAL_NONSTANDARD is not set -CONFIG_NOZOMI=m - -# -# Serial drivers -# -CONFIG_FIX_EARLYCON_MEM=y - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=m -CONFIG_SERIAL_JSM=m -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set -CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set -CONFIG_PPDEV=m -CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_PANIC_EVENT=y -# CONFIG_IPMI_PANIC_STRING is not set -CONFIG_IPMI_DEVICE_INTERFACE=m -CONFIG_IPMI_SI=m -CONFIG_IPMI_WATCHDOG=m -CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m -CONFIG_HW_RANDOM_TIMERIOMEM=m -CONFIG_HW_RANDOM_INTEL=m -CONFIG_HW_RANDOM_AMD=m -CONFIG_HW_RANDOM_GEODE=m -CONFIG_HW_RANDOM_VIA=m -CONFIG_NVRAM=m -# CONFIG_R3964 is not set -# CONFIG_APPLICOM is not set -# CONFIG_SONYPI is not set - -# -# PCMCIA character devices -# -CONFIG_SYNCLINK_CS=m -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -CONFIG_IPWIRELESS=m -# CONFIG_MWAVE is not set -CONFIG_SCx200_GPIO=m -CONFIG_PC8736x_GPIO=m -CONFIG_NSC_GPIO=m -CONFIG_CS5535_GPIO=m -# CONFIG_RAW_DRIVER is not set -CONFIG_HANGCHECK_TIMER=m -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set -CONFIG_DEVPORT=y -CONFIG_I2C=m -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_ALGOBIT=m -CONFIG_I2C_ALGOPCA=m - -# -# I2C Hardware Bus support -# - -# -# PC SMBus host controller drivers -# -CONFIG_I2C_ALI1535=m -CONFIG_I2C_ALI1563=m -CONFIG_I2C_ALI15X3=m -CONFIG_I2C_AMD756=m -CONFIG_I2C_AMD756_S4882=m -CONFIG_I2C_AMD8111=m -CONFIG_I2C_I801=m -CONFIG_I2C_ISCH=m -CONFIG_I2C_PIIX4=m -CONFIG_I2C_NFORCE2=m -CONFIG_I2C_NFORCE2_S4985=m -CONFIG_I2C_SIS5595=m -CONFIG_I2C_SIS630=m -CONFIG_I2C_SIS96X=m -CONFIG_I2C_VIA=m -CONFIG_I2C_VIAPRO=m - -# -# ACPI drivers -# -CONFIG_I2C_SCMI=m - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -CONFIG_I2C_OCORES=m -CONFIG_I2C_SIMTEC=m - -# -# External I2C/SMBus adapter drivers -# -CONFIG_I2C_PARPORT=m -CONFIG_I2C_PARPORT_LIGHT=m -# CONFIG_I2C_TAOS_EVM is not set -CONFIG_I2C_TINY_USB=m - -# -# Graphics adapter I2C/DDC channel drivers -# -CONFIG_I2C_VOODOO3=m - -# -# Other I2C/SMBus bus drivers -# -CONFIG_I2C_PCA_PLATFORM=m -CONFIG_I2C_STUB=m -# CONFIG_SCx200_I2C is not set -CONFIG_SCx200_ACB=m - -# -# Miscellaneous I2C Chip support -# -CONFIG_DS1682=m -CONFIG_SENSORS_TSL2550=m -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set -# CONFIG_SPI is not set - -# -# PPS support -# -CONFIG_PPS=m -# CONFIG_PPS_DEBUG is not set -CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -# CONFIG_GPIOLIB is not set -CONFIG_W1=m -CONFIG_W1_CON=y - -# -# 1-wire Bus Masters -# -CONFIG_W1_MASTER_MATROX=m -CONFIG_W1_MASTER_DS2490=m -CONFIG_W1_MASTER_DS2482=m - -# -# 1-wire Slaves -# -CONFIG_W1_SLAVE_THERM=m -CONFIG_W1_SLAVE_SMEM=m -CONFIG_W1_SLAVE_DS2431=m -CONFIG_W1_SLAVE_DS2433=m -CONFIG_W1_SLAVE_DS2433_CRC=y -CONFIG_W1_SLAVE_DS2760=m -CONFIG_W1_SLAVE_BQ27000=m -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_PDA_POWER is not set -CONFIG_WM831X_POWER=m -CONFIG_WM8350_POWER=m -# CONFIG_BATTERY_DS2760 is not set -CONFIG_BATTERY_DS2782=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_MAX17040=m -CONFIG_CHARGER_PCF50633=m -CONFIG_HWMON=m -CONFIG_HWMON_VID=m -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Native drivers -# -CONFIG_SENSORS_ABITUGURU=m -CONFIG_SENSORS_ABITUGURU3=m -CONFIG_SENSORS_AD7414=m -CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADM1021=m -CONFIG_SENSORS_ADM1025=m -CONFIG_SENSORS_ADM1026=m -CONFIG_SENSORS_ADM1029=m -CONFIG_SENSORS_ADM1031=m -CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADT7462=m -CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7473=m -CONFIG_SENSORS_ADT7475=m -CONFIG_SENSORS_K8TEMP=m -CONFIG_SENSORS_ASB100=m -CONFIG_SENSORS_ATXP1=m -CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_I5K_AMB=m -CONFIG_SENSORS_F71805F=m -CONFIG_SENSORS_F71882FG=m -CONFIG_SENSORS_F75375S=m -CONFIG_SENSORS_FSCHMD=m -CONFIG_SENSORS_G760A=m -CONFIG_SENSORS_GL518SM=m -CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_CORETEMP=m -CONFIG_SENSORS_IBMAEM=m -CONFIG_SENSORS_IBMPEX=m -CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM77=m -CONFIG_SENSORS_LM78=m -CONFIG_SENSORS_LM80=m -CONFIG_SENSORS_LM83=m -CONFIG_SENSORS_LM85=m -CONFIG_SENSORS_LM87=m -CONFIG_SENSORS_LM90=m -CONFIG_SENSORS_LM92=m -CONFIG_SENSORS_LM93=m -CONFIG_SENSORS_LTC4215=m -CONFIG_SENSORS_LTC4245=m -CONFIG_SENSORS_LM95241=m -CONFIG_SENSORS_MAX1619=m -CONFIG_SENSORS_MAX6650=m -CONFIG_SENSORS_PC87360=m -CONFIG_SENSORS_PC87427=m -CONFIG_SENSORS_PCF8591=m -CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_DME1737=m -CONFIG_SENSORS_SMSC47M1=m -CONFIG_SENSORS_SMSC47M192=m -CONFIG_SENSORS_SMSC47B397=m -CONFIG_SENSORS_ADS7828=m -CONFIG_SENSORS_THMC50=m -CONFIG_SENSORS_TMP401=m -CONFIG_SENSORS_TMP421=m -CONFIG_SENSORS_VIA686A=m -CONFIG_SENSORS_VT1211=m -CONFIG_SENSORS_VT8231=m -CONFIG_SENSORS_W83781D=m -CONFIG_SENSORS_W83791D=m -CONFIG_SENSORS_W83792D=m -CONFIG_SENSORS_W83793=m -CONFIG_SENSORS_W83L785TS=m -CONFIG_SENSORS_W83L786NG=m -CONFIG_SENSORS_W83627HF=m -CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m -CONFIG_SENSORS_HDAPS=m -CONFIG_SENSORS_APPLESMC=m - -# -# ACPI drivers -# -CONFIG_SENSORS_ATK0110=m -CONFIG_SENSORS_LIS3LV02D=m -CONFIG_THERMAL=y -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_WATCHDOG=m -CONFIG_ACQUIRE_WDT=m -CONFIG_ADVANTECH_WDT=m -CONFIG_ALIM1535_WDT=m -CONFIG_ALIM7101_WDT=m -CONFIG_SC520_WDT=m -CONFIG_SBC_FITPC2_WATCHDOG=m -CONFIG_EUROTECH_WDT=m -CONFIG_IB700_WDT=m -CONFIG_IBMASR=m -CONFIG_WAFER_WDT=m -CONFIG_I6300ESB_WDT=m -CONFIG_ITCO_WDT=m -# CONFIG_ITCO_VENDOR_SUPPORT is not set -CONFIG_IT8712F_WDT=m -CONFIG_IT87_WDT=m -CONFIG_HP_WATCHDOG=m -CONFIG_SC1200_WDT=m -CONFIG_SCx200_WDT=m -CONFIG_PC87413_WDT=m -CONFIG_60XX_WDT=m -CONFIG_SBC8360_WDT=m -CONFIG_SBC7240_WDT=m -CONFIG_CPU5_WDT=m -CONFIG_SMSC_SCH311X_WDT=m -CONFIG_SMSC37B787_WDT=m -CONFIG_W83627HF_WDT=m -CONFIG_W83697HF_WDT=m -CONFIG_W83697UG_WDT=m -CONFIG_W83877F_WDT=m -CONFIG_W83977F_WDT=m -CONFIG_MACHZ_WDT=m -CONFIG_SBC_EPX_C3_WATCHDOG=m - -# -# PCI-based Watchdog Cards -# -CONFIG_PCIPCWATCHDOG=m -CONFIG_WDTPCI=m - -# -# USB-based Watchdog Cards -# -CONFIG_USBPCWATCHDOG=m -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -CONFIG_SSB=m -CONFIG_SSB_SPROM=y -CONFIG_SSB_PCIHOST_POSSIBLE=y -CONFIG_SSB_PCIHOST=y -# CONFIG_SSB_B43_PCI_BRIDGE is not set -CONFIG_SSB_PCMCIAHOST_POSSIBLE=y -CONFIG_SSB_PCMCIAHOST=y -CONFIG_SSB_SDIOHOST_POSSIBLE=y -CONFIG_SSB_SDIOHOST=y -# CONFIG_SSB_DEBUG is not set -CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y -CONFIG_SSB_DRIVER_PCICORE=y - -# -# Multifunction device drivers -# -CONFIG_MFD_CORE=m -CONFIG_MFD_SM501=m -CONFIG_HTC_PASIC3=m -# CONFIG_MFD_TMIO is not set -CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=m -CONFIG_MFD_WM8350=m -CONFIG_MFD_WM8350_I2C=m -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -CONFIG_AB3100_CORE=m -CONFIG_AB3100_OTP=m -# CONFIG_REGULATOR is not set -CONFIG_MEDIA_SUPPORT=m - -# -# Multimedia core support -# -CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m -# CONFIG_VIDEO_ALLOW_V4L1 is not set -CONFIG_VIDEO_V4L1_COMPAT=y -CONFIG_DVB_CORE=m -CONFIG_VIDEO_MEDIA=m - -# -# Multimedia drivers -# -# CONFIG_MEDIA_ATTACH is not set -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set - -# -# Encoders/decoders and other helper chips -# - -# -# Audio decoders -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TDA9875 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_ADV7343 is not set - -# -# Video improvement chips -# -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_CX23885 is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_IVTV is not set -# CONFIG_VIDEO_CX18 is not set -# CONFIG_VIDEO_SAA7164 is not set -# CONFIG_VIDEO_CAFE_CCIC is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_ZC0301 is not set -CONFIG_USB_PWC_INPUT_EVDEV=y -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_GEMTEK_PCI is not set -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MAESTRO is not set -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y - -# -# Supported SAA7146 based PCI Adapters -# -# CONFIG_TTPCI_EEPROM is not set -# CONFIG_DVB_AV7110 is not set -# CONFIG_DVB_BUDGET_CORE is not set - -# -# Supported USB Adapters -# -# CONFIG_DVB_USB is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set -# CONFIG_SMS_SIANO_MDTV is not set - -# -# Supported FlexCopII (B2C2) Adapters -# -# CONFIG_DVB_B2C2_FLEXCOP is not set - -# -# Supported BT878 Adapters -# - -# -# Supported Pluto2 Adapters -# -# CONFIG_DVB_PLUTO2 is not set - -# -# Supported SDMC DM1105 Adapters -# -# CONFIG_DVB_DM1105 is not set - -# -# Supported Earthsoft PT1 Adapters -# -# CONFIG_DVB_PT1 is not set - -# -# Supported DVB Frontends -# -# CONFIG_DVB_FE_CUSTOMISE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set - -# -# Graphics support -# -CONFIG_AGP=m -CONFIG_AGP_ALI=m -CONFIG_AGP_ATI=m -CONFIG_AGP_AMD=m -CONFIG_AGP_AMD64=m -CONFIG_AGP_INTEL=m -CONFIG_AGP_NVIDIA=m -CONFIG_AGP_SIS=m -CONFIG_AGP_SWORKS=m -CONFIG_AGP_VIA=m -CONFIG_AGP_EFFICEON=m -CONFIG_VGA_ARB=y -CONFIG_DRM=m -CONFIG_DRM_KMS_HELPER=m -CONFIG_DRM_TTM=m -CONFIG_DRM_TDFX=m -CONFIG_DRM_R128=m -CONFIG_DRM_RADEON=m -CONFIG_DRM_I810=m -CONFIG_DRM_I830=m -CONFIG_DRM_I915=m -CONFIG_DRM_I915_KMS=y -CONFIG_DRM_MGA=m -CONFIG_DRM_SIS=m -CONFIG_DRM_VIA=m -CONFIG_DRM_SAVAGE=m -CONFIG_VGASTATE=m -CONFIG_VIDEO_OUTPUT_CONTROL=m -CONFIG_FB=y -CONFIG_FIRMWARE_EDID=y -CONFIG_FB_DDC=m -CONFIG_FB_BOOT_VESA_SUPPORT=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -CONFIG_FB_SYS_FILLRECT=m -CONFIG_FB_SYS_COPYAREA=m -CONFIG_FB_SYS_IMAGEBLIT=m -# CONFIG_FB_FOREIGN_ENDIAN is not set -CONFIG_FB_SYS_FOPS=m -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_SVGALIB=m -# CONFIG_FB_MACMODES is not set -CONFIG_FB_BACKLIGHT=y -CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y - -# -# Frame buffer hardware drivers -# -CONFIG_FB_CIRRUS=m -CONFIG_FB_PM2=m -CONFIG_FB_PM2_FIFO_DISCONNECT=y -CONFIG_FB_CYBER2000=m -# CONFIG_FB_ARC is not set -CONFIG_FB_ASILIANT=y -# CONFIG_FB_IMSTT is not set -# CONFIG_FB_VGA16 is not set -CONFIG_FB_UVESA=m -CONFIG_FB_VESA=y -# CONFIG_FB_N411 is not set -# CONFIG_FB_HGA is not set -# CONFIG_FB_S1D13XXX is not set -CONFIG_FB_NVIDIA=m -CONFIG_FB_NVIDIA_I2C=y -# CONFIG_FB_NVIDIA_DEBUG is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y -CONFIG_FB_RIVA=m -CONFIG_FB_RIVA_I2C=y -# CONFIG_FB_RIVA_DEBUG is not set -CONFIG_FB_RIVA_BACKLIGHT=y -CONFIG_FB_I810=m -CONFIG_FB_I810_GTF=y -CONFIG_FB_I810_I2C=y -CONFIG_FB_LE80578=m -CONFIG_FB_CARILLO_RANCH=m -CONFIG_FB_MATROX=m -CONFIG_FB_MATROX_MILLENIUM=y -CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=m -CONFIG_FB_MATROX_MAVEN=m -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -CONFIG_FB_ATY128=m -CONFIG_FB_ATY128_BACKLIGHT=y -CONFIG_FB_ATY=m -CONFIG_FB_ATY_CT=y -# CONFIG_FB_ATY_GENERIC_LCD is not set -CONFIG_FB_ATY_GX=y -CONFIG_FB_ATY_BACKLIGHT=y -CONFIG_FB_S3=m -CONFIG_FB_SAVAGE=m -CONFIG_FB_SAVAGE_I2C=y -CONFIG_FB_SAVAGE_ACCEL=y -CONFIG_FB_SIS=m -CONFIG_FB_SIS_300=y -CONFIG_FB_SIS_315=y -CONFIG_FB_VIA=m -CONFIG_FB_NEOMAGIC=m -CONFIG_FB_KYRO=m -CONFIG_FB_3DFX=m -CONFIG_FB_3DFX_ACCEL=y -CONFIG_FB_3DFX_I2C=y -CONFIG_FB_VOODOO1=m -CONFIG_FB_VT8623=m -CONFIG_FB_TRIDENT=m -CONFIG_FB_ARK=m -CONFIG_FB_PM3=m -# CONFIG_FB_CARMINE is not set -CONFIG_FB_GEODE=y -CONFIG_FB_GEODE_LX=m -CONFIG_FB_GEODE_GX=m -CONFIG_FB_GEODE_GX1=m -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m -# CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m -CONFIG_FB_MB862XX=m -CONFIG_FB_MB862XX_PCI_GDC=y -CONFIG_FB_BROADSHEET=m -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_ILI9320 is not set -CONFIG_LCD_PLATFORM=m -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_PROGEAR=m -CONFIG_BACKLIGHT_CARILLO_RANCH=m -CONFIG_BACKLIGHT_MBP_NVIDIA=m -CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_WM831X=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# - -# -# Console display driver support -# -CONFIG_VGA_CONSOLE=y -# CONFIG_VGACON_SOFT_SCROLLBACK is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_SOUND=m -CONFIG_SOUND_OSS_CORE=y -CONFIG_SOUND_OSS_CORE_PRECLAIM=y -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -CONFIG_SND_HWDEP=m -CONFIG_SND_RAWMIDI=m -CONFIG_SND_JACK=y -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQ_DUMMY=m -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -CONFIG_SND_SEQUENCER_OSS=y -CONFIG_SND_DYNAMIC_MINORS=y -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set -CONFIG_SND_VMASTER=y -CONFIG_SND_DMA_SGBUF=y -CONFIG_SND_RAWMIDI_SEQ=m -CONFIG_SND_OPL3_LIB_SEQ=m -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -CONFIG_SND_EMU10K1_SEQ=m -CONFIG_SND_MPU401_UART=m -CONFIG_SND_OPL3_LIB=m -CONFIG_SND_VX_LIB=m -CONFIG_SND_AC97_CODEC=m -CONFIG_SND_DRIVERS=y -CONFIG_SND_DUMMY=m -CONFIG_SND_VIRMIDI=m -CONFIG_SND_MTPAV=m -CONFIG_SND_MTS64=m -CONFIG_SND_SERIAL_U16550=m -CONFIG_SND_MPU401=m -CONFIG_SND_PORTMAN2X4=m -# CONFIG_SND_AC97_POWER_SAVE is not set -CONFIG_SND_SB_COMMON=m -CONFIG_SND_SB16_DSP=m -CONFIG_SND_PCI=y -CONFIG_SND_AD1889=m -CONFIG_SND_ALS300=m -CONFIG_SND_ALS4000=m -CONFIG_SND_ALI5451=m -CONFIG_SND_ATIIXP=m -CONFIG_SND_ATIIXP_MODEM=m -CONFIG_SND_AU8810=m -CONFIG_SND_AU8820=m -CONFIG_SND_AU8830=m -# CONFIG_SND_AW2 is not set -# CONFIG_SND_AZT3328 is not set -CONFIG_SND_BT87X=m -# CONFIG_SND_BT87X_OVERCLOCK is not set -CONFIG_SND_CA0106=m -CONFIG_SND_CMIPCI=m -CONFIG_SND_OXYGEN_LIB=m -CONFIG_SND_OXYGEN=m -CONFIG_SND_CS4281=m -CONFIG_SND_CS46XX=m -CONFIG_SND_CS46XX_NEW_DSP=y -CONFIG_SND_CS5530=m -CONFIG_SND_CS5535AUDIO=m -CONFIG_SND_CTXFI=m -CONFIG_SND_DARLA20=m -CONFIG_SND_GINA20=m -CONFIG_SND_LAYLA20=m -CONFIG_SND_DARLA24=m -CONFIG_SND_GINA24=m -CONFIG_SND_LAYLA24=m -CONFIG_SND_MONA=m -CONFIG_SND_MIA=m -CONFIG_SND_ECHO3G=m -CONFIG_SND_INDIGO=m -CONFIG_SND_INDIGOIO=m -CONFIG_SND_INDIGODJ=m -CONFIG_SND_INDIGOIOX=m -CONFIG_SND_INDIGODJX=m -CONFIG_SND_EMU10K1=m -CONFIG_SND_EMU10K1X=m -CONFIG_SND_ENS1370=m -CONFIG_SND_ENS1371=m -CONFIG_SND_ES1938=m -CONFIG_SND_ES1968=m -CONFIG_SND_FM801=m -# CONFIG_SND_FM801_TEA575X_BOOL is not set -CONFIG_SND_HDA_INTEL=m -CONFIG_SND_HDA_HWDEP=y -CONFIG_SND_HDA_RECONFIG=y -# CONFIG_SND_HDA_INPUT_BEEP is not set -# CONFIG_SND_HDA_INPUT_JACK is not set -CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_CODEC_REALTEK=y -CONFIG_SND_HDA_CODEC_ANALOG=y -CONFIG_SND_HDA_CODEC_SIGMATEL=y -CONFIG_SND_HDA_CODEC_VIA=y -CONFIG_SND_HDA_CODEC_ATIHDMI=y -CONFIG_SND_HDA_CODEC_NVHDMI=y -CONFIG_SND_HDA_CODEC_INTELHDMI=y -CONFIG_SND_HDA_ELD=y -CONFIG_SND_HDA_CODEC_CIRRUS=y -CONFIG_SND_HDA_CODEC_CONEXANT=y -CONFIG_SND_HDA_CODEC_CA0110=y -CONFIG_SND_HDA_CODEC_CMEDIA=y -CONFIG_SND_HDA_CODEC_SI3054=y -CONFIG_SND_HDA_GENERIC=y -# CONFIG_SND_HDA_POWER_SAVE is not set -CONFIG_SND_HDSP=m -CONFIG_SND_HDSPM=m -CONFIG_SND_HIFIER=m -CONFIG_SND_ICE1712=m -CONFIG_SND_ICE1724=m -CONFIG_SND_INTEL8X0=m -CONFIG_SND_INTEL8X0M=m -CONFIG_SND_KORG1212=m -CONFIG_SND_LX6464ES=m -CONFIG_SND_MAESTRO3=m -CONFIG_SND_MIXART=m -CONFIG_SND_NM256=m -CONFIG_SND_PCXHR=m -CONFIG_SND_RIPTIDE=m -CONFIG_SND_RME32=m -CONFIG_SND_RME96=m -CONFIG_SND_RME9652=m -CONFIG_SND_SIS7019=m -CONFIG_SND_SONICVIBES=m -CONFIG_SND_TRIDENT=m -CONFIG_SND_VIA82XX=m -CONFIG_SND_VIA82XX_MODEM=m -CONFIG_SND_VIRTUOSO=m -CONFIG_SND_VX222=m -CONFIG_SND_YMFPCI=m -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=m -CONFIG_SND_USB_USX2Y=m -CONFIG_SND_USB_CAIAQ=m -CONFIG_SND_USB_CAIAQ_INPUT=y -CONFIG_SND_USB_US122L=m -CONFIG_SND_PCMCIA=y -CONFIG_SND_VXPOCKET=m -CONFIG_SND_PDAUDIOCF=m -CONFIG_SND_SOC=m -CONFIG_SND_SOC_I2C_AND_SPI=m -CONFIG_SND_SOC_ALL_CODECS=m -CONFIG_SND_SOC_WM_HUBS=m -CONFIG_SND_SOC_AD73311=m -CONFIG_SND_SOC_AK4535=m -CONFIG_SND_SOC_AK4642=m -CONFIG_SND_SOC_CS4270=m -CONFIG_SND_SOC_L3=m -CONFIG_SND_SOC_PCM3008=m -CONFIG_SND_SOC_SPDIF=m -CONFIG_SND_SOC_SSM2602=m -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_UDA134X=m -CONFIG_SND_SOC_UDA1380=m -CONFIG_SND_SOC_WM8350=m -CONFIG_SND_SOC_WM8400=m -CONFIG_SND_SOC_WM8510=m -CONFIG_SND_SOC_WM8523=m -CONFIG_SND_SOC_WM8580=m -CONFIG_SND_SOC_WM8728=m -CONFIG_SND_SOC_WM8731=m -CONFIG_SND_SOC_WM8750=m -CONFIG_SND_SOC_WM8753=m -CONFIG_SND_SOC_WM8776=m -CONFIG_SND_SOC_WM8900=m -CONFIG_SND_SOC_WM8903=m -CONFIG_SND_SOC_WM8940=m -CONFIG_SND_SOC_WM8960=m -CONFIG_SND_SOC_WM8961=m -CONFIG_SND_SOC_WM8971=m -CONFIG_SND_SOC_WM8974=m -CONFIG_SND_SOC_WM8988=m -CONFIG_SND_SOC_WM8990=m -CONFIG_SND_SOC_WM8993=m -CONFIG_SND_SOC_WM9081=m -CONFIG_SND_SOC_MAX9877=m -# CONFIG_SOUND_PRIME is not set -CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set - -# -# USB Input Devices -# -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y - -# -# Special HID drivers -# -CONFIG_HID_A4TECH=m -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -# CONFIG_DRAGONRISE_FF is not set -CONFIG_HID_EZKEY=m -CONFIG_HID_KYE=m -CONFIG_HID_GYRATION=m -CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m -CONFIG_HID_LOGITECH=m -# CONFIG_LOGITECH_FF is not set -# CONFIG_LOGIRUMBLEPAD2_FF is not set -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_NTRIG=m -CONFIG_HID_PANTHERLORD=m -# CONFIG_PANTHERLORD_FF is not set -CONFIG_HID_PETALYNX=m -CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m -CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -# CONFIG_GREENASIA_FF is not set -CONFIG_HID_SMARTJOYPLUS=m -# CONFIG_SMARTJOYPLUS_FF is not set -CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -# CONFIG_THRUSTMASTER_FF is not set -CONFIG_HID_WACOM=m -CONFIG_HID_ZEROPLUS=m -# CONFIG_ZEROPLUS_FF is not set -CONFIG_USB_SUPPORT=y -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y -# CONFIG_USB_OTG is not set -# CONFIG_USB_MON is not set -CONFIG_USB_WUSB=m -CONFIG_USB_WUSB_CBAF=m -# CONFIG_USB_WUSB_CBAF_DEBUG is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=y -# CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m -# CONFIG_USB_ISP1760_HCD is not set -CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=y -CONFIG_USB_U132_HCD=m -CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_CS is not set -CONFIG_USB_R8A66597_HCD=m -CONFIG_USB_WHCI_HCD=m -CONFIG_USB_HWA_HCD=m - -# -# USB Device Class drivers -# -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m -CONFIG_USB_WDM=m -CONFIG_USB_TMC=m - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=m -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -CONFIG_USB_STORAGE_FREECOM=m -CONFIG_USB_STORAGE_ISD200=m -CONFIG_USB_STORAGE_USBAT=m -CONFIG_USB_STORAGE_SDDR09=m -CONFIG_USB_STORAGE_SDDR55=m -CONFIG_USB_STORAGE_JUMPSHOT=m -CONFIG_USB_STORAGE_ALAUDA=m -CONFIG_USB_STORAGE_ONETOUCH=m -CONFIG_USB_STORAGE_KARMA=m -CONFIG_USB_STORAGE_CYPRESS_ATACB=m -# CONFIG_USB_LIBUSUAL is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set - -# -# USB port drivers -# -CONFIG_USB_USS720=m -CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_ARK3116=m -CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_CH341=m -CONFIG_USB_SERIAL_WHITEHEAT=m -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP210X=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m -CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set -CONFIG_USB_SERIAL_EDGEPORT=m -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_IPW=m -CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -CONFIG_USB_SERIAL_MCT_U232=m -CONFIG_USB_SERIAL_MOS7720=m -CONFIG_USB_SERIAL_MOS7840=m -CONFIG_USB_SERIAL_MOTOROLA=m -# CONFIG_USB_SERIAL_NAVMAN is not set -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_OTI6858=m -# CONFIG_USB_SERIAL_QUALCOMM is not set -CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set -CONFIG_USB_SERIAL_SIEMENS_MPI=m -CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m -# CONFIG_USB_SERIAL_CYBERJACK is not set -CONFIG_USB_SERIAL_XIRCOM=m -CONFIG_USB_SERIAL_OPTION=m -# CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_SERIAL_OPTICON=m -# CONFIG_USB_SERIAL_DEBUG is not set - -# -# USB Miscellaneous drivers -# -CONFIG_USB_EMI62=m -CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set -CONFIG_USB_SEVSEG=m -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -CONFIG_USB_LCD=m -CONFIG_USB_BERRY_CHARGE=m -CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m -# CONFIG_USB_IDMOUSE is not set -CONFIG_USB_FTDI_ELAN=m -# CONFIG_USB_APPLEDISPLAY is not set -CONFIG_USB_SISUSBVGA=m -CONFIG_USB_SISUSBVGA_CON=y -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -CONFIG_USB_IOWARRIOR=m -# CONFIG_USB_TEST is not set -CONFIG_USB_ISIGHTFW=m -CONFIG_USB_VST=m -CONFIG_USB_ATM=m -CONFIG_USB_SPEEDTOUCH=m -CONFIG_USB_CXACRU=m -CONFIG_USB_UEAGLEATM=m -CONFIG_USB_XUSBATM=m -# CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_NOP_USB_XCEIV=m -CONFIG_UWB=m -CONFIG_UWB_HWA=m -CONFIG_UWB_WHCI=m -CONFIG_UWB_WLP=m -CONFIG_UWB_I1480U=m -CONFIG_UWB_I1480U_WLP=m -CONFIG_MMC=m -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_UNSAFE_RESUME is not set - -# -# MMC/SD/SDIO Card Drivers -# -CONFIG_MMC_BLOCK=m -CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m - -# -# MMC/SD/SDIO Host Controller Drivers -# -CONFIG_MMC_SDHCI=m -CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_RICOH_MMC=m -CONFIG_MMC_SDHCI_PLTFM=m -CONFIG_MMC_WBSD=m -# CONFIG_MMC_AT91 is not set -# CONFIG_MMC_ATMELMCI is not set -CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_SDRICOH_CS=m -CONFIG_MMC_CB710=m -CONFIG_MMC_VIA_SDMMC=m -CONFIG_MEMSTICK=m -# CONFIG_MEMSTICK_DEBUG is not set - -# -# MemoryStick drivers -# -# CONFIG_MEMSTICK_UNSAFE_RESUME is not set -CONFIG_MSPRO_BLOCK=m - -# -# MemoryStick Host Controller Drivers -# -CONFIG_MEMSTICK_TIFM_MS=m -CONFIG_MEMSTICK_JMICRON_38X=m -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m - -# -# LED drivers -# -CONFIG_LEDS_NET48XX=m -CONFIG_LEDS_WRAP=m -CONFIG_LEDS_ALIX2=m -CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_LP3944=m -CONFIG_LEDS_CLEVO_MAIL=m -CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m -CONFIG_LEDS_BD2802=m - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_LEDS_TRIGGER_BACKLIGHT=m -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m - -# -# iptables trigger is under Netfilter config (LED target) -# -CONFIG_LEDS_TRIGGER_NETDEV=m -# CONFIG_ACCESSIBILITY is not set -# CONFIG_INFINIBAND is not set -# CONFIG_EDAC is not set -CONFIG_RTC_LIB=m -CONFIG_RTC_CLASS=m - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_DRV_TEST=m - -# -# I2C RTC drivers -# -CONFIG_RTC_DRV_DS1307=m -CONFIG_RTC_DRV_DS1374=m -CONFIG_RTC_DRV_DS1672=m -CONFIG_RTC_DRV_MAX6900=m -CONFIG_RTC_DRV_RS5C372=m -CONFIG_RTC_DRV_ISL1208=m -CONFIG_RTC_DRV_X1205=m -CONFIG_RTC_DRV_PCF8563=m -CONFIG_RTC_DRV_PCF8583=m -CONFIG_RTC_DRV_M41T80=m -# CONFIG_RTC_DRV_M41T80_WDT is not set -CONFIG_RTC_DRV_S35390A=m -CONFIG_RTC_DRV_FM3130=m -CONFIG_RTC_DRV_RX8581=m -CONFIG_RTC_DRV_RX8025=m - -# -# SPI RTC drivers -# - -# -# Platform RTC drivers -# -CONFIG_RTC_DRV_CMOS=m -CONFIG_RTC_DRV_DS1286=m -CONFIG_RTC_DRV_DS1511=m -CONFIG_RTC_DRV_DS1553=m -CONFIG_RTC_DRV_DS1742=m -CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m -CONFIG_RTC_DRV_M48T35=m -CONFIG_RTC_DRV_M48T59=m -CONFIG_RTC_DRV_BQ4802=m -CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m -CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_AB3100=m - -# -# on-CPU RTC drivers -# -CONFIG_DMADEVICES=y - -# -# DMA Devices -# -CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y -CONFIG_INTEL_IOATDMA=m -CONFIG_DMA_ENGINE=y - -# -# DMA Clients -# -CONFIG_NET_DMA=y -# CONFIG_ASYNC_TX_DMA is not set -CONFIG_DMATEST=m -CONFIG_DCA=m -# CONFIG_AUXDISPLAY is not set -CONFIG_UIO=m -CONFIG_UIO_CIF=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_SMX=m -CONFIG_UIO_AEC=m -CONFIG_UIO_SERCOS3=m -CONFIG_UIO_PCI_GENERIC=m - -# -# TI VLYNQ -# -CONFIG_XEN=y -CONFIG_XEN_INTERFACE_VERSION=0x00030207 - -# -# XEN -# -CONFIG_XEN_PRIVILEGED_GUEST=y -# CONFIG_XEN_UNPRIVILEGED_GUEST is not set -CONFIG_XEN_PRIVCMD=y -CONFIG_XEN_XENBUS_DEV=y -CONFIG_XEN_NETDEV_ACCEL_SFC_UTIL=y -CONFIG_XEN_BACKEND=y -CONFIG_XEN_BLKDEV_BACKEND=y -CONFIG_XEN_BLKDEV_TAP=y -CONFIG_XEN_BLKDEV_TAP2=m -CONFIG_XEN_BLKBACK_PAGEMAP=y -CONFIG_XEN_NETDEV_BACKEND=y -CONFIG_XEN_NETDEV_TX_SHIFT=8 -# CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set -CONFIG_XEN_NETDEV_LOOPBACK=y -CONFIG_XEN_PCIDEV_BACKEND=y -CONFIG_XEN_PCIDEV_BACKEND_VPCI=y -# CONFIG_XEN_PCIDEV_BACKEND_PASS is not set -# CONFIG_XEN_PCIDEV_BACKEND_SLOT is not set -# CONFIG_XEN_PCIDEV_BACKEND_CONTROLLER is not set -CONFIG_XEN_PCIDEV_BE_DEBUG=y -# CONFIG_XEN_TPMDEV_BACKEND is not set -CONFIG_XEN_SCSI_BACKEND=m -CONFIG_XEN_USB_BACKEND=m -CONFIG_XEN_BLKDEV_FRONTEND=y -CONFIG_XEN_NETDEV_FRONTEND=y -CONFIG_XEN_NETDEV_ACCEL_SFC_FRONTEND=y -CONFIG_XEN_SCSI_FRONTEND=m -CONFIG_XEN_USB_FRONTEND=m -CONFIG_XEN_USB_FRONTEND_HCD_STATS=y -# CONFIG_XEN_USB_FRONTEND_HCD_PM is not set -CONFIG_XEN_GRANT_DEV=y -CONFIG_XEN_FRAMEBUFFER=y -CONFIG_XEN_KEYBOARD=y -CONFIG_XEN_DISABLE_SERIAL=y -CONFIG_XEN_SYSFS=y -CONFIG_XEN_NR_GUEST_DEVICES=256 -# CONFIG_XEN_COMPAT_030002_AND_LATER is not set -# CONFIG_XEN_COMPAT_030004_AND_LATER is not set -# CONFIG_XEN_COMPAT_030100_AND_LATER is not set -CONFIG_XEN_COMPAT_030200_AND_LATER=y -# CONFIG_XEN_COMPAT_030300_AND_LATER is not set -# CONFIG_XEN_COMPAT_030400_AND_LATER is not set -# CONFIG_XEN_COMPAT_LATEST_ONLY is not set -CONFIG_XEN_COMPAT=0x030200 -CONFIG_XEN_VCPU_INFO_PLACEMENT=y -CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y -CONFIG_IRQ_PER_CPU=y -CONFIG_NO_IDLE_HZ=y -CONFIG_XEN_SMPBOOT=y -CONFIG_XEN_DEVMEM=y -CONFIG_XEN_BALLOON=y -CONFIG_XEN_SCRUB_PAGES=y -CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set -CONFIG_ET131X=m -# CONFIG_ET131X_DEBUG is not set -CONFIG_SLICOSS=m -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_USB_IP_COMMON is not set -# CONFIG_W35UND is not set -# CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set -# CONFIG_POCH is not set -# CONFIG_OTUS is not set -# CONFIG_RT2860 is not set -# CONFIG_RT2870 is not set -# CONFIG_RT3090 is not set -# CONFIG_COMEDI is not set -# CONFIG_ASUS_OLED is not set -# CONFIG_PANEL is not set -# CONFIG_ALTERA_PCIE_CHDMA is not set -# CONFIG_RTL8187SE is not set -# CONFIG_RTL8192SU is not set -# CONFIG_RTL8192E is not set -# CONFIG_TRANZPORT is not set - -# -# Android -# - -# -# Qualcomm MSM Camera And Video -# - -# -# Camera Sensor Selection -# -# CONFIG_INPUT_GPIO is not set -# CONFIG_DST is not set -# CONFIG_POHMELFS is not set -# CONFIG_B3DFG is not set -# CONFIG_IDE_PHISON is not set -# CONFIG_PLAN9AUTH is not set -# CONFIG_LINE6_USB is not set -# CONFIG_DRM_RADEON_KMS is not set -# CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set -# CONFIG_VT6655 is not set -# CONFIG_VT6656 is not set -# CONFIG_FB_UDL is not set -# CONFIG_VME_BUS is not set - -# -# RAR Register Driver -# -# CONFIG_RAR_REGISTER is not set -# CONFIG_IIO is not set -CONFIG_X86_PLATFORM_DEVICES=y -CONFIG_ACER_WMI=m -CONFIG_ASUS_LAPTOP=m -CONFIG_DELL_WMI=m -CONFIG_FUJITSU_LAPTOP=m -CONFIG_FUJITSU_LAPTOP_DEBUG=y -CONFIG_TC1100_WMI=m -CONFIG_HP_WMI=m -CONFIG_MSI_LAPTOP=m -CONFIG_PANASONIC_LAPTOP=m -CONFIG_COMPAL_LAPTOP=m -CONFIG_SONY_LAPTOP=m -# CONFIG_SONYPI_COMPAT is not set -CONFIG_THINKPAD_ACPI=m -# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set -# CONFIG_THINKPAD_ACPI_DEBUG is not set -# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set -CONFIG_THINKPAD_ACPI_VIDEO=y -CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y -CONFIG_INTEL_MENLOW=m -CONFIG_ACPI_WMI=m -CONFIG_ACPI_ASUS=m -CONFIG_TOPSTAR_LAPTOP=m -CONFIG_ACPI_TOSHIBA=m - -# -# Firmware Drivers -# -# CONFIG_EDD is not set -CONFIG_FIRMWARE_MEMMAP=y -# CONFIG_DELL_RBU is not set -# CONFIG_DCDBAS is not set -CONFIG_DMIID=y -CONFIG_ISCSI_IBFT_FIND=y -CONFIG_ISCSI_IBFT=m - -# -# File systems -# -CONFIG_EXT2_FS=m -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=m -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=m -CONFIG_EXT4_FS_XATTR=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -CONFIG_JBD2=m -CONFIG_FS_MBCACHE=m -CONFIG_REISER4_FS=m -# CONFIG_REISER4_DEBUG is not set -CONFIG_REISERFS_FS=m -# CONFIG_REISERFS_CHECK is not set -CONFIG_REISERFS_PROC_INFO=y -CONFIG_REISERFS_FS_XATTR=y -CONFIG_REISERFS_FS_POSIX_ACL=y -CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y -CONFIG_FS_POSIX_ACL=y -CONFIG_XFS_FS=m -CONFIG_XFS_QUOTA=y -CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set -# CONFIG_XFS_DEBUG is not set -# CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_NILFS2_FS is not set -CONFIG_FILE_LOCKING=y -CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=y -CONFIG_INOTIFY=y -CONFIG_INOTIFY_USER=y -CONFIG_QUOTA=y -CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m -CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=m -CONFIG_AUTOFS4_FS=m -CONFIG_FUSE_FS=m -CONFIG_CUSE=m - -# -# Caches -# -# CONFIG_FSCACHE is not set - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=m -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -CONFIG_UDF_FS=m -CONFIG_UDF_NLS=y - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=m -# CONFIG_MSDOS_FS is not set -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -# CONFIG_PROC_KCORE is not set -CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set -# CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set -CONFIG_MISC_FILESYSTEMS=y -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -CONFIG_ECRYPT_FS=m -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -# CONFIG_UBIFS_FS is not set -# CONFIG_CRAMFS is not set -# CONFIG_SQUASHFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_OMFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_SYSV_FS is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set -# CONFIG_EXOFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=m -CONFIG_NFS_V3=y -CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_V4_1 is not set -CONFIG_NFSD=m -CONFIG_NFSD_V2_ACL=y -CONFIG_NFSD_V3=y -CONFIG_NFSD_V3_ACL=y -# CONFIG_NFSD_V4 is not set -CONFIG_LOCKD=m -CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m -CONFIG_NFS_ACL_SUPPORT=m -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=m -CONFIG_SUNRPC_GSS=m -CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set -CONFIG_CIFS=m -CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y -# CONFIG_CIFS_WEAK_PW_HASH is not set -# CONFIG_CIFS_UPCALL is not set -CONFIG_CIFS_XATTR=y -CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_EXPERIMENTAL is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="cp850" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y -# CONFIG_DLM is not set - -# -# Kernel hacking -# -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -# CONFIG_PRINTK_TIME is not set -# CONFIG_ENABLE_WARN_DEPRECATED is not set -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_STRIP_ASM_SYMS=y -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 -CONFIG_DETECT_HUNG_TASK=y -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 -CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set -CONFIG_TIMER_STATS=y -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_HIGHMEM is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_VIRTUAL is not set -# CONFIG_DEBUG_WRITECOUNT is not set -CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_CREDENTIALS is not set -CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set -# CONFIG_BOOT_PRINTK_DELAY is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -# CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set -# CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y -CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set -# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KMEMCHECK=y -# CONFIG_KMEMCHECK is not set -# CONFIG_STRICT_DEVMEM is not set -CONFIG_EARLY_PRINTK=y -# CONFIG_EARLY_PRINTK_DBGP is not set -# CONFIG_DEBUG_STACKOVERFLOW is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_X86_PTDUMP is not set -CONFIG_DEBUG_RODATA=y -CONFIG_DEBUG_RODATA_TEST=y -# CONFIG_DEBUG_NX_TEST is not set -# CONFIG_4KSTACKS is not set -# CONFIG_IOMMU_STRESS is not set -CONFIG_IO_DELAY_TYPE_0X80=0 -CONFIG_IO_DELAY_TYPE_0XED=1 -CONFIG_IO_DELAY_TYPE_UDELAY=2 -CONFIG_IO_DELAY_TYPE_NONE=3 -CONFIG_IO_DELAY_0X80=y -# CONFIG_IO_DELAY_0XED is not set -# CONFIG_IO_DELAY_UDELAY is not set -# CONFIG_IO_DELAY_NONE is not set -CONFIG_DEFAULT_IO_DELAY_TYPE=0 -# CONFIG_CPA_DEBUG is not set -# CONFIG_OPTIMIZE_INLINING is not set - -# -# Security options -# -CONFIG_KEYS=y -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set -# CONFIG_IMA is not set -CONFIG_XOR_BLOCKS=m -CONFIG_ASYNC_CORE=m -CONFIG_ASYNC_MEMCPY=m -CONFIG_ASYNC_XOR=m -CONFIG_ASYNC_PQ=m -CONFIG_ASYNC_RAID6_RECOV=m -CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y -CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=m -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=m -CONFIG_CRYPTO_BLKCIPHER2=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=m -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set -CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_CRYPTD=m -CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set - -# -# Authenticated Encryption with Associated Data -# -CONFIG_CRYPTO_CCM=m -CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m - -# -# Block modes -# -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m -CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_XTS=m - -# -# Hash modes -# -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_XCBC=m -CONFIG_CRYPTO_VMAC=m - -# -# Digest -# -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_CRC32C_INTEL=m -CONFIG_CRYPTO_GHASH=m -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=m -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_RMD128=m -CONFIG_CRYPTO_RMD160=m -CONFIG_CRYPTO_RMD256=m -CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_WP512=m - -# -# Ciphers -# -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_AES_586=m -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_CAMELLIA=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_DES=m -CONFIG_CRYPTO_FCRYPT=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SALSA20_586=m -CONFIG_CRYPTO_SEED=m -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_TWOFISH_COMMON=m -CONFIG_CRYPTO_TWOFISH_586=m - -# -# Compression -# -CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_ZLIB=m -CONFIG_CRYPTO_LZO=m - -# -# Random Number Generation -# -CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_DEV_PADLOCK=m -CONFIG_CRYPTO_DEV_PADLOCK_AES=m -CONFIG_CRYPTO_DEV_PADLOCK_SHA=m -CONFIG_CRYPTO_DEV_GEODE=m -CONFIG_CRYPTO_DEV_HIFN_795X=m -CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y -# CONFIG_BINARY_PRINTF is not set - -# -# Library routines -# -CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_FIND_LAST_BIT=y -CONFIG_CRC_CCITT=m -CONFIG_CRC16=m -CONFIG_CRC_T10DIF=m -CONFIG_CRC_ITU_T=m -CONFIG_CRC32=y -CONFIG_CRC7=m -CONFIG_LIBCRC32C=m -CONFIG_AUDIT_GENERIC=y -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m -CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=y -CONFIG_DECOMPRESS_LZMA=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y -CONFIG_CHECK_SIGNATURE=y -CONFIG_NLATTR=y diff --git a/config/menu/10-system.menu b/config/menu/10-system.menu index b56a1ec..5755366 100644 --- a/config/menu/10-system.menu +++ b/config/menu/10-system.menu @@ -40,6 +40,12 @@ 'title' => "$Lang::tr{'system information'}", 'enabled' => 1, }; + $subsystem->{'42.shutdown'} = { + 'caption' => $Lang::tr{'shutdown'}, + 'uri' => '/cgi-bin/shutdown.cgi', + 'title' => "$Lang::tr{'shutdown'}", + 'enabled' => 1, + }; $subsystem->{'99.credits'} = { 'caption' => $Lang::tr{'credits'}, 'uri' => '/cgi-bin/credits.cgi', diff --git a/config/menu/40-services.menu b/config/menu/40-services.menu index 9901e8f..2f4d96e 100644 --- a/config/menu/40-services.menu +++ b/config/menu/40-services.menu @@ -1,5 +1,5 @@ $subservices->{'10.ipsec'} = { - 'caption' => 'IPSec', + 'caption' => $Lang::tr{'ipsec'}, 'uri' => '/cgi-bin/vpnmain.cgi', 'title' => "$Lang::tr{'virtual private networking'}", 'enabled' => 1, diff --git a/config/menu/50-firewall.menu b/config/menu/50-firewall.menu index de28f8e..ce6fd9d 100644 --- a/config/menu/50-firewall.menu +++ b/config/menu/50-firewall.menu @@ -1,52 +1,40 @@ - $subfirewall->{'10.dnat'} = { - 'caption' => $Lang::tr{'ssport forwarding'}, - 'uri' => '/cgi-bin/portfw.cgi', - 'title' => "$Lang::tr{'ssport forwarding'}", - 'enabled' => 1, - }; - $subfirewall->{'20.xtaccess'} = { - 'caption' => $Lang::tr{'external access'}, - 'uri' => '/cgi-bin/xtaccess.cgi', - 'title' => "$Lang::tr{'external access'}", - 'enabled' => 1, - }; - $subfirewall->{'30.wireless'} = { - 'caption' => $Lang::tr{'blue access'}, - 'uri' => '/cgi-bin/wireless.cgi', - 'title' => "$Lang::tr{'blue access'}", + $subfirewall->{'10.forward'} = { + 'caption' => $Lang::tr{'fwdfw menu'}, + 'uri' => '/cgi-bin/firewall.cgi', + 'title' => "$Lang::tr{'fwdfw menu'}", 'enabled' => 1, - }; - $subfirewall->{'40.dmz'} = { - 'caption' => $Lang::tr{'ssdmz pinholes'}, - 'uri' => '/cgi-bin/dmzholes.cgi', - 'title' => "$Lang::tr{'dmz pinhole configuration'}", + }; + $subfirewall->{'20.fwhost'} = { + 'caption' => $Lang::tr{'fwhost menu'}, + 'uri' => '/cgi-bin/fwhosts.cgi', + 'title' => "$Lang::tr{'fwhost menu'}", 'enabled' => 1, - }; - $subfirewall->{'50.outgoing'} = { - 'caption' => $Lang::tr{'outgoing firewall'}, - 'uri' => '/cgi-bin/outgoingfw.cgi', - 'title' => "$Lang::tr{'outgoing firewall'}", + }; + $subfirewall->{'30.optionsfw'} = { + 'caption' => $Lang::tr{'options fw'}, + 'uri' => '/cgi-bin/optionsfw.cgi', + 'title' => "$Lang::tr{'options fw'}", 'enabled' => 1, }; - $subfirewall->{'51.outgoinggrp'} = { - 'caption' => $Lang::tr{'outgoing firewall groups'}, - 'uri' => '/cgi-bin/outgoinggrp.cgi', - 'title' => "$Lang::tr{'outgoing firewall groups'}", + $subfirewall->{'40.p2p'} = { + 'caption' => $Lang::tr{'p2p block'}, + 'uri' => '/cgi-bin/p2p-block.cgi', + 'title' => "P2P-Block", 'enabled' => 1, }; - $subfirewall->{'60.upnp'} = { + $subfirewall->{'60.wireless'} = { + 'caption' => $Lang::tr{'blue access'}, + 'uri' => '/cgi-bin/wireless.cgi', + 'title' => "$Lang::tr{'blue access'}", + 'enabled' => 1, + }; + $subfirewall->{'70.upnp'} = { 'caption' => 'UPnP', 'uri' => '/cgi-bin/upnp.cgi', 'title' => "Universal Plug and Play", 'enabled' => 0, }; - $subfirewall->{'60.optingsfw'} = { - 'caption' => $Lang::tr{'options fw'}, - 'uri' => '/cgi-bin/optionsfw.cgi', - 'title' => "$Lang::tr{'options fw'}", - 'enabled' => 1, - }; - $subfirewall->{'70.iptables'} = { + $subfirewall->{'90.iptables'} = { 'caption' => $Lang::tr{'ipts'}, 'uri' => '/cgi-bin/iptables.cgi', 'title' => "$Lang::tr{'ipts'}", diff --git a/config/outgoingfw/defaultservices b/config/outgoingfw/defaultservices deleted file mode 100644 index f2cf475..0000000 --- a/config/outgoingfw/defaultservices +++ /dev/null @@ -1,34 +0,0 @@ -bootpc,68,tcp&udp,Bootstrap Protocol Client -bootps,67,tcp&udp,Bootstrap Protocol Server -domain,53,tcp&udp,Domain Name Server -echo,7,tcp&udp,Echo -ftp,21,tcp&udp,File Transfer Control -ftp-data,20,tcp&udp,File Control Data -http,80,tcp,Hypertext Transfer Protocol -https,443,tcp,secure HTTP -imap,143,tcp,Interactive Mail Access Protocol -imap3,220,tcp,Interactive Mail Access Protocol v3 -imaps,993,tcp,secure IMAP -ipfire-https,444,tcp,IPFire HTTPS -ipfire-ssh,222,tcp&udp,IPFire SSH -irc,194,tcp&udp,Internet Relay Chat -ircd,6667,tcp&udp,Internet Relay Chat -microsoft-ds,445,tcp&udp,Netbios Filesharing -nameserver,42,tcp&udp,Host Name Server -netbios-dgm,138,tcp&udp,NETBIOS Datagram Service -netbios-ns,137,tcp&udp,NETBIOS Name Server -netbios-ssn,139,tcp&udp,NETBIOS Session Service -nfs,2049,tcp&udp,Network File System -ntp,123,udp,Network Time Protocol -pop3,110,tcp,POP3 Email -pop3s,995,tcp,secure POP3 Email -sftp,115,tcp&udp,secure File Transfer Protocol -smtp,25,tcp,Simple Mail Transfer Protocol -smtps,465,tcp,secure Simple Mail Transfer Protocol -snmp,161,tcp&udp,Simple Network Management -snmptrap,162,udp,SNMP Trap -ssh,22,tcp&udp,SSH -telnet,23,tcp&udp,Telnet -tftp,69,tcp&udp,Trivial File Transfer -time,37,tcp&udp,Time -wins,1512,tcp&udp,Windows Internet Name Service diff --git a/config/outgoingfw/outgoingfw.pl b/config/outgoingfw/outgoingfw.pl deleted file mode 100644 index 1208567..0000000 --- a/config/outgoingfw/outgoingfw.pl +++ /dev/null @@ -1,286 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - - -use strict; -# enable only the following on debugging purpose -#use warnings; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; - -my %outfwsettings = (); -my %checked = (); -my %selected= () ; -my %netsettings = (); -my $errormessage = ""; -my $configentry = ""; -my @configs = (); -my @configline = (); -my $p2pentry = ""; -my @p2ps = (); -my @p2pline = (); -my $CMD = ""; -my $P2PSTRING = ""; - -my $DEBUG = 0; - -my $configfile = "/var/ipfire/outgoing/rules"; -my $p2pfile = "/var/ipfire/outgoing/p2protocols"; - -### Values that have to be initialized -$outfwsettings{'ACTION'} = ''; -$outfwsettings{'VALID'} = 'yes'; -$outfwsettings{'EDIT'} = 'no'; -$outfwsettings{'NAME'} = ''; -$outfwsettings{'SNET'} = ''; -$outfwsettings{'SIP'} = ''; -$outfwsettings{'SPORT'} = ''; -$outfwsettings{'SMAC'} = ''; -$outfwsettings{'DIP'} = ''; -$outfwsettings{'DPORT'} = ''; -$outfwsettings{'PROT'} = ''; -$outfwsettings{'STATE'} = ''; -$outfwsettings{'DISPLAY_DIP'} = ''; -$outfwsettings{'DISPLAY_DPORT'} = ''; -$outfwsettings{'DISPLAY_SMAC'} = ''; -$outfwsettings{'DISPLAY_SIP'} = ''; -$outfwsettings{'POLICY'} = 'MODE0'; - -my @SOURCE = ""; -my $SOURCE = ""; -my $DESTINATION = ""; -my @PROTO = ""; -my $PROTO = ""; -my $DPORT = ""; -my $DEV = ""; -my $MAC = ""; -my $DO = ""; -my $DAY = ""; - -# read files -&General::readhash("${General::swroot}/outgoing/settings", %outfwsettings); -&General::readhash("${General::swroot}/ethernet/settings", %netsettings); - -$netsettings{'RED_DEV'}=`cat /var/ipfire/red/iface`; -$netsettings{'RED_IP'}=`cat /var/ipfire/red/local-ipaddress`; - -open( FILE, "< $configfile" ) or die "Unable to read $configfile"; -@configs = <FILE>; -close FILE; - -if ( $outfwsettings{'POLICY'} eq 'MODE1' ) { - $outfwsettings{'STATE'} = "ALLOW"; - $DO = "RETURN"; -} elsif ( $outfwsettings{'POLICY'} eq 'MODE2' ) { - $outfwsettings{'STATE'} = "DENY"; - $DO = "DROP -m comment --comment 'DROP_OUTGOINGFW '"; -} - -### Initialize IPTables -system("/sbin/iptables --flush OUTGOINGFW >/dev/null 2>&1"); -system("/sbin/iptables --delete-chain OUTGOINGFW >/dev/null 2>&1"); -system("/sbin/iptables -N OUTGOINGFW >/dev/null 2>&1"); - -system("/sbin/iptables --flush OUTGOINGFWMAC >/dev/null 2>&1"); -system("/sbin/iptables --delete-chain OUTGOINGFWMAC >/dev/null 2>&1"); -system("/sbin/iptables -N OUTGOINGFWMAC >/dev/null 2>&1"); - -if ( $outfwsettings{'POLICY'} eq 'MODE0' ) { - &firewall_local_reload(); - exit 0 -} - -if ( $outfwsettings{'POLICY'} eq 'MODE1' ) { - $CMD = "/sbin/iptables -A OUTGOINGFW -m state --state ESTABLISHED,RELATED -j RETURN"; - if ($DEBUG) { print "$CMD\n"; } else { system("$CMD"); } - $CMD = "/sbin/iptables -A OUTGOINGFWMAC -m state --state ESTABLISHED,RELATED -j RETURN"; - if ($DEBUG) { print "$CMD\n"; } else { system("$CMD"); } - $CMD = "/sbin/iptables -A OUTGOINGFW -p icmp -j RETURN"; - if ($DEBUG) { print "$CMD\n"; } else { system("$CMD"); } - $CMD = "/sbin/iptables -A OUTGOINGFWMAC -p icmp -j RETURN"; - if ($DEBUG) { print "$CMD\n"; } else { system("$CMD"); } -} - -foreach $configentry (sort @configs) -{ - @SOURCE = ""; - $DESTINATION = ""; - $PROTO = ""; - $DPORT = ""; - $DEV = ""; - $MAC = ""; - @configline = split( /;/, $configentry ); - - if ($outfwsettings{'STATE'} eq $configline[0]) { - if ($configline[2] eq 'green') { - @SOURCE = ("$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}"); - $DEV = $netsettings{'GREEN_DEV'}; - } elsif ($configline[2] eq 'red') { - @SOURCE = ("$netsettings{'RED_IP'}"); - $DEV = ""; - } elsif ($configline[2] eq 'blue') { - @SOURCE = ("$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}"); - $DEV = $netsettings{'BLUE_DEV'}; - } elsif ($configline[2] eq 'orange') { - @SOURCE = ("$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}"); - $DEV = $netsettings{'ORANGE_DEV'}; - } elsif ($configline[2] eq 'ipsec') { - @SOURCE = ""; - $DEV = "ipsec+"; - } elsif ($configline[2] eq 'ovpn') { - @SOURCE = ""; - $DEV = "tun+"; - } elsif ($configline[2] eq 'ip') { - @SOURCE = ("$configline[5]"); - $DEV = ""; - } elsif ($configline[2] eq 'mac') { - @SOURCE = ("$configline[6]"); - $DEV = ""; - } elsif ($configline[2] eq 'all') { - @SOURCE = ("0/0"); - $DEV = ""; - } else { - if ( -e "/var/ipfire/outgoing/groups/ipgroups/$configline[2]" ) { - @SOURCE = `cat /var/ipfire/outgoing/groups/ipgroups/$configline[2]`; - } elsif ( -e "/var/ipfire/outgoing/groups/macgroups/$configline[2]" ) { - @SOURCE = `cat /var/ipfire/outgoing/groups/macgroups/$configline[2]`; - $configline[2] = "mac"; - } - $DEV = ""; - } - - if ($configline[7]) { $DESTINATION = "$configline[7]"; } else { $DESTINATION = "0/0"; } - - if ($configline[3] eq 'tcp') { - @PROTO = ("tcp"); - } elsif ($configline[3] eq 'udp') { - @PROTO = ("udp"); - } elsif ($configline[3] eq 'esp') { - @PROTO = ("esp"); - } elsif ($configline[3] eq 'gre') { - @PROTO = ("gre"); - } else { - @PROTO = ("tcp","udp"); - } - - my $macrule = 0; - foreach $PROTO (@PROTO){ - foreach $SOURCE (@SOURCE) { - $SOURCE =~ s/\s//gi; - - if ( $SOURCE eq "" || $configline[1] eq "" ){next;} - - if ( ( $configline[6] ne "" || $configline[2] eq 'mac' ) && $configline[2] ne 'all'){ - $SOURCE =~ s/[^a-zA-Z0-9]/:/gi; - $CMD = "-m mac --mac-source $SOURCE -d $DESTINATION -p $PROTO"; - $macrule = 1; - } else { - $CMD = "-s $SOURCE -d $DESTINATION -p $PROTO"; - } - - if ($configline[8] && ( $configline[3] ne 'esp' || $configline[3] ne 'gre') ) { - $DPORT = "$configline[8]"; - $CMD = "$CMD -m multiport --destination-port $DPORT"; - } - - if ($DEV) { - $CMD = "$CMD -i $DEV"; - } - - if ($configline[17] && $configline[18]) { - $DAY = ""; - if ($configline[10]){$DAY = "Mon,"} - if ($configline[11]){$DAY .= "Tue,"} - if ($configline[12]){$DAY .= "Wed,"} - if ($configline[13]){$DAY .= "Thu,"} - if ($configline[14]){$DAY .= "Fri,"} - if ($configline[15]){$DAY .= "Sat,"} - if ($configline[16]){$DAY .= "Sun"} - $CMD = "$CMD -m time --timestart $configline[17] --timestop $configline[18] --weekdays $DAY"; - } - - $CMD = "$CMD -o $netsettings{'RED_DEV'}"; - - if ( $configline[9] eq $Lang::tr{'aktiv'} && $outfwsettings{'POLICY'} eq 'MODE1' ) { - applyrule("$CMD -m limit --limit 10/minute -j LOG --log-prefix 'LOG_OUTGOINGFW '", $macrule); - } elsif ( $configline[9] eq $Lang::tr{'aktiv'} && $outfwsettings{'POLICY'} eq 'MODE2' ) { - applyrule("$CMD -m limit --limit 10/minute -j LOG --log-prefix 'DROP_OUTGOINGFW '", $macrule); - } - - applyrule("$CMD -j $DO", $macrule); - } - } - } -} - -### Do the P2P-Stuff here -open( FILE, "< $p2pfile" ) or die "Unable to read $p2pfile"; -@p2ps = <FILE>; -close FILE; - -$CMD = "-m ipp2p"; - -foreach $p2pentry (sort @p2ps) { - @p2pline = split( /;/, $p2pentry ); - if ( $outfwsettings{'POLICY'} eq 'MODE2' ) { - $DO = "DROP"; - if ("$p2pline[2]" eq "off") { - $P2PSTRING = "$P2PSTRING --$p2pline[1]"; - } - } else { - $DO = "RETURN"; - if ("$p2pline[2]" eq "on") { - $P2PSTRING = "$P2PSTRING --$p2pline[1]"; - } - } -} -if ($P2PSTRING) { - applyrule("$CMD $P2PSTRING -j $DO", 0); -} - -if ( $outfwsettings{'POLICY'} eq 'MODE1' ) { - if ( $outfwsettings{'MODE1LOG'} eq 'on' ) { - applyrule("-o $netsettings{'RED_DEV'} -m limit --limit 10/minute -j LOG --log-prefix 'DROP_OUTGOINGFW '", 0); - } - - applyrule("-o $netsettings{'RED_DEV'} -j DROP -m comment --comment 'DROP_OUTGOINGFW '", 0); -} - -&firewall_local_reload(); - -sub applyrule($$) { - my $cmd = shift; - my $macrule = shift; - - system("/sbin/iptables -A OUTGOINGFWMAC $cmd"); - if ($macrule == 0) { - system("/sbin/iptables -A OUTGOINGFW $cmd"); - } -} - -sub firewall_local_reload() { - my $script = "/etc/sysconfig/firewall.local"; - - if ( -x $script ) { - system("$script reload >/dev/null 2>&1"); - } -} diff --git a/config/rootfiles/common/Net_SSLeay b/config/rootfiles/common/Net_SSLeay index 63002ef..8d5ee2a 100644 --- a/config/rootfiles/common/Net_SSLeay +++ b/config/rootfiles/common/Net_SSLeay @@ -1,5 +1,6 @@ #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Net/SSLeay usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Net/SSLeay.pm +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Net/SSLeay.pod usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Net/SSLeay/Handle.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/.packlist @@ -36,6 +37,7 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/head_h usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/http_cat.al usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/https_cat.al usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/httpx_cat.al +usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/initialize.al usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/make_form.al usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/make_headers.al usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Net/SSLeay/new_x_ctx.al diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index c18b5ed..8f5c8c0 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -1391,9 +1391,10 @@ srv/web/ipfire/cgi-bin/dns.cgi srv/web/ipfire/cgi-bin/dnsforward.cgi srv/web/ipfire/cgi-bin/ddns.cgi srv/web/ipfire/cgi-bin/dhcp.cgi -srv/web/ipfire/cgi-bin/dmzholes.cgi srv/web/ipfire/cgi-bin/extrahd.cgi srv/web/ipfire/cgi-bin/fireinfo.cgi +srv/web/ipfire/cgi-bin/firewall.cgi +srv/web/ipfire/cgi-bin/fwhosts.cgi srv/web/ipfire/cgi-bin/gui.cgi srv/web/ipfire/cgi-bin/hardwaregraphs.cgi srv/web/ipfire/cgi-bin/hosts.cgi @@ -1409,18 +1410,17 @@ srv/web/ipfire/cgi-bin/modem.cgi srv/web/ipfire/cgi-bin/netexternal.cgi srv/web/ipfire/cgi-bin/netinternal.cgi srv/web/ipfire/cgi-bin/netother.cgi -srv/web/ipfire/cgi-bin/outgoingfw.cgi -srv/web/ipfire/cgi-bin/outgoinggrp.cgi srv/web/ipfire/cgi-bin/optionsfw.cgi srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/p2p-block.cgi srv/web/ipfire/cgi-bin/pakfire.cgi -srv/web/ipfire/cgi-bin/portfw.cgi srv/web/ipfire/cgi-bin/pppsetup.cgi srv/web/ipfire/cgi-bin/proxy.cgi srv/web/ipfire/cgi-bin/qos.cgi srv/web/ipfire/cgi-bin/remote.cgi srv/web/ipfire/cgi-bin/routing.cgi srv/web/ipfire/cgi-bin/services.cgi +srv/web/ipfire/cgi-bin/shutdown.cgi srv/web/ipfire/cgi-bin/speed.cgi srv/web/ipfire/cgi-bin/system.cgi srv/web/ipfire/cgi-bin/time.cgi @@ -1433,6 +1433,5 @@ srv/web/ipfire/cgi-bin/wakeonlan.cgi srv/web/ipfire/cgi-bin/webaccess.cgi srv/web/ipfire/cgi-bin/wireless.cgi srv/web/ipfire/cgi-bin/wirelessclient.cgi -srv/web/ipfire/cgi-bin/xtaccess.cgi srv/web/ipfire/html var/updatecache diff --git a/config/rootfiles/common/armv5tel/dracut b/config/rootfiles/common/armv5tel/dracut index 4d4ed18..ca3defc 100644 --- a/config/rootfiles/common/armv5tel/dracut +++ b/config/rootfiles/common/armv5tel/dracut @@ -1,7 +1,7 @@ #boot/ipfirerd-KVER-kirkwood.img -#boot/ipfirerd-KVER-omap.img +#boot/ipfirerd-KVER-multi.img #boot/uInit-ipfire-kirkwood -#boot/uInit-ipfire-omap +#boot/uInit-ipfire-multi etc/dracut.conf etc/dracut.conf.d #etc/dracut.conf.d/dracut.conf diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts index 25fca8d..1b8fbda 100644 --- a/config/rootfiles/common/armv5tel/initscripts +++ b/config/rootfiles/common/armv5tel/initscripts @@ -81,11 +81,9 @@ etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq etc/rc.d/init.d/networking/red.up/10-miniupnpd etc/rc.d/init.d/networking/red.up/10-multicast etc/rc.d/init.d/networking/red.up/20-RL-firewall -etc/rc.d/init.d/networking/red.up/22-outgoingfwctrl +etc/rc.d/init.d/networking/red.up/22-forwardfwctrl etc/rc.d/init.d/networking/red.up/23-RS-snort etc/rc.d/init.d/networking/red.up/24-RS-qos -etc/rc.d/init.d/networking/red.up/25-portfw -etc/rc.d/init.d/networking/red.up/26-xtaccess etc/rc.d/init.d/networking/red.up/27-RS-squid etc/rc.d/init.d/networking/red.up/30-ddns etc/rc.d/init.d/networking/red.up/40-ipac diff --git a/config/rootfiles/common/armv5tel/installer b/config/rootfiles/common/armv5tel/installer deleted file mode 100644 index ef5e901..0000000 --- a/config/rootfiles/common/armv5tel/installer +++ /dev/null @@ -1,3 +0,0 @@ -#etc/system-release -#opt/pakfire/db/core/mine -#var/ipfire/firebuild diff --git a/config/rootfiles/common/armv5tel/linux b/config/rootfiles/common/armv5tel/linux index 2206ce3..8c4c97f 100644 --- a/config/rootfiles/common/armv5tel/linux +++ b/config/rootfiles/common/armv5tel/linux @@ -1,4 +1,4 @@ -etc/modprobe.d/framebuffer -etc/modprobe.d/ipv6 -etc/modprobe.d/isdn +etc/modprobe.d/framebuffer.conf +etc/modprobe.d/ipv6.conf +etc/modprobe.d/isdn.conf sbin/gen_init_cpio diff --git a/config/rootfiles/common/armv5tel/linux-kirkwood b/config/rootfiles/common/armv5tel/linux-kirkwood index 58acd22..60374aa 100644 --- a/config/rootfiles/common/armv5tel/linux-kirkwood +++ b/config/rootfiles/common/armv5tel/linux-kirkwood @@ -1,11 +1,12 @@ boot/System.map-KVER-ipfire-kirkwood #boot/System.map-ipfire-kirkwood boot/config-KVER-ipfire-kirkwood +boot/dtb-KVER-ipfire-kirkwood boot/uImage-ipfire-kirkwood boot/vmlinuz-KVER-ipfire-kirkwood -etc/modprobe.d/framebuffer -etc/modprobe.d/ipv6 -etc/modprobe.d/isdn +etc/modprobe.d/framebuffer.conf +etc/modprobe.d/ipv6.conf +etc/modprobe.d/isdn.conf lib/modules/KVER-ipfire-kirkwood #lib/modules/KVER-ipfire-kirkwood/build #lib/modules/KVER-ipfire-kirkwood/kernel diff --git a/config/rootfiles/common/armv5tel/linux-multi b/config/rootfiles/common/armv5tel/linux-multi new file mode 100644 index 0000000..e047c9f --- /dev/null +++ b/config/rootfiles/common/armv5tel/linux-multi @@ -0,0 +1,2822 @@ +boot/System.map-KVER-ipfire-multi +#boot/System.map-ipfire-multi +boot/config-KVER-ipfire-multi +boot/dtb-KVER-ipfire-multi +#boot/dtb-KVER-ipfire-multi/am335x-bone.dtb +#boot/dtb-KVER-ipfire-multi/am335x-evm.dtb +#boot/dtb-KVER-ipfire-multi/am335x-evmsk.dtb +#boot/dtb-KVER-ipfire-multi/armada-370-db.dtb +#boot/dtb-KVER-ipfire-multi/armada-370-mirabox.dtb +#boot/dtb-KVER-ipfire-multi/armada-370-rd.dtb +#boot/dtb-KVER-ipfire-multi/armada-xp-db.dtb +#boot/dtb-KVER-ipfire-multi/armada-xp-gp.dtb +#boot/dtb-KVER-ipfire-multi/armada-xp-openblocks-ax3-4.dtb +#boot/dtb-KVER-ipfire-multi/bcm11351-brt.dtb +#boot/dtb-KVER-ipfire-multi/bcm2835-rpi-b.dtb +#boot/dtb-KVER-ipfire-multi/ccu9540.dtb +#boot/dtb-KVER-ipfire-multi/ecx-2000.dtb +#boot/dtb-KVER-ipfire-multi/highbank.dtb +#boot/dtb-KVER-ipfire-multi/hrefprev60.dtb +#boot/dtb-KVER-ipfire-multi/hrefv60plus.dtb +#boot/dtb-KVER-ipfire-multi/imx25-karo-tx25.dtb +#boot/dtb-KVER-ipfire-multi/imx25-pdk.dtb +#boot/dtb-KVER-ipfire-multi/imx27-apf27.dtb +#boot/dtb-KVER-ipfire-multi/imx27-apf27dev.dtb +#boot/dtb-KVER-ipfire-multi/imx27-pdk.dtb +#boot/dtb-KVER-ipfire-multi/imx27-phytec-phycore.dtb +#boot/dtb-KVER-ipfire-multi/imx31-bug.dtb +#boot/dtb-KVER-ipfire-multi/imx51-apf51.dtb +#boot/dtb-KVER-ipfire-multi/imx51-apf51dev.dtb +#boot/dtb-KVER-ipfire-multi/imx51-babbage.dtb +#boot/dtb-KVER-ipfire-multi/imx53-ard.dtb +#boot/dtb-KVER-ipfire-multi/imx53-evk.dtb +#boot/dtb-KVER-ipfire-multi/imx53-mba53.dtb +#boot/dtb-KVER-ipfire-multi/imx53-qsb.dtb +#boot/dtb-KVER-ipfire-multi/imx53-smd.dtb +#boot/dtb-KVER-ipfire-multi/imx6dl-sabreauto.dtb +#boot/dtb-KVER-ipfire-multi/imx6dl-sabresd.dtb +#boot/dtb-KVER-ipfire-multi/imx6dl-wandboard.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-arm2.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-sabreauto.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-sabrelite.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-sabresd.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-sbc6x.dtb +#boot/dtb-KVER-ipfire-multi/marco-evb.dtb +#boot/dtb-KVER-ipfire-multi/omap2420-h4.dtb +#boot/dtb-KVER-ipfire-multi/omap3-beagle-xm.dtb +#boot/dtb-KVER-ipfire-multi/omap3-beagle.dtb +#boot/dtb-KVER-ipfire-multi/omap3-devkit8000.dtb +#boot/dtb-KVER-ipfire-multi/omap3-evm.dtb +#boot/dtb-KVER-ipfire-multi/omap3-igep0020.dtb +#boot/dtb-KVER-ipfire-multi/omap3-igep0030.dtb +#boot/dtb-KVER-ipfire-multi/omap3-tobi.dtb +#boot/dtb-KVER-ipfire-multi/omap3430-sdp.dtb +#boot/dtb-KVER-ipfire-multi/omap4-panda-a4.dtb +#boot/dtb-KVER-ipfire-multi/omap4-panda-es.dtb +#boot/dtb-KVER-ipfire-multi/omap4-panda.dtb +#boot/dtb-KVER-ipfire-multi/omap4-sdp.dtb +#boot/dtb-KVER-ipfire-multi/omap4-var-som.dtb +#boot/dtb-KVER-ipfire-multi/omap5-evm.dtb +#boot/dtb-KVER-ipfire-multi/prima2-evb.dtb +#boot/dtb-KVER-ipfire-multi/snowball.dtb +#boot/dtb-KVER-ipfire-multi/socfpga_cyclone5.dtb +#boot/dtb-KVER-ipfire-multi/socfpga_vt.dtb +#boot/dtb-KVER-ipfire-multi/spear1310-evb.dtb +#boot/dtb-KVER-ipfire-multi/spear1340-evb.dtb +#boot/dtb-KVER-ipfire-multi/sun4i-a10-cubieboard.dtb +#boot/dtb-KVER-ipfire-multi/sun4i-a10-hackberry.dtb +#boot/dtb-KVER-ipfire-multi/sun4i-a10-mini-xplus.dtb +#boot/dtb-KVER-ipfire-multi/sun5i-a13-olinuxino.dtb +#boot/dtb-KVER-ipfire-multi/tegra114-dalmore.dtb +#boot/dtb-KVER-ipfire-multi/tegra114-pluto.dtb +#boot/dtb-KVER-ipfire-multi/tegra20-harmony.dtb +#boot/dtb-KVER-ipfire-multi/tegra20-iris-512.dtb +#boot/dtb-KVER-ipfire-multi/tegra20-medcom-wide.dtb +#boot/dtb-KVER-ipfire-multi/tegra20-paz00.dtb +#boot/dtb-KVER-ipfire-multi/tegra20-plutux.dtb +#boot/dtb-KVER-ipfire-multi/tegra20-seaboard.dtb +#boot/dtb-KVER-ipfire-multi/tegra20-tec.dtb +#boot/dtb-KVER-ipfire-multi/tegra20-trimslice.dtb +#boot/dtb-KVER-ipfire-multi/tegra20-ventana.dtb +#boot/dtb-KVER-ipfire-multi/tegra20-whistler.dtb +#boot/dtb-KVER-ipfire-multi/tegra30-beaver.dtb +#boot/dtb-KVER-ipfire-multi/tegra30-cardhu-a02.dtb +#boot/dtb-KVER-ipfire-multi/tegra30-cardhu-a04.dtb +#boot/dtb-KVER-ipfire-multi/vexpress-v2p-ca15-tc1.dtb +#boot/dtb-KVER-ipfire-multi/vexpress-v2p-ca15_a7.dtb +#boot/dtb-KVER-ipfire-multi/vexpress-v2p-ca5s.dtb +#boot/dtb-KVER-ipfire-multi/vexpress-v2p-ca9.dtb +#boot/dtb-KVER-ipfire-multi/vt8500-bv07.dtb +#boot/dtb-KVER-ipfire-multi/wm8505-ref.dtb +#boot/dtb-KVER-ipfire-multi/wm8650-mid.dtb +#boot/dtb-KVER-ipfire-multi/wm8850-w70v2.dtb +#boot/dtb-KVER-ipfire-multi/xenvm-4.2.dtb +#boot/dtb-KVER-ipfire-multi/zynq-zc702.dtb +boot/vmlinuz-KVER-ipfire-multi +boot/zImage-ipfire-multi +boot/uInit-ipfire-multi +lib/modules/KVER-ipfire-multi +#lib/modules/KVER-ipfire-multi/build +#lib/modules/KVER-ipfire-multi/kernel +#lib/modules/KVER-ipfire-multi/kernel/arch +#lib/modules/KVER-ipfire-multi/kernel/arch/arm +#lib/modules/KVER-ipfire-multi/kernel/arch/arm/crypto +#lib/modules/KVER-ipfire-multi/kernel/arch/arm/crypto/aes-arm.ko +#lib/modules/KVER-ipfire-multi/kernel/arch/arm/crypto/sha1-arm.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto +#lib/modules/KVER-ipfire-multi/kernel/crypto/ansi_cprng.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/anubis.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/asymmetric_keys +#lib/modules/KVER-ipfire-multi/kernel/crypto/asymmetric_keys/asymmetric_keys.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/asymmetric_keys/public_key.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/asymmetric_keys/rsa.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/asymmetric_keys/x509_key_parser.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/async_memcpy.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/async_pq.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/async_raid6_recov.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/async_tx.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/async_xor.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/async_tx/raid6test.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/authenc.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/blowfish_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/camellia_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/cast5_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/cast6_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/cast_common.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/ccm.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/cmac.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/crypto_null.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/deflate.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/des_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/fcrypt.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/gcm.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/gf128mul.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/ghash-generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/khazad.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/lrw.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/md4.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/michael_mic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/pcrypt.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/rmd128.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/rmd160.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/rmd256.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/rmd320.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/salsa20_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/seed.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/serpent_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/sha1_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/tcrypt.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/tea.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/tgr192.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/twofish_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/vmac.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/wp512.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/xcbc.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/xor.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/xts.ko +#lib/modules/KVER-ipfire-multi/kernel/crypto/zlib.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/acard-ahci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/ahci_platform.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/ata_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_ali.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_amd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_arasan_cf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_artop.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_atiixp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_atp867x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_cmd640.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_cmd64x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_cs5520.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_cs5530.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_cs5536.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_cypress.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_efar.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_hpt366.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_hpt37x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_hpt3x2n.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_hpt3x3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_imx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_it8213.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_it821x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_jmicron.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_marvell.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_mpiix.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_netcell.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_ninja32.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_ns87410.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_ns87415.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_of_platform.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_oldpiix.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_opti.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_optidma.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_pdc2027x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_pdc202xx_old.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_piccolo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_platform.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_rdc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_rz1000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_sch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_serverworks.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_sil680.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_sis.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_sl82c105.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_triflex.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pata_via.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/pdc_adma.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_highbank.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_inic162x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_mv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_nv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_promise.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_qstor.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_sil.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_sil24.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_sis.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_svw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_sx4.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_uli.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_via.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ata/sata_vsc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/atmtcp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/eni.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/fore_200e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/he.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/idt77252.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/iphase.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/lanai.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/nicstar.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/solos-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/atm/suni.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/block +#lib/modules/KVER-ipfire-multi/kernel/drivers/block/DAC960.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/block/cciss.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/block/cryptoloop.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/block/mg_disk.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/block/nvme.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/block/rsxx +#lib/modules/KVER-ipfire-multi/kernel/drivers/block/rsxx/rsxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/block/sx8.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/block/umem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/block/virtio_blk.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/ath3k.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/bcm203x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/bfusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/bpa10x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/btmrvl.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/btmrvl_sdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/btsdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/btwilink.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/hci_uart.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bluetooth/hci_vhci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/bus +#lib/modules/KVER-ipfire-multi/kernel/drivers/bus/omap-ocp2scp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/hw_random +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/hw_random/atmel-rng.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/hw_random/exynos-rng.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/hw_random/timeriomem-rng.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/hw_random/virtio-rng.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi/ipmi_devintf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi/ipmi_msghandler.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi/ipmi_poweroff.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi/ipmi_si.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/char/ipmi/ipmi_watchdog.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/clk +#lib/modules/KVER-ipfire-multi/kernel/drivers/clk/clk-axi-clkgen.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/clk/clk-si5351.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/clk/clk-twl6040.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/crypto +#lib/modules/KVER-ipfire-multi/kernel/drivers/crypto/hifn_795x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/crypto/mv_cesa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/crypto/omap-aes.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/crypto/omap-sham.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/crypto/tegra-aes.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/dma +#lib/modules/KVER-ipfire-multi/kernel/drivers/dma/imx-dma.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/dma/imx-sdma.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/dma/timb_dma.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/firewire +#lib/modules/KVER-ipfire-multi/kernel/drivers/firewire/firewire-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/firewire/firewire-ohci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/firewire/firewire-sbp2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpio +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpio/gpio-adnp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpio/gpio-ts5500.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpio/gpio-twl4030.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpio/gpio-twl6040.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpio/gpio-viperboard.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/ast +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/ast/ast.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/cirrus +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/cirrus/cirrus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/drm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/drm_kms_helper.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/drm_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/exynos +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/exynos/exynosdrm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/i2c +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/i2c/ch7006.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/i2c/sil164.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/i2c/tda998x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/mga +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/mgag200 +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/mgag200/mgag200.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/nouveau +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/nouveau/nouveau.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/omapdrm +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/omapdrm/omapdrm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/qxl +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/qxl/qxl.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/r128 +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/r128/r128.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/radeon +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/radeon/radeon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/savage +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/savage/savage.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/tdfx +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/tdfx/tdfx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/ttm +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/ttm/ttm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/udl +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/udl/udl.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/via +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/via/via.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/vmwgfx +#lib/modules/KVER-ipfire-multi/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-aureal.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-keytouch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-lenovo-tpkbd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-logitech-dj.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-ortek.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-picolcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-isku.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-konepure.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-lua.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat-savu.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-saitek.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-samsung.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-sensor-hub.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-speedlink.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-sunplus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-thingm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-tivo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-topseed.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/hid-zydacron.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/i2c-hid +#lib/modules/KVER-ipfire-multi/kernel/drivers/hid/i2c-hid/i2c-hid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hsi +#lib/modules/KVER-ipfire-multi/kernel/drivers/hsi/clients +#lib/modules/KVER-ipfire-multi/kernel/drivers/hsi/clients/hsi_char.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hsi/hsi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ad7414.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ad7418.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm1021.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm1025.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm1026.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm1029.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm1031.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ads1015.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7410.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7411.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7462.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7470.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/adt7x10.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/amc6821.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/asc7621.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/atxp1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/dme1737.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/emc6w201.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/f71805f.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/f71882fg.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/g760a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/gl518sm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/gl520sm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/hih6130.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/hwmon-vid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/i5k_amb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ibmaem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ina209.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ina2xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lineage-pem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm73.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm75.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm77.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm78.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm80.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm83.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm85.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm87.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm90.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm92.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm95234.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ltc4151.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ltc4215.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max16065.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max197.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max6642.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/max6697.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/mcp3021.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/nct6775.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/ntc_thermistor.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pc87360.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pc87427.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/sht21.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/sis5595.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/smsc47b397.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/smsc47m1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/smsc47m192.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/tmp102.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/tmp401.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/via686a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/vt1211.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/vt8231.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83627ehf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83627hf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83781d.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83791d.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83792d.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83795.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83l785ts.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwmon/w83l786ng.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwspinlock +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwspinlock/hwspinlock_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/hwspinlock/omap_hwspinlock.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/algos +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/algos/i2c-algo-bit.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/algos/i2c-algo-pca.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-ali1535.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-ali1563.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-ali15x3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-amd756.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-cbus-gpio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-i801.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-imx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-isch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-mv64xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-nforce2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-parport-light.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-pca-platform.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-piix4.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-simtec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-sis5595.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-sis630.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-sis96x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-tiny-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-versatile.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-via.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-viapro.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/busses/i2c-viperboard.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/i2c/i2c-stub.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/common +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/common/hid-sensors +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/common/hid-sensors/hid-sensor-iio-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/common/hid-sensors/hid-sensor-trigger.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/industrialio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/iio/kfifo_buf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/input-polldev.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/gpio_keys.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/gpio_keys_polled.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/imx_keypad.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/lm8333.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/omap4-keypad.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/tegra-kbc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/keyboard/twl4030_keypad.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/matrix-keymap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/cm109.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/keyspan_remote.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/retu-pwrbutton.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/uinput.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/appletouch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/bcm5974.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/cyapa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/gpio_mouse.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/psmouse.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/sermouse.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/synaptics_i2c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/synaptics_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/mouse/vsxxxaa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio/ambakmi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio/apbps2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio/arc_ps2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/serio/serio_raw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/input/sparse-keymap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/capi +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/capi/capi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/capi/capidrv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/capi/kernelcapi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/divert +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/divert/dss1_divert.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/gigaset +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/gigaset/gigaset.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/avm +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/avm/b1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/avm/b1dma.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/avm/b1pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/avm/c4.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/avm/t1pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/eicon +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/eicon/diva_idi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/eicon/divacapi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/eicon/divadidd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/eicon/divas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/mISDN +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/mISDN/avmfritz.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/mISDN/hfcpci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/mISDN/mISDNinfineon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/mISDN/mISDNipac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/mISDN/mISDNisar.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/mISDN/netjet.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/mISDN/speedfax.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hardware/mISDN/w6692.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax/hfc_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax/hisax.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax/hisax_isac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hisax/hisax_st5481.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hysdn +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/hysdn/hysdn.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/i4l +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/i4l/isdn.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/i4l/isdnhdlc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/mISDN +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/mISDN/l1oip.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/mISDN/mISDN_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/isdn/mISDN/mISDN_dsp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-blinkm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lm3533.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lm355x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lm3642.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lp5562.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lp55xx-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-lt3593.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-ot200.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-pca9633.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/leds-tca6507.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-camera.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-default-on.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-oneshot.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-timer.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/leds/trigger/ledtrig-transient.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/bcache +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/bcache/bcache.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-bio-prison.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-cache-cleaner.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-cache-mq.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-cache.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-crypt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-log-userspace.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-multipath.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-raid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-round-robin.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-service-time.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/dm-verity.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/faulty.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/linear.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/persistent-data/dm-persistent-data.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/raid0.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/raid1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/raid10.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/md/raid456.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/b2c2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/b2c2/b2c2-flexcop.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/btcx-risc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/cx2341x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/cypress_firmware.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/saa7146 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/saa7146/saa7146.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/saa7146/saa7146_vv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/siano +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/siano/smsdvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/siano/smsmdtv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/tveeprom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/a8293.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/af9013.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/af9033.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/atbm8830.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/au8522_common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/au8522_decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/au8522_dig.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/bcm3510.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cx22700.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cx22702.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cx24110.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cx24113.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cx24116.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cx24123.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/cxd2820r.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib0070.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib0090.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib3000mb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib3000mc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib7000m.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib7000p.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dib8000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dibx000_common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/drxd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/drxk.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ds3000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/dvb-pll.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ec100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/isl6405.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/isl6421.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/isl6423.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/it913x-fe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/itd1000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ix2505v.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/l64781.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lg2160.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lgdt3305.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lgdt330x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lgs8gxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lnbp21.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/lnbp22.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/m88dc2800.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/m88ds3103.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/m88rs2000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/mb86a16.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/mb86a20s.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/mt312.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/mt352.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/nxt200x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/nxt6000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/or51132.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/or51211.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/rtl2830.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/rtl2832.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/s5h1409.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/s5h1411.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/s5h1420.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/s921.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/si21xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/sp8870.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/sp887x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stb0899.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stb6000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stb6100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv0288.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv0297.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv0299.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv0367.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv0900.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv090x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv6110.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/stv6110x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda10021.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda10023.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda10048.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda1004x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda10071.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda10086.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda18271c2dd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda665x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda8083.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda8261.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tda826x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ts2020.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/tua6100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ves1820.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/ves1x93.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/zl10036.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/zl10039.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/zl10353.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/firewire +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/firewire/firedtv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/adv7180.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/cs5345.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/cs53l32a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/cx25840 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/cx25840/cx25840.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/m52790.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/msp3400.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/mt9v011.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/ov7670.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/saa6588.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/saa7115.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/saa7127.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/saa717x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/imx074.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/mt9m001.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/mt9m111.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/mt9t031.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/mt9t112.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/mt9v022.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov2640.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov5642.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov6650.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov772x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov9640.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/ov9740.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/rj54n1cb0c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/soc_camera/tw9910.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tda7432.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tda9840.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tea6415c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tea6420.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tvaudio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/tvp5150.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/upd64031a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/upd64083.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/vp27smpx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/wm8739.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/wm8775.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/mmc +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/mmc/siano +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/mmc/siano/smssdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/b2c2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/b2c2/b2c2-flexcop-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx/bt878.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx/bttv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx/dst.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx/dst_ca.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/bt8xx/dvb-bt8xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx18 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx18/cx18-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx18/cx18.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx23885 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx23885/altera-ci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx23885/cx23885.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx25821 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx25821/cx25821-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx25821/cx25821.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx88-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx88-blackbird.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx88-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx88-vp3054-i2c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx8800.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx8802.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/cx88/cx88xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/dm1105 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/dm1105/dm1105.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ivtv +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ivtv/ivtv-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ivtv/ivtv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ivtv/ivtvfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/mantis +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/mantis/hopper.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/mantis/mantis.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/mantis/mantis_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ngene +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ngene/ngene.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/pluto2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/pluto2/pluto2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/pt1 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/pt1/earth-pt1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134/saa6752hs.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134/saa7134-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134/saa7134-empress.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7134/saa7134.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7146 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7146/hexium_gemini.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7146/hexium_orion.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7146/mxb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7164 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/saa7164/saa7164.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/budget-av.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/budget-ci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/budget-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/budget-patch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/budget.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/dvb-ttpci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/ttpci-eeprom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/coda.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/davinci +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/davinci/dm644x_ccdc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/davinci/vpfe_capture.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/davinci/vpss.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/m2m-deinterlace.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/marvell-ccic +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/marvell-ccic/cafe_ccic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/omap +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/omap/omap-vout.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/sh_veu.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera/mx3_camera.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera/sh_mobile_ceu_camera.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera/sh_mobile_csi2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera/soc_camera.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera/soc_camera_platform.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera/soc_mediabus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/timblogiw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ati_remote.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/gpio-ir-recv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/iguanair.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/imon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-jvc-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-lirc-codec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-mce_kbd-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-nec-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-rc5-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-rc5-sz-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-rc6-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-sanyo-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ir-sony-decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-asus-ps3-100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-dvbsky.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-it913x-v1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-it913x-v2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-kworld-pc150u.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-medion-x10-digitainer.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-medion-x10-or2x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-reddo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand-02.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/mceusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/rc-loopback.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/redrat3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/streamzap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/ttusbir.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/e4000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/fc0011.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/fc0012.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/fc0013.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/fc2580.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/max2165.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2060.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2063.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2131.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2266.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mxl5005s.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mxl5007t.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/qt1010.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/r820t.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tda18212.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tda18218.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tua9001.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tuner_it913x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/au0828 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/au0828/au0828.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/b2c2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/b2c2/b2c2-flexcop-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cpia2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cpia2/cpia2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cx231xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cx231xx/cx231xx-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cx231xx/cx231xx-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/cx231xx/cx231xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9015.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9035.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-anysee.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-au6610.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-az6007.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ce6230.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-dvbsky.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ec168.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-gl861.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-it913x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-lmedm04.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-mxl111sf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-rtl28xxu.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-a800.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005-remote.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-az6027.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-cinergyT2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-cxusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dib0700.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-digitv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtt200u.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtv5100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-dw2102.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-friio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-gp8psk.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-m920x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-nova-t-usb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-opera.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-pctv452e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-ttusb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-umt-010.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp702x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp7045.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/dvb-usb/dvb-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/em28xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/em28xx/em28xx-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/em28xx/em28xx-rc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/em28xx/em28xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gl860 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gl860/gspca_gl860.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_benq.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_conex.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_cpia1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_etoms.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_finepix.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_jeilinj.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_jl2005bcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_kinect.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_konica.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_main.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_mars.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_mr97310a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_nw80x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_ov519.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_ov534.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_ov534_9.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_pac207.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_pac7302.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_pac7311.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_se401.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sn9c2028.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sn9c20x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sonixb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sonixj.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca1528.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca500.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca501.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca505.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca506.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca508.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_spca561.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sq905.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sq905c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sq930x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_stk014.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_stv0680.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_sunplus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_t613.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_topro.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_tv8532.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_vc032x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_vicam.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_xirlink_cit.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/gspca_zc3xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/m5602 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/m5602/gspca_m5602.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/stv06xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/gspca/stv06xx/gspca_stv06xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/hdpvr +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/hdpvr/hdpvr.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/pvrusb2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/pvrusb2/pvrusb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/pwc +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/pwc/pwc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/s2255 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/s2255/s2255drv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/siano +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/siano/smsusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/sn9c102 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/sn9c102/sn9c102.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/stk1160 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/stk1160/stk1160.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/stkwebcam +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/stkwebcam/stkwebcam.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tlg2300 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tlg2300/poseidon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tm6000 +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tm6000/tm6000-alsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tm6000/tm6000-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/tm6000/tm6000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/ttusb-budget +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/ttusb-dec +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/ttusb-dec/ttusb_dec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/ttusb-dec/ttusbdecfe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/usbvision +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/usbvision/usbvision.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/uvc +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/uvc/uvcvideo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/zr364xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/zr364xx/zr364xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/tuner.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/v4l2-int-device.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/v4l2-mem2mem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-dma-contig.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-dma-sg.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-dvb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-vmalloc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf2-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf2-dma-contig.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf2-memops.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/memory +#lib/modules/KVER-ipfire-multi/kernel/drivers/memory/emif.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/core +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/core/memstick.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/core/mspro_block.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/host +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/host/jmb38x_ms.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/host/r592.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/host/rtsx_pci_ms.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/host/tifm_ms.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/message +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/fusion +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/fusion/mptbase.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/fusion/mptctl.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/fusion/mptfc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/fusion/mptsas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/fusion/mptscsih.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/fusion/mptspi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/i2o +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/i2o/i2o_block.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/i2o/i2o_bus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/i2o/i2o_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/i2o/i2o_proc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/message/i2o/i2o_scsi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/88pm800.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/88pm805.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/88pm80x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/lm3533-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/lm3533-ctrlbank.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/lpc_ich.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/lpc_sch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/max8907.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/retu-mfd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/rtsx_pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/sm501.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/twl4030-madc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/viperboard.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/vx855.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mfd/wl1273-core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/altera-stapl +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/altera-stapl/altera-stapl.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/bmp085-i2c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/cb710 +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/cb710/cb710.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/dummy-irq.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/eeprom +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/eeprom/at24.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/eeprom/eeprom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/eeprom/max6875.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/hpilo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/ics932s401.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/pch_phub.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/ti-st/st_drv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/tifm_7xx1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/misc/tifm_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/cb710-mmc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/dw_mmc-exynos.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/dw_mmc-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/dw_mmc-pltfm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/dw_mmc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/mmci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/mvsdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/mxcmmc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/rtsx_pci_sdmmc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/sdhci-esdhc-imx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/sdhci-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/sdhci-pxav2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/sdhci-pxav3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/sdhci-sirf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/sdhci-tegra.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/tifm_sd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/ushc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/via-sdmmc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/vub300.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mmc/host/wmt-sdmmc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/chips +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/chips/map_ram.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/devices +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/devices/phram.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/devices/slram.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/maps +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/maps/plat-ram.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/nand/mxc_nand.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/nand/orion_nand.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/sm_ftl.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/tests +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/tests/mtd_nandbiterrs.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/tests/mtd_nandecctest.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/tests/mtd_oobtest.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/tests/mtd_pagetest.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/tests/mtd_readtest.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/tests/mtd_speedtest.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/tests/mtd_stresstest.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/tests/mtd_subpagetest.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/mtd/tests/mtd_torturetest.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/bonding +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/bonding/bonding.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/dummy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/3com +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/3com/typhoon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/8390/8390.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/8390/ax88796.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/8390/ne2k-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/adaptec +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/adaptec/starfire.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/alteon +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/alteon/acenic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/amd +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/amd/amd8111e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/amd/pcnet32.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/alx +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/alx/alx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atl1c +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atl1e +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atl1e/atl1e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atlx +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atlx/atl1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/bnx2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/bnx2x +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/cnic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/broadcom/tg3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/brocade +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/brocade/bna +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cadence +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cadence/at91_ether.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cadence/macb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/calxeda +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/calxeda/xgmac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb3 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb4 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb4vf +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cirrus +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cirrus/cs89x0.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cisco +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cisco/enic +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/cisco/enic/enic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/davicom +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/davicom/dm9000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip/tulip.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dlink/dl2k.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dlink/sundance.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/emulex +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/emulex/benet +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/emulex/benet/be2net.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/faraday +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/faraday/ftgmac100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/faraday/ftmac100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/fealnx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/freescale +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/freescale/fec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/hp +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/hp/hp100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/icplus +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/icplus/ipg.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/e100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/e1000 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/e1000/e1000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/e1000e +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/igb +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/igb/igb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/igbvf +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/ixgb +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/ixgb/ixgb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/ixgbe +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/jme.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/mv643xx_eth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/mvmdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/mvneta.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/skge.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/sky2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/mellanox +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/mellanox/mlx4 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/micrel/ksz884x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/myricom +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/myricom/myri10ge +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/natsemi +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/natsemi/natsemi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/natsemi/ns83820.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/neterion +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/neterion/s2io.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/neterion/vxge +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/neterion/vxge/vxge.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/nvidia +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/nvidia/forcedeth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/oki-semi +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/oki-semi/pch_gbe +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/netxen +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/qla3xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/qlcnic +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/qlge +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/qlogic/qlge/qlge.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/rdc +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/rdc/r6040.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/realtek +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/realtek/8139cp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/realtek/8139too.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/realtek/r8169.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sfc +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sfc/sfc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/silan +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/silan/sc92031.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sis +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sis/sis190.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sis/sis900.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc/epic100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc/smc911x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc/smc91x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc/smsc911x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/smsc/smsc9420.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sun +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sun/cassini.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sun/niu.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sun/sungem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/sun/sunhme.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/tehuti +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/tehuti/tehuti.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti/davinci_cpdma.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti/davinci_emac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti/davinci_mdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti/ti_cpsw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/ti/tlan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/via +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/via/via-rhine.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/wiznet +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/wiznet/w5100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/wiznet/w5300.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ifb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/imq.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/macvtap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/mdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/netconsole.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/amd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/at803x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/bcm87xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/broadcom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/cicada.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/et1011c.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/icplus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/lxt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/marvell.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-mux-gpio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-mux-mmioreg.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-mux.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/micrel.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/national.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/qsemi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/realtek.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/smsc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/ste10Xp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/vitesse.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/pptp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/slip +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/sungem_phy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/tun.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/ax88179_178a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/catc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cdc_eem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cdc_mbim.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cdc_ncm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/cx82310_eth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/dm9601.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/gl620a.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/hso.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/ipheth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/kalmia.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/lg-vl600.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/mcs7830.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/net1080.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/pegasus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/qmi_wwan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/r8152.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/rndis_host.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/smsc75xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/smsc95xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/usbnet.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/usb/zaurus.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/veth.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/virtio_net.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/vmxnet3 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/vmxnet3/vmxnet3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/vxlan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/adm8211.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ar5523 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ar5523/ar5523.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath5k +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath9k +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/carl9170 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/carl9170/carl9170.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/wil6210 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ath/wil6210/wil6210.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/atmel.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/atmel_pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/b43 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/b43/b43.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/b43legacy +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/b43legacy/b43legacy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/brcm80211 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/brcm80211/brcmfmac +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/brcm80211/brcmutil +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/hostap +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/hostap/hostap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/hostap/hostap_pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/hostap/hostap_plx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ipw2x00 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ipw2x00/libipw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlegacy +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlegacy/iwl3945.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlegacy/iwl4965.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlegacy/iwlegacy.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi/dvm +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi/mvm +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/iwlwifi/mvm/iwlmvm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas/libertas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas/usb8xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas_tf +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mac80211_hwsim.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex/mwifiex.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex/mwifiex_pcie.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex/mwifiex_sdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex/mwifiex_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwl8k.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco/orinoco.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/orinoco/orinoco_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/p54 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/p54/p54common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/p54/p54pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/p54/p54usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2800pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2x00mmio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt61pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtl818x +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtl818x/rtl8180 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtl818x/rtl8187 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8188ee +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8188ee/rtl8188ee.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192c +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192ce +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192ce.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192cu +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192cu/rtl8192cu.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192de +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192de/rtl8192de.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192se +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8192se/rtl8192se.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8723ae +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtl8723ae/rtl8723ae.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/rtlwifi/rtlwifi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl1251 +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl1251/wl1251.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl1251/wl1251_sdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl12xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl12xx/wl12xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl18xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wl18xx/wl18xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wlcore +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wlcore/wlcore.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/zd1211rw +#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/power +#lib/modules/KVER-ipfire-multi/kernel/drivers/power/generic-adc-battery.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/pps +#lib/modules/KVER-ipfire-multi/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ptp +#lib/modules/KVER-ipfire-multi/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ptp/ptp_pch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/aat2870-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/ad5398.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/anatop-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/as3711-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/da903x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/da9052-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/da9055-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/fan53555.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/isl6271a-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/lp3971.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/lp3972.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/lp8755.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/max1586.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/max77686.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/max8649.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/max8660.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/max8907-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/max8925-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/max8952.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/max8973-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/max8997.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/max8998.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/palmas-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/rc5t583-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/s2mps11.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/s5m8767.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/tps51632-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/tps62360-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/tps65023-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/tps6507x-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/tps65090-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/tps6586x-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/tps65910-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/tps65912-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/tps80031-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/vexpress.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/wm831x-dcdc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/wm831x-isink.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/wm831x-ldo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/wm8350-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/wm8400-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/regulator/wm8994-regulator.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-bq32k.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-bq4802.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1286.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1307.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1374.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1511.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1553.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1672.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds2404.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-em3027.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-hid-sensor-time.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-imxdi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-isl12022.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-isl1208.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-m41t80.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-m48t35.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-m48t59.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-msm6242.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-mv.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-mxc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-omap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pcf8523.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pcf8563.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pl030.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pl031.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-rp5c01.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-rv3029c2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-rx8025.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-rx8581.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-snvs.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-stk17ta8.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-tegra.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-v3020.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-vt8500.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-x1205.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/3w-9xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/3w-sas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/3w-xxxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/a100u2w.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aacraid +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aacraid/aacraid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aic7xxx +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aic7xxx/aic79xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aic7xxx/aic7xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aic94xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/aic94xx/aic94xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/arcmsr +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/arcmsr/arcmsr.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/be2iscsi +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/be2iscsi/be2iscsi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bfa +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bfa/bfa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bnx2fc +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bnx2fc/bnx2fc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bnx2i +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/bnx2i/bnx2i.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/csiostor +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/csiostor/csiostor.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi/cxgb3i +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi/cxgb4i +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi/cxgb4i/cxgb4i.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/cxgbi/libcxgbi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/dc395x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/device_handler +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/dmx3191d.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/fcoe +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/fcoe/fcoe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/fcoe/libfcoe.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/fdomain.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/hpsa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/hptiop.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/initio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ipr.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ips.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/iscsi_boot_sysfs.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/iscsi_tcp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libfc +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libfc/libfc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libiscsi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libiscsi_tcp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libsas +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/libsas/libsas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/lpfc +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/lpfc/lpfc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/megaraid +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/megaraid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/megaraid/megaraid_mbox.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/megaraid/megaraid_mm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/megaraid/megaraid_sas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mpt2sas +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mpt2sas/mpt2sas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mpt3sas +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mpt3sas/mpt3sas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mvsas +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/mvsas/mvsas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/osd +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/osd/libosd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/osst.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/pm8001 +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/pm8001/pm80xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/pmcraid.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/qla1280.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/qla2xxx +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/qla2xxx/qla2xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/qla4xxx +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/qla4xxx/qla4xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/raid_class.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_tgt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_transport_fc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_transport_iscsi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_transport_sas.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_transport_spi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/scsi_transport_srp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ses.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/st.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/stex.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/sym53c8xx_2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/tmscsim.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ufs +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ufs/ufshcd-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ufs/ufshcd-pltfrm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/ufs/ufshcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/scsi/virtio_scsi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/ssb +#lib/modules/KVER-ipfire-multi/kernel/drivers/ssb/ssb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/ced1401 +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/ced1401/cedusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/echo +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/echo/echo.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/et131x +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/et131x/et131x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/fwserial +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/fwserial/firewire-serial.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/silicom +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/silicom/bpctl_mod.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/silicom/bypasslib +#lib/modules/KVER-ipfire-multi/kernel/drivers/staging/silicom/bypasslib/bypass.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/thermal +#lib/modules/KVER-ipfire-multi/kernel/drivers/thermal/armada_thermal.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/cyclades.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/n_hdlc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/n_r3964.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/rocket.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/serial/arc_uart.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/serial/jsm +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/serial/jsm/jsm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/serial/rp2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/serial/sccnxp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/synclink_gt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/tty/synclinkmp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uio +#lib/modules/KVER-ipfire-multi/kernel/drivers/uio/uio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uio/uio_aec.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uio/uio_pci_generic.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uio/uio_sercos3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm/cxacru.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm/speedtch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm/ueagle-atm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm/usbatm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea/ci13xxx_imx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea/ci13xxx_msm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea/ci13xxx_pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea/ci_hdrc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/chipidea/usbmisc_imx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/class +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/class/cdc-acm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/class/cdc-wdm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/class/usblp.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/class/usbtmc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/dwc3/dwc3-exynos.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/dwc3/dwc3-pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/dwc3/dwc3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/ehci-mxc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/ehci-orion.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/hwa-hc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/imx21-hcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/isp1362-hcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/sl811-hcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/ssb-hcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/whci +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/host/whci/whci-hcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/image +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/image/mdc800.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/image/microtek.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/adutux.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/emi26.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/ezusb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/ftdi-elan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/iowarrior.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/sisusbvga +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/usb3503.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/usblcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/usbled.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/usbsevseg.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/misc/yurex.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/mon +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/mon/usbmon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-ab8500-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-gpio-vbus-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-isp1301.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-mxs-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-nop.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-omap-control.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-omap-usb2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-omap-usb3.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/phy/phy-rcar-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/aircable.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ark3116.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/belkin_sa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ch341.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/cp210x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/cypress_m8.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/digi_acceleport.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/f81232.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/funsoft.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ipaq.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ir-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/iuu_phoenix.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/kl5kusb105.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/mct_u232.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/mos7720.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/mos7840.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/moto_modem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/option.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/oti6858.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/qcaux.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/qcserial.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/quatech2.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/siemens_mpi.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/sierra.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/ssu100.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/usb_wwan.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/serial/zte_ev.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-alauda.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-eneub6250.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-freecom.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-isd200.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-jumpshot.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-karma.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-realtek.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-sddr09.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-sddr55.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/storage/ums-usbat.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/wusbcore +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/wusbcore/wusb-cbaf.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/wusbcore/wusb-wa.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/usb/wusbcore/wusbcore.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uwb +#lib/modules/KVER-ipfire-multi/kernel/drivers/uwb/hwa-rc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uwb/i1480 +#lib/modules/KVER-ipfire-multi/kernel/drivers/uwb/i1480/dfu +#lib/modules/KVER-ipfire-multi/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uwb/i1480/i1480-est.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uwb/umc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uwb/uwb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uwb/whc-rc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/uwb/whci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/amba-clcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/arkfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/aty +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/aty/atyfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/auo_k1900fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/auo_k1901fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/auo_k190x.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/backlight/lcd.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/broadsheetfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/carminefb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/cfbcopyarea.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/cfbfillrect.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/cfbimgblt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/cirrusfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/console +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/console/font.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/cyber2000fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/fb_ddc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/fb_sys_fops.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/i740fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/kyro +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/kyro/kyrofb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/macmodes.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/matrox +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/matrox/i2c-matroxfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/matrox/matroxfb_DAC1064.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/matrox/matroxfb_Ti3026.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/matrox/matroxfb_accel.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/matrox/matroxfb_base.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/matrox/matroxfb_misc.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/mb862xx +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/mb862xx/mb862xxfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/metronomefb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/mx3fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/neofb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2 +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2/displays +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/omap2/displays/panel-tfp410.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/output.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/pm2fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/pm3fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/riva +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/riva/rivafb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/s1d13xxxfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/s3fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/savage +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/savage/savagefb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/smscufx.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/ssd1307fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/sstfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/svgalib.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/syscopyarea.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/sysfillrect.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/sysimgblt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/tridentfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/udlfb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/vgastate.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/video/vt8623fb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/virtio +#lib/modules/KVER-ipfire-multi/kernel/drivers/virtio/virtio_balloon.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1 +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/masters/ds1wm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/masters/ds2482.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/masters/ds2490.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/masters/mxc_w1.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2413.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2423.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2431.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2433.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds2781.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_ds28e04.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_smem.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/slaves/w1_therm.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/w1/wire.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/alim7101_wdt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/i6300esb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/imx2_wdt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/pcwd_pci.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/pcwd_usb.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/retu_wdt.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire-multi/kernel/drivers/watchdog/wdt_pci.ko +#lib/modules/KVER-ipfire-multi/kernel/fs +#lib/modules/KVER-ipfire-multi/kernel/fs/btrfs +#lib/modules/KVER-ipfire-multi/kernel/fs/btrfs/btrfs.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/cachefiles +#lib/modules/KVER-ipfire-multi/kernel/fs/cachefiles/cachefiles.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/cifs +#lib/modules/KVER-ipfire-multi/kernel/fs/cifs/cifs.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/configfs +#lib/modules/KVER-ipfire-multi/kernel/fs/configfs/configfs.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/dlm +#lib/modules/KVER-ipfire-multi/kernel/fs/dlm/dlm.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/exofs +#lib/modules/KVER-ipfire-multi/kernel/fs/exofs/libore.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fat +#lib/modules/KVER-ipfire-multi/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fat/msdos.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fat/vfat.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fscache +#lib/modules/KVER-ipfire-multi/kernel/fs/fscache/fscache.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fuse +#lib/modules/KVER-ipfire-multi/kernel/fs/fuse/cuse.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/fuse/fuse.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/lockd +#lib/modules/KVER-ipfire-multi/kernel/fs/lockd/lockd.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/blocklayout +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/blocklayout/blocklayoutdriver.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/nfs_layout_nfsv41_files.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/nfsv2.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/nfsv3.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/nfsv4.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/objlayout +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs/objlayout/objlayoutdriver.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs_common +#lib/modules/KVER-ipfire-multi/kernel/fs/nfs_common/nfs_acl.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nfsd +#lib/modules/KVER-ipfire-multi/kernel/fs/nfsd/nfsd.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-celtic.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-centeuro.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-croatian.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-cyrillic.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-gaelic.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-greek.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-iceland.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-inuit.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-roman.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-romanian.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/mac-turkish.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp1250.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp1251.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp1255.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp737.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp775.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp850.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp852.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp855.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp857.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp860.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp861.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp862.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp863.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp864.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp865.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp866.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp869.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp874.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp932.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp936.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp949.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_cp950.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_euc-jp.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-1.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-13.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-14.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-15.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-2.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-3.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-4.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-5.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-6.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-7.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_iso8859-9.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_koi8-r.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_koi8-ru.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_koi8-u.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/nls/nls_utf8.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/reiserfs +#lib/modules/KVER-ipfire-multi/kernel/fs/reiserfs/reiserfs.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/udf +#lib/modules/KVER-ipfire-multi/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire-multi/kernel/fs/xfs +#lib/modules/KVER-ipfire-multi/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire-multi/kernel/kernel +#lib/modules/KVER-ipfire-multi/kernel/kernel/trace +#lib/modules/KVER-ipfire-multi/kernel/kernel/trace/ring_buffer_benchmark.ko +#lib/modules/KVER-ipfire-multi/kernel/lib +#lib/modules/KVER-ipfire-multi/kernel/lib/asn1_decoder.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/cordic.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/crc-itu-t.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/crc8.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/mpi +#lib/modules/KVER-ipfire-multi/kernel/lib/mpi/mpi.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/oid_registry.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/raid6 +#lib/modules/KVER-ipfire-multi/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/rbtree_test.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/ts_bm.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/ts_fsm.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire-multi/kernel/lib/zlib_deflate +#lib/modules/KVER-ipfire-multi/kernel/lib/zlib_deflate/zlib_deflate.ko +#lib/modules/KVER-ipfire-multi/kernel/net +#lib/modules/KVER-ipfire-multi/kernel/net/atm +#lib/modules/KVER-ipfire-multi/kernel/net/atm/atm.ko +#lib/modules/KVER-ipfire-multi/kernel/net/atm/br2684.ko +#lib/modules/KVER-ipfire-multi/kernel/net/atm/clip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire-multi/kernel/net/batman-adv +#lib/modules/KVER-ipfire-multi/kernel/net/batman-adv/batman-adv.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/bluetooth.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/bnep +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/bnep/bnep.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/cmtp +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/cmtp/cmtp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/hidp +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/hidp/hidp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/rfcomm +#lib/modules/KVER-ipfire-multi/kernel/net/bluetooth/rfcomm/rfcomm.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_802_3.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_among.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_arp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_arpreply.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_dnat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_ip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_ip6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_limit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_log.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_mark.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_mark_m.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_nflog.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_pkttype.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_redirect.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_snat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_stp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebt_vlan.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebtable_broute.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebtable_filter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebtable_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire-multi/kernel/net/core +#lib/modules/KVER-ipfire-multi/kernel/net/core/netprio_cgroup.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4 +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ah4.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/gre.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/inet_diag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ip_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ip_vti.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ipcomp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/ipip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/arp_tables.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/arpt_mangle.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/arptable_filter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_ECN.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_REJECT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_ah.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/ipt_rpfilter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/iptable_filter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/iptable_mangle.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/iptable_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/iptable_raw.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/iptable_security.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/nf_nat_h323.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/nf_nat_ipv4.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/nf_nat_pptp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_bic.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_diag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_highspeed.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_htcp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_hybla.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_illinois.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_lp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_scalable.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_vegas.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_veno.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_westwood.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tcp_yeah.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/udp_diag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/xfrm4_mode_beet.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/xfrm4_mode_transport.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/xfrm4_mode_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv4/xfrm4_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6 +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/ah6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/ip6_gre.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/ip6_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/ipcomp6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/mip6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_MASQUERADE.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_NPT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_REJECT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_ah.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_eui64.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_frag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_hbh.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_rpfilter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6t_rt.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6table_filter.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6table_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6table_raw.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/ip6table_security.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/netfilter/nf_nat_ipv6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/sit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/tunnel6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/xfrm6_mode_beet.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/xfrm6_mode_ro.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/xfrm6_mode_transport.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/xfrm6_mode_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/ipv6/xfrm6_tunnel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/key +#lib/modules/KVER-ipfire-multi/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_ip6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire-multi/kernel/net/l2tp/l2tp_ppp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/mac80211 +#lib/modules/KVER-ipfire-multi/kernel/net/mac80211/mac80211.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_bitmap_ip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_bitmap_ipmac.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_bitmap_port.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_ip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_ipport.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_ipportip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_ipportnet.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_net.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_netiface.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_hash_netport.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipset/ip_set_list_set.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_dh.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_ftp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_lblc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_lblcr.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_lc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_nq.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_rr.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_sed.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_sh.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_wlc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/ipvs/ip_vs_wrr.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_broadcast.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_ftp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_h323.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_irc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_netbios_ns.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_netlink.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_pptp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_proto_dccp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_proto_gre.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_proto_sctp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_proto_udplite.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_sane.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_snmp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_nat_tftp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nf_tproxy_core.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink_acct.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink_cthelper.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink_cttimeout.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink_log.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/nfnetlink_queue.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_CHECKSUM.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_CONNSECMARK.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_CT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_DSCP.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_HMARK.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_IDLETIMER.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_IMQ.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_LOG.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_NETMAP.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_NFLOG.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_NFQUEUE.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_REDIRECT.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_SECMARK.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_TCPMSS.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_TEE.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_TPROXY.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_bpf.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_cluster.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_comment.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_connlabel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_connlimit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_connmark.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_cpu.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_devgroup.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_ecn.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_esp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_hashlimit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_helper.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_hl.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_layer7.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_length.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_limit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_mac.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_mark.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_nfacct.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_osf.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_owner.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_physdev.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_pkttype.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_policy.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_quota.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_rateest.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_realm.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_recent.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_set.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_socket.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_state.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_statistic.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_string.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_tcpmss.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_time.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-multi/kernel/net/netlink +#lib/modules/KVER-ipfire-multi/kernel/net/netlink/netlink_diag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/openvswitch +#lib/modules/KVER-ipfire-multi/kernel/net/openvswitch/openvswitch.ko +#lib/modules/KVER-ipfire-multi/kernel/net/rfkill +#lib/modules/KVER-ipfire-multi/kernel/net/rfkill/rfkill.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_csum.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_gact.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_ipt.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_mirred.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_nat.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_pedit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_simple.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/act_skbedit.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_cgroup.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_flow.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_fw.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_route.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_rsvp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_rsvp6.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_tcindex.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/cls_u32.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_ipset.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_meta.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_nbyte.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_text.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/em_u32.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_atm.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_codel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_drr.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_fq_codel.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_gred.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_hfsc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_htb.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_mqprio.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_multiq.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_plug.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_qfq.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_sfb.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_sfq.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_tbf.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sctp +#lib/modules/KVER-ipfire-multi/kernel/net/sctp/sctp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sunrpc +#lib/modules/KVER-ipfire-multi/kernel/net/sunrpc/auth_gss +#lib/modules/KVER-ipfire-multi/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko +#lib/modules/KVER-ipfire-multi/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-multi/kernel/net/unix +#lib/modules/KVER-ipfire-multi/kernel/net/unix/unix_diag.ko +#lib/modules/KVER-ipfire-multi/kernel/net/vmw_vsock +#lib/modules/KVER-ipfire-multi/kernel/net/vmw_vsock/vsock.ko +#lib/modules/KVER-ipfire-multi/kernel/net/wireless +#lib/modules/KVER-ipfire-multi/kernel/net/wireless/cfg80211.ko +#lib/modules/KVER-ipfire-multi/kernel/net/wireless/lib80211.ko +#lib/modules/KVER-ipfire-multi/kernel/net/wireless/lib80211_crypt_ccmp.ko +#lib/modules/KVER-ipfire-multi/kernel/net/wireless/lib80211_crypt_tkip.ko +#lib/modules/KVER-ipfire-multi/kernel/net/wireless/lib80211_crypt_wep.ko +#lib/modules/KVER-ipfire-multi/kernel/net/xfrm +#lib/modules/KVER-ipfire-multi/kernel/net/xfrm/xfrm_ipcomp.ko +#lib/modules/KVER-ipfire-multi/kernel/sound +#lib/modules/KVER-ipfire-multi/kernel/sound/ac97_bus.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/arm +#lib/modules/KVER-ipfire-multi/kernel/sound/arm/snd-aaci.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core +#lib/modules/KVER-ipfire-multi/kernel/sound/core/oss +#lib/modules/KVER-ipfire-multi/kernel/sound/core/oss/snd-mixer-oss.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/oss/snd-pcm-oss.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/oss +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/oss/snd-seq-oss.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-device.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-midi-emul.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq-virmidi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-compress.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-hwdep.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-page-alloc.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-rawmidi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd-timer.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/core/snd.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/opl3 +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/opl3/snd-opl3-lib.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/opl3/snd-opl3-synth.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-aloop.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/vx +#lib/modules/KVER-ipfire-multi/kernel/sound/drivers/vx/snd-vx-lib.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/firewire +#lib/modules/KVER-ipfire-multi/kernel/sound/firewire/snd-firewire-lib.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/firewire/snd-firewire-speakers.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other/snd-ak4113.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other/snd-ak4114.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other/snd-ak4xxx-adda.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other/snd-pt2258.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/other/snd-tea575x-tuner.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/snd-cs8427.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/i2c/snd-i2c.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ac97 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ali5451 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ali5451/snd-ali5451.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/au88x0 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/au88x0/snd-au8810.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/au88x0/snd-au8820.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/au88x0/snd-au8830.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/aw2 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/aw2/snd-aw2.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ca0106 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ca0106/snd-ca0106.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/cs46xx +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/cs46xx/snd-cs46xx.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/cs5535audio +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ctxfi +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ctxfi/snd-ctxfi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-darla20.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-darla24.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-echo3g.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-gina20.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-gina24.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-indigo.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-indigodj.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-indigodjx.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-indigoio.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-indigoiox.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-layla20.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-layla24.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-mia.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/echoaudio/snd-mona.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/emu10k1 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/emu10k1/snd-emu10k1.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/emu10k1/snd-emu10k1x.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-analog.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-ca0132.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-conexant.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-idt.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-realtek.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-si3054.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec-via.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-codec.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/hda/snd-hda-intel.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ice1712 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ice1712/snd-ice1712.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ice1712/snd-ice1724.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/korg1212 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/korg1212/snd-korg1212.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/lola +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/lola/snd-lola.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/mixart +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/mixart/snd-mixart.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/nm256 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/nm256/snd-nm256.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/oxygen +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/oxygen/snd-oxygen-lib.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/oxygen/snd-oxygen.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/oxygen/snd-virtuoso.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/pcxhr +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/pcxhr/snd-pcxhr.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/riptide +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/riptide/snd-riptide.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/rme9652 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/rme9652/snd-hdsp.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/rme9652/snd-hdspm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/rme9652/snd-rme9652.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-ad1889.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-als300.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-atiixp-modem.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-atiixp.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-azt3328.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-bt87x.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-cmipci.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-cs4281.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-ens1370.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-ens1371.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-es1938.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-es1968.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-fm801.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-intel8x0.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-intel8x0m.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-maestro3.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-rme32.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-rme96.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-sonicvibes.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-via82xx-modem.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/snd-via82xx.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/trident +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/trident/snd-trident.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/vx222 +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/vx222/snd-vx222.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ymfpci +#lib/modules/KVER-ipfire-multi/kernel/sound/pci/ymfpci/snd-ymfpci.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/atmel +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/atmel/snd-soc-atmel-pcm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-ab8500-codec.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-alc5632.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-dmic.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-omap-hdmi-codec.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-sgtl5000.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-tpa6130a2.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-twl4030.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-twl6040.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-wm8903.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/codecs/snd-soc-wm9712.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/dwc +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/dwc/designware_i2s.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-eukrea-tlv320.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-fsl-ssi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-fsl-utils.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-imx-audmux.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-imx-pcm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-imx-sgtl5000.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/fsl/snd-soc-imx-ssi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/generic +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/generic/snd-soc-simple-card.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-am3517evm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap-abe-twl6040.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap-dmic.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap-hdmi-card.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap-hdmi.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap-mcbsp.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap-mcpdm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap-twl4030.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-omap3pandora.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/omap/snd-soc-rx51.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/snd-soc-core.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra-alc5632.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra-pcm.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra-trimslice.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra-utils.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra-wm8903.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra-wm9712.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra20-ac97.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra20-das.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra20-i2s.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra20-spdif.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra30-ahub.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/tegra/snd-soc-tegra30-i2s.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/ux500 +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/ux500/snd-soc-ux500-mach-mop500.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/ux500/snd-soc-ux500-plat-dma.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soc/ux500/snd-soc-ux500-plat-msp-i2s.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/synth +#lib/modules/KVER-ipfire-multi/kernel/sound/synth/emux +#lib/modules/KVER-ipfire-multi/kernel/sound/synth/emux/snd-emux-synth.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/synth/snd-util-mem.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/usb +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/misc +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire-multi/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire-multi/modules.alias +#lib/modules/KVER-ipfire-multi/modules.alias.bin +#lib/modules/KVER-ipfire-multi/modules.builtin +#lib/modules/KVER-ipfire-multi/modules.ccwmap +#lib/modules/KVER-ipfire-multi/modules.dep +#lib/modules/KVER-ipfire-multi/modules.dep.bin +#lib/modules/KVER-ipfire-multi/modules.ieee1394map +#lib/modules/KVER-ipfire-multi/modules.inputmap +#lib/modules/KVER-ipfire-multi/modules.isapnpmap +#lib/modules/KVER-ipfire-multi/modules.ofmap +#lib/modules/KVER-ipfire-multi/modules.order +#lib/modules/KVER-ipfire-multi/modules.pcimap +#lib/modules/KVER-ipfire-multi/modules.seriomap +#lib/modules/KVER-ipfire-multi/modules.symbols +#lib/modules/KVER-ipfire-multi/modules.symbols.bin +#lib/modules/KVER-ipfire-multi/modules.usbmap +#lib/modules/KVER-ipfire-multi/source diff --git a/config/rootfiles/common/armv5tel/linux-omap b/config/rootfiles/common/armv5tel/linux-omap deleted file mode 100644 index 708ec05..0000000 --- a/config/rootfiles/common/armv5tel/linux-omap +++ /dev/null @@ -1,1479 +0,0 @@ -boot/System.map-KVER-ipfire-omap -#boot/System.map-ipfire-omap -boot/config-KVER-ipfire-omap -boot/uImage-ipfire-omap -boot/vmlinuz-KVER-ipfire-omap -lib/modules/KVER-ipfire-omap -#lib/modules/KVER-ipfire-omap/build -#lib/modules/KVER-ipfire-omap/kernel -#lib/modules/KVER-ipfire-omap/kernel/crypto -#lib/modules/KVER-ipfire-omap/kernel/crypto/aes_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/af_alg.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/algif_hash.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/algif_skcipher.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/ansi_cprng.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/anubis.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/arc4.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_memcpy.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_pq.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_raid6_recov.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_tx.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_xor.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/raid6test.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/authenc.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/authencesn.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/blowfish_common.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/blowfish_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/camellia.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/cast5.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/cast6.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/cbc.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/ccm.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/crc32c.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/cryptd.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/crypto_user.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/ctr.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/cts.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/des_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/ecb.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/fcrypt.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/gcm.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/gf128mul.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/ghash-generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/khazad.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/lrw.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/lzo.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/md4.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/md5.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/michael_mic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/pcbc.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/pcrypt.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd128.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd160.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd256.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd320.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/salsa20_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/seed.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/seqiv.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/serpent.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/sha1_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/sha256_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/sha512_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/tea.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/tgr192.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/twofish_common.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/twofish_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/vmac.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/wp512.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/xcbc.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/xor.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/xts.ko -#lib/modules/KVER-ipfire-omap/kernel/crypto/zlib.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/ahci_platform.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/libahci.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/libata.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_arasan_cf.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_of_platform.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_platform.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/sata_mv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/atm -#lib/modules/KVER-ipfire-omap/kernel/drivers/atm/atmtcp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/base -#lib/modules/KVER-ipfire-omap/kernel/drivers/base/regmap -#lib/modules/KVER-ipfire-omap/kernel/drivers/base/regmap/regmap-i2c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bcma -#lib/modules/KVER-ipfire-omap/kernel/drivers/bcma/bcma.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/aoe -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/aoe/aoe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/cryptoloop.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/mg_disk.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/nbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/osdblk.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/block/rbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/ath3k.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bcm203x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bfusb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bpa10x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btmrvl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btmrvl_sdio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btsdio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btusb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btwilink.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/hci_uart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/hci_vhci.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/cdrom -#lib/modules/KVER-ipfire-omap/kernel/drivers/cdrom/cdrom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/omap-rng.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/rng-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/timeriomem-rng.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_devintf.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_msghandler.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_poweroff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_si.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_watchdog.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/lp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/nvram.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ppdev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/connector -#lib/modules/KVER-ipfire-omap/kernel/drivers/connector/cn.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto -#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto/omap-aes.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto/omap-sham.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/dma -#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/dmatest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/dw_dmac.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/timb_dma.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-adp5588.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-generic.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-it8761e.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max7300.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max730x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max732x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-mcp23s08.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-pca953x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-pcf857x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-twl4030.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu/drm -#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu/drm/drm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-apple.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-axff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-belkin.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-cherry.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-chicony.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-dr.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-elecom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ezkey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-gaff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-gyration.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-holtekff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-kensington.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-keytouch.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-kye.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-lcpower.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-logitech-dj.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-logitech.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-magicmouse.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-monterey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-multitouch.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ntrig.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ortek.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-petalynx.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-picolcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-pl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-primax.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-prodikeys.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-quanta.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-arvo.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-common.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-kone.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-koneplus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-kovaplus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-pyra.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-samsung.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sjoy.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sony.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-speedlink.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sunplus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-tmff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-topseed.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-twinhan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-uclogic.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-wacom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-waltop.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-wiimote.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-zpff.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-zydacron.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbhid.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbkbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbmouse.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ad7414.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ad7418.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1021.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1025.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1026.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1029.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1031.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm9240.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ads1015.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ads7828.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7411.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7462.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7470.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7475.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/amc6821.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/asc7621.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/atxp1.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/dme1737.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ds1621.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ds620.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc1403.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc2103.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc6w201.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f71805f.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f71882fg.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f75375s.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/g760a.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gl518sm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gpio-fan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/hwmon-vid.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/hwmon.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ibmaem.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ibmpex.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/it87.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/jc42.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lineage-pem.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm63.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm73.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm75.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm77.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm78.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm80.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm83.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm85.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm87.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm90.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm92.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm93.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm95241.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm95245.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4151.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4215.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4245.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4261.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max16065.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max1619.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max1668.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6639.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6642.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6650.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ntc_thermistor.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pc87360.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pc87427.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pcf8591.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/adm1275.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/lm25066.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ltc2978.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max16064.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max34440.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max8688.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/pmbus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/pmbus_core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ucd9000.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ucd9200.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/zl6100.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch5627.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch5636.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch56xx-common.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sht15.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sht21.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smm665.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47b397.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47m1.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47m192.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/thmc50.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp102.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp401.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp421.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/twl4030-madc-hwmon.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/vt1211.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83627ehf.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83627hf.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83781d.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83791d.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83792d.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83793.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83795.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83l785ts.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83l786ng.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock/hwspinlock_core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock/omap_hwspinlock.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos/i2c-algo-bit.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos/i2c-algo-pca.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-ocores.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-parport-light.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-parport.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-pca-platform.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-simtec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-stub.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-taos-evm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-tiny-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-xiic.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-dev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-mux.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-smbus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/gpio-i2cmux.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/pca9541.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/pca954x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ieee802154 -#lib/modules/KVER-ipfire-omap/kernel/drivers/ieee802154/fakehard.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/ff-memless.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/input-polldev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/adp5588-keys.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/adp5589-keys.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/gpio_keys.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/gpio_keys_polled.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/lkkbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/lm8323.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/matrix_keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/max7359_keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/mcs_touchkey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/mpr121_touchkey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/newtonkbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/omap-keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/omap4-keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/opencores-kbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/qt1070.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/qt2160.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/stowaway.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/sunkbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/tca6416-keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/twl4030_keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/xtkbd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ad714x-i2c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ad714x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/bma150.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/cm109.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pcf8574_keypad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/powermate.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pwm-beeper.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/rotary_encoder.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl4030-pwrbutton.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl4030-vibra.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl6040-vibra.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/yealink.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio/altera_ps2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio/ps2mult.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/input/sparse-keymap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/capi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/capidrv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/kernelcapi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/divert -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/divert/dss1_divert.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/bas_gigaset.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/gigaset.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/ser_gigaset.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/usb_gigaset.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware/mISDN -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hfc_usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hisax.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hisax_st5481.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdn.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdnhdlc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/l1oip.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/mISDN_core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/mISDN_dsp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-bd2802.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lm3530.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp3944.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp5521.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp5523.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lt3593.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-pca9532.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-regulator.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-default-on.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-timer.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-bufio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-crypt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-delay.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-flakey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-log-userspace.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-log.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-mirror.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-mod.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-multipath.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-queue-length.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-raid.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-region-hash.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-round-robin.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-service-time.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-snapshot.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-thin-pool.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-zero.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/linear.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/md-mod.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/multipath.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/persistent-data -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/persistent-data/dm-persistent-data.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid0.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid1.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid10.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid456.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda18271.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda827x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/xc4000.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb/dvb-core -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb/dvb-core/dvb-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/media.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio/wl128x -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio/wl128x/fm_drv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-anysee.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-behold.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-cinergy.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-digittrade.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-eztv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-flydvb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-lirc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-lme2510.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-manli.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-nebula.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-norwood.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-npgtech.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-purpletv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pv951.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-streamzap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tivo.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-trekstor.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-winfast.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/lirc_dev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/rc-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/ir-kbd-i2c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/videodev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick -#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core -#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core/memstick.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core/mspro_block.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps6105x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps65010.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps6507x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/twl4030-madc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/twl6030-pwm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/wl1273-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/wm8400-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/apds9802als.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/apds990x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bh1770glc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bh1780gli.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bmp085.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/c2port -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/c2port/core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ds1682.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/at24.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/eeprom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/eeprom_93cx6.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/max6875.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/enclosure.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/fsa9480.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/hmc6352.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ics932s401.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/isl29003.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/isl29020.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/iwmc3200top -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ti-st -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ti-st/st_drv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/tsl2550.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/mmc_block.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/mmc_test.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/sdio_uart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/dw_mmc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/sdhci-pltfm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/sdhci.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/ushc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/vub300.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ar7part.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/chips -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/chips/chipreg.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr/lpddr_cmds.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr/qinfo_probe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/maps -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/maps/physmap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtd_blkdevs.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtdblock.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/nand -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/nand/nand_ecc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ofpart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/sm_ftl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_nandecctest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_torturetest.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ubi -#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ubi/ubi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/bonding -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/bonding/bonding.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/eql.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/8390 -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/8390/ax88796.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/broadcom -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/broadcom/b44.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/davicom -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/davicom/dm9000.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink/de600.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink/de620.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dnet.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/ethoc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel/ks8842.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/seeq -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/seeq/seeq8005.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smc911x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smc91x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smsc911x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro/stmmac -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ifb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/stir4200.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/macvlan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/macvtap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/mii.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/broadcom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/cicada.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/davicom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/dp83640.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/et1011c.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/icplus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/lxt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/marvell.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/mdio-bitbang.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/mdio-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/micrel.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/national.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/qsemi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/realtek.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/smsc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/ste10Xp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/vitesse.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/bsd_comp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_async.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_deflate.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_generic.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_mppe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_synctty.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pppoe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pppox.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pptp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip/slhc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip/slip.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/tun.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/asix.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/catc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_eem.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_ether.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_ncm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_subset.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cx82310_eth.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/dm9601.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/gl620a.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/hso.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/int51x1.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/kalmia.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/kaweth.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/lg-vl600.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/mcs7830.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/net1080.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/pegasus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/plusb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/rndis_host.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/rtl8150.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/sierra_net.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/smsc75xx.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/smsc95xx.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/usbnet.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/zaurus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/veth.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/dlci.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_cisco.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_fr.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_ppp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_raw.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_raw_eth.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/at76c50x-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/hostap -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/hostap/hostap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/rndis_wlan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/zd1201.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/parport -#lib/modules/KVER-ipfire-omap/kernel/drivers/parport/parport.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/parport/parport_ax88796.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/power -#lib/modules/KVER-ipfire-omap/kernel/drivers/power/gpio-charger.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/power/twl4030_charger.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/pps -#lib/modules/KVER-ipfire-omap/kernel/drivers/pps/pps_core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ptp -#lib/modules/KVER-ipfire-omap/kernel/drivers/ptp/ptp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/regulator -#lib/modules/KVER-ipfire-omap/kernel/drivers/regulator/gpio-regulator.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-cmos.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1286.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1307.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1374.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1511.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1553.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1672.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1742.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds3232.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-em3027.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-fm3130.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-isl12022.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-isl1208.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m41t80.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t35.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t59.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t86.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-max6900.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-msm6242.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf50633.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf8563.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf8583.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rp5c01.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rs5c372.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rv3029c2.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rx8025.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rx8581.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-s35390a.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-stk17ta8.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-v3020.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-x1205.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/ch.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/fcoe -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/fcoe/libfcoe.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/iscsi_boot_sysfs.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/iscsi_tcp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libfc -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libfc/libfc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libiscsi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libiscsi_tcp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libsas -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libsas/libsas.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd/libosd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd/osd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/raid_class.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_mod.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_fc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_iscsi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_sas.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_spi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_wait_scan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sd_mod.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/ses.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sg.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sr_mod.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/ssb -#lib/modules/KVER-ipfire-omap/kernel/drivers/ssb/ssb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/staging -#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip -#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/usbip-core.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/usbip-host.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/vhci-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/n_gsm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/8250_dw.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/altera_jtaguart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/altera_uart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/timbuart.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/xilinx_uartps.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/uio -#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio_pdrv.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio_pdrv_genirq.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/cxacru.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/speedtch.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/ueagle-atm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/usbatm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/xusbatm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/cdc-acm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/cdc-wdm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/usblp.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/usbtmc.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3 -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3/dwc3-omap.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3/dwc3.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/isp116x-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/r8a66597-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/u132-hcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/cypress_cy7c63.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/cytherm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/emi26.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/emi62.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/ftdi-elan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/iowarrior.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/isight_firmware.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/sisusbvga -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usblcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usbled.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usbsevseg.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/uss720.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/yurex.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/gpio_vbus.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/twl4030-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/twl6030-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/aircable.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ark3116.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/belkin_sa.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ch341.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/cp210x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/cypress_m8.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/digi_acceleport.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/empeg.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ftdi_sio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/funsoft.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/garmin_gps.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/hp4x.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/io_edgeport.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/io_ti.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ipaq.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ipw.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ir-usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/iuu_phoenix.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/keyspan_pda.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mct_u232.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mos7720.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mos7840.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/moto_modem.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/opticon.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/option.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/oti6858.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/pl2303.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/qcaux.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/qcserial.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/safe_serial.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/siemens_mpi.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/sierra.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/spcp8x5.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ssu100.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/symbolserial.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ti_usb_3410_5052.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/usb_wwan.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/usbserial.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/visor.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/vivopay-serial.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/whiteheat.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/zio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/uas.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-alauda.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-cypress.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-datafab.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-eneub6250.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-freecom.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-isd200.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-jumpshot.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-karma.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-onetouch.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-realtek.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-sddr09.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-sddr55.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-usbat.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/usb-storage.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/adp8860_bl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/adp8870_bl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/pcf50633-backlight.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/platform_lcd.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/pwm_bl.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/fb_sys_fops.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/metronomefb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/output.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sm501fb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/smscufx.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/syscopyarea.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sysfillrect.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sysimgblt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/tmiofb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/video/uvesafb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1 -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds1wm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds2482.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds2490.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/omap_hdq.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/w1-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_bq27000.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2408.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2423.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2431.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2433.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2760.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2780.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_smem.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_therm.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/wire.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/dw_wdt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/max63xx_wdt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/mpcore_wdt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/omap_wdt.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/pcwd_usb.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/softdog.ko -#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/twl4030_wdt.ko -#lib/modules/KVER-ipfire-omap/kernel/fs -#lib/modules/KVER-ipfire-omap/kernel/fs/autofs4 -#lib/modules/KVER-ipfire-omap/kernel/fs/autofs4/autofs4.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/cachefiles -#lib/modules/KVER-ipfire-omap/kernel/fs/cachefiles/cachefiles.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/cifs -#lib/modules/KVER-ipfire-omap/kernel/fs/cifs/cifs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/ecryptfs -#lib/modules/KVER-ipfire-omap/kernel/fs/ecryptfs/ecryptfs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/exportfs -#lib/modules/KVER-ipfire-omap/kernel/fs/exportfs/exportfs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/fat -#lib/modules/KVER-ipfire-omap/kernel/fs/fat/fat.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/fat/vfat.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/fscache -#lib/modules/KVER-ipfire-omap/kernel/fs/fscache/fscache.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/fuse -#lib/modules/KVER-ipfire-omap/kernel/fs/fuse/cuse.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/fuse/fuse.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/isofs -#lib/modules/KVER-ipfire-omap/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/jffs2 -#lib/modules/KVER-ipfire-omap/kernel/fs/jffs2/jffs2.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/jfs -#lib/modules/KVER-ipfire-omap/kernel/fs/jfs/jfs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/lockd -#lib/modules/KVER-ipfire-omap/kernel/fs/lockd/lockd.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/nfs -#lib/modules/KVER-ipfire-omap/kernel/fs/nfs/nfs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/nfs_common -#lib/modules/KVER-ipfire-omap/kernel/fs/nfs_common/nfs_acl.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/nfsd -#lib/modules/KVER-ipfire-omap/kernel/fs/nfsd/nfsd.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/quota -#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_tree.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_v1.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_v2.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/reiserfs -#lib/modules/KVER-ipfire-omap/kernel/fs/reiserfs/reiserfs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/udf -#lib/modules/KVER-ipfire-omap/kernel/fs/udf/udf.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/ufs -#lib/modules/KVER-ipfire-omap/kernel/fs/ufs/ufs.ko -#lib/modules/KVER-ipfire-omap/kernel/fs/xfs -#lib/modules/KVER-ipfire-omap/kernel/fs/xfs/xfs.ko -#lib/modules/KVER-ipfire-omap/kernel/lib -#lib/modules/KVER-ipfire-omap/kernel/lib/cordic.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/crc-ccitt.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/crc-itu-t.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/crc-t10dif.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/crc7.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/crc8.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/libcrc32c.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/raid6 -#lib/modules/KVER-ipfire-omap/kernel/lib/raid6/raid6_pq.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/ts_bm.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/ts_fsm.ko -#lib/modules/KVER-ipfire-omap/kernel/lib/ts_kmp.ko -#lib/modules/KVER-ipfire-omap/kernel/net -#lib/modules/KVER-ipfire-omap/kernel/net/802 -#lib/modules/KVER-ipfire-omap/kernel/net/802/garp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/802/p8022.ko -#lib/modules/KVER-ipfire-omap/kernel/net/802/psnap.ko -#lib/modules/KVER-ipfire-omap/kernel/net/802/stp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/8021q -#lib/modules/KVER-ipfire-omap/kernel/net/8021q/8021q.ko -#lib/modules/KVER-ipfire-omap/kernel/net/atm -#lib/modules/KVER-ipfire-omap/kernel/net/atm/atm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/atm/br2684.ko -#lib/modules/KVER-ipfire-omap/kernel/net/atm/clip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/atm/pppoatm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/batman-adv -#lib/modules/KVER-ipfire-omap/kernel/net/batman-adv/batman-adv.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bluetooth.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bnep -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bnep/bnep.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/cmtp -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/cmtp/cmtp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/hidp -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/hidp/hidp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/rfcomm -#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/rfcomm/rfcomm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/bridge.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_802_3.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_among.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_arp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_arpreply.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_dnat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ip6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_limit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_log.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_mark.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_mark_m.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_nflog.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_pkttype.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_redirect.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_snat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_stp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ulog.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_vlan.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_broute.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_filter.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_nat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtables.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ceph -#lib/modules/KVER-ipfire-omap/kernel/net/ceph/libceph.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154 -#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/6lowpan.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/ieee802154.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4 -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ah4.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/esp4.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/gre.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/inet_diag.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ip_gre.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ipcomp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ipip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arp_tables.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arpt_mangle.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ip_queue.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ip_tables.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_LOG.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_REJECT.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ULOG.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ecn.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ipp2p.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_filter.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_mangle.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_nat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_raw.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_ftp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_irc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_sip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_tftp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_bic.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_cubic.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_diag.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_highspeed.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_htcp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_hybla.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_illinois.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_lp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_scalable.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_vegas.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_veno.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_westwood.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_yeah.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tunnel4.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/xfrm4_tunnel.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6 -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ah6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/esp6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ip6_tunnel.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ipcomp6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/mip6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6_queue.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_LOG.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_REJECT.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_ah.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_eui64.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_frag.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_hbh.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_mh.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_rt.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_filter.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_mangle.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_raw.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/sit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/tunnel6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_beet.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_ro.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_transport.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_tunnel.ko -#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/KVER-ipfire-omap/kernel/net/irda -#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm -#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/irda/irda.ko -#lib/modules/KVER-ipfire-omap/kernel/net/irda/irlan -#lib/modules/KVER-ipfire-omap/kernel/net/irda/irlan/irlan.ko -#lib/modules/KVER-ipfire-omap/kernel/net/irda/irnet -#lib/modules/KVER-ipfire-omap/kernel/net/irda/irnet/irnet.ko -#lib/modules/KVER-ipfire-omap/kernel/net/key -#lib/modules/KVER-ipfire-omap/kernel/net/key/af_key.ko -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_core.ko -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_eth.ko -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_ip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_netlink.ko -#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_ppp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/llc -#lib/modules/KVER-ipfire-omap/kernel/net/llc/llc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/mac80211 -#lib/modules/KVER-ipfire-omap/kernel/net/mac80211/mac80211.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_dh.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_ftp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_lblc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_lblcr.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_lc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_nq.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_rr.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_sed.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_sh.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_wlc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs_wrr.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_amanda.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_broadcast.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_ftp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_h323.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_irc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_netbios_ns.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_netlink.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_pptp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_dccp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_gre.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_sctp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_udplite.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_sane.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_sip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_snmp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_tftp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_tproxy_core.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink_log.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink_queue.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/x_tables.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_AUDIT.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CHECKSUM.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CLASSIFY.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CT.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_DSCP.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_HL.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_IDLETIMER.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_IMQ.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_LED.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NFLOG.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NOTRACK.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_RATEEST.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TCPMSS.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TCPOPTSTRIP.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TEE.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TPROXY.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TRACE.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_addrtype.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_cluster.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_comment.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connbytes.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connlimit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connmark.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_conntrack.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_cpu.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_dccp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_devgroup.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_dscp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_esp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_hashlimit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_helper.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_hl.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_iprange.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_ipvs.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_layer7.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_length.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_limit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_mac.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_mark.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_multiport.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_osf.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_owner.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_physdev.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_pkttype.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_policy.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_quota.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_rateest.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_realm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_recent.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_sctp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_socket.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_state.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_statistic.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_string.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_tcpmss.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_tcpudp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_time.ko -#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_u32.ko -#lib/modules/KVER-ipfire-omap/kernel/net/rfkill -#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill-gpio.ko -#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill-regulator.ko -#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill.ko -#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc -#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc/af-rxrpc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc/rxkad.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_csum.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_gact.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_ipt.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_mirred.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_nat.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_pedit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_police.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_simple.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_skbedit.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_basic.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_flow.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_fw.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_route.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_rsvp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_rsvp6.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_tcindex.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_u32.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_cmp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_meta.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_nbyte.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_text.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_u32.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_atm.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_cbq.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_choke.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_drr.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_dsmark.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_gred.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_hfsc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_htb.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_ingress.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_mqprio.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_multiq.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_netem.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_prio.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_qfq.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_red.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_sfb.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_sfq.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_tbf.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_teql.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc -#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss -#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko -#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/sunrpc.ko -#lib/modules/KVER-ipfire-omap/kernel/net/wireless -#lib/modules/KVER-ipfire-omap/kernel/net/wireless/cfg80211.ko -#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211.ko -#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_ccmp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_tkip.ko -#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_wep.ko -#lib/modules/KVER-ipfire-omap/kernel/net/xfrm -#lib/modules/KVER-ipfire-omap/kernel/net/xfrm/xfrm_ipcomp.ko -#lib/modules/KVER-ipfire-omap/kernel/net/xfrm/xfrm_user.ko -#lib/modules/KVER-ipfire-omap/kernel/sound -#lib/modules/KVER-ipfire-omap/kernel/sound/core -#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss -#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss/snd-mixer-oss.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss/snd-pcm-oss.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/oss -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/oss/snd-seq-oss.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-device.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-dummy.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-midi-event.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-midi.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-virmidi.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-hrtimer.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-hwdep.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-page-alloc.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-pcm.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-rawmidi.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-timer.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401 -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401/snd-mpu401.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-aloop.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-dummy.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-mtpav.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-mts64.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-portman2x4.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-serial-u16550.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-virmidi.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tpa6130a2.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-twl4030.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-twl6040.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-am3517evm.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-igep0020.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap-mcbsp.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap-mcpdm.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3beagle.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3evm.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3pandora.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-overo.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-rx51.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-sdp3430.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-sdp4430.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-zoom2.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soc/snd-soc-core.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/soundcore.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/usb -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/6fire -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/6fire/snd-usb-6fire.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/caiaq -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/caiaq/snd-usb-caiaq.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/misc -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/misc/snd-ua101.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/snd-usb-audio.ko -#lib/modules/KVER-ipfire-omap/kernel/sound/usb/snd-usbmidi-lib.ko -#lib/modules/KVER-ipfire-omap/modules.alias -#lib/modules/KVER-ipfire-omap/modules.alias.bin -#lib/modules/KVER-ipfire-omap/modules.builtin -#lib/modules/KVER-ipfire-omap/modules.ccwmap -#lib/modules/KVER-ipfire-omap/modules.dep -#lib/modules/KVER-ipfire-omap/modules.dep.bin -#lib/modules/KVER-ipfire-omap/modules.ieee1394map -#lib/modules/KVER-ipfire-omap/modules.inputmap -#lib/modules/KVER-ipfire-omap/modules.isapnpmap -#lib/modules/KVER-ipfire-omap/modules.ofmap -#lib/modules/KVER-ipfire-omap/modules.order -#lib/modules/KVER-ipfire-omap/modules.pcimap -#lib/modules/KVER-ipfire-omap/modules.seriomap -#lib/modules/KVER-ipfire-omap/modules.symbols -#lib/modules/KVER-ipfire-omap/modules.symbols.bin -#lib/modules/KVER-ipfire-omap/modules.usbmap -#lib/modules/KVER-ipfire-omap/source -boot/uInit-ipfire-omap diff --git a/config/rootfiles/common/armv5tel/lm_sensors b/config/rootfiles/common/armv5tel/lm_sensors index 774e47d..4d17590 100644 --- a/config/rootfiles/common/armv5tel/lm_sensors +++ b/config/rootfiles/common/armv5tel/lm_sensors @@ -8,7 +8,7 @@ usr/bin/sensors-conf-convert #usr/lib/libsensors.a usr/lib/libsensors.so usr/lib/libsensors.so.4 -usr/lib/libsensors.so.4.3.1 +usr/lib/libsensors.so.4.3.2 #usr/man/man1/sensors.1 #usr/man/man3/libsensors.3 #usr/man/man5/sensors.conf.5 diff --git a/config/rootfiles/common/armv5tel/rpi-firmware b/config/rootfiles/common/armv5tel/rpi-firmware index 3024548..3fb7693 100644 --- a/config/rootfiles/common/armv5tel/rpi-firmware +++ b/config/rootfiles/common/armv5tel/rpi-firmware @@ -2,8 +2,9 @@ boot/bootcode.bin boot/cmdline.txt boot/config.txt -#boot/first32k.bin -boot/start.elf -boot/start_cd.elf boot/fixup.dat boot/fixup_cd.dat +boot/fixup_x.dat +boot/start.elf +boot/start_cd.elf +boot/start_x.elf diff --git a/config/rootfiles/common/armv5tel/u-boot b/config/rootfiles/common/armv5tel/u-boot index 759d41d..1048dc8 100644 --- a/config/rootfiles/common/armv5tel/u-boot +++ b/config/rootfiles/common/armv5tel/u-boot @@ -1,6 +1,12 @@ -#boot/MLO -#boot/u-boot.bin usr/bin/mkimage -boot/boot.scr -boot/boot.script -boot/convert_bootscript +#usr/share/u-boot +#usr/share/u-boot/pandaboard +#usr/share/u-boot/pandaboard/MLO +#usr/share/u-boot/pandaboard/u-boot.bin +#usr/share/u-boot/pandaboard/u-boot.img +#usr/share/u-boot/wandboard_dl +#usr/share/u-boot/wandboard_dl/u-boot.imx +#usr/share/u-boot/wandboard_quad +#usr/share/u-boot/wandboard_quad/u-boot.imx +#usr/share/u-boot/wandboard_solo +#usr/share/u-boot/wandboard_solo/u-boot.imx diff --git a/config/rootfiles/common/armv5tel/u-boot-panda b/config/rootfiles/common/armv5tel/u-boot-panda new file mode 100644 index 0000000..544d9d7 --- /dev/null +++ b/config/rootfiles/common/armv5tel/u-boot-panda @@ -0,0 +1,5 @@ +#boot/MLO +#boot/u-boot.bin +boot/boot.scr +boot/boot.script +boot/convert_bootscript diff --git a/config/rootfiles/common/armv5tel/util-linux b/config/rootfiles/common/armv5tel/util-linux index d3a010c..85b027d 100644 --- a/config/rootfiles/common/armv5tel/util-linux +++ b/config/rootfiles/common/armv5tel/util-linux @@ -1,17 +1,27 @@ -#bin/arch bin/dmesg +bin/findmnt +bin/lsblk bin/more bin/mount bin/umount -etc/fdprm +bin/wdctl +#etc/fcron.daily +etc/fcron.daily/trim +lib/libblkid.so.1.1.0 +lib/libmount.so.1 +lib/libmount.so.1.1.0 +lib/libuuid.so.1.3.0 sbin/agetty +sbin/blkdiscard sbin/blockdev sbin/cfdisk +sbin/chcpu sbin/ctrlaltdel -#sbin/elvtune sbin/fdisk #sbin/fsck.cramfs sbin/fsck.minix +sbin/fsfreeze +sbin/fstrim sbin/hwclock sbin/losetup sbin/mkfs @@ -19,46 +29,160 @@ sbin/mkfs #sbin/mkfs.cramfs sbin/mkfs.minix sbin/mkswap +sbin/nologin #sbin/pivot_root +sbin/raw sbin/sfdisk +sbin/swaplabel sbin/swapoff sbin/swapon +sbin/switch_root +sbin/wipefs #usr/bin/cal -#usr/bin/chkdupexe +#usr/bin/chrt #usr/bin/col #usr/bin/colcrt #usr/bin/colrm #usr/bin/column #usr/bin/cytune -#usr/bin/ddate -usr/bin/fdformat +usr/bin/eject +usr/bin/fallocate usr/bin/flock usr/bin/getopt #usr/bin/hexdump +usr/bin/ionice +#usr/bin/ipcmk #usr/bin/ipcrm #usr/bin/ipcs #usr/bin/isosize -#usr/bin/line +#usr/bin/linux32 +#usr/bin/linux64 usr/bin/logger #usr/bin/look +usr/bin/lscpu +usr/bin/lslocks #usr/bin/mcookie #usr/bin/namei +usr/bin/nsenter usr/bin/pg -#usr/bin/raw +usr/bin/prlimit usr/bin/rename usr/bin/renice #usr/bin/rev #usr/bin/script -#usr/bin/setfdprm +#usr/bin/scriptreplay +#usr/bin/setarch #usr/bin/setsid #usr/bin/setterm #usr/bin/tailf +#usr/bin/taskset #usr/bin/ul +#usr/bin/unshare #usr/bin/whereis -#usr/bin/write +#usr/include/libmount +#usr/include/libmount/libmount.h +#usr/lib/libblkid.la +#usr/lib/libmount.a +#usr/lib/libmount.la +usr/lib/libmount.so +#usr/lib/libuuid.la +#usr/lib/pkgconfig/mount.pc +usr/sbin/addpart +usr/sbin/delpart +usr/sbin/fdformat +usr/sbin/ldattach +usr/sbin/partx #usr/sbin/readprofile -#usr/sbin/tunelp -#usr/share/info/ipc.info +usr/sbin/resizepart +usr/sbin/rtcwake +#usr/share/bash-completion +#usr/share/bash-completion/completions +#usr/share/bash-completion/completions/addpart +#usr/share/bash-completion/completions/blkdiscard +#usr/share/bash-completion/completions/blkid +#usr/share/bash-completion/completions/blockdev +#usr/share/bash-completion/completions/cal +#usr/share/bash-completion/completions/cfdisk +#usr/share/bash-completion/completions/chcpu +#usr/share/bash-completion/completions/chrt +#usr/share/bash-completion/completions/col +#usr/share/bash-completion/completions/colcrt +#usr/share/bash-completion/completions/colrm +#usr/share/bash-completion/completions/column +#usr/share/bash-completion/completions/ctrlaltdel +#usr/share/bash-completion/completions/cytune +#usr/share/bash-completion/completions/delpart +#usr/share/bash-completion/completions/dmesg +#usr/share/bash-completion/completions/eject +#usr/share/bash-completion/completions/fallocate +#usr/share/bash-completion/completions/fdformat +#usr/share/bash-completion/completions/fdisk +#usr/share/bash-completion/completions/findmnt +#usr/share/bash-completion/completions/flock +#usr/share/bash-completion/completions/fsck +#usr/share/bash-completion/completions/fsck.cramfs +#usr/share/bash-completion/completions/fsck.minix +#usr/share/bash-completion/completions/fsfreeze +#usr/share/bash-completion/completions/fstrim +#usr/share/bash-completion/completions/getopt +#usr/share/bash-completion/completions/hexdump +#usr/share/bash-completion/completions/hwclock +#usr/share/bash-completion/completions/ionice +#usr/share/bash-completion/completions/ipcrm +#usr/share/bash-completion/completions/ipcs +#usr/share/bash-completion/completions/isosize +#usr/share/bash-completion/completions/ldattach +#usr/share/bash-completion/completions/logger +#usr/share/bash-completion/completions/look +#usr/share/bash-completion/completions/losetup +#usr/share/bash-completion/completions/lsblk +#usr/share/bash-completion/completions/lscpu +#usr/share/bash-completion/completions/lslocks +#usr/share/bash-completion/completions/mcookie +#usr/share/bash-completion/completions/mesg +#usr/share/bash-completion/completions/mkfs +#usr/share/bash-completion/completions/mkfs.bfs +#usr/share/bash-completion/completions/mkfs.cramfs +#usr/share/bash-completion/completions/mkfs.minix +#usr/share/bash-completion/completions/mkswap +#usr/share/bash-completion/completions/more +#usr/share/bash-completion/completions/mountpoint +#usr/share/bash-completion/completions/namei +#usr/share/bash-completion/completions/nsenter +#usr/share/bash-completion/completions/partx +#usr/share/bash-completion/completions/pg +#usr/share/bash-completion/completions/pivot_root +#usr/share/bash-completion/completions/prlimit +#usr/share/bash-completion/completions/raw +#usr/share/bash-completion/completions/readprofile +#usr/share/bash-completion/completions/rename +#usr/share/bash-completion/completions/renice +#usr/share/bash-completion/completions/resizepart +#usr/share/bash-completion/completions/rev +#usr/share/bash-completion/completions/rtcwake +#usr/share/bash-completion/completions/script +#usr/share/bash-completion/completions/scriptreplay +#usr/share/bash-completion/completions/setarch +#usr/share/bash-completion/completions/setsid +#usr/share/bash-completion/completions/setterm +#usr/share/bash-completion/completions/sfdisk +#usr/share/bash-completion/completions/swaplabel +#usr/share/bash-completion/completions/swapon +#usr/share/bash-completion/completions/tailf +#usr/share/bash-completion/completions/taskset +#usr/share/bash-completion/completions/ul +#usr/share/bash-completion/completions/unshare +#usr/share/bash-completion/completions/utmpdump +#usr/share/bash-completion/completions/uuidd +#usr/share/bash-completion/completions/uuidgen +#usr/share/bash-completion/completions/wall +#usr/share/bash-completion/completions/wdctl +#usr/share/bash-completion/completions/whereis +#usr/share/bash-completion/completions/wipefs +#usr/share/doc/util-linux +#usr/share/doc/util-linux/getopt +#usr/share/doc/util-linux/getopt/getopt-parse.bash +#usr/share/doc/util-linux/getopt/getopt-parse.tcsh #usr/share/locale/ca/LC_MESSAGES/util-linux.mo #usr/share/locale/cs/LC_MESSAGES/util-linux.mo #usr/share/locale/da/LC_MESSAGES/util-linux.mo @@ -67,12 +191,21 @@ usr/bin/renice #usr/share/locale/et #usr/share/locale/et/LC_MESSAGES #usr/share/locale/et/LC_MESSAGES/util-linux.mo +#usr/share/locale/eu +#usr/share/locale/eu/LC_MESSAGES +#usr/share/locale/eu/LC_MESSAGES/util-linux.mo #usr/share/locale/fi/LC_MESSAGES/util-linux.mo #usr/share/locale/fr/LC_MESSAGES/util-linux.mo +#usr/share/locale/gl/LC_MESSAGES/util-linux.mo +#usr/share/locale/hr/LC_MESSAGES/util-linux.mo +#usr/share/locale/hu/LC_MESSAGES/util-linux.mo +#usr/share/locale/id/LC_MESSAGES/util-linux.mo #usr/share/locale/it/LC_MESSAGES/util-linux.mo #usr/share/locale/ja/LC_MESSAGES/util-linux.mo #usr/share/locale/nl/LC_MESSAGES/util-linux.mo +#usr/share/locale/pl/LC_MESSAGES/util-linux.mo #usr/share/locale/pt_BR/LC_MESSAGES/util-linux.mo +#usr/share/locale/ru/LC_MESSAGES/util-linux.mo #usr/share/locale/sl #usr/share/locale/sl/LC_MESSAGES #usr/share/locale/sl/LC_MESSAGES/util-linux.mo @@ -81,68 +214,90 @@ usr/bin/renice #usr/share/locale/uk #usr/share/locale/uk/LC_MESSAGES #usr/share/locale/uk/LC_MESSAGES/util-linux.mo -#usr/share/man/man1/arch.1 +#usr/share/locale/vi/LC_MESSAGES/util-linux.mo +#usr/share/locale/zh_CN/LC_MESSAGES/util-linux.mo +#usr/share/locale/zh_TW/LC_MESSAGES/util-linux.mo #usr/share/man/man1/cal.1 -#usr/share/man/man1/chkdupexe.1 +#usr/share/man/man1/chrt.1 #usr/share/man/man1/col.1 #usr/share/man/man1/colcrt.1 #usr/share/man/man1/colrm.1 #usr/share/man/man1/column.1 -#usr/share/man/man1/ddate.1 +#usr/share/man/man1/dmesg.1 +#usr/share/man/man1/eject.1 +#usr/share/man/man1/fallocate.1 #usr/share/man/man1/flock.1 #usr/share/man/man1/getopt.1 #usr/share/man/man1/hexdump.1 -#usr/share/man/man1/line.1 +#usr/share/man/man1/ionice.1 +#usr/share/man/man1/ipcmk.1 +#usr/share/man/man1/ipcrm.1 +#usr/share/man/man1/ipcs.1 #usr/share/man/man1/look.1 +#usr/share/man/man1/lscpu.1 #usr/share/man/man1/mcookie.1 #usr/share/man/man1/more.1 #usr/share/man/man1/namei.1 +#usr/share/man/man1/nsenter.1 #usr/share/man/man1/pg.1 -#usr/share/man/man1/readprofile.1 +#usr/share/man/man1/prlimit.1 #usr/share/man/man1/rename.1 +#usr/share/man/man1/renice.1 #usr/share/man/man1/rev.1 #usr/share/man/man1/script.1 +#usr/share/man/man1/scriptreplay.1 +#usr/share/man/man1/setsid.1 #usr/share/man/man1/setterm.1 #usr/share/man/man1/tailf.1 +#usr/share/man/man1/taskset.1 #usr/share/man/man1/ul.1 +#usr/share/man/man1/unshare.1 #usr/share/man/man1/whereis.1 -#usr/share/man/man1/write.1 +#usr/share/man/man3/uuid_generate_time_safe.3 #usr/share/man/man5/fstab.5 -#usr/share/man/man5/nfs.5 +#usr/share/man/man8/addpart.8 #usr/share/man/man8/agetty.8 +#usr/share/man/man8/blkdiscard.8 #usr/share/man/man8/blockdev.8 #usr/share/man/man8/cfdisk.8 +#usr/share/man/man8/chcpu.8 #usr/share/man/man8/ctrlaltdel.8 #usr/share/man/man8/cytune.8 -#usr/share/man/man8/dmesg.8 -#usr/share/man/man8/elvtune.8 +#usr/share/man/man8/delpart.8 #usr/share/man/man8/fdformat.8 #usr/share/man/man8/fdisk.8 +#usr/share/man/man8/findmnt.8 +#usr/share/man/man8/fsck.cramfs.8 #usr/share/man/man8/fsck.minix.8 +#usr/share/man/man8/fsfreeze.8 +#usr/share/man/man8/fstrim.8 #usr/share/man/man8/hwclock.8 -#usr/share/man/man8/ipcrm.8 -#usr/share/man/man8/ipcs.8 #usr/share/man/man8/isosize.8 +#usr/share/man/man8/ldattach.8 +#usr/share/man/man8/linux32.8 +#usr/share/man/man8/linux64.8 #usr/share/man/man8/losetup.8 +#usr/share/man/man8/lsblk.8 +#usr/share/man/man8/lslocks.8 #usr/share/man/man8/mkfs.8 #usr/share/man/man8/mkfs.bfs.8 +#usr/share/man/man8/mkfs.cramfs.8 #usr/share/man/man8/mkfs.minix.8 #usr/share/man/man8/mkswap.8 #usr/share/man/man8/mount.8 +#usr/share/man/man8/nologin.8 +#usr/share/man/man8/partx.8 #usr/share/man/man8/pivot_root.8 #usr/share/man/man8/raw.8 -#usr/share/man/man8/renice.8 -#usr/share/man/man8/setfdprm.8 -#usr/share/man/man8/setsid.8 +#usr/share/man/man8/readprofile.8 +#usr/share/man/man8/resizepart.8 +#usr/share/man/man8/rtcwake.8 +#usr/share/man/man8/setarch.8 #usr/share/man/man8/sfdisk.8 -#usr/share/man/man8/sln.8 +#usr/share/man/man8/swaplabel.8 #usr/share/man/man8/swapoff.8 #usr/share/man/man8/swapon.8 -#usr/share/man/man8/tunelp.8 +#usr/share/man/man8/switch_root.8 #usr/share/man/man8/umount.8 -#usr/share/misc/getopt -#usr/share/misc/getopt/getopt-parse.bash -#usr/share/misc/getopt/getopt-parse.tcsh -#usr/share/misc/getopt/getopt-test.bash -#usr/share/misc/getopt/getopt-test.tcsh -var/lib/hwclock +#usr/share/man/man8/wdctl.8 +#usr/share/man/man8/wipefs.8 diff --git a/config/rootfiles/common/as86 b/config/rootfiles/common/as86 deleted file mode 100644 index 96a23e3..0000000 --- a/config/rootfiles/common/as86 +++ /dev/null @@ -1,5 +0,0 @@ -#usr/bin/as86 -#usr/bin/as86_encap -#var/ipfire/firebuild -#etc/system-release -#opt/pakfire/db/core/mine diff --git a/config/rootfiles/common/compat-drivers b/config/rootfiles/common/compat-drivers deleted file mode 100644 index 5a562d2..0000000 --- a/config/rootfiles/common/compat-drivers +++ /dev/null @@ -1,2 +0,0 @@ -lib/udev/rules.d/50-compat_firmware.rules -lib/udev/compat_firmware.sh diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot index 5a169d8..b1097cd 100644 --- a/config/rootfiles/common/configroot +++ b/config/rootfiles/common/configroot @@ -1,3 +1,8 @@ +usr/sbin/convert-dmz +usr/sbin/convert-outgoingfw +usr/sbin/convert-portfw +usr/sbin/convert-xtaccess +usr/sbin/firewall-policy #var/ipfire var/ipfire/addon-lang var/ipfire/auth @@ -26,8 +31,6 @@ var/ipfire/dhcp #var/ipfire/dhcp/fixleases #var/ipfire/dhcp/settings var/ipfire/dhcpc -var/ipfire/dmzholes -#var/ipfire/dmzholes/config var/ipfire/dns #var/ipfire/dns/settings var/ipfire/dnsforward @@ -39,13 +42,31 @@ var/ipfire/ethernet #var/ipfire/ethernet/settings #var/ipfire/ethernet/vlans #var/ipfire/ethernet/wireless -#var/ipfire/extrahd +var/ipfire/extrahd #var/ipfire/extrahd/bin -var/ipfire/extrahd/bin/extrahd.pl -var/ipfire/extrahd/devices -var/ipfire/extrahd/partitions -var/ipfire/extrahd/scan -var/ipfire/extrahd/settings +#var/ipfire/extrahd/bin/extrahd.pl +#var/ipfire/extrahd/devices +#var/ipfire/extrahd/partitions +#var/ipfire/extrahd/scan +#var/ipfire/extrahd/settings +var/ipfire/firewall +#var/ipfire/firewall/bin +#var/ipfire/firewall/bin/firewall-lib.pl +#var/ipfire/firewall/bin/rules.pl +#var/ipfire/firewall/config +#var/ipfire/firewall/dmz +#var/ipfire/firewall/input +#var/ipfire/firewall/nat +#var/ipfire/firewall/outgoing +#var/ipfire/firewall/p2protocols +#var/ipfire/firewall/settings +var/ipfire/fwhosts +#var/ipfire/fwhosts/customgroups +#var/ipfire/fwhosts/customhosts +#var/ipfire/fwhosts/customnetworks +#var/ipfire/fwhosts/customservicegrp +#var/ipfire/fwhosts/customservices +#var/ipfire/fwhosts/icmp-types var/ipfire/fwlogs #var/ipfire/fwlogs/ipsettings #var/ipfire/fwlogs/portsettings @@ -106,24 +127,14 @@ var/ipfire/net-traffic #var/ipfire/nfs/nfs-server var/ipfire/optionsfw #var/ipfire/optionsfw/settings -var/ipfire/outgoing -#var/ipfire/outgoing/bin -#var/ipfire/outgoing/bin/outgoingfw.pl -var/ipfire/outgoing/defaultservices -#var/ipfire/outgoing/groups -#var/ipfire/outgoing/groups/ipgroups -#var/ipfire/outgoing/groups/macgroups -#var/ipfire/outgoing/p2protocols -#var/ipfire/outgoing/rules -#var/ipfire/outgoing/settings var/ipfire/ovpn -var/ipfire/ovpn/ccd.conf -var/ipfire/ovpn/ccdroute -var/ipfire/ovpn/ccdroute2 +#var/ipfire/ovpn/ccd.conf +#var/ipfire/ovpn/ccdroute +#var/ipfire/ovpn/ccdroute2 var/ipfire/pakfire #var/ipfire/pakfire/settings #var/ipfire/patches -var/ipfire/portfw +#var/ipfire/portfw #var/ipfire/portfw/config var/ipfire/ppp #var/ipfire/ppp/fake-resolv.conf @@ -189,7 +200,3 @@ var/ipfire/wakeonlan var/ipfire/wireless #var/ipfire/wireless/config #var/ipfire/wireless/settings -var/ipfire/xtaccess -#var/ipfire/xtaccess/config -var/ipfire/firebuild -etc/system-release diff --git a/config/rootfiles/common/cyrus-sasl b/config/rootfiles/common/cyrus-sasl index 4fe13bc..287ef37 100644 --- a/config/rootfiles/common/cyrus-sasl +++ b/config/rootfiles/common/cyrus-sasl @@ -37,53 +37,54 @@ usr/lib/sasl2/libsasldb.so usr/lib/sasl2/libsasldb.so.2 usr/lib/sasl2/libsasldb.so.2.0.21 usr/lib/sasl2/smtpd.conf -#usr/man/man3/sasl.3 -#usr/man/man3/sasl_authorize_t.3 -#usr/man/man3/sasl_auxprop.3 -#usr/man/man3/sasl_auxprop_getctx.3 -#usr/man/man3/sasl_auxprop_request.3 -#usr/man/man3/sasl_callbacks.3 -#usr/man/man3/sasl_canon_user_t.3 -#usr/man/man3/sasl_chalprompt_t.3 -#usr/man/man3/sasl_checkapop.3 -#usr/man/man3/sasl_checkpass.3 -#usr/man/man3/sasl_client_init.3 -#usr/man/man3/sasl_client_new.3 -#usr/man/man3/sasl_client_start.3 -#usr/man/man3/sasl_client_step.3 -#usr/man/man3/sasl_decode.3 -#usr/man/man3/sasl_dispose.3 -#usr/man/man3/sasl_done.3 -#usr/man/man3/sasl_encode.3 -#usr/man/man3/sasl_encodev.3 -#usr/man/man3/sasl_errdetail.3 -#usr/man/man3/sasl_errors.3 -#usr/man/man3/sasl_errstring.3 -#usr/man/man3/sasl_getopt_t.3 -#usr/man/man3/sasl_getpath_t.3 -#usr/man/man3/sasl_getprop.3 -#usr/man/man3/sasl_getrealm_t.3 -#usr/man/man3/sasl_getsecret_t.3 -#usr/man/man3/sasl_getsimple_t.3 -#usr/man/man3/sasl_global_listmech.3 -#usr/man/man3/sasl_idle.3 -#usr/man/man3/sasl_listmech.3 -#usr/man/man3/sasl_log_t.3 -#usr/man/man3/sasl_server_init.3 -#usr/man/man3/sasl_server_new.3 -#usr/man/man3/sasl_server_start.3 -#usr/man/man3/sasl_server_step.3 -#usr/man/man3/sasl_server_userdb_checkpass_t.3 -#usr/man/man3/sasl_server_userdb_setpass_t.3 -#usr/man/man3/sasl_setpass.3 -#usr/man/man3/sasl_setprop.3 -#usr/man/man3/sasl_user_exists.3 -#usr/man/man3/sasl_verifyfile_t.3 -#usr/man/man8/saslauthd.8 -#usr/man/man8/sasldblistusers2.8 -#usr/man/man8/saslpasswd2.8 +#usr/man/cat8 +#usr/man/cat8/saslauthd.8 usr/sbin/saslauthd usr/sbin/sasldblistusers2 usr/sbin/saslpasswd2 +#usr/share/man/man3/sasl.3 +#usr/share/man/man3/sasl_authorize_t.3 +#usr/share/man/man3/sasl_auxprop.3 +#usr/share/man/man3/sasl_auxprop_getctx.3 +#usr/share/man/man3/sasl_auxprop_request.3 +#usr/share/man/man3/sasl_callbacks.3 +#usr/share/man/man3/sasl_canon_user_t.3 +#usr/share/man/man3/sasl_chalprompt_t.3 +#usr/share/man/man3/sasl_checkapop.3 +#usr/share/man/man3/sasl_checkpass.3 +#usr/share/man/man3/sasl_client_init.3 +#usr/share/man/man3/sasl_client_new.3 +#usr/share/man/man3/sasl_client_start.3 +#usr/share/man/man3/sasl_client_step.3 +#usr/share/man/man3/sasl_decode.3 +#usr/share/man/man3/sasl_dispose.3 +#usr/share/man/man3/sasl_done.3 +#usr/share/man/man3/sasl_encode.3 +#usr/share/man/man3/sasl_encodev.3 +#usr/share/man/man3/sasl_errdetail.3 +#usr/share/man/man3/sasl_errors.3 +#usr/share/man/man3/sasl_errstring.3 +#usr/share/man/man3/sasl_getopt_t.3 +#usr/share/man/man3/sasl_getpath_t.3 +#usr/share/man/man3/sasl_getprop.3 +#usr/share/man/man3/sasl_getrealm_t.3 +#usr/share/man/man3/sasl_getsecret_t.3 +#usr/share/man/man3/sasl_getsimple_t.3 +#usr/share/man/man3/sasl_global_listmech.3 +#usr/share/man/man3/sasl_idle.3 +#usr/share/man/man3/sasl_listmech.3 +#usr/share/man/man3/sasl_log_t.3 +#usr/share/man/man3/sasl_server_init.3 +#usr/share/man/man3/sasl_server_new.3 +#usr/share/man/man3/sasl_server_start.3 +#usr/share/man/man3/sasl_server_step.3 +#usr/share/man/man3/sasl_server_userdb_checkpass_t.3 +#usr/share/man/man3/sasl_server_userdb_setpass_t.3 +#usr/share/man/man3/sasl_setpass.3 +#usr/share/man/man3/sasl_setprop.3 +#usr/share/man/man3/sasl_user_exists.3 +#usr/share/man/man3/sasl_verifyfile_t.3 +#usr/share/man/man8/sasldblistusers2.8 +#usr/share/man/man8/saslpasswd2.8 var/lib/sasl var/run/saslauthd diff --git a/config/rootfiles/common/dosfstools b/config/rootfiles/common/dosfstools index 2a1b0ef..4b38c29 100644 --- a/config/rootfiles/common/dosfstools +++ b/config/rootfiles/common/dosfstools @@ -5,6 +5,7 @@ sbin/fsck.vfat sbin/mkdosfs sbin/mkfs.msdos sbin/mkfs.vfat +#share #share/doc #share/doc/dosfstools #share/doc/dosfstools/ANNOUNCE.mkdosfs @@ -16,6 +17,8 @@ sbin/mkfs.vfat #share/doc/dosfstools/README.dosfstools-2.x #share/doc/dosfstools/README.mkdosfs #share/doc/dosfstools/TODO.dosfstools-2.x +#share/man +#share/man/man8 #share/man/man8/dosfsck.8 #share/man/man8/dosfslabel.8 #share/man/man8/fsck.msdos.8 diff --git a/config/rootfiles/common/dvb-firmwares b/config/rootfiles/common/dvb-firmwares index 3a521b1..53dec97 100644 --- a/config/rootfiles/common/dvb-firmwares +++ b/config/rootfiles/common/dvb-firmwares @@ -21,3 +21,4 @@ lib/firmware/dvb-usb-vp702x-01.fw lib/firmware/dvb-usb-vp7045-01.fw lib/firmware/dvb-usb-wt220u-01.fw lib/firmware/dvb-usb-wt220u-02.fw +lib/firmware/v4l-cx23885-enc.fw diff --git a/config/rootfiles/common/eject b/config/rootfiles/common/eject deleted file mode 100644 index 988d1b7..0000000 --- a/config/rootfiles/common/eject +++ /dev/null @@ -1,14 +0,0 @@ -usr/bin/eject -usr/bin/volname -#usr/man/man1/eject.1 -#usr/man/man1/volname.1 -#usr/share/locale/cs_CZ -#usr/share/locale/cs_CZ/LC_MESSAGES -#usr/share/locale/cs_CZ/LC_MESSAGES/eject.mo -#usr/share/locale/de/LC_MESSAGES/eject.mo -#usr/share/locale/es/LC_MESSAGES/eject.mo -#usr/share/locale/fr/LC_MESSAGES/eject.mo -#usr/share/locale/ja/LC_MESSAGES/eject.mo -#usr/share/locale/pt_BR/LC_MESSAGES/eject.mo -#usr/share/locale/tr/LC_MESSAGES/eject.mo -#usr/share/locale/zh_TW/LC_MESSAGES/eject.mo diff --git a/config/rootfiles/common/fireinfo b/config/rootfiles/common/fireinfo index ab7ecef..a4e209f 100644 --- a/config/rootfiles/common/fireinfo +++ b/config/rootfiles/common/fireinfo @@ -1,15 +1,27 @@ usr/bin/sendprofile -usr/lib/python2.7/site-packages/_fireinfo.so usr/lib/python2.7/site-packages/fireinfo usr/lib/python2.7/site-packages/fireinfo/__init__.py usr/lib/python2.7/site-packages/fireinfo/__init__.pyc +usr/lib/python2.7/site-packages/fireinfo/__init__.pyo +#usr/lib/python2.7/site-packages/fireinfo/_fireinfo.la +usr/lib/python2.7/site-packages/fireinfo/_fireinfo.so +usr/lib/python2.7/site-packages/fireinfo/bios.py +usr/lib/python2.7/site-packages/fireinfo/bios.pyc +usr/lib/python2.7/site-packages/fireinfo/bios.pyo usr/lib/python2.7/site-packages/fireinfo/cpu.py usr/lib/python2.7/site-packages/fireinfo/cpu.pyc +usr/lib/python2.7/site-packages/fireinfo/cpu.pyo usr/lib/python2.7/site-packages/fireinfo/device.py usr/lib/python2.7/site-packages/fireinfo/device.pyc +usr/lib/python2.7/site-packages/fireinfo/device.pyo usr/lib/python2.7/site-packages/fireinfo/hypervisor.py usr/lib/python2.7/site-packages/fireinfo/hypervisor.pyc +usr/lib/python2.7/site-packages/fireinfo/hypervisor.pyo usr/lib/python2.7/site-packages/fireinfo/network.py usr/lib/python2.7/site-packages/fireinfo/network.pyc +usr/lib/python2.7/site-packages/fireinfo/network.pyo usr/lib/python2.7/site-packages/fireinfo/system.py usr/lib/python2.7/site-packages/fireinfo/system.pyc +usr/lib/python2.7/site-packages/fireinfo/system.pyo +usr/share/doc/fireinfo +usr/share/doc/fireinfo/COPYING diff --git a/config/rootfiles/common/fstrim b/config/rootfiles/common/fstrim deleted file mode 100644 index 775fa92..0000000 --- a/config/rootfiles/common/fstrim +++ /dev/null @@ -1,2 +0,0 @@ -etc/fcron.daily/trim -usr/bin/fstrim diff --git a/config/rootfiles/common/i586/dracut b/config/rootfiles/common/i586/dracut index cb57182..27d8243 100644 --- a/config/rootfiles/common/i586/dracut +++ b/config/rootfiles/common/i586/dracut @@ -7,7 +7,6 @@ sbin/dracut-catimages sbin/dracut-gencmdline sbin/lsinitrd sbin/mkinitrd -sbin/switch_root usr/share/dracut usr/share/dracut/dracut-functions usr/share/dracut/modules.d @@ -52,6 +51,7 @@ usr/share/dracut/modules.d/99base/check usr/share/dracut/modules.d/99base/dracut-lib.sh usr/share/dracut/modules.d/99base/init usr/share/dracut/modules.d/99base/initqueue +#usr/share/dracut/modules.d/99base/init~ usr/share/dracut/modules.d/99base/install usr/share/dracut/modules.d/99base/loginit usr/share/dracut/modules.d/99base/parse-blacklist.sh @@ -60,3 +60,4 @@ usr/share/dracut/modules.d/99base/parse-root-opts.sh #usr/share/man/man8/dracut-catimages.8 #usr/share/man/man8/dracut-gencmdline.8 #usr/share/man/man8/dracut.8 +sbin/switch_root diff --git a/config/rootfiles/common/i586/initscripts b/config/rootfiles/common/i586/initscripts index 3aca59e..ca47f80 100644 --- a/config/rootfiles/common/i586/initscripts +++ b/config/rootfiles/common/i586/initscripts @@ -83,11 +83,9 @@ etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq etc/rc.d/init.d/networking/red.up/10-miniupnpd etc/rc.d/init.d/networking/red.up/10-multicast etc/rc.d/init.d/networking/red.up/20-RL-firewall -etc/rc.d/init.d/networking/red.up/22-outgoingfwctrl +etc/rc.d/init.d/networking/red.up/22-forwardfwctrl etc/rc.d/init.d/networking/red.up/23-RS-snort etc/rc.d/init.d/networking/red.up/24-RS-qos -etc/rc.d/init.d/networking/red.up/25-portfw -etc/rc.d/init.d/networking/red.up/26-xtaccess etc/rc.d/init.d/networking/red.up/27-RS-squid etc/rc.d/init.d/networking/red.up/30-ddns etc/rc.d/init.d/networking/red.up/40-ipac diff --git a/config/rootfiles/common/i586/linux b/config/rootfiles/common/i586/linux index 20b6410..93ed567 100644 --- a/config/rootfiles/common/i586/linux +++ b/config/rootfiles/common/i586/linux @@ -3,42 +3,40 @@ boot/System.map-ipfire boot/config-KVER-ipfire boot/vmlinuz-KVER-ipfire boot/vmlinuz-ipfire -etc/modprobe.d/framebuffer -etc/modprobe.d/ipv6 -etc/modprobe.d/isdn +etc/modprobe.d/framebuffer.conf +etc/modprobe.d/ipv6.conf +etc/modprobe.d/isdn.conf lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/build #lib/modules/KVER-ipfire/kernel #lib/modules/KVER-ipfire/kernel/arch #lib/modules/KVER-ipfire/kernel/arch/x86 #lib/modules/KVER-ipfire/kernel/arch/x86/crypto -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aes-i586.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aesni-intel.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/crc32c-intel.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/salsa20-i586.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/crc32-pclmul.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/glue_helper.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/serpent-sse2-i586.ko #lib/modules/KVER-ipfire/kernel/arch/x86/crypto/twofish-i586.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/apm.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/mcheck -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/microcode.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/msr.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/test_nx.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm-amd.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm-intel.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm.ko #lib/modules/KVER-ipfire/kernel/arch/x86/platform +#lib/modules/KVER-ipfire/kernel/arch/x86/platform/iris +#lib/modules/KVER-ipfire/kernel/arch/x86/platform/iris/iris.ko #lib/modules/KVER-ipfire/kernel/arch/x86/platform/scx200 #lib/modules/KVER-ipfire/kernel/arch/x86/platform/scx200/scx200.ko #lib/modules/KVER-ipfire/kernel/crypto -#lib/modules/KVER-ipfire/kernel/crypto/aes_generic.ko -#lib/modules/KVER-ipfire/kernel/crypto/af_alg.ko -#lib/modules/KVER-ipfire/kernel/crypto/algif_hash.ko -#lib/modules/KVER-ipfire/kernel/crypto/algif_skcipher.ko #lib/modules/KVER-ipfire/kernel/crypto/ansi_cprng.ko #lib/modules/KVER-ipfire/kernel/crypto/anubis.ko #lib/modules/KVER-ipfire/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire/kernel/crypto/asymmetric_keys +#lib/modules/KVER-ipfire/kernel/crypto/asymmetric_keys/asymmetric_keys.ko +#lib/modules/KVER-ipfire/kernel/crypto/asymmetric_keys/public_key.ko +#lib/modules/KVER-ipfire/kernel/crypto/asymmetric_keys/rsa.ko +#lib/modules/KVER-ipfire/kernel/crypto/asymmetric_keys/x509_key_parser.ko #lib/modules/KVER-ipfire/kernel/crypto/async_tx #lib/modules/KVER-ipfire/kernel/crypto/async_tx/async_memcpy.ko #lib/modules/KVER-ipfire/kernel/crypto/async_tx/async_pq.ko @@ -50,27 +48,22 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/authencesn.ko #lib/modules/KVER-ipfire/kernel/crypto/blowfish_common.ko #lib/modules/KVER-ipfire/kernel/crypto/blowfish_generic.ko -#lib/modules/KVER-ipfire/kernel/crypto/camellia.ko -#lib/modules/KVER-ipfire/kernel/crypto/cast5.ko -#lib/modules/KVER-ipfire/kernel/crypto/cast6.ko -#lib/modules/KVER-ipfire/kernel/crypto/cbc.ko +#lib/modules/KVER-ipfire/kernel/crypto/camellia_generic.ko +#lib/modules/KVER-ipfire/kernel/crypto/cast5_generic.ko +#lib/modules/KVER-ipfire/kernel/crypto/cast6_generic.ko +#lib/modules/KVER-ipfire/kernel/crypto/cast_common.ko #lib/modules/KVER-ipfire/kernel/crypto/ccm.ko -#lib/modules/KVER-ipfire/kernel/crypto/crc32c.ko -#lib/modules/KVER-ipfire/kernel/crypto/cryptd.ko -#lib/modules/KVER-ipfire/kernel/crypto/crypto_user.ko -#lib/modules/KVER-ipfire/kernel/crypto/ctr.ko +#lib/modules/KVER-ipfire/kernel/crypto/cmac.ko +#lib/modules/KVER-ipfire/kernel/crypto/crypto_null.ko #lib/modules/KVER-ipfire/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire/kernel/crypto/deflate.ko #lib/modules/KVER-ipfire/kernel/crypto/des_generic.ko -#lib/modules/KVER-ipfire/kernel/crypto/ecb.ko #lib/modules/KVER-ipfire/kernel/crypto/fcrypt.ko #lib/modules/KVER-ipfire/kernel/crypto/gcm.ko -#lib/modules/KVER-ipfire/kernel/crypto/gf128mul.ko #lib/modules/KVER-ipfire/kernel/crypto/ghash-generic.ko #lib/modules/KVER-ipfire/kernel/crypto/khazad.ko -#lib/modules/KVER-ipfire/kernel/crypto/lrw.ko #lib/modules/KVER-ipfire/kernel/crypto/lzo.ko #lib/modules/KVER-ipfire/kernel/crypto/md4.ko -#lib/modules/KVER-ipfire/kernel/crypto/md5.ko #lib/modules/KVER-ipfire/kernel/crypto/michael_mic.ko #lib/modules/KVER-ipfire/kernel/crypto/pcbc.ko #lib/modules/KVER-ipfire/kernel/crypto/pcrypt.ko @@ -80,11 +73,10 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/rmd320.ko #lib/modules/KVER-ipfire/kernel/crypto/salsa20_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/seed.ko -#lib/modules/KVER-ipfire/kernel/crypto/seqiv.ko -#lib/modules/KVER-ipfire/kernel/crypto/serpent.ko +#lib/modules/KVER-ipfire/kernel/crypto/serpent_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/sha1_generic.ko -#lib/modules/KVER-ipfire/kernel/crypto/sha256_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire/kernel/crypto/tcrypt.ko #lib/modules/KVER-ipfire/kernel/crypto/tea.ko #lib/modules/KVER-ipfire/kernel/crypto/tgr192.ko #lib/modules/KVER-ipfire/kernel/crypto/twofish_common.ko @@ -93,32 +85,21 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/wp512.ko #lib/modules/KVER-ipfire/kernel/crypto/xcbc.ko #lib/modules/KVER-ipfire/kernel/crypto/xor.ko -#lib/modules/KVER-ipfire/kernel/crypto/xts.ko #lib/modules/KVER-ipfire/kernel/crypto/zlib.ko #lib/modules/KVER-ipfire/kernel/drivers #lib/modules/KVER-ipfire/kernel/drivers/acpi -#lib/modules/KVER-ipfire/kernel/drivers/acpi/ac.ko +#lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_i2c.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_ipmi.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_pad.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/battery.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/button.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/container.ko +#lib/modules/KVER-ipfire/kernel/drivers/acpi/custom_method.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/ec_sys.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/fan.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/pci_slot.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/processor.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/sbs.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/sbshc.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/thermal.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/video.ko #lib/modules/KVER-ipfire/kernel/drivers/ata #lib/modules/KVER-ipfire/kernel/drivers/ata/acard-ahci.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/ahci.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/ahci_platform.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/ata_generic.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/ata_piix.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/libahci.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/libata.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_acpi.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_ali.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_amd.ko @@ -130,7 +111,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cmd64x.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cs5520.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cs5530.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cs5535.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cs5536.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_cypress.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_efar.ko @@ -156,6 +136,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pdc2027x.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pdc202xx_old.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_piccolo.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_platform.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_radisys.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_rdc.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_rz1000.ko @@ -168,6 +149,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_triflex.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_via.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pdc_adma.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/sata_highbank.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_inic162x.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_mv.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_nv.ko @@ -189,7 +171,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/atm/fore_200e.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/he.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/horizon.ko -#lib/modules/KVER-ipfire/kernel/drivers/atm/idt77105.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/idt77252.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/iphase.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/lanai.ko @@ -201,20 +182,19 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/base #lib/modules/KVER-ipfire/kernel/drivers/base/regmap #lib/modules/KVER-ipfire/kernel/drivers/base/regmap/regmap-i2c.ko -#lib/modules/KVER-ipfire/kernel/drivers/bcma -#lib/modules/KVER-ipfire/kernel/drivers/bcma/bcma.ko #lib/modules/KVER-ipfire/kernel/drivers/block #lib/modules/KVER-ipfire/kernel/drivers/block/DAC960.ko -#lib/modules/KVER-ipfire/kernel/drivers/block/aoe -#lib/modules/KVER-ipfire/kernel/drivers/block/aoe/aoe.ko #lib/modules/KVER-ipfire/kernel/drivers/block/cciss.ko #lib/modules/KVER-ipfire/kernel/drivers/block/cpqarray.ko #lib/modules/KVER-ipfire/kernel/drivers/block/cryptoloop.ko #lib/modules/KVER-ipfire/kernel/drivers/block/floppy.ko -#lib/modules/KVER-ipfire/kernel/drivers/block/nbd.ko -#lib/modules/KVER-ipfire/kernel/drivers/block/osdblk.ko -#lib/modules/KVER-ipfire/kernel/drivers/block/rbd.ko +#lib/modules/KVER-ipfire/kernel/drivers/block/mtip32xx +#lib/modules/KVER-ipfire/kernel/drivers/block/mtip32xx/mtip32xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/block/nvme.ko +#lib/modules/KVER-ipfire/kernel/drivers/block/rsxx +#lib/modules/KVER-ipfire/kernel/drivers/block/rsxx/rsxx.ko #lib/modules/KVER-ipfire/kernel/drivers/block/sx8.ko +#lib/modules/KVER-ipfire/kernel/drivers/block/umem.ko #lib/modules/KVER-ipfire/kernel/drivers/block/virtio_blk.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/ath3k.ko @@ -222,38 +202,22 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bfusb.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bluecard_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bpa10x.ko -#lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bt3c_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btmrvl.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btmrvl_sdio.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btsdio.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btuart_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btusb.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btwilink.ko -#lib/modules/KVER-ipfire/kernel/drivers/bluetooth/dtl1_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/hci_uart.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/hci_vhci.ko -#lib/modules/KVER-ipfire/kernel/drivers/cdrom -#lib/modules/KVER-ipfire/kernel/drivers/cdrom/cdrom.ko #lib/modules/KVER-ipfire/kernel/drivers/char -#lib/modules/KVER-ipfire/kernel/drivers/char/agp -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/agpgart.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/ali-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/amd-k7-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/amd64-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/ati-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/efficeon-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/intel-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/intel-gtt.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/nvidia-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/sis-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/sworks-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/agp/via-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hangcheck-timer.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/amd-rng.ko +#lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/atmel-rng.ko +#lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/exynos-rng.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/geode-rng.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/intel-rng.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/rng-core.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/timeriomem-rng.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/via-rng.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/virtio-rng.ko @@ -268,39 +232,18 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/char/mwave #lib/modules/KVER-ipfire/kernel/drivers/char/mwave/mwave.ko #lib/modules/KVER-ipfire/kernel/drivers/char/nsc_gpio.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/nvram.ko #lib/modules/KVER-ipfire/kernel/drivers/char/pc8736x_gpio.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia -#lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia/synclink_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/char/ppdev.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/scx200_gpio.ko +#lib/modules/KVER-ipfire/kernel/drivers/char/sonypi.ko #lib/modules/KVER-ipfire/kernel/drivers/char/toshiba.ko #lib/modules/KVER-ipfire/kernel/drivers/clocksource #lib/modules/KVER-ipfire/kernel/drivers/clocksource/cs5535-clockevt.ko #lib/modules/KVER-ipfire/kernel/drivers/clocksource/scx200_hrt.ko -#lib/modules/KVER-ipfire/kernel/drivers/connector -#lib/modules/KVER-ipfire/kernel/drivers/connector/cn.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/acpi-cpufreq.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq-nforce2.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_conservative.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_ondemand.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_powersave.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_userspace.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/e_powersaver.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/gx-suspmod.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/longhaul.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/longrun.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/mperf.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/p4-clockmod.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/pcc-cpufreq.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k6.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k7.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k8.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-centrino.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-ich.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-lib.ko -#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-smi.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_stats.ko #lib/modules/KVER-ipfire/kernel/drivers/crypto #lib/modules/KVER-ipfire/kernel/drivers/crypto/geode-aes.ko.off #lib/modules/KVER-ipfire/kernel/drivers/crypto/hifn_795x.ko @@ -309,50 +252,66 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/dca #lib/modules/KVER-ipfire/kernel/drivers/dca/dca.ko #lib/modules/KVER-ipfire/kernel/drivers/dma -#lib/modules/KVER-ipfire/kernel/drivers/dma/dmatest.ko -#lib/modules/KVER-ipfire/kernel/drivers/dma/intel_mid_dma.ko +#lib/modules/KVER-ipfire/kernel/drivers/dma/dw_dmac.ko #lib/modules/KVER-ipfire/kernel/drivers/dma/ioat #lib/modules/KVER-ipfire/kernel/drivers/dma/ioat/ioatdma.ko #lib/modules/KVER-ipfire/kernel/drivers/dma/pch_dma.ko #lib/modules/KVER-ipfire/kernel/drivers/dma/timb_dma.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac +#lib/modules/KVER-ipfire/kernel/drivers/edac/e752x_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/edac_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/edac_mce_amd.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i3000_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i3200_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i5000_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i5100_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i5400_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i7300_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i7core_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/i82975x_edac.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/mce_amd_inj.ko +#lib/modules/KVER-ipfire/kernel/drivers/edac/x38_edac.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-net.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-ohci.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-sbp2.ko #lib/modules/KVER-ipfire/kernel/drivers/firmware -#lib/modules/KVER-ipfire/kernel/drivers/firmware/dmi-sysfs.ko +#lib/modules/KVER-ipfire/kernel/drivers/firmware/dcdbas.ko +#lib/modules/KVER-ipfire/kernel/drivers/firmware/dell_rbu.ko +#lib/modules/KVER-ipfire/kernel/drivers/firmware/edd.ko #lib/modules/KVER-ipfire/kernel/drivers/firmware/iscsi_ibft.ko -#lib/modules/KVER-ipfire/kernel/drivers/firmware/sigma.ko #lib/modules/KVER-ipfire/kernel/drivers/gpio -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-adp5588.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-cs5535.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-generic.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-it8761e.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-janz-ttl.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max7300.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max730x.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max732x.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-mcp23s08.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-ml-ioh.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pca953x.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pcf857x.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pch.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-rdc321x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-ich.ko #lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-sch.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-vx855.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-ts5500.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-viperboard.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/ast +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/ast/ast.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/cirrus +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/cirrus/cirrus.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm_kms_helper.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm_usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/gma500 +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/gma500/gma500_gfx.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i2c +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i2c/ch7006.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i2c/sil164.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i2c/tda998x.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i810 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i810/i810.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i915 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i915/i915.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mga #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mgag200 +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mgag200/mgag200.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/nouveau #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/nouveau/nouveau.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/qxl +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/qxl/qxl.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/r128 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/r128/r128.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/radeon @@ -365,70 +324,49 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/tdfx/tdfx.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/ttm #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/ttm/ttm.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/udl +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/udl/udl.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/via #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/via/via.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/vmwgfx #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpu/stub -#lib/modules/KVER-ipfire/kernel/drivers/gpu/stub/poulsbo.ko #lib/modules/KVER-ipfire/kernel/drivers/hid -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-apple.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-axff.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-belkin.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-cherry.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-chicony.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-dr.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-elecom.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ezkey.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-gaff.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-aureal.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-gyration.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-holtekff.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-kensington.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-keytouch.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-kye.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-lenovo-tpkbd.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-logitech-dj.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-logitech.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-magicmouse.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-monterey.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-multitouch.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ntrig.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ortek.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-petalynx.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-picolcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-pl.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-primax.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-prodikeys.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-quanta.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-arvo.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-isku.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-kone.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-konepure.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-lua.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-savu.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-saitek.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-samsung.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sjoy.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sensor-hub.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-speedlink.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sunplus.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-tmff.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-thingm.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-tivo.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-topseed.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-twinhan.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-uclogic.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-wacom.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-waltop.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-wiimote.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-zpff.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-zydacron.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/usbhid -#lib/modules/KVER-ipfire/kernel/drivers/hid/usbhid/usbhid.ko -#lib/modules/KVER-ipfire/kernel/drivers/hv -#lib/modules/KVER-ipfire/kernel/drivers/hv/hv_utils.ko -#lib/modules/KVER-ipfire/kernel/drivers/hv/hv_vmbus.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/i2c-hid +#lib/modules/KVER-ipfire/kernel/drivers/hid/i2c-hid/i2c-hid.ko +#lib/modules/KVER-ipfire/kernel/drivers/hsi +#lib/modules/KVER-ipfire/kernel/drivers/hsi/clients +#lib/modules/KVER-ipfire/kernel/drivers/hsi/clients/hsi_char.ko +#lib/modules/KVER-ipfire/kernel/drivers/hsi/hsi.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon #lib/modules/KVER-ipfire/kernel/drivers/hwmon/abituguru.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/abituguru3.ko @@ -443,10 +381,12 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm9240.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ads1015.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7410.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7411.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7462.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7470.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7x10.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/amc6821.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/applesmc.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/asb100.ko @@ -458,7 +398,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ds1621.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ds620.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc1403.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc2103.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc6w201.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f71805f.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f71882fg.ko @@ -468,14 +407,14 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/g760a.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/gl518sm.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/hih6130.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/hwmon-vid.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/hwmon.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/i5k_amb.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ibmaem.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ina209.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ina2xx.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/it87.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/jc42.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/k10temp.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/k8temp.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lineage-pem.ko @@ -491,6 +430,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm90.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm92.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95234.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95241.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95245.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4151.ko @@ -500,9 +440,13 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max16065.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max1619.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max197.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6639.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6642.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6697.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/mcp3021.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/nct6775.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ntc_thermistor.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pc87360.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pc87427.ko @@ -510,7 +454,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/adm1275.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/lm25066.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ltc2978.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max16064.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max34440.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max8688.ko @@ -518,14 +461,12 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/pmbus_core.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ucd9000.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ucd9200.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/zl6100.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch5627.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch5636.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch56xx-common.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sht15.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sht21.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sis5595.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/smm665.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47b397.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47m1.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47m192.ko @@ -557,20 +498,17 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd756.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-cbus-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-platform.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-eg20t.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-i801.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-intel-mid.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-isch.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-ismt.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-nforce2.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-ocores.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-parport-light.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-parport.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-pca-isa.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-pca-platform.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-piix4.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-scmi.ko @@ -578,66 +516,55 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis5595.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis630.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis96x.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-stub.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-taos-evm.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-tiny-usb.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-via.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-xiic.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-viperboard.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/scx200_acb.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-core.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-dev.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-mux.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-smbus.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes -#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/gpio-i2cmux.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/pca9541.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/pca954x.ko -#lib/modules/KVER-ipfire/kernel/drivers/ieee802154 -#lib/modules/KVER-ipfire/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire/kernel/drivers/iio +#lib/modules/KVER-ipfire/kernel/drivers/iio/common +#lib/modules/KVER-ipfire/kernel/drivers/iio/common/hid-sensors +#lib/modules/KVER-ipfire/kernel/drivers/iio/common/hid-sensors/hid-sensor-iio-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/iio/common/hid-sensors/hid-sensor-trigger.ko +#lib/modules/KVER-ipfire/kernel/drivers/iio/industrialio.ko +#lib/modules/KVER-ipfire/kernel/drivers/iio/kfifo_buf.ko #lib/modules/KVER-ipfire/kernel/drivers/input -#lib/modules/KVER-ipfire/kernel/drivers/input/ff-memless.ko #lib/modules/KVER-ipfire/kernel/drivers/input/input-polldev.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/adp5588-keys.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/adp5589-keys.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/gpio_keys.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/gpio_keys_polled.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lkkbd.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lm8323.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/matrix_keypad.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/max7359_keypad.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/mcs_touchkey.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/mpr121_touchkey.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/newtonkbd.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/opencores-kbd.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/qt1070.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/qt2160.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/stowaway.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/sunkbd.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/tca6416-keypad.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lm8333.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/matrix-keymap.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ad714x-i2c.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ad714x.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/apanel.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/bma150.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/atlas_btns.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcf8574_keypad.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcspkr.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/retu-pwrbutton.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/uinput.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/appletouch.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/bcm5974.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/cyapa.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/psmouse.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/sermouse.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/synaptics_i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/synaptics_usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/mouse/vsxxxaa.ko #lib/modules/KVER-ipfire/kernel/drivers/input/serio #lib/modules/KVER-ipfire/kernel/drivers/input/serio/altera_ps2.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/serio/arc_ps2.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/serio/serio_raw.ko #lib/modules/KVER-ipfire/kernel/drivers/input/sparse-keymap.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn -#lib/modules/KVER-ipfire/kernel/drivers/isdn/act2000 -#lib/modules/KVER-ipfire/kernel/drivers/isdn/act2000/act2000.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capi.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capidrv.ko @@ -651,14 +578,10 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/isdn/gigaset/usb_gigaset.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/avm_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/b1.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/b1dma.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/b1isa.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/b1pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/c4.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/t1isa.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/avm/t1pci.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon/diva_idi.ko @@ -678,77 +601,68 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/speedfax.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/w6692.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/avma1_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/elsa_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hfc_usb.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hisax.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hisax_isac.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/hisax_st5481.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/sedlbauer_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/teles_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hysdn #lib/modules/KVER-ipfire/kernel/drivers/isdn/hysdn/hysdn.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/i4l #lib/modules/KVER-ipfire/kernel/drivers/isdn/i4l/isdn.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/i4l/isdnhdlc.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/icn -#lib/modules/KVER-ipfire/kernel/drivers/isdn/icn/icn.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN #lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/l1oip.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/mISDN_core.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/mISDN_dsp.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/pcbit -#lib/modules/KVER-ipfire/kernel/drivers/isdn/pcbit/pcbit.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/sc -#lib/modules/KVER-ipfire/kernel/drivers/isdn/sc/sc.ko #lib/modules/KVER-ipfire/kernel/drivers/leds #lib/modules/KVER-ipfire/kernel/drivers/leds/dell-led.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-blinkm.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-clevo-mail.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lm3533.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lm355x.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lm3642.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp3944.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5521.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5562.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp55xx-common.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lt3593.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-net48xx.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-net5501.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca9532.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-ot200.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca9633.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-ss4200.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-wrap.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-default-on.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-gpio.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-heartbeat.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-timer.ko -#lib/modules/KVER-ipfire/kernel/drivers/lguest -#lib/modules/KVER-ipfire/kernel/drivers/lguest/lg.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-tca6507.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-backlight.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-camera.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-default-on.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-gpio.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-netdev.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-oneshot.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-timer.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/trigger/ledtrig-transient.ko #lib/modules/KVER-ipfire/kernel/drivers/md +#lib/modules/KVER-ipfire/kernel/drivers/md/bcache +#lib/modules/KVER-ipfire/kernel/drivers/md/bcache/bcache.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-bio-prison.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-cache-cleaner.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-cache-mq.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-cache.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-crypt.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-delay.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-flakey.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-log-userspace.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-log.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-mirror.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-mod.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-multipath.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-queue-length.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-raid.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-region-hash.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-round-robin.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-service-time.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-snapshot.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-thin-pool.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/dm-zero.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-verity.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/faulty.ko #lib/modules/KVER-ipfire/kernel/drivers/md/linear.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/md-mod.ko #lib/modules/KVER-ipfire/kernel/drivers/md/multipath.ko #lib/modules/KVER-ipfire/kernel/drivers/md/persistent-data #lib/modules/KVER-ipfire/kernel/drivers/md/persistent-data/dm-persistent-data.ko @@ -758,31 +672,272 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/md/raid456.ko #lib/modules/KVER-ipfire/kernel/drivers/media #lib/modules/KVER-ipfire/kernel/drivers/media/common -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda18271.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda827x.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/xc4000.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/dvb -#lib/modules/KVER-ipfire/kernel/drivers/media/dvb/dvb-core -#lib/modules/KVER-ipfire/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/b2c2 +#lib/modules/KVER-ipfire/kernel/drivers/media/common/b2c2/b2c2-flexcop.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/btcx-risc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/cx2341x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/cypress_firmware.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/saa7146 +#lib/modules/KVER-ipfire/kernel/drivers/media/common/saa7146/saa7146.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/saa7146/saa7146_vv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/siano +#lib/modules/KVER-ipfire/kernel/drivers/media/common/siano/smsdvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/siano/smsmdtv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/tveeprom.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-core +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/a8293.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/af9013.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/af9033.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/atbm8830.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/au8522_common.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/au8522_decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/au8522_dig.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/bcm3510.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx22700.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx22702.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx24110.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx24113.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx24116.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cx24123.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/cxd2820r.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib0070.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib0090.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib3000mb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib3000mc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib7000m.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib7000p.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dib8000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dibx000_common.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/drxd.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/drxk.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ds3000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/dvb-pll.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ec100.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/isl6405.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/isl6421.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/isl6423.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/it913x-fe.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/itd1000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ix2505v.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/l64781.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lg2160.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lgdt3305.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lgdt330x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lgs8gxx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lnbp21.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/lnbp22.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/m88dc2800.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/m88ds3103.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/m88rs2000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/mb86a16.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/mb86a20s.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/mt312.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/mt352.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/nxt200x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/nxt6000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/or51132.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/or51211.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/rtl2830.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/rtl2832.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/s5h1409.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/s5h1411.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/s5h1420.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/s921.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/si21xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/sp8870.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/sp887x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stb0899.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stb6000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stb6100.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv0288.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv0297.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv0299.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv0367.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv0900.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv090x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv6110.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/stv6110x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda10021.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda10023.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda10048.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda1004x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda10071.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda10086.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda18271c2dd.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda665x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda8083.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda8261.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tda826x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ts2020.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/tua6100.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ves1820.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/ves1x93.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/zl10036.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/zl10039.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/dvb-frontends/zl10353.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/firewire +#lib/modules/KVER-ipfire/kernel/drivers/media/firewire/firedtv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/adv7170.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/adv7175.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/adv7180.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/bt819.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/bt856.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/bt866.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/cs5345.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/cs53l32a.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/cx25840 +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/cx25840/cx25840.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/ir-kbd-i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/ks0127.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/m52790.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/msp3400.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/mt9v011.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/ov7670.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa6588.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa7110.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa7115.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa7127.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa717x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/saa7185.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/imx074.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/mt9m001.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/mt9m111.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/mt9t031.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/mt9t112.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/mt9v022.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov2640.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov5642.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov6650.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov772x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov9640.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/ov9740.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/rj54n1cb0c.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/soc_camera/tw9910.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tda7432.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tda9840.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tea6415c.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tea6420.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tvaudio.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/tvp5150.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/upd64031a.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/upd64083.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/vp27smpx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/vpx3220.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/wm8739.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/i2c/wm8775.ko #lib/modules/KVER-ipfire/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/b2c2 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/b2c2/b2c2-flexcop-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx/bt878.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx/bttv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx/dst.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx/dst_ca.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/bt8xx/dvb-bt8xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx18 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx18/cx18-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx18/cx18.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx23885 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx23885/altera-ci.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx23885/cx23885.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx25821 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx25821/cx25821-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx25821/cx25821.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx88-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx88-blackbird.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx88-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx88-vp3054-i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx8800.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx8802.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/cx88/cx88xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ddbridge +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ddbridge/ddbridge.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/dm1105 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/dm1105/dm1105.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ivtv +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ivtv/ivtv-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ivtv/ivtv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ivtv/ivtvfb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/mantis +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/mantis/hopper.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/mantis/mantis.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/mantis/mantis_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/meye +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/meye/meye.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ngene +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ngene/ngene.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/pluto2 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/pluto2/pluto2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/pt1 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/pt1/earth-pt1.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134/saa6752hs.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134/saa7134-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134/saa7134-empress.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7134/saa7134.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7146 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7146/hexium_gemini.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7146/hexium_orion.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7146/mxb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7164 +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/saa7164/saa7164.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/budget-av.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/budget-ci.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/budget-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/budget-patch.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/budget.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/dvb-ttpci.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/ttpci/ttpci-eeprom.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran/videocodec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran/zr36016.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran/zr36050.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran/zr36060.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/pci/zoran/zr36067.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/m2m-deinterlace.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/marvell-ccic +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/marvell-ccic/cafe_ccic.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/sh_veu.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera/sh_mobile_ceu_camera.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera/sh_mobile_csi2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera/soc_camera.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera/soc_camera_platform.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/soc_camera/soc_mediabus.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/platform/timblogiw.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ati_remote.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ene_ir.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/fintek-cir.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/gpio-ir-recv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/iguanair.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/imon.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-jvc-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-lirc-codec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-mce_kbd-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-nec-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-rc5-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-rc5-sz-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-rc6-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-sanyo-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ir-sony-decoder.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ite-cir.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-anysee.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-asus-ps3-100.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko @@ -806,6 +961,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dvbsky.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko @@ -822,13 +978,18 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-it913x-v1.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-it913x-v2.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-pc150u.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-lirc.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-lme2510.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-medion-x10-digitainer.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-medion-x10-or2x.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko @@ -852,6 +1013,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pv951.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-reddo.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-streamzap.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko @@ -861,6 +1023,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand-02.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-trekstor.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko @@ -871,12 +1034,203 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-winfast.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/mceusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/nuvoton-cir.ko #lib/modules/KVER-ipfire/kernel/drivers/media/rc/rc-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/video -#lib/modules/KVER-ipfire/kernel/drivers/media/video/ir-kbd-i2c.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/KVER-ipfire/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/rc-loopback.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/redrat3.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/streamzap.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/ttusbir.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/winbond-cir.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/e4000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/fc0011.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/fc0012.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/fc0013.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/fc2580.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/max2165.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mc44s803.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mt2060.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mt2063.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mt20xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mt2131.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mt2266.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mxl5005s.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/mxl5007t.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/qt1010.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/r820t.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda18212.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda18218.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda18271.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda827x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda8290.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tda9887.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tua9001.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tuner-simple.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tuner-types.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/tuner_it913x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/xc4000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/tuners/xc5000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/au0828 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/au0828/au0828.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/b2c2 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/b2c2/b2c2-flexcop-usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cpia2 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cpia2/cpia2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cx231xx +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cx231xx/cx231xx-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cx231xx/cx231xx-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/cx231xx/cx231xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9015.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9035.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-anysee.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-au6610.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-az6007.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ce6230.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-dvbsky.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ec168.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-gl861.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-it913x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-lmedm04.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-mxl111sf.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-rtl28xxu.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-a800.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005-remote.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-az6027.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-cinergyT2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-cxusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dib0700.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-digitv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtt200u.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtv5100.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-dw2102.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-friio.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-gp8psk.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-m920x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-nova-t-usb2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-opera.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-pctv452e.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-ttusb2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-umt-010.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp702x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp7045.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/dvb-usb/dvb-usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/em28xx +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/em28xx/em28xx-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/em28xx/em28xx-rc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/em28xx/em28xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gl860 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gl860/gspca_gl860.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_benq.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_conex.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_cpia1.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_etoms.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_finepix.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_jeilinj.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_jl2005bcd.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_kinect.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_konica.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_main.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_mars.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_mr97310a.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_nw80x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_ov519.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_ov534.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_ov534_9.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_pac207.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_pac7302.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_pac7311.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_se401.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sn9c2028.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sn9c20x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sonixb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sonixj.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca1528.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca500.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca501.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca505.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca506.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca508.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_spca561.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sq905.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sq905c.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sq930x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_stk014.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_stv0680.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_sunplus.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_t613.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_topro.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_tv8532.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_vc032x.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_vicam.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_xirlink_cit.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/gspca_zc3xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/m5602 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/m5602/gspca_m5602.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/stv06xx +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/gspca/stv06xx/gspca_stv06xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/hdpvr +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/hdpvr/hdpvr.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/pvrusb2 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/pvrusb2/pvrusb2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/pwc +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/pwc/pwc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/s2255 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/s2255/s2255drv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/siano +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/siano/smsusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/sn9c102 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/sn9c102/sn9c102.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/stk1160 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/stk1160/stk1160.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/stkwebcam +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/stkwebcam/stkwebcam.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tlg2300 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tlg2300/poseidon.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tm6000 +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tm6000/tm6000-alsa.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tm6000/tm6000-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/tm6000/tm6000.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/ttusb-budget +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/ttusb-dec +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/ttusb-dec/ttusb_dec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/ttusb-dec/ttusbdecfe.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/usbvision +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/usbvision/usbvision.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/uvc +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/uvc/uvcvideo.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/zr364xx +#lib/modules/KVER-ipfire/kernel/drivers/media/usb/zr364xx/zr364xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/tuner.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/v4l2-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/v4l2-int-device.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/v4l2-mem2mem.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf-dma-contig.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf-dma-sg.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf-dvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf-vmalloc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf2-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf2-dma-contig.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf2-memops.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/v4l2-core/videodev.ko #lib/modules/KVER-ipfire/kernel/drivers/memstick #lib/modules/KVER-ipfire/kernel/drivers/memstick/core #lib/modules/KVER-ipfire/kernel/drivers/memstick/core/memstick.ko @@ -884,6 +1238,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/memstick/host #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/jmb38x_ms.ko #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/r592.ko +#lib/modules/KVER-ipfire/kernel/drivers/memstick/host/rtsx_pci_ms.ko #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/tifm_ms.ko #lib/modules/KVER-ipfire/kernel/drivers/message #lib/modules/KVER-ipfire/kernel/drivers/message/fusion @@ -893,38 +1248,35 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptsas.ko #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptscsih.ko #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptspi.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_block.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_bus.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_config.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_proc.ko +#lib/modules/KVER-ipfire/kernel/drivers/message/i2o/i2o_scsi.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd #lib/modules/KVER-ipfire/kernel/drivers/mfd/cs5535-mfd.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/janz-cmodio.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/lm3533-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/lm3533-ctrlbank.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/lpc_ich.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/lpc_sch.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/mfd-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/rdc321x-southbridge.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/retu-mfd.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/rtsx_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/timberdale.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps6105x.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps65010.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps6507x.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/viperboard.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/vx855.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/wl1273-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/wm8400-core.ko #lib/modules/KVER-ipfire/kernel/drivers/misc -#lib/modules/KVER-ipfire/kernel/drivers/misc/apds9802als.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/apds990x.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/bh1770glc.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/bh1780gli.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/bmp085.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/c2port -#lib/modules/KVER-ipfire/kernel/drivers/misc/c2port/c2port-duramar2150.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/c2port/core.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/altera-stapl +#lib/modules/KVER-ipfire/kernel/drivers/misc/altera-stapl/altera-stapl.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/bmp085-i2c.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/cb710 #lib/modules/KVER-ipfire/kernel/drivers/misc/cb710/cb710.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/cs5535-mfgpt.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/dummy-irq.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/at24.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/eeprom.ko @@ -932,76 +1284,48 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/max6875.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/enclosure.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/fsa9480.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/hmc6352.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/hpilo.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/ibmasm +#lib/modules/KVER-ipfire/kernel/drivers/misc/ibmasm/ibmasm.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/ics932s401.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/isl29003.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/isl29020.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/iwmc3200top -#lib/modules/KVER-ipfire/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d #lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/mei +#lib/modules/KVER-ipfire/kernel/drivers/misc/mei/mei-me.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/mei/mei.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/pch_phub.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st #lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st/st_drv.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/tifm_7xx1.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/tifm_core.ko -#lib/modules/KVER-ipfire/kernel/drivers/misc/tsl2550.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/vmw_balloon.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/vmw_vmci +#lib/modules/KVER-ipfire/kernel/drivers/misc/vmw_vmci/vmw_vmci.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc #lib/modules/KVER-ipfire/kernel/drivers/mmc/card #lib/modules/KVER-ipfire/kernel/drivers/mmc/card/mmc_block.ko -#lib/modules/KVER-ipfire/kernel/drivers/mmc/card/mmc_test.ko -#lib/modules/KVER-ipfire/kernel/drivers/mmc/card/sdio_uart.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/core #lib/modules/KVER-ipfire/kernel/drivers/mmc/core/mmc_core.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/cb710-mmc.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/rtsx_pci_sdmmc.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-acpi.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pci.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pxav2.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pxav3.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci.ko -#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdricoh_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/tifm_sd.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/ushc.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/via-sdmmc.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/vub300.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/wbsd.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd -#lib/modules/KVER-ipfire/kernel/drivers/mtd/ar7part.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/chips -#lib/modules/KVER-ipfire/kernel/drivers/mtd/chips/chipreg.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/lpddr -#lib/modules/KVER-ipfire/kernel/drivers/mtd/lpddr/lpddr_cmds.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/lpddr/qinfo_probe.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/maps -#lib/modules/KVER-ipfire/kernel/drivers/mtd/maps/physmap.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/mtd.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/mtd_blkdevs.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdblock.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/nand -#lib/modules/KVER-ipfire/kernel/drivers/mtd/nand/nand_ecc.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/sm_ftl.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_nandecctest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_torturetest.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/ubi -#lib/modules/KVER-ipfire/kernel/drivers/mtd/ubi/ubi.ko #lib/modules/KVER-ipfire/kernel/drivers/net #lib/modules/KVER-ipfire/kernel/drivers/net/bonding #lib/modules/KVER-ipfire/kernel/drivers/net/bonding/bonding.ko #lib/modules/KVER-ipfire/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/eql.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c501.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c509.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c515.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c574_cs.ko @@ -1009,24 +1333,13 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c59x.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/typhoon.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390 -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/3c503.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/8390.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/8390p.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ac3200.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/axnet_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/e2100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/es3210.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/hp-plus.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/hp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/lne390.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne2.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne2k-pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne3210.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/pcnet_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-mca.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-ultra.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-ultra32.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/wd.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/adaptec #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/adaptec/starfire.ko @@ -1034,12 +1347,13 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/alteon/acenic.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/amd8111e.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/depca.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/lance.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/ni65.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/nmclan_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/pcnet32.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/alx +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/alx/alx.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1c #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1e @@ -1057,6 +1371,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade/bna #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cadence +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cadence/at91_ether.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cadence/macb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/calxeda +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/calxeda/xgmac.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko @@ -1072,7 +1391,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco/enic #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco/enic/enic.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/ewrk3.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko @@ -1082,8 +1400,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/de600.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/de620.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/dl2k.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/sundance.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dnet.ko @@ -1093,22 +1409,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/ethoc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fealnx.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/at1700.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/eth16i.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/hp #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/hp/hp100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c505.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c507.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c523.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c527.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/82596.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/eepro.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/eexpress.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/lp486e.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/ni52.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/znet.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/icplus #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/icplus/ipg.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel @@ -1129,6 +1432,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/jme.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/mvmdio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/skge.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/sky2.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox @@ -1143,7 +1447,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom/myri10ge #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/ibmlana.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/natsemi.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/ns83820.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion @@ -1155,9 +1458,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi/pch_gbe #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines/hamachi.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines/yellowfin.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/netxen #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko @@ -1173,8 +1473,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/8139too.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/atp.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/r8169.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/seeq -#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/seeq/seeq8005.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sfc #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sfc/sfc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/silan @@ -1202,41 +1500,30 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via/via-rhine.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/wiznet +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/wiznet/w5100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/wiznet/w5300.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/xircom #lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ifb.ko #lib/modules/KVER-ipfire/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/ali-ircc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/donauboe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/nsc-ircc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/smsc-ircc2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/stir4200.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/via-ircc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/vlsi_ir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/irda/w83977af_ir.ko #lib/modules/KVER-ipfire/kernel/drivers/net/macvlan.ko #lib/modules/KVER-ipfire/kernel/drivers/net/macvtap.ko #lib/modules/KVER-ipfire/kernel/drivers/net/mdio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/netconsole.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/amd.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/at803x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/bcm87xx.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/broadcom.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/cicada.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/davicom.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/phy/dp83640.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/et1011c.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/icplus.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/lxt.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/marvell.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/mdio-bitbang.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/phy/mdio-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/micrel.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/national.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/qsemi.ko @@ -1254,17 +1541,17 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pppoe.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pppox.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pptp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sb1000.ko #lib/modules/KVER-ipfire/kernel/drivers/net/slip #lib/modules/KVER-ipfire/kernel/drivers/net/slip/slhc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/slip/slip.ko #lib/modules/KVER-ipfire/kernel/drivers/net/sungem_phy.ko #lib/modules/KVER-ipfire/kernel/drivers/net/tun.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb #lib/modules/KVER-ipfire/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/ax88179_178a.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/catc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_eem.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_mbim.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_ncm.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_subset.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cx82310_eth.ko @@ -1272,6 +1559,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/usb/gl620a.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/hso.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/ipheth.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/kalmia.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/kaweth.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/lg-vl600.ko @@ -1279,6 +1567,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/usb/net1080.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/pegasus.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/qmi_wwan.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/r8152.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/rndis_host.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/rtl8150.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/sierra_net.ko @@ -1290,45 +1580,135 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/virtio_net.ko #lib/modules/KVER-ipfire/kernel/drivers/net/vmxnet3 #lib/modules/KVER-ipfire/kernel/drivers/net/vmxnet3/vmxnet3.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/c101.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/cosa.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/dlci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/dscc4.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/farsync.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc_cisco.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc_fr.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc_ppp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc_raw.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hdlc_raw_eth.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/hostess_sv11.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/lmc -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/lmc/lmc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/n2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/pc300too.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/pci200syn.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/sbni.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/sdla.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/sealevel.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/wanxl.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wan/z85230.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/vxlan.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/adm8211.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/airo.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/airo_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ar5523 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ar5523/ar5523.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath5k +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/carl9170 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/carl9170/carl9170.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/wil6210 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/wil6210/wil6210.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel_pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43/b43.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43legacy +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43legacy/b43legacy.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/brcm80211 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/brcm80211/brcmfmac +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/brcm80211/brcmutil +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ray_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/libipw.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlegacy +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlegacy/iwl3945.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlegacy/iwl4965.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlegacy/iwlegacy.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/dvm +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/mvm +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/mvm/iwlmvm.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/usb8xxx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mac80211_hwsim.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex/mwifiex.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex/mwifiex_pcie.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex/mwifiex_sdio.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex/mwifiex_usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwl8k.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54common.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54usb.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00mmio.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt61pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8180 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8187 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8188ee +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8188ee/rtl8188ee.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192c +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192ce +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192ce.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192cu +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192cu/rtl8192cu.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192de +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192de/rtl8192de.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192se +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8192se/rtl8192se.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8723ae +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtl8723ae/rtl8723ae.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtlwifi/rtlwifi.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl1251 +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl1251/wl1251.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl1251/wl1251_sdio.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl12xx +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl12xx/wl12xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl18xx +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wl18xx/wl18xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wlcore +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wlcore/wlcore.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl3501_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1211rw +#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko #lib/modules/KVER-ipfire/kernel/drivers/parport #lib/modules/KVER-ipfire/kernel/drivers/parport/parport.ko #lib/modules/KVER-ipfire/kernel/drivers/parport/parport_ax88796.ko @@ -1336,7 +1716,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/parport/parport_pc.ko #lib/modules/KVER-ipfire/kernel/drivers/parport/parport_serial.ko #lib/modules/KVER-ipfire/kernel/drivers/pci -#lib/modules/KVER-ipfire/kernel/drivers/pci/pci-stub.ko +#lib/modules/KVER-ipfire/kernel/drivers/pci/hotplug +#lib/modules/KVER-ipfire/kernel/drivers/pci/hotplug/acpiphp_ibm.ko +#lib/modules/KVER-ipfire/kernel/drivers/pci/pcie +#lib/modules/KVER-ipfire/kernel/drivers/pci/pcie/aer +#lib/modules/KVER-ipfire/kernel/drivers/pci/pcie/aer/aer_inject.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/i82092.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/i82365.ko @@ -1350,25 +1734,30 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/platform/x86 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/acer-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/acerhdf.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/amilo-rfkill.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus-laptop.ko -#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus_acpi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus-nb-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/chromeos_laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/classmate-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/compal-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-wmi-aio.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/eeepc-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/eeepc-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/fujitsu-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hdaps.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hp-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hp_accel.ko -#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/ibm_rtl.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/ideapad-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_ips.ko -#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_menlow.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_oaktrail.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/msi-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/msi-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/mxm-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/panasonic-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/pvpanic.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/samsung-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/samsung-q10.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/sony-laptop.ko @@ -1378,14 +1767,13 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/toshiba_acpi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/toshiba_bluetooth.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/wmi.ko -#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/xo15-ebook.ko +#lib/modules/KVER-ipfire/kernel/drivers/power +#lib/modules/KVER-ipfire/kernel/drivers/power/generic-adc-battery.ko #lib/modules/KVER-ipfire/kernel/drivers/pps #lib/modules/KVER-ipfire/kernel/drivers/pps/pps_core.ko #lib/modules/KVER-ipfire/kernel/drivers/ptp #lib/modules/KVER-ipfire/kernel/drivers/ptp/ptp.ko -#lib/modules/KVER-ipfire/kernel/drivers/regulator -#lib/modules/KVER-ipfire/kernel/drivers/regulator/fixed.ko -#lib/modules/KVER-ipfire/kernel/drivers/regulator/gpio-regulator.ko +#lib/modules/KVER-ipfire/kernel/drivers/ptp/ptp_pch.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-bq32k.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-bq4802.ko @@ -1396,18 +1784,19 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1553.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1672.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds2404.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds3232.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-em3027.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-hid-sensor-time.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-isl12022.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-isl1208.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m41t80.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t35.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t59.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t86.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-max6900.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-msm6242.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8523.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8563.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8583.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rp5c01.ko @@ -1415,7 +1804,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rv3029c2.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rx8025.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rx8581.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-s35390a.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-stk17ta8.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-v3020.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-x1205.ko @@ -1426,8 +1814,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/53c700.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/BusLogic.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/NCR53c406a.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/NCR_D700.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/NCR_Q720_mod.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/a100u2w.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/aacraid #lib/modules/KVER-ipfire/kernel/drivers/scsi/aacraid/aacraid.ko @@ -1452,6 +1838,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2i #lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2i/bnx2i.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/csiostor +#lib/modules/KVER-ipfire/kernel/drivers/scsi/csiostor/csiostor.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi #lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb3i #lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko @@ -1460,7 +1848,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/libcxgbi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/dc395x.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler -#lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler/scsi_dh.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko @@ -1472,7 +1859,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/fcoe #lib/modules/KVER-ipfire/kernel/drivers/scsi/fcoe/fcoe.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/fcoe/libfcoe.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/fd_mcs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/fdomain.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/fnic #lib/modules/KVER-ipfire/kernel/drivers/scsi/fnic/fnic.ko @@ -1481,7 +1867,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/gdth.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/hpsa.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/hptiop.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/ibmmca.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/imm.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/in2000.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/initio.ko @@ -1506,6 +1891,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/megaraid/megaraid_sas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/mpt2sas #lib/modules/KVER-ipfire/kernel/drivers/scsi/mpt2sas/mpt2sas.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/mpt3sas +#lib/modules/KVER-ipfire/kernel/drivers/scsi/mpt3sas/mpt3sas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvsas #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvsas/mvsas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvumi.ko @@ -1513,6 +1900,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd/libosd.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/osst.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pas16.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/aha152x_cs.ko @@ -1521,7 +1909,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/qlogic_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001 -#lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001/pm8001.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001/pm80xx.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pmcraid.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ppa.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/qla1280.ko @@ -1532,18 +1920,15 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/qlogicfas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/qlogicfas408.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/raid_class.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_mod.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_tgt.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_fc.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_iscsi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_sas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_spi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_wait_scan.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/sd_mod.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ses.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/sg.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/sim710.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/st.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/stex.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/sym53c416.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/sym53c8xx_2 @@ -1551,55 +1936,51 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/t128.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/tmscsim.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/u14-34f.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/ufs +#lib/modules/KVER-ipfire/kernel/drivers/scsi/ufs/ufshcd-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/ufs/ufshcd-pltfrm.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/ufs/ufshcd.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ultrastor.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/virtio_scsi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/vmw_pvscsi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/wd7000.ko #lib/modules/KVER-ipfire/kernel/drivers/ssb #lib/modules/KVER-ipfire/kernel/drivers/ssb/ssb.ko #lib/modules/KVER-ipfire/kernel/drivers/staging +#lib/modules/KVER-ipfire/kernel/drivers/staging/echo +#lib/modules/KVER-ipfire/kernel/drivers/staging/echo/echo.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/et131x #lib/modules/KVER-ipfire/kernel/drivers/staging/et131x/et131x.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_mouse.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_netvsc.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_storvsc.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/mei -#lib/modules/KVER-ipfire/kernel/drivers/staging/mei/mei.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/phison -#lib/modules/KVER-ipfire/kernel/drivers/staging/phison/phison.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/slicoss #lib/modules/KVER-ipfire/kernel/drivers/staging/slicoss/slicoss.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/usbip #lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/usbip-core.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/usbip-host.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire/kernel/drivers/thermal +#lib/modules/KVER-ipfire/kernel/drivers/thermal/intel_powerclamp.ko #lib/modules/KVER-ipfire/kernel/drivers/tty -#lib/modules/KVER-ipfire/kernel/drivers/tty/ipwireless -#lib/modules/KVER-ipfire/kernel/drivers/tty/ipwireless/ipwireless.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/cyclades.ko #lib/modules/KVER-ipfire/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/n_hdlc.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/n_r3964.ko #lib/modules/KVER-ipfire/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/rocket.ko #lib/modules/KVER-ipfire/kernel/drivers/tty/serial -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_accent.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_boca.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_exar_st16c554.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_fourport.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_hub6.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/altera_jtaguart.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/altera_uart.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/mfd.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/pch_uart.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/serial_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/timbuart.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/uartlite.ko -#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/xilinx_uartps.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250 +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250/8250_dw.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/arc_uart.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/jsm +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/jsm/jsm.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/rp2.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/sccnxp.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/synclink.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/synclink_gt.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/synclinkmp.ko #lib/modules/KVER-ipfire/kernel/drivers/uio #lib/modules/KVER-ipfire/kernel/drivers/uio/uio.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_aec.ko -#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_cif.ko -#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_netx.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pci_generic.ko -#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pdrv.ko -#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pdrv_genirq.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_sercos3.ko #lib/modules/KVER-ipfire/kernel/drivers/usb #lib/modules/KVER-ipfire/kernel/drivers/usb/atm @@ -1608,44 +1989,47 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/atm/ueagle-atm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/atm/usbatm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/chipidea +#lib/modules/KVER-ipfire/kernel/drivers/usb/chipidea/ci13xxx_msm.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/chipidea/ci13xxx_pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/chipidea/ci_hdrc.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class #lib/modules/KVER-ipfire/kernel/drivers/usb/class/cdc-acm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class/cdc-wdm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class/usblp.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class/usbtmc.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-exynos.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-omap.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-pci.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host #lib/modules/KVER-ipfire/kernel/drivers/usb/host/hwa-hc.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/isp116x-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/r8a66597-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/host/ssb-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/whci #lib/modules/KVER-ipfire/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/xhci-hcd.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/image +#lib/modules/KVER-ipfire/kernel/drivers/usb/image/mdc800.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/image/microtek.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/cypress_cy7c63.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/adutux.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/emi26.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/ezusb.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/ftdi-elan.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/iowarrior.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/isight_firmware.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/sisusbvga #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usb3503.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usblcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usbled.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usbsevseg.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/uss720.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/yurex.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/otg -#lib/modules/KVER-ipfire/kernel/drivers/usb/otg/gpio_vbus.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/otg/nop-usb-xceiv.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/mon +#lib/modules/KVER-ipfire/kernel/drivers/usb/mon/usbmon.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/aircable.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ark3116.ko @@ -1654,11 +2038,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/cp210x.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/cypress_m8.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/digi_acceleport.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/f81232.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ftdi_sio.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/funsoft.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/garmin_gps.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/hp4x.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/io_edgeport.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/io_ti.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ipaq.ko @@ -1666,31 +2048,27 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ir-usb.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/iuu_phoenix.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/kl5kusb105.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/mct_u232.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/mos7720.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/mos7840.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/moto_modem.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/opticon.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/option.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/oti6858.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/pl2303.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/qcaux.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/qcserial.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/quatech2.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/siemens_mpi.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/sierra.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/spcp8x5.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ssu100.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/symbolserial.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ti_usb_3410_5052.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/usb_wwan.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/usbserial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/visor.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/vivopay-serial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/whiteheat.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/zte_ev.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage -#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/uas.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-alauda.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-cypress.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-datafab.ko @@ -1704,7 +2082,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-sddr09.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-sddr55.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-usbat.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/usb-storage.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/wusbcore #lib/modules/KVER-ipfire/kernel/drivers/usb/wusbcore/wusb-cbaf.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/wusbcore/wusb-wa.ko @@ -1721,53 +2098,37 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/uwb/whci.ko #lib/modules/KVER-ipfire/kernel/drivers/vhost #lib/modules/KVER-ipfire/kernel/drivers/vhost/vhost_net.ko +#lib/modules/KVER-ipfire/kernel/drivers/vhost/vringh.ko #lib/modules/KVER-ipfire/kernel/drivers/video +#lib/modules/KVER-ipfire/kernel/drivers/video/arcfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/arkfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/aty -#lib/modules/KVER-ipfire/kernel/drivers/video/aty/aty128fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/aty/atyfb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/aty/radeonfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/adp8860_bl.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/adp8870_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/apple_bl.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/cr_bllcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/generic_bl.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/kb3886_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/pcf50633-backlight.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/platform_lcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/cirrusfb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/console +#lib/modules/KVER-ipfire/kernel/drivers/video/console/mdacon.ko #lib/modules/KVER-ipfire/kernel/drivers/video/cyber2000fb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/display -#lib/modules/KVER-ipfire/kernel/drivers/video/display/display.ko #lib/modules/KVER-ipfire/kernel/drivers/video/fb_ddc.ko #lib/modules/KVER-ipfire/kernel/drivers/video/fb_sys_fops.ko #lib/modules/KVER-ipfire/kernel/drivers/video/geode #lib/modules/KVER-ipfire/kernel/drivers/video/geode/gx1fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/geode/gxfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/geode/lxfb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/i810 -#lib/modules/KVER-ipfire/kernel/drivers/video/i810/i810fb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/hgafb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/i740fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/kyro #lib/modules/KVER-ipfire/kernel/drivers/video/kyro/kyrofb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/macmodes.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox -#lib/modules/KVER-ipfire/kernel/drivers/video/matrox/g450_pll.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/matrox/i2c-matroxfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_DAC1064.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_Ti3026.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_accel.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_base.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_crtc2.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_g450.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_maven.ko #lib/modules/KVER-ipfire/kernel/drivers/video/matrox/matroxfb_misc.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/metronomefb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/neofb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/nvidia -#lib/modules/KVER-ipfire/kernel/drivers/video/nvidia/nvidiafb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/output.ko #lib/modules/KVER-ipfire/kernel/drivers/video/pm2fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/pm3fb.ko @@ -1776,22 +2137,18 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/video/s3fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/savage #lib/modules/KVER-ipfire/kernel/drivers/video/savage/savagefb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/sis -#lib/modules/KVER-ipfire/kernel/drivers/video/sis/sisfb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/sm501fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/smscufx.ko #lib/modules/KVER-ipfire/kernel/drivers/video/sstfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/svgalib.ko #lib/modules/KVER-ipfire/kernel/drivers/video/syscopyarea.ko #lib/modules/KVER-ipfire/kernel/drivers/video/sysfillrect.ko #lib/modules/KVER-ipfire/kernel/drivers/video/sysimgblt.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/tdfxfb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/tmiofb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/tridentfb.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/uvesafb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/udlfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/vermilion #lib/modules/KVER-ipfire/kernel/drivers/video/vermilion/crvml.ko #lib/modules/KVER-ipfire/kernel/drivers/video/vermilion/vmlfb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/vga16fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/vgastate.ko #lib/modules/KVER-ipfire/kernel/drivers/video/via #lib/modules/KVER-ipfire/kernel/drivers/video/via/viafb.ko @@ -1799,32 +2156,28 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/virtio #lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_balloon.ko #lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_mmio.ko -#lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/w1 #lib/modules/KVER-ipfire/kernel/drivers/w1/masters #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds1wm.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds2482.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds2490.ko -#lib/modules/KVER-ipfire/kernel/drivers/w1/masters/matrox_w1.ko -#lib/modules/KVER-ipfire/kernel/drivers/w1/masters/w1-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_bq27000.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2413.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2423.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2431.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2433.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2760.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2781.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds28e04.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_smem.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_therm.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/wire.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/acquirewdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/advantechwdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/alim1535_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/alim7101_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/cpu5wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/eurotechwdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/f71808e_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/geodewdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/hpwdt.ko @@ -1832,96 +2185,145 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/watchdog/iTCO_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/ib700wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/ibmasr.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/ie6xx_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/it8712f_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/it87_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/machzwd.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/nv_tco.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/pc87413_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc60xxwdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc7240_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc8360.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc_epx_c3.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/retu_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sc1200wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sc520_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/sch311x_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/scx200_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/smsc37b787_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/softdog.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/sp5100_tco.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/via_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83627hf_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83697hf_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83697ug_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83877f_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83977f_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/wafer5823wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/wdt_pci.ko #lib/modules/KVER-ipfire/kernel/fs -#lib/modules/KVER-ipfire/kernel/fs/autofs4 -#lib/modules/KVER-ipfire/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire/kernel/fs/btrfs +#lib/modules/KVER-ipfire/kernel/fs/btrfs/btrfs.ko #lib/modules/KVER-ipfire/kernel/fs/cachefiles #lib/modules/KVER-ipfire/kernel/fs/cachefiles/cachefiles.ko #lib/modules/KVER-ipfire/kernel/fs/cifs #lib/modules/KVER-ipfire/kernel/fs/cifs/cifs.ko -#lib/modules/KVER-ipfire/kernel/fs/ecryptfs -#lib/modules/KVER-ipfire/kernel/fs/ecryptfs/ecryptfs.ko -#lib/modules/KVER-ipfire/kernel/fs/exportfs -#lib/modules/KVER-ipfire/kernel/fs/exportfs/exportfs.ko +#lib/modules/KVER-ipfire/kernel/fs/configfs +#lib/modules/KVER-ipfire/kernel/fs/configfs/configfs.ko +#lib/modules/KVER-ipfire/kernel/fs/dlm +#lib/modules/KVER-ipfire/kernel/fs/dlm/dlm.ko +#lib/modules/KVER-ipfire/kernel/fs/efivarfs +#lib/modules/KVER-ipfire/kernel/fs/efivarfs/efivarfs.ko +#lib/modules/KVER-ipfire/kernel/fs/exofs +#lib/modules/KVER-ipfire/kernel/fs/exofs/libore.ko #lib/modules/KVER-ipfire/kernel/fs/fat #lib/modules/KVER-ipfire/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire/kernel/fs/fat/msdos.ko #lib/modules/KVER-ipfire/kernel/fs/fat/vfat.ko #lib/modules/KVER-ipfire/kernel/fs/fscache #lib/modules/KVER-ipfire/kernel/fs/fscache/fscache.ko #lib/modules/KVER-ipfire/kernel/fs/fuse #lib/modules/KVER-ipfire/kernel/fs/fuse/cuse.ko #lib/modules/KVER-ipfire/kernel/fs/fuse/fuse.ko -#lib/modules/KVER-ipfire/kernel/fs/isofs -#lib/modules/KVER-ipfire/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire/kernel/fs/jffs2 -#lib/modules/KVER-ipfire/kernel/fs/jffs2/jffs2.ko -#lib/modules/KVER-ipfire/kernel/fs/jfs -#lib/modules/KVER-ipfire/kernel/fs/jfs/jfs.ko #lib/modules/KVER-ipfire/kernel/fs/lockd #lib/modules/KVER-ipfire/kernel/fs/lockd/lockd.ko #lib/modules/KVER-ipfire/kernel/fs/nfs +#lib/modules/KVER-ipfire/kernel/fs/nfs/blocklayout +#lib/modules/KVER-ipfire/kernel/fs/nfs/blocklayout/blocklayoutdriver.ko #lib/modules/KVER-ipfire/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire/kernel/fs/nfs/nfs_layout_nfsv41_files.ko +#lib/modules/KVER-ipfire/kernel/fs/nfs/nfsv2.ko +#lib/modules/KVER-ipfire/kernel/fs/nfs/nfsv3.ko +#lib/modules/KVER-ipfire/kernel/fs/nfs/nfsv4.ko +#lib/modules/KVER-ipfire/kernel/fs/nfs/objlayout +#lib/modules/KVER-ipfire/kernel/fs/nfs/objlayout/objlayoutdriver.ko #lib/modules/KVER-ipfire/kernel/fs/nfs_common #lib/modules/KVER-ipfire/kernel/fs/nfs_common/nfs_acl.ko #lib/modules/KVER-ipfire/kernel/fs/nfsd #lib/modules/KVER-ipfire/kernel/fs/nfsd/nfsd.ko -#lib/modules/KVER-ipfire/kernel/fs/quota -#lib/modules/KVER-ipfire/kernel/fs/quota/quota_tree.ko -#lib/modules/KVER-ipfire/kernel/fs/quota/quota_v1.ko -#lib/modules/KVER-ipfire/kernel/fs/quota/quota_v2.ko +#lib/modules/KVER-ipfire/kernel/fs/nls +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-celtic.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-centeuro.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-croatian.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-cyrillic.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-gaelic.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-greek.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-iceland.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-inuit.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-roman.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-romanian.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/mac-turkish.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp1250.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp1251.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp1255.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp737.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp775.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp850.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp852.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp855.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp857.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp860.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp861.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp862.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp863.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp864.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp865.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp866.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp869.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp874.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp932.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp936.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp949.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_cp950.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_euc-jp.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-1.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-13.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-14.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-15.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-2.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-3.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-4.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-5.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-6.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-7.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_iso8859-9.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_koi8-r.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_koi8-ru.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_koi8-u.ko +#lib/modules/KVER-ipfire/kernel/fs/nls/nls_utf8.ko #lib/modules/KVER-ipfire/kernel/fs/reiserfs #lib/modules/KVER-ipfire/kernel/fs/reiserfs/reiserfs.ko #lib/modules/KVER-ipfire/kernel/fs/udf #lib/modules/KVER-ipfire/kernel/fs/udf/udf.ko -#lib/modules/KVER-ipfire/kernel/fs/ufs -#lib/modules/KVER-ipfire/kernel/fs/ufs/ufs.ko #lib/modules/KVER-ipfire/kernel/fs/xfs #lib/modules/KVER-ipfire/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire/kernel/kernel +#lib/modules/KVER-ipfire/kernel/kernel/trace +#lib/modules/KVER-ipfire/kernel/kernel/trace/ring_buffer_benchmark.ko #lib/modules/KVER-ipfire/kernel/lib +#lib/modules/KVER-ipfire/kernel/lib/asn1_decoder.ko #lib/modules/KVER-ipfire/kernel/lib/cordic.ko -#lib/modules/KVER-ipfire/kernel/lib/crc-ccitt.ko #lib/modules/KVER-ipfire/kernel/lib/crc-itu-t.ko -#lib/modules/KVER-ipfire/kernel/lib/crc-t10dif.ko #lib/modules/KVER-ipfire/kernel/lib/crc7.ko #lib/modules/KVER-ipfire/kernel/lib/crc8.ko #lib/modules/KVER-ipfire/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire/kernel/lib/mpi +#lib/modules/KVER-ipfire/kernel/lib/mpi/mpi.ko +#lib/modules/KVER-ipfire/kernel/lib/oid_registry.ko #lib/modules/KVER-ipfire/kernel/lib/raid6 #lib/modules/KVER-ipfire/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire/kernel/lib/rbtree_test.ko #lib/modules/KVER-ipfire/kernel/lib/ts_bm.ko #lib/modules/KVER-ipfire/kernel/lib/ts_fsm.ko #lib/modules/KVER-ipfire/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire/kernel/lib/zlib_deflate +#lib/modules/KVER-ipfire/kernel/lib/zlib_deflate/zlib_deflate.ko #lib/modules/KVER-ipfire/kernel/net #lib/modules/KVER-ipfire/kernel/net/802 #lib/modules/KVER-ipfire/kernel/net/802/garp.ko -#lib/modules/KVER-ipfire/kernel/net/802/p8022.ko -#lib/modules/KVER-ipfire/kernel/net/802/psnap.ko -#lib/modules/KVER-ipfire/kernel/net/802/stp.ko #lib/modules/KVER-ipfire/kernel/net/8021q #lib/modules/KVER-ipfire/kernel/net/8021q/8021q.ko #lib/modules/KVER-ipfire/kernel/net/atm @@ -1942,7 +2344,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/bluetooth/rfcomm #lib/modules/KVER-ipfire/kernel/net/bluetooth/rfcomm/rfcomm.ko #lib/modules/KVER-ipfire/kernel/net/bridge -#lib/modules/KVER-ipfire/kernel/net/bridge/bridge.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_802_3.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_among.ko @@ -1960,64 +2361,45 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_redirect.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_snat.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_stp.ko -#lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_ulog.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebt_vlan.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_broute.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_filter.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_nat.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtables.ko -#lib/modules/KVER-ipfire/kernel/net/ceph -#lib/modules/KVER-ipfire/kernel/net/ceph/libceph.ko -#lib/modules/KVER-ipfire/kernel/net/ieee802154 -#lib/modules/KVER-ipfire/kernel/net/ieee802154/6lowpan.ko -#lib/modules/KVER-ipfire/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire/kernel/net/ieee802154/ieee802154.ko +#lib/modules/KVER-ipfire/kernel/net/core +#lib/modules/KVER-ipfire/kernel/net/core/netprio_cgroup.ko #lib/modules/KVER-ipfire/kernel/net/ipv4 #lib/modules/KVER-ipfire/kernel/net/ipv4/ah4.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/esp4.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/gre.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/inet_diag.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/ip_tunnel.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/ip_vti.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/ipcomp.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/ipip.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/arp_tables.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/arpt_mangle.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ip_queue.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ip_tables.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_LOG.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_REJECT.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ULOG.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ecn.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_rpfilter.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/iptable_filter.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/iptable_mangle.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/iptable_nat.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/iptable_raw.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/iptable_security.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_ipv4.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_sip.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_bic.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_cubic.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_diag.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_highspeed.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_htcp.ko @@ -2030,17 +2412,21 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_westwood.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tcp_yeah.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/udp_diag.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/xfrm4_mode_beet.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/xfrm4_mode_transport.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/xfrm4_mode_tunnel.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/xfrm4_tunnel.ko #lib/modules/KVER-ipfire/kernel/net/ipv6 #lib/modules/KVER-ipfire/kernel/net/ipv6/ah6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/ip6_gre.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/ip6_tunnel.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/ipcomp6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/mip6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter -#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6_queue.ko -#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_MASQUERADE.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_NPT.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_REJECT.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_ah.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_eui64.ko @@ -2048,12 +2434,14 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_hbh.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_rpfilter.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6t_rt.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_filter.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_nat.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_raw.ko -#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko -#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_security.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_nat_ipv6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/sit.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/tunnel6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/xfrm6_mode_beet.ko @@ -2061,28 +2449,31 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv6/xfrm6_mode_transport.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/xfrm6_mode_tunnel.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/KVER-ipfire/kernel/net/irda -#lib/modules/KVER-ipfire/kernel/net/irda/ircomm -#lib/modules/KVER-ipfire/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/KVER-ipfire/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/KVER-ipfire/kernel/net/irda/irda.ko -#lib/modules/KVER-ipfire/kernel/net/irda/irlan -#lib/modules/KVER-ipfire/kernel/net/irda/irlan/irlan.ko -#lib/modules/KVER-ipfire/kernel/net/irda/irnet -#lib/modules/KVER-ipfire/kernel/net/irda/irnet/irnet.ko #lib/modules/KVER-ipfire/kernel/net/key #lib/modules/KVER-ipfire/kernel/net/key/af_key.ko #lib/modules/KVER-ipfire/kernel/net/l2tp #lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_core.ko #lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_eth.ko #lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ip6.ko #lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_netlink.ko #lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ppp.ko -#lib/modules/KVER-ipfire/kernel/net/llc -#lib/modules/KVER-ipfire/kernel/net/llc/llc.ko #lib/modules/KVER-ipfire/kernel/net/mac80211 #lib/modules/KVER-ipfire/kernel/net/mac80211/mac80211.ko #lib/modules/KVER-ipfire/kernel/net/netfilter +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_bitmap_ip.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_bitmap_ipmac.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_bitmap_port.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_ip.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_ipport.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_ipportip.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_ipportnet.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_net.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_netiface.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_hash_netport.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/ipset/ip_set_list_set.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs_dh.ko @@ -2097,7 +2488,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs_sh.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs_wlc.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs_wrr.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_amanda.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_broadcast.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_ftp.ko @@ -2114,33 +2504,51 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_sip.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_snmp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_tproxy_core.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_acct.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_cthelper.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_cttimeout.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_log.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_queue.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/x_tables.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_AUDIT.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CHECKSUM.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CONNSECMARK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CT.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_DSCP.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_HMARK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_IDLETIMER.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_IMQ.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_LOG.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NETMAP.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NFLOG.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NOTRACK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_REDIRECT.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_SECMARK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TCPMSS.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TCPOPTSTRIP.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TEE.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TPROXY.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TRACE.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_bpf.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_cluster.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_comment.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connlabel.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connlimit.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connmark.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_conntrack.ko @@ -2148,18 +2556,20 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_dccp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_devgroup.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_ecn.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_esp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_hashlimit.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_helper.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_hl.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_iprange.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_ipvs.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_layer7.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_length.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_limit.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_mac.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_mark.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_nat.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_nfacct.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_osf.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_owner.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_physdev.ko @@ -2170,20 +2580,21 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_realm.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_recent.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_set.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_socket.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_state.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_statistic.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_string.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_tcpmss.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_tcpudp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_time.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire/kernel/net/netlink +#lib/modules/KVER-ipfire/kernel/net/netlink/netlink_diag.ko +#lib/modules/KVER-ipfire/kernel/net/openvswitch +#lib/modules/KVER-ipfire/kernel/net/openvswitch/openvswitch.ko #lib/modules/KVER-ipfire/kernel/net/rfkill -#lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill-regulator.ko +#lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill-gpio.ko #lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill.ko -#lib/modules/KVER-ipfire/kernel/net/rxrpc -#lib/modules/KVER-ipfire/kernel/net/rxrpc/af-rxrpc.ko -#lib/modules/KVER-ipfire/kernel/net/rxrpc/rxkad.ko #lib/modules/KVER-ipfire/kernel/net/sched #lib/modules/KVER-ipfire/kernel/net/sched/act_csum.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_gact.ko @@ -2195,6 +2606,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/act_simple.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_skbedit.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire/kernel/net/sched/cls_cgroup.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_flow.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_fw.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_route.ko @@ -2203,6 +2615,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/cls_tcindex.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_u32.ko #lib/modules/KVER-ipfire/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire/kernel/net/sched/em_ipset.ko #lib/modules/KVER-ipfire/kernel/net/sched/em_meta.ko #lib/modules/KVER-ipfire/kernel/net/sched/em_nbyte.ko #lib/modules/KVER-ipfire/kernel/net/sched/em_text.ko @@ -2210,8 +2623,10 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/sch_atm.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_cbq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_codel.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_drr.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_fq_codel.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_gred.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_hfsc.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_htb.ko @@ -2219,6 +2634,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/sch_mqprio.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_multiq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_plug.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_prio.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_qfq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_red.ko @@ -2226,11 +2642,18 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/sch_sfq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_tbf.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire/kernel/net/sctp +#lib/modules/KVER-ipfire/kernel/net/sctp/sctp.ko #lib/modules/KVER-ipfire/kernel/net/sunrpc #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko #lib/modules/KVER-ipfire/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire/kernel/net/unix +#lib/modules/KVER-ipfire/kernel/net/unix/unix_diag.ko +#lib/modules/KVER-ipfire/kernel/net/vmw_vsock +#lib/modules/KVER-ipfire/kernel/net/vmw_vsock/vmw_vsock_vmci_transport.ko +#lib/modules/KVER-ipfire/kernel/net/vmw_vsock/vsock.ko #lib/modules/KVER-ipfire/kernel/net/wireless #lib/modules/KVER-ipfire/kernel/net/wireless/cfg80211.ko #lib/modules/KVER-ipfire/kernel/net/wireless/lib80211.ko @@ -2239,7 +2662,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/wireless/lib80211_crypt_wep.ko #lib/modules/KVER-ipfire/kernel/net/xfrm #lib/modules/KVER-ipfire/kernel/net/xfrm/xfrm_ipcomp.ko -#lib/modules/KVER-ipfire/kernel/net/xfrm/xfrm_user.ko #lib/modules/KVER-ipfire/kernel/sound #lib/modules/KVER-ipfire/kernel/sound/ac97_bus.ko #lib/modules/KVER-ipfire/kernel/sound/core @@ -2273,6 +2695,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/drivers/opl4 #lib/modules/KVER-ipfire/kernel/sound/drivers/opl4/snd-opl4-lib.ko #lib/modules/KVER-ipfire/kernel/sound/drivers/opl4/snd-opl4-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/pcsp +#lib/modules/KVER-ipfire/kernel/sound/drivers/pcsp/snd-pcsp.ko #lib/modules/KVER-ipfire/kernel/sound/drivers/snd-aloop.ko #lib/modules/KVER-ipfire/kernel/sound/drivers/snd-dummy.ko #lib/modules/KVER-ipfire/kernel/sound/drivers/snd-mtpav.ko @@ -2285,12 +2709,10 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/firewire #lib/modules/KVER-ipfire/kernel/sound/firewire/snd-firewire-lib.ko #lib/modules/KVER-ipfire/kernel/sound/firewire/snd-firewire-speakers.ko -#lib/modules/KVER-ipfire/kernel/sound/firewire/snd-isight.ko #lib/modules/KVER-ipfire/kernel/sound/i2c #lib/modules/KVER-ipfire/kernel/sound/i2c/other #lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4113.ko #lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4114.ko -#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4117.ko #lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4xxx-adda.ko #lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-pt2258.ko #lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-tea575x-tuner.ko @@ -2340,6 +2762,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/isa/snd-adlib.ko #lib/modules/KVER-ipfire/kernel/sound/isa/snd-als100.ko #lib/modules/KVER-ipfire/kernel/sound/isa/snd-azt2320.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-cmi8328.ko #lib/modules/KVER-ipfire/kernel/sound/isa/snd-cmi8330.ko #lib/modules/KVER-ipfire/kernel/sound/isa/snd-es18xx.ko #lib/modules/KVER-ipfire/kernel/sound/isa/snd-opl3sa2.ko @@ -2360,8 +2783,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8810.ko #lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8820.ko #lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8830.ko -#lib/modules/KVER-ipfire/kernel/sound/pci/aw2 -#lib/modules/KVER-ipfire/kernel/sound/pci/aw2/snd-aw2.ko #lib/modules/KVER-ipfire/kernel/sound/pci/ca0106 #lib/modules/KVER-ipfire/kernel/sound/pci/ca0106/snd-ca0106.ko #lib/modules/KVER-ipfire/kernel/sound/pci/cs46xx @@ -2449,7 +2870,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/pci/snd-maestro3.ko #lib/modules/KVER-ipfire/kernel/sound/pci/snd-rme32.ko #lib/modules/KVER-ipfire/kernel/sound/pci/snd-rme96.ko -#lib/modules/KVER-ipfire/kernel/sound/pci/snd-sis7019.ko #lib/modules/KVER-ipfire/kernel/sound/pci/snd-sonicvibes.ko #lib/modules/KVER-ipfire/kernel/sound/pci/snd-via82xx-modem.ko #lib/modules/KVER-ipfire/kernel/sound/pci/snd-via82xx.ko @@ -2459,11 +2879,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/pci/vx222/snd-vx222.ko #lib/modules/KVER-ipfire/kernel/sound/pci/ymfpci #lib/modules/KVER-ipfire/kernel/sound/pci/ymfpci/snd-ymfpci.ko -#lib/modules/KVER-ipfire/kernel/sound/pcmcia -#lib/modules/KVER-ipfire/kernel/sound/pcmcia/pdaudiocf -#lib/modules/KVER-ipfire/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko -#lib/modules/KVER-ipfire/kernel/sound/pcmcia/vx -#lib/modules/KVER-ipfire/kernel/sound/pcmcia/vx/snd-vxpocket.ko #lib/modules/KVER-ipfire/kernel/sound/soundcore.ko #lib/modules/KVER-ipfire/kernel/sound/synth #lib/modules/KVER-ipfire/kernel/sound/synth/emux @@ -2484,19 +2899,14 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/modules.alias #lib/modules/KVER-ipfire/modules.alias.bin #lib/modules/KVER-ipfire/modules.builtin -#lib/modules/KVER-ipfire/modules.ccwmap +#lib/modules/KVER-ipfire/modules.builtin.bin #lib/modules/KVER-ipfire/modules.dep #lib/modules/KVER-ipfire/modules.dep.bin -#lib/modules/KVER-ipfire/modules.ieee1394map -#lib/modules/KVER-ipfire/modules.inputmap -#lib/modules/KVER-ipfire/modules.isapnpmap -#lib/modules/KVER-ipfire/modules.ofmap +#lib/modules/KVER-ipfire/modules.devname #lib/modules/KVER-ipfire/modules.order -#lib/modules/KVER-ipfire/modules.pcimap -#lib/modules/KVER-ipfire/modules.seriomap +#lib/modules/KVER-ipfire/modules.softdep #lib/modules/KVER-ipfire/modules.symbols #lib/modules/KVER-ipfire/modules.symbols.bin -#lib/modules/KVER-ipfire/modules.usbmap #lib/modules/KVER-ipfire/source sbin/gen_init_cpio boot/ipfirerd-KVER.img diff --git a/config/rootfiles/common/i586/linux-headers b/config/rootfiles/common/i586/linux-headers index e518ab3..6bfdcca 100644 --- a/config/rootfiles/common/i586/linux-headers +++ b/config/rootfiles/common/i586/linux-headers @@ -10,6 +10,7 @@ #usr/include/asm-generic/ioctl.h #usr/include/asm-generic/ioctls.h #usr/include/asm-generic/ipcbuf.h +#usr/include/asm-generic/kvm_para.h #usr/include/asm-generic/mman-common.h #usr/include/asm-generic/mman.h #usr/include/asm-generic/msgbuf.h @@ -60,10 +61,12 @@ #usr/include/asm/msr.h #usr/include/asm/mtrr.h #usr/include/asm/param.h +#usr/include/asm/perf_regs.h #usr/include/asm/poll.h #usr/include/asm/posix_types.h #usr/include/asm/posix_types_32.h #usr/include/asm/posix_types_64.h +#usr/include/asm/posix_types_x32.h #usr/include/asm/prctl.h #usr/include/asm/processor-flags.h #usr/include/asm/ptrace-abi.h @@ -80,6 +83,7 @@ #usr/include/asm/sockios.h #usr/include/asm/stat.h #usr/include/asm/statfs.h +#usr/include/asm/svm.h #usr/include/asm/swab.h #usr/include/asm/termbits.h #usr/include/asm/termios.h @@ -88,20 +92,26 @@ #usr/include/asm/unistd.h #usr/include/asm/unistd_32.h #usr/include/asm/unistd_64.h +#usr/include/asm/unistd_x32.h #usr/include/asm/vm86.h +#usr/include/asm/vmx.h #usr/include/asm/vsyscall.h #usr/include/drm #usr/include/drm/drm.h +#usr/include/drm/drm_fourcc.h #usr/include/drm/drm_mode.h #usr/include/drm/drm_sarea.h +#usr/include/drm/exynos_drm.h #usr/include/drm/i810_drm.h #usr/include/drm/i915_drm.h #usr/include/drm/mga_drm.h #usr/include/drm/nouveau_drm.h +#usr/include/drm/qxl_drm.h #usr/include/drm/r128_drm.h #usr/include/drm/radeon_drm.h #usr/include/drm/savage_drm.h #usr/include/drm/sis_drm.h +#usr/include/drm/tegra_drm.h #usr/include/drm/via_drm.h #usr/include/drm/vmwgfx_drm.h #usr/include/linux @@ -142,11 +152,11 @@ #usr/include/linux/baycom.h #usr/include/linux/bfs_fs.h #usr/include/linux/binfmts.h -#usr/include/linux/blk_types.h #usr/include/linux/blkpg.h #usr/include/linux/blktrace_api.h #usr/include/linux/bpqether.h #usr/include/linux/bsg.h +#usr/include/linux/btrfs.h #usr/include/linux/byteorder #usr/include/linux/byteorder/big_endian.h #usr/include/linux/byteorder/little_endian.h @@ -164,7 +174,6 @@ #usr/include/linux/capi.h #usr/include/linux/cciss_defs.h #usr/include/linux/cciss_ioctl.h -#usr/include/linux/cdk.h #usr/include/linux/cdrom.h #usr/include/linux/cgroupstats.h #usr/include/linux/chio.h @@ -173,7 +182,6 @@ #usr/include/linux/coda.h #usr/include/linux/coda_psdev.h #usr/include/linux/coff.h -#usr/include/linux/comstats.h #usr/include/linux/connector.h #usr/include/linux/const.h #usr/include/linux/cramfs_fs.h @@ -210,7 +218,6 @@ #usr/include/linux/errqueue.h #usr/include/linux/ethtool.h #usr/include/linux/eventpoll.h -#usr/include/linux/ext2_fs.h #usr/include/linux/fadvise.h #usr/include/linux/falloc.h #usr/include/linux/fanotify.h @@ -230,7 +237,6 @@ #usr/include/linux/futex.h #usr/include/linux/gameport.h #usr/include/linux/gen_stats.h -#usr/include/linux/generic_serial.h #usr/include/linux/genetlink.h #usr/include/linux/gfs2_ondisk.h #usr/include/linux/gigaset_dev.h @@ -243,6 +249,9 @@ #usr/include/linux/hiddev.h #usr/include/linux/hidraw.h #usr/include/linux/hpet.h +#usr/include/linux/hsi +#usr/include/linux/hsi/hsi_char.h +#usr/include/linux/hw_breakpoint.h #usr/include/linux/hysdn_if.h #usr/include/linux/i2c-dev.h #usr/include/linux/i2c.h @@ -259,7 +268,6 @@ #usr/include/linux/if_bonding.h #usr/include/linux/if_bridge.h #usr/include/linux/if_cablemodem.h -#usr/include/linux/if_ec.h #usr/include/linux/if_eql.h #usr/include/linux/if_ether.h #usr/include/linux/if_fc.h @@ -276,8 +284,7 @@ #usr/include/linux/if_pppol2tp.h #usr/include/linux/if_pppox.h #usr/include/linux/if_slip.h -#usr/include/linux/if_strip.h -#usr/include/linux/if_tr.h +#usr/include/linux/if_team.h #usr/include/linux/if_tun.h #usr/include/linux/if_tunnel.h #usr/include/linux/if_vlan.h @@ -319,6 +326,7 @@ #usr/include/linux/kernel-page-flags.h #usr/include/linux/kernel.h #usr/include/linux/kernelcapi.h +#usr/include/linux/kexec.h #usr/include/linux/keyboard.h #usr/include/linux/keyctl.h #usr/include/linux/kvm.h @@ -332,7 +340,9 @@ #usr/include/linux/major.h #usr/include/linux/map_to_7segment.h #usr/include/linux/matroxfb.h +#usr/include/linux/mdio.h #usr/include/linux/media.h +#usr/include/linux/mei.h #usr/include/linux/mempolicy.h #usr/include/linux/meye.h #usr/include/linux/mii.h @@ -357,6 +367,7 @@ #usr/include/linux/net.h #usr/include/linux/net_dropmon.h #usr/include/linux/net_tstamp.h +#usr/include/linux/netconf.h #usr/include/linux/netdevice.h #usr/include/linux/netfilter #usr/include/linux/netfilter.h @@ -370,9 +381,13 @@ #usr/include/linux/netfilter/nf_conntrack_sctp.h #usr/include/linux/netfilter/nf_conntrack_tcp.h #usr/include/linux/netfilter/nf_conntrack_tuple_common.h +#usr/include/linux/netfilter/nf_nat.h #usr/include/linux/netfilter/nfnetlink.h +#usr/include/linux/netfilter/nfnetlink_acct.h #usr/include/linux/netfilter/nfnetlink_compat.h #usr/include/linux/netfilter/nfnetlink_conntrack.h +#usr/include/linux/netfilter/nfnetlink_cthelper.h +#usr/include/linux/netfilter/nfnetlink_cttimeout.h #usr/include/linux/netfilter/nfnetlink_log.h #usr/include/linux/netfilter/nfnetlink_queue.h #usr/include/linux/netfilter/x_tables.h @@ -385,6 +400,7 @@ #usr/include/linux/netfilter/xt_DSCP.h #usr/include/linux/netfilter/xt_IDLETIMER.h #usr/include/linux/netfilter/xt_LED.h +#usr/include/linux/netfilter/xt_LOG.h #usr/include/linux/netfilter/xt_MARK.h #usr/include/linux/netfilter/xt_NFLOG.h #usr/include/linux/netfilter/xt_NFQUEUE.h @@ -395,9 +411,11 @@ #usr/include/linux/netfilter/xt_TEE.h #usr/include/linux/netfilter/xt_TPROXY.h #usr/include/linux/netfilter/xt_addrtype.h +#usr/include/linux/netfilter/xt_bpf.h #usr/include/linux/netfilter/xt_cluster.h #usr/include/linux/netfilter/xt_comment.h #usr/include/linux/netfilter/xt_connbytes.h +#usr/include/linux/netfilter/xt_connlabel.h #usr/include/linux/netfilter/xt_connlimit.h #usr/include/linux/netfilter/xt_connmark.h #usr/include/linux/netfilter/xt_conntrack.h @@ -405,6 +423,7 @@ #usr/include/linux/netfilter/xt_dccp.h #usr/include/linux/netfilter/xt_devgroup.h #usr/include/linux/netfilter/xt_dscp.h +#usr/include/linux/netfilter/xt_ecn.h #usr/include/linux/netfilter/xt_esp.h #usr/include/linux/netfilter/xt_hashlimit.h #usr/include/linux/netfilter/xt_helper.h @@ -415,6 +434,7 @@ #usr/include/linux/netfilter/xt_mac.h #usr/include/linux/netfilter/xt_mark.h #usr/include/linux/netfilter/xt_multiport.h +#usr/include/linux/netfilter/xt_nfacct.h #usr/include/linux/netfilter/xt_osf.h #usr/include/linux/netfilter/xt_owner.h #usr/include/linux/netfilter/xt_physdev.h @@ -461,26 +481,22 @@ #usr/include/linux/netfilter_decnet.h #usr/include/linux/netfilter_ipv4 #usr/include/linux/netfilter_ipv4.h -#usr/include/linux/netfilter_ipv4/ip_queue.h #usr/include/linux/netfilter_ipv4/ip_tables.h #usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h #usr/include/linux/netfilter_ipv4/ipt_ECN.h #usr/include/linux/netfilter_ipv4/ipt_LOG.h #usr/include/linux/netfilter_ipv4/ipt_REJECT.h -#usr/include/linux/netfilter_ipv4/ipt_SAME.h #usr/include/linux/netfilter_ipv4/ipt_TTL.h #usr/include/linux/netfilter_ipv4/ipt_ULOG.h -#usr/include/linux/netfilter_ipv4/ipt_addrtype.h #usr/include/linux/netfilter_ipv4/ipt_ah.h #usr/include/linux/netfilter_ipv4/ipt_ecn.h -#usr/include/linux/netfilter_ipv4/ipt_realm.h #usr/include/linux/netfilter_ipv4/ipt_ttl.h -#usr/include/linux/netfilter_ipv4/nf_nat.h #usr/include/linux/netfilter_ipv6 #usr/include/linux/netfilter_ipv6.h #usr/include/linux/netfilter_ipv6/ip6_tables.h #usr/include/linux/netfilter_ipv6/ip6t_HL.h #usr/include/linux/netfilter_ipv6/ip6t_LOG.h +#usr/include/linux/netfilter_ipv6/ip6t_NPT.h #usr/include/linux/netfilter_ipv6/ip6t_REJECT.h #usr/include/linux/netfilter_ipv6/ip6t_ah.h #usr/include/linux/netfilter_ipv6/ip6t_frag.h @@ -490,6 +506,7 @@ #usr/include/linux/netfilter_ipv6/ip6t_opts.h #usr/include/linux/netfilter_ipv6/ip6t_rt.h #usr/include/linux/netlink.h +#usr/include/linux/netlink_diag.h #usr/include/linux/netrom.h #usr/include/linux/nfc.h #usr/include/linux/nfs.h @@ -502,6 +519,7 @@ #usr/include/linux/nfs_mount.h #usr/include/linux/nfsacl.h #usr/include/linux/nfsd +#usr/include/linux/nfsd/cld.h #usr/include/linux/nfsd/debug.h #usr/include/linux/nfsd/export.h #usr/include/linux/nfsd/nfsfh.h @@ -512,6 +530,8 @@ #usr/include/linux/omap3isp.h #usr/include/linux/omapfb.h #usr/include/linux/oom.h +#usr/include/linux/openvswitch.h +#usr/include/linux/packet_diag.h #usr/include/linux/param.h #usr/include/linux/parport.h #usr/include/linux/patchkey.h @@ -531,6 +551,7 @@ #usr/include/linux/posix_types.h #usr/include/linux/ppdev.h #usr/include/linux/ppp-comp.h +#usr/include/linux/ppp-ioctl.h #usr/include/linux/ppp_defs.h #usr/include/linux/pps.h #usr/include/linux/prctl.h @@ -559,7 +580,9 @@ #usr/include/linux/scc.h #usr/include/linux/sched.h #usr/include/linux/screen_info.h +#usr/include/linux/sctp.h #usr/include/linux/sdla.h +#usr/include/linux/seccomp.h #usr/include/linux/securebits.h #usr/include/linux/selinux_netlink.h #usr/include/linux/sem.h @@ -571,6 +594,7 @@ #usr/include/linux/signal.h #usr/include/linux/signalfd.h #usr/include/linux/snmp.h +#usr/include/linux/sock_diag.h #usr/include/linux/socket.h #usr/include/linux/sockios.h #usr/include/linux/som.h @@ -589,6 +613,7 @@ #usr/include/linux/swab.h #usr/include/linux/synclink.h #usr/include/linux/sysctl.h +#usr/include/linux/sysinfo.h #usr/include/linux/taskstats.h #usr/include/linux/tc_act #usr/include/linux/tc_act/tc_csum.h @@ -604,6 +629,7 @@ #usr/include/linux/tc_ematch/tc_em_nbyte.h #usr/include/linux/tc_ematch/tc_em_text.h #usr/include/linux/tcp.h +#usr/include/linux/tcp_metrics.h #usr/include/linux/telephony.h #usr/include/linux/termios.h #usr/include/linux/time.h @@ -614,14 +640,17 @@ #usr/include/linux/tipc_config.h #usr/include/linux/toshiba.h #usr/include/linux/tty.h +#usr/include/linux/tty_flags.h #usr/include/linux/types.h #usr/include/linux/udf_fs_i.h #usr/include/linux/udp.h +#usr/include/linux/uhid.h #usr/include/linux/uinput.h #usr/include/linux/uio.h #usr/include/linux/ultrasound.h #usr/include/linux/un.h #usr/include/linux/unistd.h +#usr/include/linux/unix_diag.h #usr/include/linux/usb #usr/include/linux/usb/audio.h #usr/include/linux/usb/cdc.h @@ -636,11 +665,16 @@ #usr/include/linux/usbdevice_fs.h #usr/include/linux/utime.h #usr/include/linux/utsname.h +#usr/include/linux/uuid.h #usr/include/linux/uvcvideo.h +#usr/include/linux/v4l2-common.h +#usr/include/linux/v4l2-controls.h +#usr/include/linux/v4l2-dv-timings.h #usr/include/linux/v4l2-mediabus.h #usr/include/linux/v4l2-subdev.h #usr/include/linux/version.h #usr/include/linux/veth.h +#usr/include/linux/vfio.h #usr/include/linux/vhost.h #usr/include/linux/videodev2.h #usr/include/linux/virtio_9p.h @@ -690,11 +724,14 @@ #usr/include/sound/asequencer.h #usr/include/sound/asound.h #usr/include/sound/asound_fm.h +#usr/include/sound/compress_offload.h +#usr/include/sound/compress_params.h #usr/include/sound/emu10k1.h #usr/include/sound/hdsp.h #usr/include/sound/hdspm.h #usr/include/sound/sb16_csp.h #usr/include/sound/sfnt_info.h +#usr/include/uapi #usr/include/video #usr/include/video/edid.h #usr/include/video/sisfb.h diff --git a/config/rootfiles/common/i586/lm_sensors b/config/rootfiles/common/i586/lm_sensors index 217ac54..f23b97c 100644 --- a/config/rootfiles/common/i586/lm_sensors +++ b/config/rootfiles/common/i586/lm_sensors @@ -8,7 +8,7 @@ usr/bin/sensors-conf-convert #usr/lib/libsensors.a usr/lib/libsensors.so usr/lib/libsensors.so.4 -usr/lib/libsensors.so.4.3.1 +usr/lib/libsensors.so.4.3.2 #usr/man/man1/sensors.1 #usr/man/man3/libsensors.3 #usr/man/man5/sensors.conf.5 diff --git a/config/rootfiles/common/i586/mISDN b/config/rootfiles/common/i586/mISDN deleted file mode 100644 index 4cf067a..0000000 --- a/config/rootfiles/common/i586/mISDN +++ /dev/null @@ -1,23 +0,0 @@ -etc/modprobe.d/mISDN -#lib/modules/2.6.32.15-ipfire/mISDN -#lib/modules/2.6.32.15-ipfire/mISDN/avmfritz.ko -#lib/modules/2.6.32.15-ipfire/mISDN/hfcmulti.ko -#lib/modules/2.6.32.15-ipfire/mISDN/hfcpci.ko -#lib/modules/2.6.32.15-ipfire/mISDN/hfcsusb.ko -#lib/modules/2.6.32.15-ipfire/mISDN/l1oip.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_core.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_kb1ec.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_mec2.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_mg2ec.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_octwareec.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_oslec.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_l1loop.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDNinfineon.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDNipac.ko -#lib/modules/2.6.32.15-ipfire/mISDN/mISDNisar.ko -#lib/modules/2.6.32.15-ipfire/mISDN/octvqe -#lib/modules/2.6.32.15-ipfire/mISDN/octvqe/octvqe.ko -#lib/modules/2.6.32.15-ipfire/mISDN/speedfax.ko -#lib/modules/2.6.32.15-ipfire/mISDN/w6692.ko -#lib/modules/2.6.32.15-ipfire/mISDN/xhfc.ko diff --git a/config/rootfiles/common/i586/util-linux b/config/rootfiles/common/i586/util-linux index f0a2b2b..ea3de18 100644 --- a/config/rootfiles/common/i586/util-linux +++ b/config/rootfiles/common/i586/util-linux @@ -1,17 +1,27 @@ -#bin/arch bin/dmesg +bin/findmnt +bin/lsblk bin/more bin/mount bin/umount -etc/fdprm +bin/wdctl +#etc/fcron.daily +etc/fcron.daily/trim +lib/libblkid.so.1.1.0 +lib/libmount.so.1 +lib/libmount.so.1.1.0 +lib/libuuid.so.1.3.0 sbin/agetty +sbin/blkdiscard sbin/blockdev sbin/cfdisk +sbin/chcpu sbin/ctrlaltdel -#sbin/elvtune sbin/fdisk #sbin/fsck.cramfs sbin/fsck.minix +sbin/fsfreeze +sbin/fstrim sbin/hwclock sbin/losetup sbin/mkfs @@ -19,50 +29,161 @@ sbin/mkfs #sbin/mkfs.cramfs sbin/mkfs.minix sbin/mkswap +sbin/nologin #sbin/pivot_root +sbin/raw sbin/sfdisk +sbin/swaplabel sbin/swapoff sbin/swapon +sbin/switch_root +sbin/wipefs #usr/bin/cal -#usr/bin/chkdupexe +#usr/bin/chrt #usr/bin/col #usr/bin/colcrt #usr/bin/colrm #usr/bin/column #usr/bin/cytune -#usr/bin/ddate -usr/bin/fdformat +usr/bin/eject +usr/bin/fallocate usr/bin/flock usr/bin/getopt #usr/bin/hexdump +#usr/bin/i386 +usr/bin/ionice +#usr/bin/ipcmk #usr/bin/ipcrm #usr/bin/ipcs #usr/bin/isosize -#usr/bin/line +#usr/bin/linux32 +#usr/bin/linux64 usr/bin/logger #usr/bin/look +usr/bin/lscpu +usr/bin/lslocks #usr/bin/mcookie #usr/bin/namei +#usr/bin/nsenter usr/bin/pg -#usr/bin/raw +usr/bin/prlimit usr/bin/rename usr/bin/renice #usr/bin/rev #usr/bin/script -#usr/bin/setfdprm +#usr/bin/scriptreplay +#usr/bin/setarch #usr/bin/setsid #usr/bin/setterm #usr/bin/tailf +#usr/bin/taskset #usr/bin/ul +#usr/bin/unshare #usr/bin/whereis -#usr/bin/write -#usr/sbin/ramsize -usr/sbin/rdev +#usr/include/libmount +#usr/include/libmount/libmount.h +#usr/lib/libblkid.la +#usr/lib/libmount.a +#usr/lib/libmount.la +#usr/lib/libmount.so +#usr/lib/libuuid.la +#usr/lib/pkgconfig/mount.pc +usr/sbin/addpart +usr/sbin/delpart +usr/sbin/fdformat +usr/sbin/ldattach +usr/sbin/partx #usr/sbin/readprofile -#usr/sbin/rootflags -#usr/sbin/tunelp -#usr/sbin/vidmode -#usr/share/info/ipc.info +usr/sbin/resizepart +usr/sbin/rtcwake +usr/share/bash-completion +#usr/share/bash-completion/completions +#usr/share/bash-completion/completions/addpart +#usr/share/bash-completion/completions/blkdiscard +#usr/share/bash-completion/completions/blkid +#usr/share/bash-completion/completions/blockdev +#usr/share/bash-completion/completions/cal +#usr/share/bash-completion/completions/cfdisk +#usr/share/bash-completion/completions/chcpu +#usr/share/bash-completion/completions/chrt +#usr/share/bash-completion/completions/col +#usr/share/bash-completion/completions/colcrt +#usr/share/bash-completion/completions/colrm +#usr/share/bash-completion/completions/column +#usr/share/bash-completion/completions/ctrlaltdel +#usr/share/bash-completion/completions/cytune +#usr/share/bash-completion/completions/delpart +#usr/share/bash-completion/completions/dmesg +#usr/share/bash-completion/completions/eject +#usr/share/bash-completion/completions/fallocate +#usr/share/bash-completion/completions/fdformat +#usr/share/bash-completion/completions/fdisk +#usr/share/bash-completion/completions/findmnt +#usr/share/bash-completion/completions/flock +#usr/share/bash-completion/completions/fsck +#usr/share/bash-completion/completions/fsck.cramfs +#usr/share/bash-completion/completions/fsck.minix +#usr/share/bash-completion/completions/fsfreeze +#usr/share/bash-completion/completions/fstrim +#usr/share/bash-completion/completions/getopt +#usr/share/bash-completion/completions/hexdump +#usr/share/bash-completion/completions/hwclock +#usr/share/bash-completion/completions/ionice +#usr/share/bash-completion/completions/ipcrm +#usr/share/bash-completion/completions/ipcs +#usr/share/bash-completion/completions/isosize +#usr/share/bash-completion/completions/ldattach +#usr/share/bash-completion/completions/logger +#usr/share/bash-completion/completions/look +#usr/share/bash-completion/completions/losetup +#usr/share/bash-completion/completions/lsblk +#usr/share/bash-completion/completions/lscpu +#usr/share/bash-completion/completions/lslocks +#usr/share/bash-completion/completions/mcookie +#usr/share/bash-completion/completions/mesg +#usr/share/bash-completion/completions/mkfs +#usr/share/bash-completion/completions/mkfs.bfs +#usr/share/bash-completion/completions/mkfs.cramfs +#usr/share/bash-completion/completions/mkfs.minix +#usr/share/bash-completion/completions/mkswap +#usr/share/bash-completion/completions/more +#usr/share/bash-completion/completions/mountpoint +#usr/share/bash-completion/completions/namei +#usr/share/bash-completion/completions/nsenter +#usr/share/bash-completion/completions/partx +#usr/share/bash-completion/completions/pg +#usr/share/bash-completion/completions/pivot_root +#usr/share/bash-completion/completions/prlimit +#usr/share/bash-completion/completions/raw +#usr/share/bash-completion/completions/readprofile +#usr/share/bash-completion/completions/rename +#usr/share/bash-completion/completions/renice +#usr/share/bash-completion/completions/resizepart +#usr/share/bash-completion/completions/rev +#usr/share/bash-completion/completions/rtcwake +#usr/share/bash-completion/completions/script +#usr/share/bash-completion/completions/scriptreplay +#usr/share/bash-completion/completions/setarch +#usr/share/bash-completion/completions/setsid +#usr/share/bash-completion/completions/setterm +#usr/share/bash-completion/completions/sfdisk +#usr/share/bash-completion/completions/swaplabel +#usr/share/bash-completion/completions/swapon +#usr/share/bash-completion/completions/tailf +#usr/share/bash-completion/completions/taskset +#usr/share/bash-completion/completions/ul +#usr/share/bash-completion/completions/unshare +#usr/share/bash-completion/completions/utmpdump +#usr/share/bash-completion/completions/uuidd +#usr/share/bash-completion/completions/uuidgen +#usr/share/bash-completion/completions/wall +#usr/share/bash-completion/completions/wdctl +#usr/share/bash-completion/completions/whereis +#usr/share/bash-completion/completions/wipefs +#usr/share/doc/util-linux +#usr/share/doc/util-linux/getopt +#usr/share/doc/util-linux/getopt/getopt-parse.bash +#usr/share/doc/util-linux/getopt/getopt-parse.tcsh #usr/share/locale/ca/LC_MESSAGES/util-linux.mo #usr/share/locale/cs/LC_MESSAGES/util-linux.mo #usr/share/locale/da/LC_MESSAGES/util-linux.mo @@ -71,12 +192,21 @@ usr/sbin/rdev #usr/share/locale/et #usr/share/locale/et/LC_MESSAGES #usr/share/locale/et/LC_MESSAGES/util-linux.mo +#usr/share/locale/eu +#usr/share/locale/eu/LC_MESSAGES +#usr/share/locale/eu/LC_MESSAGES/util-linux.mo #usr/share/locale/fi/LC_MESSAGES/util-linux.mo #usr/share/locale/fr/LC_MESSAGES/util-linux.mo +#usr/share/locale/gl/LC_MESSAGES/util-linux.mo +#usr/share/locale/hr/LC_MESSAGES/util-linux.mo +#usr/share/locale/hu/LC_MESSAGES/util-linux.mo +#usr/share/locale/id/LC_MESSAGES/util-linux.mo #usr/share/locale/it/LC_MESSAGES/util-linux.mo #usr/share/locale/ja/LC_MESSAGES/util-linux.mo #usr/share/locale/nl/LC_MESSAGES/util-linux.mo +#usr/share/locale/pl/LC_MESSAGES/util-linux.mo #usr/share/locale/pt_BR/LC_MESSAGES/util-linux.mo +#usr/share/locale/ru/LC_MESSAGES/util-linux.mo #usr/share/locale/sl #usr/share/locale/sl/LC_MESSAGES #usr/share/locale/sl/LC_MESSAGES/util-linux.mo @@ -85,72 +215,92 @@ usr/sbin/rdev #usr/share/locale/uk #usr/share/locale/uk/LC_MESSAGES #usr/share/locale/uk/LC_MESSAGES/util-linux.mo -#usr/share/man/man1/arch.1 +#usr/share/locale/vi/LC_MESSAGES/util-linux.mo +#usr/share/locale/zh_CN/LC_MESSAGES/util-linux.mo +#usr/share/locale/zh_TW/LC_MESSAGES/util-linux.mo #usr/share/man/man1/cal.1 -#usr/share/man/man1/chkdupexe.1 +#usr/share/man/man1/chrt.1 #usr/share/man/man1/col.1 #usr/share/man/man1/colcrt.1 #usr/share/man/man1/colrm.1 #usr/share/man/man1/column.1 -#usr/share/man/man1/ddate.1 +#usr/share/man/man1/dmesg.1 +#usr/share/man/man1/eject.1 +#usr/share/man/man1/fallocate.1 #usr/share/man/man1/flock.1 #usr/share/man/man1/getopt.1 #usr/share/man/man1/hexdump.1 -#usr/share/man/man1/line.1 +#usr/share/man/man1/ionice.1 +#usr/share/man/man1/ipcmk.1 +#usr/share/man/man1/ipcrm.1 +#usr/share/man/man1/ipcs.1 #usr/share/man/man1/look.1 +#usr/share/man/man1/lscpu.1 #usr/share/man/man1/mcookie.1 #usr/share/man/man1/more.1 #usr/share/man/man1/namei.1 +#usr/share/man/man1/nsenter.1 #usr/share/man/man1/pg.1 -#usr/share/man/man1/readprofile.1 +#usr/share/man/man1/prlimit.1 #usr/share/man/man1/rename.1 +#usr/share/man/man1/renice.1 #usr/share/man/man1/rev.1 #usr/share/man/man1/script.1 +#usr/share/man/man1/scriptreplay.1 +#usr/share/man/man1/setsid.1 #usr/share/man/man1/setterm.1 #usr/share/man/man1/tailf.1 +#usr/share/man/man1/taskset.1 #usr/share/man/man1/ul.1 +#usr/share/man/man1/unshare.1 #usr/share/man/man1/whereis.1 -#usr/share/man/man1/write.1 +#usr/share/man/man3/uuid_generate_time_safe.3 #usr/share/man/man5/fstab.5 -#usr/share/man/man5/nfs.5 +#usr/share/man/man8/addpart.8 #usr/share/man/man8/agetty.8 +#usr/share/man/man8/blkdiscard.8 #usr/share/man/man8/blockdev.8 #usr/share/man/man8/cfdisk.8 +#usr/share/man/man8/chcpu.8 #usr/share/man/man8/ctrlaltdel.8 #usr/share/man/man8/cytune.8 -#usr/share/man/man8/dmesg.8 -#usr/share/man/man8/elvtune.8 +#usr/share/man/man8/delpart.8 #usr/share/man/man8/fdformat.8 #usr/share/man/man8/fdisk.8 +#usr/share/man/man8/findmnt.8 +#usr/share/man/man8/fsck.cramfs.8 #usr/share/man/man8/fsck.minix.8 +#usr/share/man/man8/fsfreeze.8 +#usr/share/man/man8/fstrim.8 #usr/share/man/man8/hwclock.8 -#usr/share/man/man8/ipcrm.8 -#usr/share/man/man8/ipcs.8 +#usr/share/man/man8/i386.8 #usr/share/man/man8/isosize.8 +#usr/share/man/man8/ldattach.8 +#usr/share/man/man8/linux32.8 +#usr/share/man/man8/linux64.8 #usr/share/man/man8/losetup.8 +#usr/share/man/man8/lsblk.8 +#usr/share/man/man8/lslocks.8 #usr/share/man/man8/mkfs.8 #usr/share/man/man8/mkfs.bfs.8 +#usr/share/man/man8/mkfs.cramfs.8 #usr/share/man/man8/mkfs.minix.8 #usr/share/man/man8/mkswap.8 #usr/share/man/man8/mount.8 +#usr/share/man/man8/nologin.8 +#usr/share/man/man8/partx.8 #usr/share/man/man8/pivot_root.8 -#usr/share/man/man8/ramsize.8 #usr/share/man/man8/raw.8 -#usr/share/man/man8/rdev.8 -#usr/share/man/man8/renice.8 -#usr/share/man/man8/rootflags.8 -#usr/share/man/man8/setfdprm.8 -#usr/share/man/man8/setsid.8 +#usr/share/man/man8/readprofile.8 +#usr/share/man/man8/resizepart.8 +#usr/share/man/man8/rtcwake.8 +#usr/share/man/man8/setarch.8 #usr/share/man/man8/sfdisk.8 -#usr/share/man/man8/sln.8 +#usr/share/man/man8/swaplabel.8 #usr/share/man/man8/swapoff.8 #usr/share/man/man8/swapon.8 -#usr/share/man/man8/tunelp.8 +#usr/share/man/man8/switch_root.8 #usr/share/man/man8/umount.8 -#usr/share/man/man8/vidmode.8 -#usr/share/misc/getopt -#usr/share/misc/getopt/getopt-parse.bash -#usr/share/misc/getopt/getopt-parse.tcsh -#usr/share/misc/getopt/getopt-test.bash -#usr/share/misc/getopt/getopt-test.tcsh -var/lib/hwclock +#usr/share/man/man8/wdctl.8 +#usr/share/man/man8/wipefs.8 + diff --git a/config/rootfiles/common/iptables b/config/rootfiles/common/iptables index 39225a4..a0f1290 100644 --- a/config/rootfiles/common/iptables +++ b/config/rootfiles/common/iptables @@ -16,12 +16,19 @@ lib/libiptc.so.0 lib/libiptc.so.0.0.0 #lib/libxtables.la lib/libxtables.so -lib/libxtables.so.7 -lib/libxtables.so.7.0.0 +lib/libxtables.so.10 +lib/libxtables.so.10.0.0 lib/xtables +#lib/xtables/libip6t_DNAT.so +#lib/xtables/libip6t_DNPT.so #lib/xtables/libip6t_HL.so #lib/xtables/libip6t_LOG.so +#lib/xtables/libip6t_MASQUERADE.so +#lib/xtables/libip6t_NETMAP.so +#lib/xtables/libip6t_REDIRECT.so #lib/xtables/libip6t_REJECT.so +#lib/xtables/libip6t_SNAT.so +#lib/xtables/libip6t_SNPT.so #lib/xtables/libip6t_ah.so #lib/xtables/libip6t_dst.so #lib/xtables/libip6t_eui64.so @@ -58,6 +65,7 @@ lib/xtables #lib/xtables/libxt_CONNSECMARK.so #lib/xtables/libxt_CT.so #lib/xtables/libxt_DSCP.so +#lib/xtables/libxt_HMARK.so #lib/xtables/libxt_IDLETIMER.so #lib/xtables/libxt_IMQ.so #lib/xtables/libxt_LED.so @@ -68,6 +76,7 @@ lib/xtables #lib/xtables/libxt_RATEEST.so #lib/xtables/libxt_SECMARK.so #lib/xtables/libxt_SET.so +#lib/xtables/libxt_SYNPROXY.so #lib/xtables/libxt_TCPMSS.so #lib/xtables/libxt_TCPOPTSTRIP.so #lib/xtables/libxt_TEE.so @@ -75,6 +84,7 @@ lib/xtables #lib/xtables/libxt_TPROXY.so #lib/xtables/libxt_TRACE.so #lib/xtables/libxt_addrtype.so +#lib/xtables/libxt_bpf.so #lib/xtables/libxt_cluster.so #lib/xtables/libxt_comment.so #lib/xtables/libxt_connbytes.so @@ -128,9 +138,6 @@ sbin/iptables-restore sbin/iptables-save sbin/iptables-xml sbin/xtables-multi -#usr/include/iptables -#usr/include/iptables.h -#usr/include/iptables/internal.h #usr/include/libipq.h #usr/include/libiptc #usr/include/libiptc/ipt_kernel_headers.h @@ -138,8 +145,6 @@ sbin/xtables-multi #usr/include/libiptc/libiptc.h #usr/include/libiptc/libxtc.h #usr/include/libiptc/xtcshared.h -#usr/include/libipulog -#usr/include/libipulog/libipulog.h #usr/include/libnetfilter_conntrack #usr/include/libnetfilter_conntrack/libnetfilter_conntrack.h #usr/include/libnetfilter_conntrack/libnetfilter_conntrack_dccp.h @@ -153,36 +158,13 @@ sbin/xtables-multi #usr/include/libnetfilter_cttimeout #usr/include/libnetfilter_cttimeout/libnetfilter_cttimeout.h #usr/include/libnetfilter_queue -#usr/include/libnetfilter_queue/libipq.h #usr/include/libnetfilter_queue/libnetfilter_queue.h #usr/include/libnetfilter_queue/linux_nfnetlink_queue.h #usr/include/libnfnetlink #usr/include/libnfnetlink/libnfnetlink.h #usr/include/libnfnetlink/linux_nfnetlink.h #usr/include/libnfnetlink/linux_nfnetlink_compat.h -#usr/include/linux/netfilter/Kbuild -#usr/include/linux/netfilter/ipset/Kbuild -#usr/include/linux/netfilter/ipset/ip_set_ahash.h -#usr/include/linux/netfilter/ipset/ip_set_getport.h -#usr/include/linux/netfilter/ipset/ip_set_timeout.h -#usr/include/linux/netfilter/ipset/pfxlen.h -#usr/include/linux/netfilter/nf_conntrack_amanda.h -#usr/include/linux/netfilter/nf_conntrack_dccp.h -#usr/include/linux/netfilter/nf_conntrack_h323.h -#usr/include/linux/netfilter/nf_conntrack_h323_asn1.h -#usr/include/linux/netfilter/nf_conntrack_h323_types.h -#usr/include/linux/netfilter/nf_conntrack_irc.h -#usr/include/linux/netfilter/nf_conntrack_pptp.h -#usr/include/linux/netfilter/nf_conntrack_proto_gre.h -#usr/include/linux/netfilter/nf_conntrack_sane.h -#usr/include/linux/netfilter/nf_conntrack_sip.h -#usr/include/linux/netfilter/nf_conntrack_snmp.h -#usr/include/linux/netfilter/nf_conntrack_tftp.h -#usr/include/linux/netfilter/xt_IMQ.h -#usr/include/linux/netfilter/xt_layer7.h -#usr/include/net/netfilter -#usr/include/net/netfilter/nf_conntrack_tuple.h -#usr/include/net/netfilter/nf_nat.h +#usr/include/xtables-version.h #usr/include/xtables.h #usr/lib/libnetfilter_conntrack.la usr/lib/libnetfilter_conntrack.so @@ -192,16 +174,10 @@ usr/lib/libnetfilter_conntrack.so.3.4.0 usr/lib/libnetfilter_cttimeout.so usr/lib/libnetfilter_cttimeout.so.1 usr/lib/libnetfilter_cttimeout.so.1.0.0 -#usr/lib/libnetfilter_queue.a #usr/lib/libnetfilter_queue.la usr/lib/libnetfilter_queue.so usr/lib/libnetfilter_queue.so.1 -usr/lib/libnetfilter_queue.so.1.1.0 -#usr/lib/libnetfilter_queue_libipq.a -#usr/lib/libnetfilter_queue_libipq.la -usr/lib/libnetfilter_queue_libipq.so -usr/lib/libnetfilter_queue_libipq.so.1 -usr/lib/libnetfilter_queue_libipq.so.1.0.0 +usr/lib/libnetfilter_queue.so.1.2.0 #usr/lib/libnfnetlink.a #usr/lib/libnfnetlink.la usr/lib/libnfnetlink.so @@ -231,6 +207,7 @@ usr/lib/libnfnetlink.so.0.2.0 #usr/share/man/man8/ip6tables-restore.8 #usr/share/man/man8/ip6tables-save.8 #usr/share/man/man8/ip6tables.8 +#usr/share/man/man8/iptables-extensions.8 #usr/share/man/man8/iptables-restore.8 #usr/share/man/man8/iptables-save.8 #usr/share/man/man8/iptables.8 diff --git a/config/rootfiles/common/jquery b/config/rootfiles/common/jquery new file mode 100644 index 0000000..cb55288 --- /dev/null +++ b/config/rootfiles/common/jquery @@ -0,0 +1 @@ +srv/web/ipfire/html/include/jquery.js diff --git a/config/rootfiles/common/kmod b/config/rootfiles/common/kmod new file mode 100644 index 0000000..14e7654 --- /dev/null +++ b/config/rootfiles/common/kmod @@ -0,0 +1,13 @@ +bin/kmod +sbin/depmod +sbin/insmod +sbin/lsmod +sbin/modinfo +sbin/modprobe +sbin/rmmod +#usr/include/libkmod.h +#usr/lib/libkmod.la +usr/lib/libkmod.so +usr/lib/libkmod.so.2 +usr/lib/libkmod.so.2.2.3 +#usr/lib/pkgconfig/libkmod.pc diff --git a/config/rootfiles/common/libnl b/config/rootfiles/common/libnl index 2beb800..960e1c8 100644 --- a/config/rootfiles/common/libnl +++ b/config/rootfiles/common/libnl @@ -53,7 +53,8 @@ #usr/include/netlink/socket.h #usr/include/netlink/types.h #usr/include/netlink/utils.h +#usr/lib/libnl.a usr/lib/libnl.so usr/lib/libnl.so.1 -usr/lib/libnl.so.1.1 +usr/lib/libnl.so.1.1.4 #usr/lib/pkgconfig/libnl-1.pc diff --git a/config/rootfiles/common/libusbx b/config/rootfiles/common/libusbx new file mode 100644 index 0000000..62d6492 --- /dev/null +++ b/config/rootfiles/common/libusbx @@ -0,0 +1,8 @@ +#usr/include/libusb-1.0 +#usr/include/libusb-1.0/libusb.h +#usr/lib/libusb-1.0.a +#usr/lib/libusb-1.0.la +#usr/lib/libusb-1.0.so +usr/lib/libusb-1.0.so.0 +usr/lib/libusb-1.0.so.0.1.0 +#usr/lib/pkgconfig/libusb-1.0.pc diff --git a/config/rootfiles/common/libxml2 b/config/rootfiles/common/libxml2 index ea2eb77..07c1edd 100644 --- a/config/rootfiles/common/libxml2 +++ b/config/rootfiles/common/libxml2 @@ -54,7 +54,7 @@ #usr/lib/libxml2.la usr/lib/libxml2.so usr/lib/libxml2.so.2 -usr/lib/libxml2.so.2.6.26 +usr/lib/libxml2.so.2.6.32 #usr/lib/pkgconfig/libxml-2.0.pc usr/lib/python2.7/site-packages/drv_libxml2.py usr/lib/python2.7/site-packages/libxml2.py @@ -62,219 +62,217 @@ usr/lib/python2.7/site-packages/libxml2.py #usr/lib/python2.7/site-packages/libxml2mod.la usr/lib/python2.7/site-packages/libxml2mod.so #usr/lib/xml2Conf.sh -#usr/man/man1/xml2-config.1 -#usr/man/man1/xmlcatalog.1 -#usr/man/man1/xmllint.1 -#usr/man/man3/libxml.3 #usr/share/aclocal/libxml.m4 -#usr/share/doc/libxml2-2.6.26 -#usr/share/doc/libxml2-2.6.26/Copyright -#usr/share/doc/libxml2-2.6.26/examples -#usr/share/doc/libxml2-2.6.26/examples/testHTML.c -#usr/share/doc/libxml2-2.6.26/examples/testSAX.c -#usr/share/doc/libxml2-2.6.26/examples/testXPath.c -#usr/share/doc/libxml2-2.6.26/examples/xmllint.c -#usr/share/doc/libxml2-2.6.26/html -#usr/share/doc/libxml2-2.6.26/html/DOM.gif -#usr/share/doc/libxml2-2.6.26/html/FAQ.html -#usr/share/doc/libxml2-2.6.26/html/Libxml2-Logo-180x168.gif -#usr/share/doc/libxml2-2.6.26/html/Libxml2-Logo-90x34.gif -#usr/share/doc/libxml2-2.6.26/html/encoding.html -#usr/share/doc/libxml2-2.6.26/html/examples.xml -#usr/share/doc/libxml2-2.6.26/html/examples.xsl -#usr/share/doc/libxml2-2.6.26/html/html -#usr/share/doc/libxml2-2.6.26/html/html/book1.html -#usr/share/doc/libxml2-2.6.26/html/html/home.png -#usr/share/doc/libxml2-2.6.26/html/html/index.html -#usr/share/doc/libxml2-2.6.26/html/html/left.png -#usr/share/doc/libxml2-2.6.26/html/html/libxml-DOCBparser.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-HTMLparser.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-HTMLtree.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-SAX.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-SAX2.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-c14n.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-catalog.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-chvalid.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-debugXML.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-dict.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-encoding.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-entities.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-globals.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-hash.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-lib.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-list.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-nanoftp.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-nanohttp.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-parser.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-parserInternals.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-pattern.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-relaxng.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-schemasInternals.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-schematron.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-threads.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-tree.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-uri.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-valid.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xinclude.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xlink.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlIO.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlautomata.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlerror.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlexports.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlmemory.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlmodule.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlreader.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlregexp.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlsave.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlschemas.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlschemastypes.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlstring.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlunicode.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlversion.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xmlwriter.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xpath.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xpathInternals.html -#usr/share/doc/libxml2-2.6.26/html/html/libxml-xpointer.html -#usr/share/doc/libxml2-2.6.26/html/html/right.png -#usr/share/doc/libxml2-2.6.26/html/html/up.png -#usr/share/doc/libxml2-2.6.26/html/io1.c -#usr/share/doc/libxml2-2.6.26/html/io1.res -#usr/share/doc/libxml2-2.6.26/html/io2.c -#usr/share/doc/libxml2-2.6.26/html/io2.res -#usr/share/doc/libxml2-2.6.26/html/libxml.gif -#usr/share/doc/libxml2-2.6.26/html/parse1.c -#usr/share/doc/libxml2-2.6.26/html/parse2.c -#usr/share/doc/libxml2-2.6.26/html/parse3.c -#usr/share/doc/libxml2-2.6.26/html/parse4.c -#usr/share/doc/libxml2-2.6.26/html/reader1.c -#usr/share/doc/libxml2-2.6.26/html/reader1.res -#usr/share/doc/libxml2-2.6.26/html/reader2.c -#usr/share/doc/libxml2-2.6.26/html/reader3.c -#usr/share/doc/libxml2-2.6.26/html/reader3.res -#usr/share/doc/libxml2-2.6.26/html/reader4.c -#usr/share/doc/libxml2-2.6.26/html/reader4.res -#usr/share/doc/libxml2-2.6.26/html/redhat.gif -#usr/share/doc/libxml2-2.6.26/html/smallfootonly.gif -#usr/share/doc/libxml2-2.6.26/html/structure.gif -#usr/share/doc/libxml2-2.6.26/html/test1.xml -#usr/share/doc/libxml2-2.6.26/html/test2.xml -#usr/share/doc/libxml2-2.6.26/html/test3.xml -#usr/share/doc/libxml2-2.6.26/html/testWriter.c -#usr/share/doc/libxml2-2.6.26/html/tree1.c -#usr/share/doc/libxml2-2.6.26/html/tree1.res -#usr/share/doc/libxml2-2.6.26/html/tree2.c -#usr/share/doc/libxml2-2.6.26/html/tree2.res -#usr/share/doc/libxml2-2.6.26/html/tst.xml -#usr/share/doc/libxml2-2.6.26/html/tutorial -#usr/share/doc/libxml2-2.6.26/html/tutorial/apa.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/apb.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/apc.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/apd.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ape.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/apf.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/apg.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/aph.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/api.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s02.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s03.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s04.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s05.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s06.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s07.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s08.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ar01s09.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/images -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/blank.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/1.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/10.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/2.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/3.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/4.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/5.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/6.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/7.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/8.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/callouts/9.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/caution.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/draft.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/home.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/important.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/next.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/note.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/prev.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/tip.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/toc-blank.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/toc-minus.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/toc-plus.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/up.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/images/warning.png -#usr/share/doc/libxml2-2.6.26/html/tutorial/includeaddattribute.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/includeaddkeyword.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/includeconvert.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/includegetattribute.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/includekeyword.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/includexpath.c -#usr/share/doc/libxml2-2.6.26/html/tutorial/index.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/ix01.html -#usr/share/doc/libxml2-2.6.26/html/tutorial/xmltutorial.pdf -#usr/share/doc/libxml2-2.6.26/html/w3c.png -#usr/share/doc/libxml2-2.6.26/html/writer.xml -#usr/share/doc/libxml2-2.6.26/html/xml.html -#usr/share/doc/libxml2-2.6.26/html/xpath1.c -#usr/share/doc/libxml2-2.6.26/html/xpath1.res -#usr/share/doc/libxml2-2.6.26/html/xpath2.c -#usr/share/doc/libxml2-2.6.26/html/xpath2.res -#usr/share/doc/libxml2-python-2.6.26 -#usr/share/doc/libxml2-python-2.6.26/TODO -#usr/share/doc/libxml2-python-2.6.26/examples -#usr/share/doc/libxml2-python-2.6.26/examples/attribs.py -#usr/share/doc/libxml2-python-2.6.26/examples/build.py -#usr/share/doc/libxml2-python-2.6.26/examples/ctxterror.py -#usr/share/doc/libxml2-python-2.6.26/examples/cutnpaste.py -#usr/share/doc/libxml2-python-2.6.26/examples/dtdvalid.py -#usr/share/doc/libxml2-python-2.6.26/examples/error.py -#usr/share/doc/libxml2-python-2.6.26/examples/inbuf.py -#usr/share/doc/libxml2-python-2.6.26/examples/indexes.py -#usr/share/doc/libxml2-python-2.6.26/examples/invalid.xml -#usr/share/doc/libxml2-python-2.6.26/examples/nsdel.py -#usr/share/doc/libxml2-python-2.6.26/examples/outbuf.py -#usr/share/doc/libxml2-python-2.6.26/examples/push.py -#usr/share/doc/libxml2-python-2.6.26/examples/pushSAX.py -#usr/share/doc/libxml2-python-2.6.26/examples/pushSAXhtml.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader2.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader3.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader4.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader5.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader6.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader7.py -#usr/share/doc/libxml2-python-2.6.26/examples/reader8.py -#usr/share/doc/libxml2-python-2.6.26/examples/readererr.py -#usr/share/doc/libxml2-python-2.6.26/examples/readernext.py -#usr/share/doc/libxml2-python-2.6.26/examples/regexp.py -#usr/share/doc/libxml2-python-2.6.26/examples/relaxng.py -#usr/share/doc/libxml2-python-2.6.26/examples/resolver.py -#usr/share/doc/libxml2-python-2.6.26/examples/schema.py -#usr/share/doc/libxml2-python-2.6.26/examples/serialize.py -#usr/share/doc/libxml2-python-2.6.26/examples/sync.py -#usr/share/doc/libxml2-python-2.6.26/examples/test.dtd -#usr/share/doc/libxml2-python-2.6.26/examples/thread2.py -#usr/share/doc/libxml2-python-2.6.26/examples/tst.py -#usr/share/doc/libxml2-python-2.6.26/examples/tst.xml -#usr/share/doc/libxml2-python-2.6.26/examples/tstLastError.py -#usr/share/doc/libxml2-python-2.6.26/examples/tstURI.py -#usr/share/doc/libxml2-python-2.6.26/examples/tstmem.py -#usr/share/doc/libxml2-python-2.6.26/examples/tstxpath.py -#usr/share/doc/libxml2-python-2.6.26/examples/valid.xml -#usr/share/doc/libxml2-python-2.6.26/examples/validDTD.py -#usr/share/doc/libxml2-python-2.6.26/examples/validRNG.py -#usr/share/doc/libxml2-python-2.6.26/examples/validSchemas.py -#usr/share/doc/libxml2-python-2.6.26/examples/validate.py -#usr/share/doc/libxml2-python-2.6.26/examples/walker.py -#usr/share/doc/libxml2-python-2.6.26/examples/xpath.py -#usr/share/doc/libxml2-python-2.6.26/examples/xpathext.py -#usr/share/doc/libxml2-python-2.6.26/examples/xpathret.py +#usr/share/doc/libxml2-2.6.32 +#usr/share/doc/libxml2-2.6.32/Copyright +#usr/share/doc/libxml2-2.6.32/examples +#usr/share/doc/libxml2-2.6.32/examples/testHTML.c +#usr/share/doc/libxml2-2.6.32/examples/testSAX.c +#usr/share/doc/libxml2-2.6.32/examples/testXPath.c +#usr/share/doc/libxml2-2.6.32/examples/xmllint.c +#usr/share/doc/libxml2-2.6.32/html +#usr/share/doc/libxml2-2.6.32/html/DOM.gif +#usr/share/doc/libxml2-2.6.32/html/FAQ.html +#usr/share/doc/libxml2-2.6.32/html/Libxml2-Logo-180x168.gif +#usr/share/doc/libxml2-2.6.32/html/Libxml2-Logo-90x34.gif +#usr/share/doc/libxml2-2.6.32/html/encoding.html +#usr/share/doc/libxml2-2.6.32/html/examples.xml +#usr/share/doc/libxml2-2.6.32/html/examples.xsl +#usr/share/doc/libxml2-2.6.32/html/html +#usr/share/doc/libxml2-2.6.32/html/html/book1.html +#usr/share/doc/libxml2-2.6.32/html/html/home.png +#usr/share/doc/libxml2-2.6.32/html/html/index.html +#usr/share/doc/libxml2-2.6.32/html/html/left.png +#usr/share/doc/libxml2-2.6.32/html/html/libxml-DOCBparser.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-HTMLparser.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-HTMLtree.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-SAX.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-SAX2.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-c14n.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-catalog.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-chvalid.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-debugXML.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-dict.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-encoding.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-entities.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-globals.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-hash.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-lib.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-list.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-nanoftp.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-nanohttp.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-parser.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-parserInternals.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-pattern.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-relaxng.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-schemasInternals.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-schematron.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-threads.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-tree.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-uri.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-valid.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xinclude.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xlink.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlIO.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlautomata.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlerror.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlexports.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlmemory.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlmodule.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlreader.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlregexp.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlsave.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlschemas.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlschemastypes.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlstring.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlunicode.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlversion.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xmlwriter.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xpath.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xpathInternals.html +#usr/share/doc/libxml2-2.6.32/html/html/libxml-xpointer.html +#usr/share/doc/libxml2-2.6.32/html/html/right.png +#usr/share/doc/libxml2-2.6.32/html/html/up.png +#usr/share/doc/libxml2-2.6.32/html/io1.c +#usr/share/doc/libxml2-2.6.32/html/io1.res +#usr/share/doc/libxml2-2.6.32/html/io2.c +#usr/share/doc/libxml2-2.6.32/html/io2.res +#usr/share/doc/libxml2-2.6.32/html/libxml.gif +#usr/share/doc/libxml2-2.6.32/html/parse1.c +#usr/share/doc/libxml2-2.6.32/html/parse2.c +#usr/share/doc/libxml2-2.6.32/html/parse3.c +#usr/share/doc/libxml2-2.6.32/html/parse4.c +#usr/share/doc/libxml2-2.6.32/html/reader1.c +#usr/share/doc/libxml2-2.6.32/html/reader1.res +#usr/share/doc/libxml2-2.6.32/html/reader2.c +#usr/share/doc/libxml2-2.6.32/html/reader3.c +#usr/share/doc/libxml2-2.6.32/html/reader3.res +#usr/share/doc/libxml2-2.6.32/html/reader4.c +#usr/share/doc/libxml2-2.6.32/html/reader4.res +#usr/share/doc/libxml2-2.6.32/html/redhat.gif +#usr/share/doc/libxml2-2.6.32/html/smallfootonly.gif +#usr/share/doc/libxml2-2.6.32/html/structure.gif +#usr/share/doc/libxml2-2.6.32/html/test1.xml +#usr/share/doc/libxml2-2.6.32/html/test2.xml +#usr/share/doc/libxml2-2.6.32/html/test3.xml +#usr/share/doc/libxml2-2.6.32/html/testWriter.c +#usr/share/doc/libxml2-2.6.32/html/tree1.c +#usr/share/doc/libxml2-2.6.32/html/tree1.res +#usr/share/doc/libxml2-2.6.32/html/tree2.c +#usr/share/doc/libxml2-2.6.32/html/tree2.res +#usr/share/doc/libxml2-2.6.32/html/tst.xml +#usr/share/doc/libxml2-2.6.32/html/tutorial +#usr/share/doc/libxml2-2.6.32/html/tutorial/apa.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/apb.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/apc.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/apd.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ape.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/apf.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/apg.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/aph.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/api.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s02.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s03.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s04.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s05.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s06.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s07.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s08.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ar01s09.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/images +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/blank.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/1.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/10.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/2.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/3.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/4.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/5.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/6.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/7.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/8.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/callouts/9.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/caution.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/draft.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/home.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/important.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/next.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/note.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/prev.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/tip.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/toc-blank.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/toc-minus.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/toc-plus.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/up.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/images/warning.png +#usr/share/doc/libxml2-2.6.32/html/tutorial/includeaddattribute.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/includeaddkeyword.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/includeconvert.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/includegetattribute.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/includekeyword.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/includexpath.c +#usr/share/doc/libxml2-2.6.32/html/tutorial/index.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/ix01.html +#usr/share/doc/libxml2-2.6.32/html/tutorial/xmltutorial.pdf +#usr/share/doc/libxml2-2.6.32/html/w3c.png +#usr/share/doc/libxml2-2.6.32/html/writer.xml +#usr/share/doc/libxml2-2.6.32/html/xml.html +#usr/share/doc/libxml2-2.6.32/html/xpath1.c +#usr/share/doc/libxml2-2.6.32/html/xpath1.res +#usr/share/doc/libxml2-2.6.32/html/xpath2.c +#usr/share/doc/libxml2-2.6.32/html/xpath2.res +#usr/share/doc/libxml2-python-2.6.32 +#usr/share/doc/libxml2-python-2.6.32/TODO +#usr/share/doc/libxml2-python-2.6.32/examples +#usr/share/doc/libxml2-python-2.6.32/examples/attribs.py +#usr/share/doc/libxml2-python-2.6.32/examples/build.py +#usr/share/doc/libxml2-python-2.6.32/examples/compareNodes.py +#usr/share/doc/libxml2-python-2.6.32/examples/ctxterror.py +#usr/share/doc/libxml2-python-2.6.32/examples/cutnpaste.py +#usr/share/doc/libxml2-python-2.6.32/examples/dtdvalid.py +#usr/share/doc/libxml2-python-2.6.32/examples/error.py +#usr/share/doc/libxml2-python-2.6.32/examples/inbuf.py +#usr/share/doc/libxml2-python-2.6.32/examples/indexes.py +#usr/share/doc/libxml2-python-2.6.32/examples/invalid.xml +#usr/share/doc/libxml2-python-2.6.32/examples/nsdel.py +#usr/share/doc/libxml2-python-2.6.32/examples/outbuf.py +#usr/share/doc/libxml2-python-2.6.32/examples/push.py +#usr/share/doc/libxml2-python-2.6.32/examples/pushSAX.py +#usr/share/doc/libxml2-python-2.6.32/examples/pushSAXhtml.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader2.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader3.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader4.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader5.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader6.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader7.py +#usr/share/doc/libxml2-python-2.6.32/examples/reader8.py +#usr/share/doc/libxml2-python-2.6.32/examples/readererr.py +#usr/share/doc/libxml2-python-2.6.32/examples/readernext.py +#usr/share/doc/libxml2-python-2.6.32/examples/regexp.py +#usr/share/doc/libxml2-python-2.6.32/examples/relaxng.py +#usr/share/doc/libxml2-python-2.6.32/examples/resolver.py +#usr/share/doc/libxml2-python-2.6.32/examples/schema.py +#usr/share/doc/libxml2-python-2.6.32/examples/serialize.py +#usr/share/doc/libxml2-python-2.6.32/examples/sync.py +#usr/share/doc/libxml2-python-2.6.32/examples/test.dtd +#usr/share/doc/libxml2-python-2.6.32/examples/thread2.py +#usr/share/doc/libxml2-python-2.6.32/examples/tst.py +#usr/share/doc/libxml2-python-2.6.32/examples/tst.xml +#usr/share/doc/libxml2-python-2.6.32/examples/tstLastError.py +#usr/share/doc/libxml2-python-2.6.32/examples/tstURI.py +#usr/share/doc/libxml2-python-2.6.32/examples/tstmem.py +#usr/share/doc/libxml2-python-2.6.32/examples/tstxpath.py +#usr/share/doc/libxml2-python-2.6.32/examples/valid.xml +#usr/share/doc/libxml2-python-2.6.32/examples/validDTD.py +#usr/share/doc/libxml2-python-2.6.32/examples/validRNG.py +#usr/share/doc/libxml2-python-2.6.32/examples/validSchemas.py +#usr/share/doc/libxml2-python-2.6.32/examples/validate.py +#usr/share/doc/libxml2-python-2.6.32/examples/walker.py +#usr/share/doc/libxml2-python-2.6.32/examples/xpath.py +#usr/share/doc/libxml2-python-2.6.32/examples/xpathext.py +#usr/share/doc/libxml2-python-2.6.32/examples/xpathns.py +#usr/share/doc/libxml2-python-2.6.32/examples/xpathret.py #usr/share/gtk-doc #usr/share/gtk-doc/html #usr/share/gtk-doc/html/libxml2 @@ -333,3 +331,7 @@ usr/lib/python2.7/site-packages/libxml2mod.so #usr/share/gtk-doc/html/libxml2/right.png #usr/share/gtk-doc/html/libxml2/style.css #usr/share/gtk-doc/html/libxml2/up.png +#usr/share/man/man1/xml2-config.1 +#usr/share/man/man1/xmlcatalog.1 +#usr/share/man/man1/xmllint.1 +#usr/share/man/man3/libxml.3 diff --git a/config/rootfiles/common/linux-firmware b/config/rootfiles/common/linux-firmware index 78bcc64..d828b8d 100644 --- a/config/rootfiles/common/linux-firmware +++ b/config/rootfiles/common/linux-firmware @@ -7,21 +7,28 @@ lib/firmware/LICENCE.OLPC lib/firmware/LICENCE.agere lib/firmware/LICENCE.atheros_firmware lib/firmware/LICENCE.broadcom_bcm43xx +lib/firmware/LICENCE.ca0132 lib/firmware/LICENCE.chelsio_firmware +lib/firmware/LICENCE.cw1200 lib/firmware/LICENCE.ene_firmware +lib/firmware/LICENCE.go7007 lib/firmware/LICENCE.i2400m +lib/firmware/LICENCE.ibt_firmware lib/firmware/LICENCE.iwlwifi_firmware lib/firmware/LICENCE.mwl8335 lib/firmware/LICENCE.myri10ge_firmware lib/firmware/LICENCE.phanfw lib/firmware/LICENCE.qla2xxx lib/firmware/LICENCE.ralink-firmware.txt +lib/firmware/LICENCE.ralink_a_mediatek_company_firmware lib/firmware/LICENCE.rtlwifi_firmware.txt lib/firmware/LICENCE.tda7706-firmware.txt lib/firmware/LICENCE.ti-connectivity lib/firmware/LICENCE.ueagle-atm4-firmware lib/firmware/LICENCE.via_vt6656 +lib/firmware/LICENCE.wl1251 lib/firmware/LICENCE.xc5000 +lib/firmware/LICENSE.amd-ucode lib/firmware/LICENSE.dib0700 lib/firmware/LICENSE.radeon #lib/firmware/Makefile @@ -46,6 +53,11 @@ lib/firmware/advansys/38C1600.bin lib/firmware/advansys/mcode.bin lib/firmware/agere_ap_fw.bin lib/firmware/agere_sta_fw.bin +#lib/firmware/amd-ucode +lib/firmware/amd-ucode/microcode_amd.bin +lib/firmware/amd-ucode/microcode_amd.bin.asc +lib/firmware/amd-ucode/microcode_amd_fam15h.bin +lib/firmware/amd-ucode/microcode_amd_fam15h.bin.asc #lib/firmware/ar3k #lib/firmware/ar3k/1020200 lib/firmware/ar3k/1020200/PS_ASIC.pst @@ -73,6 +85,7 @@ lib/firmware/ar3k/AthrBT_0x01020200.dfu lib/firmware/ar3k/AthrBT_0x01020201.dfu lib/firmware/ar3k/AthrBT_0x11020000.dfu lib/firmware/ar3k/AthrBT_0x31010000.dfu +lib/firmware/ar3k/AthrBT_0x41020000.dfu lib/firmware/ar3k/ramps_0x01020001_26.dfu lib/firmware/ar3k/ramps_0x01020200_26.dfu lib/firmware/ar3k/ramps_0x01020200_40.dfu @@ -80,6 +93,8 @@ lib/firmware/ar3k/ramps_0x01020201_26.dfu lib/firmware/ar3k/ramps_0x01020201_40.dfu lib/firmware/ar3k/ramps_0x11020000_40.dfu lib/firmware/ar3k/ramps_0x31010000_40.dfu +lib/firmware/ar3k/ramps_0x41020000_40.dfu +lib/firmware/ar5523.bin lib/firmware/ar7010.fw lib/firmware/ar7010_1_1.fw lib/firmware/ar9170-1.fw @@ -178,6 +193,7 @@ lib/firmware/bnx2x/bnx2x-e1-7.0.23.0.fw lib/firmware/bnx2x/bnx2x-e1-7.0.29.0.fw lib/firmware/bnx2x/bnx2x-e1-7.2.16.0.fw lib/firmware/bnx2x/bnx2x-e1-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.8.17.0.fw lib/firmware/bnx2x/bnx2x-e1-7.8.2.0.fw lib/firmware/bnx2x/bnx2x-e1h-6.0.34.0.fw lib/firmware/bnx2x/bnx2x-e1h-6.2.5.0.fw @@ -187,6 +203,7 @@ lib/firmware/bnx2x/bnx2x-e1h-7.0.23.0.fw lib/firmware/bnx2x/bnx2x-e1h-7.0.29.0.fw lib/firmware/bnx2x/bnx2x-e1h-7.2.16.0.fw lib/firmware/bnx2x/bnx2x-e1h-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.8.17.0.fw lib/firmware/bnx2x/bnx2x-e1h-7.8.2.0.fw lib/firmware/bnx2x/bnx2x-e2-6.0.34.0.fw lib/firmware/bnx2x/bnx2x-e2-6.2.5.0.fw @@ -196,15 +213,152 @@ lib/firmware/bnx2x/bnx2x-e2-7.0.23.0.fw lib/firmware/bnx2x/bnx2x-e2-7.0.29.0.fw lib/firmware/bnx2x/bnx2x-e2-7.2.16.0.fw lib/firmware/bnx2x/bnx2x-e2-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.8.17.0.fw lib/firmware/bnx2x/bnx2x-e2-7.8.2.0.fw #lib/firmware/brcm lib/firmware/brcm/bcm4329-fullmac-4.bin lib/firmware/brcm/bcm43xx-0.fw lib/firmware/brcm/bcm43xx_hdr-0.fw lib/firmware/brcm/brcmfmac43236b.bin -lib/firmware/brcm/brcmfmac4329.bin -lib/firmware/brcm/brcmfmac4330.bin -lib/firmware/brcm/brcmfmac4334.bin +lib/firmware/brcm/brcmfmac43241b0-sdio.bin +lib/firmware/brcm/brcmfmac43241b4-sdio.bin +lib/firmware/brcm/brcmfmac4329-sdio.bin +lib/firmware/brcm/brcmfmac4330-sdio.bin +lib/firmware/brcm/brcmfmac4334-sdio.bin +lib/firmware/brcm/brcmfmac4335-sdio.bin +lib/firmware/carl9170-1.fw +#lib/firmware/carl9170fw +#lib/firmware/carl9170fw/CMakeLists.txt +#lib/firmware/carl9170fw/COPYRIGHT +#lib/firmware/carl9170fw/GPL +#lib/firmware/carl9170fw/Kconfig +#lib/firmware/carl9170fw/README +#lib/firmware/carl9170fw/autogen.sh +#lib/firmware/carl9170fw/carlfw +#lib/firmware/carl9170fw/carlfw/CMakeLists.txt +#lib/firmware/carl9170fw/carlfw/Kconfig +#lib/firmware/carl9170fw/carlfw/carl9170.lds +#lib/firmware/carl9170fw/carlfw/include +#lib/firmware/carl9170fw/carlfw/include/cam.h +#lib/firmware/carl9170fw/carlfw/include/carl9170.h +#lib/firmware/carl9170fw/carlfw/include/cmd.h +#lib/firmware/carl9170fw/carlfw/include/config.h +#lib/firmware/carl9170fw/carlfw/include/dma.h +#lib/firmware/carl9170fw/carlfw/include/fwdsc.h +#lib/firmware/carl9170fw/carlfw/include/gpio.h +#lib/firmware/carl9170fw/carlfw/include/hostif.h +#lib/firmware/carl9170fw/carlfw/include/io.h +#lib/firmware/carl9170fw/carlfw/include/printf.h +#lib/firmware/carl9170fw/carlfw/include/rf.h +#lib/firmware/carl9170fw/carlfw/include/rom.h +#lib/firmware/carl9170fw/carlfw/include/timer.h +#lib/firmware/carl9170fw/carlfw/include/uart.h +#lib/firmware/carl9170fw/carlfw/include/usb.h +#lib/firmware/carl9170fw/carlfw/include/usb_fifo.h +#lib/firmware/carl9170fw/carlfw/include/wl.h +#lib/firmware/carl9170fw/carlfw/include/wol.h +#lib/firmware/carl9170fw/carlfw/src +#lib/firmware/carl9170fw/carlfw/src/ashlsi3.S +#lib/firmware/carl9170fw/carlfw/src/cam.c +#lib/firmware/carl9170fw/carlfw/src/cmd.c +#lib/firmware/carl9170fw/carlfw/src/dma.c +#lib/firmware/carl9170fw/carlfw/src/fw.c +#lib/firmware/carl9170fw/carlfw/src/gpio.c +#lib/firmware/carl9170fw/carlfw/src/hostif.c +#lib/firmware/carl9170fw/carlfw/src/main.c +#lib/firmware/carl9170fw/carlfw/src/memcpy.S +#lib/firmware/carl9170fw/carlfw/src/memset.S +#lib/firmware/carl9170fw/carlfw/src/printf.c +#lib/firmware/carl9170fw/carlfw/src/reboot.S +#lib/firmware/carl9170fw/carlfw/src/rf.c +#lib/firmware/carl9170fw/carlfw/src/uart.c +#lib/firmware/carl9170fw/carlfw/src/udivsi3_i4i-Os.S +#lib/firmware/carl9170fw/carlfw/src/wlan.c +#lib/firmware/carl9170fw/carlfw/src/wol.c +#lib/firmware/carl9170fw/carlfw/usb +#lib/firmware/carl9170fw/carlfw/usb/Kconfig +#lib/firmware/carl9170fw/carlfw/usb/fifo.c +#lib/firmware/carl9170fw/carlfw/usb/main.c +#lib/firmware/carl9170fw/carlfw/usb/usb.c +#lib/firmware/carl9170fw/config +#lib/firmware/carl9170fw/config/CMakeLists.txt +#lib/firmware/carl9170fw/config/conf.c +#lib/firmware/carl9170fw/config/confdata.c +#lib/firmware/carl9170fw/config/expr.c +#lib/firmware/carl9170fw/config/expr.h +#lib/firmware/carl9170fw/config/lkc.h +#lib/firmware/carl9170fw/config/lkc_proto.h +#lib/firmware/carl9170fw/config/menu.c +#lib/firmware/carl9170fw/config/symbol.c +#lib/firmware/carl9170fw/config/util.c +#lib/firmware/carl9170fw/config/zconf.gperf +#lib/firmware/carl9170fw/config/zconf.l +#lib/firmware/carl9170fw/config/zconf.y +#lib/firmware/carl9170fw/extra +#lib/firmware/carl9170fw/extra/FindGPERF.cmake +#lib/firmware/carl9170fw/extra/FindPackageHandleStandardArgs.cmake +#lib/firmware/carl9170fw/extra/FindUSB-1.0.cmake +#lib/firmware/carl9170fw/extra/GCCVersion.cmake +#lib/firmware/carl9170fw/extra/libusb-zeropacket.diff +#lib/firmware/carl9170fw/extra/sh-elf-linux.cmake +#lib/firmware/carl9170fw/genapi.sh +#lib/firmware/carl9170fw/include +#lib/firmware/carl9170fw/include/linux +#lib/firmware/carl9170fw/include/linux/ch9.h +#lib/firmware/carl9170fw/include/linux/compiler.h +#lib/firmware/carl9170fw/include/linux/ieee80211.h +#lib/firmware/carl9170fw/include/linux/types.h +#lib/firmware/carl9170fw/include/shared +#lib/firmware/carl9170fw/include/shared/eeprom.h +#lib/firmware/carl9170fw/include/shared/fwcmd.h +#lib/firmware/carl9170fw/include/shared/fwdesc.h +#lib/firmware/carl9170fw/include/shared/hw.h +#lib/firmware/carl9170fw/include/shared/phy.h +#lib/firmware/carl9170fw/include/shared/version.h +#lib/firmware/carl9170fw/include/shared/wlan.h +#lib/firmware/carl9170fw/minifw +#lib/firmware/carl9170fw/minifw/CMakeLists.txt +#lib/firmware/carl9170fw/minifw/Kconfig +#lib/firmware/carl9170fw/minifw/miniboot.S +#lib/firmware/carl9170fw/minifw/miniboot.lds +#lib/firmware/carl9170fw/toolchain +#lib/firmware/carl9170fw/toolchain/Makefile +#lib/firmware/carl9170fw/toolchain/SHA256SUMS +#lib/firmware/carl9170fw/tools +#lib/firmware/carl9170fw/tools/CMakeLists.txt +#lib/firmware/carl9170fw/tools/Kconfig +#lib/firmware/carl9170fw/tools/carlu +#lib/firmware/carl9170fw/tools/carlu/CMakeLists.txt +#lib/firmware/carl9170fw/tools/carlu/src +#lib/firmware/carl9170fw/tools/carlu/src/carlu.h +#lib/firmware/carl9170fw/tools/carlu/src/cmd.c +#lib/firmware/carl9170fw/tools/carlu/src/cmd.h +#lib/firmware/carl9170fw/tools/carlu/src/debug.c +#lib/firmware/carl9170fw/tools/carlu/src/debug.h +#lib/firmware/carl9170fw/tools/carlu/src/fw.c +#lib/firmware/carl9170fw/tools/carlu/src/main.c +#lib/firmware/carl9170fw/tools/carlu/src/rx.c +#lib/firmware/carl9170fw/tools/carlu/src/test.c +#lib/firmware/carl9170fw/tools/carlu/src/test.h +#lib/firmware/carl9170fw/tools/carlu/src/tx.c +#lib/firmware/carl9170fw/tools/carlu/src/usb.c +#lib/firmware/carl9170fw/tools/carlu/src/usb.h +#lib/firmware/carl9170fw/tools/include +#lib/firmware/carl9170fw/tools/include/frame.h +#lib/firmware/carl9170fw/tools/include/list.h +#lib/firmware/carl9170fw/tools/lib +#lib/firmware/carl9170fw/tools/lib/CMakeLists.txt +#lib/firmware/carl9170fw/tools/lib/carlfw.c +#lib/firmware/carl9170fw/tools/lib/carlfw.h +#lib/firmware/carl9170fw/tools/src +#lib/firmware/carl9170fw/tools/src/CMakeLists.txt +#lib/firmware/carl9170fw/tools/src/checksum.c +#lib/firmware/carl9170fw/tools/src/eeprom_fix.c +#lib/firmware/carl9170fw/tools/src/fwinfo.c +#lib/firmware/carl9170fw/tools/src/miniboot.c +#lib/firmware/carl9170fw/tools/src/wol.c +lib/firmware/cbfw-3.2.1.1.bin +lib/firmware/cbfw-3.2.3.0.bin #lib/firmware/cis lib/firmware/cis/3CCFEM556.cis lib/firmware/cis/3CXEM556.cis @@ -240,6 +394,12 @@ lib/firmware/cis/tamarack.cis #lib/firmware/configure #lib/firmware/cpia2 lib/firmware/cpia2/stv0672_vp4.bin +lib/firmware/ct2fw-3.2.1.1.bin +lib/firmware/ct2fw-3.2.3.0.bin +lib/firmware/ctefx.bin +lib/firmware/ctfw-3.2.1.1.bin +lib/firmware/ctfw-3.2.3.0.bin +lib/firmware/ctspeq.bin #lib/firmware/cxgb3 lib/firmware/cxgb3/ael2005_opt_edc.bin lib/firmware/cxgb3/ael2005_twx_edc.bin @@ -252,8 +412,10 @@ lib/firmware/cxgb3/t3fw-7.10.0.bin lib/firmware/cxgb3/t3fw-7.12.0.bin lib/firmware/cxgb3/t3fw-7.4.0.bin #lib/firmware/cxgb4 -lib/firmware/cxgb4/t4fw-1.4.23.0.bin +lib/firmware/cxgb4/t4fw-1.9.23.0.bin lib/firmware/cxgb4/t4fw.bin +lib/firmware/cxgb4/t5fw-1.9.23.0.bin +lib/firmware/cxgb4/t5fw.bin #lib/firmware/dabusb lib/firmware/dabusb/bitstream.bin lib/firmware/dabusb/firmware.fw @@ -295,11 +457,24 @@ lib/firmware/ene-ub6250/sd_rdwr.bin lib/firmware/ess/maestro3_assp_kernel.fw lib/firmware/ess/maestro3_assp_minisrc.fw lib/firmware/f2255usb.bin +#lib/firmware/go7007 +lib/firmware/go7007/go7007fw.bin +lib/firmware/go7007/go7007tv.bin +lib/firmware/go7007/lr192.fw +lib/firmware/go7007/px-m402u.fw +lib/firmware/go7007/px-tv402u.fw +lib/firmware/go7007/s2250-1.fw +lib/firmware/go7007/s2250-2.fw +lib/firmware/go7007/wis-startrek.fw lib/firmware/htc_7010.fw lib/firmware/htc_9271.fw lib/firmware/i2400m-fw-usb-1.4.sbcf lib/firmware/i2400m-fw-usb-1.5.sbcf lib/firmware/i6050-fw-usb-1.5.sbcf +#lib/firmware/intel +lib/firmware/intel/ibt-hw-37.7.10-fw-1.0.2.3.d.bseq +lib/firmware/intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq +lib/firmware/intel/ibt-hw-37.7.bseq lib/firmware/intelliport2.bin #lib/firmware/isci #lib/firmware/isci/Makefile @@ -315,6 +490,7 @@ lib/firmware/iwlwifi-105-6.ucode lib/firmware/iwlwifi-135-6.ucode lib/firmware/iwlwifi-2000-6.ucode lib/firmware/iwlwifi-2030-6.ucode +lib/firmware/iwlwifi-3160-7.ucode lib/firmware/iwlwifi-3945-2.ucode lib/firmware/iwlwifi-4965-2.ucode lib/firmware/iwlwifi-5000-1.ucode @@ -328,6 +504,7 @@ lib/firmware/iwlwifi-6000g2b-5.ucode lib/firmware/iwlwifi-6000g2b-6.ucode lib/firmware/iwlwifi-6050-4.ucode lib/firmware/iwlwifi-6050-5.ucode +lib/firmware/iwlwifi-7260-7.ucode #lib/firmware/kaweth lib/firmware/kaweth/new_code.bin lib/firmware/kaweth/new_code_fix.bin @@ -385,8 +562,25 @@ lib/firmware/libertas/usb8682.bin #lib/firmware/matrox lib/firmware/matrox/g200_warp.fw lib/firmware/matrox/g400_warp.fw +#lib/firmware/moxa +lib/firmware/moxa/moxa-1250.fw +lib/firmware/moxa/moxa-1251.fw +lib/firmware/moxa/moxa-1410.fw +lib/firmware/moxa/moxa-1450.fw +lib/firmware/moxa/moxa-1451.fw +lib/firmware/moxa/moxa-1613.fw +lib/firmware/moxa/moxa-1618.fw +lib/firmware/moxa/moxa-1653.fw +lib/firmware/moxa/moxa-1658.fw #lib/firmware/mrvl +lib/firmware/mrvl/pcie8897_uapsta.bin +lib/firmware/mrvl/sd8688.bin +lib/firmware/mrvl/sd8688_helper.bin lib/firmware/mrvl/sd8787_uapsta.bin +lib/firmware/mrvl/sd8797_uapsta.bin +lib/firmware/mrvl/sd8897_uapsta.bin +lib/firmware/mrvl/usb8797_uapsta.bin +lib/firmware/mt7650.bin lib/firmware/mts_cdma.fw lib/firmware/mts_edge.fw lib/firmware/mts_gsm.fw @@ -396,7 +590,9 @@ lib/firmware/mts_mt9234zba.fw lib/firmware/mwl8k/fmimage_8366.fw lib/firmware/mwl8k/fmimage_8366_ap-1.fw lib/firmware/mwl8k/fmimage_8366_ap-2.fw +lib/firmware/mwl8k/fmimage_8366_ap-3.fw lib/firmware/mwl8k/fmimage_8687.fw +lib/firmware/mwl8k/fmimage_8764_ap-1.fw lib/firmware/mwl8k/helper_8366.fw lib/firmware/mwl8k/helper_8687.fw lib/firmware/myri10ge_eth_z8e.dat @@ -429,23 +625,63 @@ lib/firmware/radeon/ARUBA_rlc.bin lib/firmware/radeon/BARTS_mc.bin lib/firmware/radeon/BARTS_me.bin lib/firmware/radeon/BARTS_pfp.bin +lib/firmware/radeon/BARTS_smc.bin +lib/firmware/radeon/BONAIRE_ce.bin +lib/firmware/radeon/BONAIRE_mc.bin +lib/firmware/radeon/BONAIRE_me.bin +lib/firmware/radeon/BONAIRE_mec.bin +lib/firmware/radeon/BONAIRE_pfp.bin +lib/firmware/radeon/BONAIRE_rlc.bin +lib/firmware/radeon/BONAIRE_sdma.bin +lib/firmware/radeon/BONAIRE_smc.bin +lib/firmware/radeon/BONAIRE_uvd.bin lib/firmware/radeon/BTC_rlc.bin lib/firmware/radeon/CAICOS_mc.bin lib/firmware/radeon/CAICOS_me.bin lib/firmware/radeon/CAICOS_pfp.bin +lib/firmware/radeon/CAICOS_smc.bin lib/firmware/radeon/CAYMAN_mc.bin lib/firmware/radeon/CAYMAN_me.bin lib/firmware/radeon/CAYMAN_pfp.bin lib/firmware/radeon/CAYMAN_rlc.bin +lib/firmware/radeon/CAYMAN_smc.bin lib/firmware/radeon/CEDAR_me.bin lib/firmware/radeon/CEDAR_pfp.bin lib/firmware/radeon/CEDAR_rlc.bin +lib/firmware/radeon/CEDAR_smc.bin lib/firmware/radeon/CYPRESS_me.bin lib/firmware/radeon/CYPRESS_pfp.bin lib/firmware/radeon/CYPRESS_rlc.bin +lib/firmware/radeon/CYPRESS_smc.bin +lib/firmware/radeon/CYPRESS_uvd.bin +lib/firmware/radeon/HAINAN_ce.bin +lib/firmware/radeon/HAINAN_mc.bin +lib/firmware/radeon/HAINAN_me.bin +lib/firmware/radeon/HAINAN_pfp.bin +lib/firmware/radeon/HAINAN_rlc.bin +lib/firmware/radeon/HAINAN_smc.bin lib/firmware/radeon/JUNIPER_me.bin lib/firmware/radeon/JUNIPER_pfp.bin lib/firmware/radeon/JUNIPER_rlc.bin +lib/firmware/radeon/JUNIPER_smc.bin +lib/firmware/radeon/KABINI_ce.bin +lib/firmware/radeon/KABINI_me.bin +lib/firmware/radeon/KABINI_mec.bin +lib/firmware/radeon/KABINI_pfp.bin +lib/firmware/radeon/KABINI_rlc.bin +lib/firmware/radeon/KABINI_sdma.bin +lib/firmware/radeon/KAVERI_ce.bin +lib/firmware/radeon/KAVERI_me.bin +lib/firmware/radeon/KAVERI_mec.bin +lib/firmware/radeon/KAVERI_pfp.bin +lib/firmware/radeon/KAVERI_rlc.bin +lib/firmware/radeon/KAVERI_sdma.bin +lib/firmware/radeon/OLAND_ce.bin +lib/firmware/radeon/OLAND_mc.bin +lib/firmware/radeon/OLAND_me.bin +lib/firmware/radeon/OLAND_pfp.bin +lib/firmware/radeon/OLAND_rlc.bin +lib/firmware/radeon/OLAND_smc.bin lib/firmware/radeon/PALM_me.bin lib/firmware/radeon/PALM_pfp.bin lib/firmware/radeon/PITCAIRN_ce.bin @@ -453,6 +689,7 @@ lib/firmware/radeon/PITCAIRN_mc.bin lib/firmware/radeon/PITCAIRN_me.bin lib/firmware/radeon/PITCAIRN_pfp.bin lib/firmware/radeon/PITCAIRN_rlc.bin +lib/firmware/radeon/PITCAIRN_smc.bin lib/firmware/radeon/R100_cp.bin lib/firmware/radeon/R200_cp.bin lib/firmware/radeon/R300_cp.bin @@ -465,6 +702,7 @@ lib/firmware/radeon/R700_rlc.bin lib/firmware/radeon/REDWOOD_me.bin lib/firmware/radeon/REDWOOD_pfp.bin lib/firmware/radeon/REDWOOD_rlc.bin +lib/firmware/radeon/REDWOOD_smc.bin lib/firmware/radeon/RS600_cp.bin lib/firmware/radeon/RS690_cp.bin lib/firmware/radeon/RS780_me.bin @@ -481,28 +719,39 @@ lib/firmware/radeon/RV670_me.bin lib/firmware/radeon/RV670_pfp.bin lib/firmware/radeon/RV710_me.bin lib/firmware/radeon/RV710_pfp.bin +lib/firmware/radeon/RV710_smc.bin +lib/firmware/radeon/RV710_uvd.bin lib/firmware/radeon/RV730_me.bin lib/firmware/radeon/RV730_pfp.bin +lib/firmware/radeon/RV730_smc.bin +lib/firmware/radeon/RV740_smc.bin lib/firmware/radeon/RV770_me.bin lib/firmware/radeon/RV770_pfp.bin +lib/firmware/radeon/RV770_smc.bin lib/firmware/radeon/SUMO2_me.bin lib/firmware/radeon/SUMO2_pfp.bin lib/firmware/radeon/SUMO_me.bin lib/firmware/radeon/SUMO_pfp.bin lib/firmware/radeon/SUMO_rlc.bin +lib/firmware/radeon/SUMO_uvd.bin lib/firmware/radeon/TAHITI_ce.bin lib/firmware/radeon/TAHITI_mc.bin lib/firmware/radeon/TAHITI_me.bin lib/firmware/radeon/TAHITI_pfp.bin lib/firmware/radeon/TAHITI_rlc.bin +lib/firmware/radeon/TAHITI_smc.bin +lib/firmware/radeon/TAHITI_uvd.bin lib/firmware/radeon/TURKS_mc.bin lib/firmware/radeon/TURKS_me.bin lib/firmware/radeon/TURKS_pfp.bin +lib/firmware/radeon/TURKS_smc.bin lib/firmware/radeon/VERDE_ce.bin lib/firmware/radeon/VERDE_mc.bin lib/firmware/radeon/VERDE_me.bin lib/firmware/radeon/VERDE_pfp.bin lib/firmware/radeon/VERDE_rlc.bin +lib/firmware/radeon/VERDE_smc.bin +lib/firmware/rp2.fw lib/firmware/rt2561.bin lib/firmware/rt2561s.bin lib/firmware/rt2661.bin @@ -516,6 +765,7 @@ lib/firmware/rt73.bin #lib/firmware/rtl_nic lib/firmware/rtl_nic/rtl8105e-1.fw lib/firmware/rtl_nic/rtl8106e-1.fw +lib/firmware/rtl_nic/rtl8106e-2.fw lib/firmware/rtl_nic/rtl8168d-1.fw lib/firmware/rtl_nic/rtl8168d-2.fw lib/firmware/rtl_nic/rtl8168e-1.fw @@ -524,13 +774,21 @@ lib/firmware/rtl_nic/rtl8168e-3.fw lib/firmware/rtl_nic/rtl8168f-1.fw lib/firmware/rtl_nic/rtl8168f-2.fw lib/firmware/rtl_nic/rtl8168g-1.fw +lib/firmware/rtl_nic/rtl8168g-2.fw +lib/firmware/rtl_nic/rtl8168g-3.fw lib/firmware/rtl_nic/rtl8402-1.fw lib/firmware/rtl_nic/rtl8411-1.fw +lib/firmware/rtl_nic/rtl8411-2.fw #lib/firmware/rtlwifi +lib/firmware/rtlwifi/rtl8188efw.bin +lib/firmware/rtlwifi/rtl8188eufw.bin lib/firmware/rtlwifi/rtl8192cfw.bin lib/firmware/rtlwifi/rtl8192cfwU.bin lib/firmware/rtlwifi/rtl8192cfwU_B.bin lib/firmware/rtlwifi/rtl8192cufw.bin +lib/firmware/rtlwifi/rtl8192cufw_A.bin +lib/firmware/rtlwifi/rtl8192cufw_B.bin +lib/firmware/rtlwifi/rtl8192cufw_TMSC.bin lib/firmware/rtlwifi/rtl8192defw.bin lib/firmware/rtlwifi/rtl8192sefw.bin lib/firmware/rtlwifi/rtl8712u.bin @@ -538,12 +796,16 @@ lib/firmware/rtlwifi/rtl8723fw.bin lib/firmware/rtlwifi/rtl8723fw_B.bin lib/firmware/s2250.fw lib/firmware/s2250_loader.fw +lib/firmware/s5p-mfc +lib/firmware/s5p-mfc/s5p-mfc-v6.fw +lib/firmware/s5p-mfc/s5p-mfc.fw #lib/firmware/sb16 lib/firmware/sb16/alaw_main.csp lib/firmware/sb16/ima_adpcm_capture.csp lib/firmware/sb16/ima_adpcm_init.csp lib/firmware/sb16/ima_adpcm_playback.csp lib/firmware/sb16/mulaw_main.csp +lib/firmware/sdd_sagrad_1091_1098.bin #lib/firmware/slicoss lib/firmware/slicoss/gbdownload.sys lib/firmware/slicoss/gbrcvucode.sys @@ -559,6 +821,8 @@ lib/firmware/sxg/saharadownloadB.sys lib/firmware/tehuti/bdx.bin #lib/firmware/ti-connectivity lib/firmware/ti-connectivity/TIInit_7.2.31.bts +lib/firmware/ti-connectivity/wl1251-fw.bin +lib/firmware/ti-connectivity/wl1251-nvs.bin lib/firmware/ti-connectivity/wl1271-fw-2.bin lib/firmware/ti-connectivity/wl1271-fw-ap.bin lib/firmware/ti-connectivity/wl1271-fw.bin @@ -584,11 +848,14 @@ lib/firmware/ti-connectivity/wl128x-fw-plt-3.bin lib/firmware/ti-connectivity/wl128x-fw.bin lib/firmware/ti-connectivity/wl128x-nvs.bin lib/firmware/ti-connectivity/wl12xx-nvs.bin +lib/firmware/ti-connectivity/wl18xx-conf.bin +lib/firmware/ti-connectivity/wl18xx-fw-2.bin lib/firmware/ti-connectivity/wl18xx-fw.bin lib/firmware/ti_3410.fw lib/firmware/ti_5052.fw #lib/firmware/tigon lib/firmware/tigon/tg3.bin +lib/firmware/tigon/tg357766.bin lib/firmware/tigon/tg3_tso.bin lib/firmware/tigon/tg3_tso5.bin lib/firmware/tlg2300_firmware.bin @@ -635,7 +902,6 @@ lib/firmware/v4l-cx23418-apu.fw lib/firmware/v4l-cx23418-cpu.fw lib/firmware/v4l-cx23418-dig.fw lib/firmware/v4l-cx23885-avcore-01.fw -lib/firmware/v4l-cx23885-enc.fw lib/firmware/v4l-cx25840.fw #lib/firmware/vicam lib/firmware/vicam/firmware.fw @@ -645,6 +911,7 @@ lib/firmware/vxge/X3fw-pxe.ncf lib/firmware/vxge/X3fw.ncf lib/firmware/whiteheat.fw lib/firmware/whiteheat_loader.fw +lib/firmware/wsm_22.bin #lib/firmware/yam lib/firmware/yam/1200.bin lib/firmware/yam/9600.bin diff --git a/config/rootfiles/common/lzo b/config/rootfiles/common/lzo index e4dc2cd..6d746bd 100644 --- a/config/rootfiles/common/lzo +++ b/config/rootfiles/common/lzo @@ -17,3 +17,11 @@ usr/lib/liblzo2.so usr/lib/liblzo2.so.2 usr/lib/liblzo2.so.2.0.0 +#usr/share/doc/lzo +#usr/share/doc/lzo/AUTHORS +#usr/share/doc/lzo/COPYING +#usr/share/doc/lzo/LZO.FAQ +#usr/share/doc/lzo/LZO.TXT +#usr/share/doc/lzo/LZOAPI.TXT +#usr/share/doc/lzo/NEWS +#usr/share/doc/lzo/THANKS diff --git a/config/rootfiles/common/mbr b/config/rootfiles/common/mbr deleted file mode 100644 index 231e27d..0000000 --- a/config/rootfiles/common/mbr +++ /dev/null @@ -1,2 +0,0 @@ -#usr/sbin/install-mbr -#usr/share/man/man8/install-mbr.8 diff --git a/config/rootfiles/common/misc-progs b/config/rootfiles/common/misc-progs index 8fd9b0b..1ab4dec 100644 --- a/config/rootfiles/common/misc-progs +++ b/config/rootfiles/common/misc-progs @@ -15,7 +15,8 @@ usr/local/bin/launch-ether-wake usr/local/bin/logwatch #usr/local/bin/mpfirectrl usr/local/bin/openvpnctrl -usr/local/bin/outgoingfwctrl +#usr/local/bin/outgoingfwctrl +usr/local/bin/firewallctrl usr/local/bin/pakfire usr/local/bin/qosctrl usr/local/bin/rebuildhosts @@ -23,9 +24,6 @@ usr/local/bin/rebuildroutes usr/local/bin/redctrl #usr/local/bin/sambactrl usr/local/bin/setaliases -usr/local/bin/setdmzholes -usr/local/bin/setportfw -usr/local/bin/setxtaccess usr/local/bin/smartctrl usr/local/bin/snortctrl usr/local/bin/squidctrl diff --git a/config/rootfiles/common/module-init-tools b/config/rootfiles/common/module-init-tools deleted file mode 100644 index 4cffddb..0000000 --- a/config/rootfiles/common/module-init-tools +++ /dev/null @@ -1,21 +0,0 @@ -bin/lsmod -sbin/depmod -sbin/generate-modprobe.conf -sbin/insmod -sbin/insmod.static -sbin/modinfo -sbin/modprobe -sbin/rmmod -#share -#share/man -#share/man/man5 -#share/man/man5/depmod.conf.5 -#share/man/man5/modprobe.conf.5 -#share/man/man5/modules.dep.5 -#share/man/man8 -#share/man/man8/depmod.8 -#share/man/man8/insmod.8 -#share/man/man8/lsmod.8 -#share/man/man8/modinfo.8 -#share/man/man8/modprobe.8 -#share/man/man8/rmmod.8 diff --git a/config/rootfiles/common/mpage b/config/rootfiles/common/mpage new file mode 100644 index 0000000..9df3083 --- /dev/null +++ b/config/rootfiles/common/mpage @@ -0,0 +1,9 @@ +#usr/bin/mpage +#usr/man/man1/mpage.1 +#usr/share/mpage +#usr/share/mpage/CP850.PC +#usr/share/mpage/ISO+STD+OTH +#usr/share/mpage/ISO-8859.1 +#usr/share/mpage/ISO-8859.15 +#usr/share/mpage/ISO-Latin.1 +#usr/share/mpage/ISO-Latin.2 diff --git a/config/rootfiles/common/mysql b/config/rootfiles/common/mysql deleted file mode 100644 index bbbff7d..0000000 --- a/config/rootfiles/common/mysql +++ /dev/null @@ -1,280 +0,0 @@ -#etc/my.cnf -#srv/mysql -#srv/mysql/mysql -#srv/mysql/mysql-bin.000001 -#srv/mysql/mysql-bin.000002 -#srv/mysql/mysql-bin.index -#srv/mysql/mysql/columns_priv.MYD -#srv/mysql/mysql/columns_priv.MYI -#srv/mysql/mysql/columns_priv.frm -#srv/mysql/mysql/db.MYD -#srv/mysql/mysql/db.MYI -#srv/mysql/mysql/db.frm -#srv/mysql/mysql/func.MYD -#srv/mysql/mysql/func.MYI -#srv/mysql/mysql/func.frm -#srv/mysql/mysql/help_category.MYD -#srv/mysql/mysql/help_category.MYI -#srv/mysql/mysql/help_category.frm -#srv/mysql/mysql/help_keyword.MYD -#srv/mysql/mysql/help_keyword.MYI -#srv/mysql/mysql/help_keyword.frm -#srv/mysql/mysql/help_relation.MYD -#srv/mysql/mysql/help_relation.MYI -#srv/mysql/mysql/help_relation.frm -#srv/mysql/mysql/help_topic.MYD -#srv/mysql/mysql/help_topic.MYI -#srv/mysql/mysql/help_topic.frm -#srv/mysql/mysql/host.MYD -#srv/mysql/mysql/host.MYI -#srv/mysql/mysql/host.frm -#srv/mysql/mysql/proc.MYD -#srv/mysql/mysql/proc.MYI -#srv/mysql/mysql/proc.frm -#srv/mysql/mysql/procs_priv.MYD -#srv/mysql/mysql/procs_priv.MYI -#srv/mysql/mysql/procs_priv.frm -#srv/mysql/mysql/tables_priv.MYD -#srv/mysql/mysql/tables_priv.MYI -#srv/mysql/mysql/tables_priv.frm -#srv/mysql/mysql/time_zone.MYD -#srv/mysql/mysql/time_zone.MYI -#srv/mysql/mysql/time_zone.frm -#srv/mysql/mysql/time_zone_leap_second.MYD -#srv/mysql/mysql/time_zone_leap_second.MYI -#srv/mysql/mysql/time_zone_leap_second.frm -#srv/mysql/mysql/time_zone_name.MYD -#srv/mysql/mysql/time_zone_name.MYI -#srv/mysql/mysql/time_zone_name.frm -#srv/mysql/mysql/time_zone_transition.MYD -#srv/mysql/mysql/time_zone_transition.MYI -#srv/mysql/mysql/time_zone_transition.frm -#srv/mysql/mysql/time_zone_transition_type.MYD -#srv/mysql/mysql/time_zone_transition_type.MYI -#srv/mysql/mysql/time_zone_transition_type.frm -#srv/mysql/mysql/user.MYD -#srv/mysql/mysql/user.MYI -#srv/mysql/mysql/user.frm -#srv/mysql/test -#usr/bin/comp_err -#usr/bin/innochecksum -#usr/bin/msql2mysql -#usr/bin/my_print_defaults -#usr/bin/myisam_ftdump -#usr/bin/myisamchk -#usr/bin/myisamlog -#usr/bin/myisampack -#usr/bin/mysql -#usr/bin/mysql_client_test -#usr/bin/mysql_config -#usr/bin/mysql_convert_table_format -#usr/bin/mysql_create_system_tables -#usr/bin/mysql_explain_log -#usr/bin/mysql_find_rows -#usr/bin/mysql_fix_extensions -#usr/bin/mysql_fix_privilege_tables -#usr/bin/mysql_install_db -#usr/bin/mysql_secure_installation -#usr/bin/mysql_setpermission -#usr/bin/mysql_tableinfo -#usr/bin/mysql_tzinfo_to_sql -#usr/bin/mysql_upgrade -#usr/bin/mysql_upgrade_shell -#usr/bin/mysql_waitpid -#usr/bin/mysql_zap -#usr/bin/mysqlaccess -#usr/bin/mysqladmin -#usr/bin/mysqlbinlog -#usr/bin/mysqlbug -#usr/bin/mysqlcheck -#usr/bin/mysqld_multi -#usr/bin/mysqld_safe -#usr/bin/mysqldump -#usr/bin/mysqldumpslow -#usr/bin/mysqlhotcopy -#usr/bin/mysqlimport -#usr/bin/mysqlshow -#usr/bin/mysqltest -#usr/bin/mysqltestmanager -#usr/bin/mysqltestmanager-pwgen -#usr/bin/mysqltestmanagerc -#usr/bin/perror -#usr/bin/replace -#usr/bin/resolve_stack_dump -#usr/bin/resolveip -#usr/include/mysql -#usr/include/mysql/errmsg.h -#usr/include/mysql/keycache.h -#usr/include/mysql/m_ctype.h -#usr/include/mysql/m_string.h -#usr/include/mysql/my_alloc.h -#usr/include/mysql/my_config.h -#usr/include/mysql/my_dbug.h -#usr/include/mysql/my_dir.h -#usr/include/mysql/my_getopt.h -#usr/include/mysql/my_global.h -#usr/include/mysql/my_list.h -#usr/include/mysql/my_net.h -#usr/include/mysql/my_no_pthread.h -#usr/include/mysql/my_pthread.h -#usr/include/mysql/my_semaphore.h -#usr/include/mysql/my_sys.h -#usr/include/mysql/my_xml.h -#usr/include/mysql/mysql.h -#usr/include/mysql/mysql_com.h -#usr/include/mysql/mysql_embed.h -#usr/include/mysql/mysql_time.h -#usr/include/mysql/mysql_version.h -#usr/include/mysql/mysqld_ername.h -#usr/include/mysql/mysqld_error.h -#usr/include/mysql/raid.h -#usr/include/mysql/sql_common.h -#usr/include/mysql/sql_state.h -#usr/include/mysql/sslopt-case.h -#usr/include/mysql/sslopt-longopts.h -#usr/include/mysql/sslopt-vars.h -#usr/include/mysql/typelib.h -#usr/info/mysql.info -usr/lib/libmysqlclient.so -usr/lib/libmysqlclient.so.15 -usr/lib/libmysqlclient.so.15.0.0 -usr/lib/libmysqlclient_r.so -usr/lib/libmysqlclient_r.so.15 -usr/lib/libmysqlclient_r.so.15.0.0 -#usr/lib/mysql -#usr/lib/mysql/libdbug.a -#usr/lib/mysql/libheap.a -#usr/lib/mysql/libmyisam.a -#usr/lib/mysql/libmyisammrg.a -#usr/lib/mysql/libmysqlclient.a -#usr/lib/mysql/libmysqlclient.la -usr/lib/mysql/libmysqlclient.so -usr/lib/mysql/libmysqlclient.so.15 -usr/lib/mysql/libmysqlclient.so.15.0.0 -#usr/lib/mysql/libmysqlclient_r.a -#usr/lib/mysql/libmysqlclient_r.la -usr/lib/mysql/libmysqlclient_r.so -usr/lib/mysql/libmysqlclient_r.so.15 -usr/lib/mysql/libmysqlclient_r.so.15.0.0 -#usr/lib/mysql/libmystrings.a -#usr/lib/mysql/libmysys.a -#usr/lib/mysql/libvio.a -#usr/man/man1/msql2mysql.1 -#usr/man/man1/myisam_ftdump.1 -#usr/man/man1/myisamchk.1 -#usr/man/man1/myisamlog.1 -#usr/man/man1/myisampack.1 -#usr/man/man1/mysql.1 -#usr/man/man1/mysql.server.1 -#usr/man/man1/mysql_config.1 -#usr/man/man1/mysql_explain_log.1 -#usr/man/man1/mysql_fix_privilege_tables.1 -#usr/man/man1/mysql_upgrade.1 -#usr/man/man1/mysql_zap.1 -#usr/man/man1/mysqlaccess.1 -#usr/man/man1/mysqladmin.1 -#usr/man/man1/mysqlbinlog.1 -#usr/man/man1/mysqlcheck.1 -#usr/man/man1/mysqld.1 -#usr/man/man1/mysqld_multi.1 -#usr/man/man1/mysqld_safe.1 -#usr/man/man1/mysqldump.1 -#usr/man/man1/mysqlhotcopy.1 -#usr/man/man1/mysqlimport.1 -#usr/man/man1/mysqlman.1 -#usr/man/man1/mysqlmanager.1 -#usr/man/man1/mysqlshow.1 -#usr/man/man1/perror.1 -#usr/man/man1/replace.1 -#usr/man/man1/safe_mysqld.1 -#usr/sbin/mysqld -#usr/sbin/mysqlmanager -#usr/share/mysql -#usr/share/mysql/binary-configure -#usr/share/mysql/charsets -#usr/share/mysql/charsets/Index.xml -#usr/share/mysql/charsets/README -#usr/share/mysql/charsets/armscii8.xml -#usr/share/mysql/charsets/ascii.xml -#usr/share/mysql/charsets/cp1250.xml -#usr/share/mysql/charsets/cp1251.xml -#usr/share/mysql/charsets/cp1256.xml -#usr/share/mysql/charsets/cp1257.xml -#usr/share/mysql/charsets/cp850.xml -#usr/share/mysql/charsets/cp852.xml -#usr/share/mysql/charsets/cp866.xml -#usr/share/mysql/charsets/dec8.xml -#usr/share/mysql/charsets/geostd8.xml -#usr/share/mysql/charsets/greek.xml -#usr/share/mysql/charsets/hebrew.xml -#usr/share/mysql/charsets/hp8.xml -#usr/share/mysql/charsets/keybcs2.xml -#usr/share/mysql/charsets/koi8r.xml -#usr/share/mysql/charsets/koi8u.xml -#usr/share/mysql/charsets/latin1.xml -#usr/share/mysql/charsets/latin2.xml -#usr/share/mysql/charsets/latin5.xml -#usr/share/mysql/charsets/latin7.xml -#usr/share/mysql/charsets/macce.xml -#usr/share/mysql/charsets/macroman.xml -#usr/share/mysql/charsets/swe7.xml -#usr/share/mysql/czech -#usr/share/mysql/czech/errmsg.sys -#usr/share/mysql/danish -#usr/share/mysql/danish/errmsg.sys -#usr/share/mysql/dutch -#usr/share/mysql/dutch/errmsg.sys -#usr/share/mysql/english -usr/share/mysql/english/errmsg.sys -usr/share/mysql/errmsg.txt -#usr/share/mysql/estonian -#usr/share/mysql/estonian/errmsg.sys -#usr/share/mysql/fill_help_tables.sql -#usr/share/mysql/french -#usr/share/mysql/french/errmsg.sys -#usr/share/mysql/german -usr/share/mysql/german/errmsg.sys -#usr/share/mysql/greek -#usr/share/mysql/greek/errmsg.sys -#usr/share/mysql/hungarian -#usr/share/mysql/hungarian/errmsg.sys -#usr/share/mysql/italian -#usr/share/mysql/italian/errmsg.sys -#usr/share/mysql/japanese -#usr/share/mysql/japanese/errmsg.sys -#usr/share/mysql/korean -#usr/share/mysql/korean/errmsg.sys -#usr/share/mysql/mi_test_all -#usr/share/mysql/mi_test_all.res -#usr/share/mysql/my-huge.cnf -#usr/share/mysql/my-innodb-heavy-4G.cnf -#usr/share/mysql/my-large.cnf -#usr/share/mysql/my-medium.cnf -#usr/share/mysql/my-small.cnf -#usr/share/mysql/mysql-log-rotate -#usr/share/mysql/mysql.server -#usr/share/mysql/mysql_fix_privilege_tables.sql -#usr/share/mysql/ndb-config-2-node.ini -#usr/share/mysql/norwegian -#usr/share/mysql/norwegian-ny -#usr/share/mysql/norwegian-ny/errmsg.sys -#usr/share/mysql/norwegian/errmsg.sys -#usr/share/mysql/polish -#usr/share/mysql/polish/errmsg.sys -#usr/share/mysql/portuguese -#usr/share/mysql/portuguese/errmsg.sys -#usr/share/mysql/romanian -#usr/share/mysql/romanian/errmsg.sys -#usr/share/mysql/russian -#usr/share/mysql/russian/errmsg.sys -#usr/share/mysql/serbian -#usr/share/mysql/serbian/errmsg.sys -#usr/share/mysql/slovak -#usr/share/mysql/slovak/errmsg.sys -#usr/share/mysql/spanish -#usr/share/mysql/spanish/errmsg.sys -#usr/share/mysql/swedish -#usr/share/mysql/swedish/errmsg.sys -#usr/share/mysql/ukrainian -#usr/share/mysql/ukrainian/errmsg.sys -#var/run/mysql diff --git a/config/rootfiles/common/mysql-libs b/config/rootfiles/common/mysql-libs new file mode 100644 index 0000000..6eb0384 --- /dev/null +++ b/config/rootfiles/common/mysql-libs @@ -0,0 +1,10 @@ +usr/lib/libmysqlclient.so.15 +usr/lib/libmysqlclient.so.15.0.0 +usr/lib/libmysqlclient_r.so.15 +usr/lib/libmysqlclient_r.so.15.0.0 +usr/lib/mysql/libmysqlclient.so +usr/lib/mysql/libmysqlclient.so.15 +usr/lib/mysql/libmysqlclient.so.15.0.0 +usr/lib/mysql/libmysqlclient_r.so +usr/lib/mysql/libmysqlclient_r.so.15 +usr/lib/mysql/libmysqlclient_r.so.15.0.0 diff --git a/config/rootfiles/common/openssl b/config/rootfiles/common/openssl index bc1ac49..ec92d1c 100644 --- a/config/rootfiles/common/openssl +++ b/config/rootfiles/common/openssl @@ -7,6 +7,7 @@ #etc/ssl/misc/c_info #etc/ssl/misc/c_issuer #etc/ssl/misc/c_name +#etc/ssl/misc/tsget etc/ssl/openssl.cnf #etc/ssl/private usr/bin/c_rehash @@ -20,7 +21,10 @@ usr/bin/openssl #usr/include/openssl/blowfish.h #usr/include/openssl/bn.h #usr/include/openssl/buffer.h +#usr/include/openssl/camellia.h #usr/include/openssl/cast.h +#usr/include/openssl/cmac.h +#usr/include/openssl/cms.h #usr/include/openssl/comp.h #usr/include/openssl/conf.h #usr/include/openssl/conf_api.h @@ -40,13 +44,13 @@ usr/bin/openssl #usr/include/openssl/err.h #usr/include/openssl/evp.h #usr/include/openssl/hmac.h -#usr/include/openssl/idea.h #usr/include/openssl/krb5_asn.h #usr/include/openssl/kssl.h #usr/include/openssl/lhash.h #usr/include/openssl/md2.h #usr/include/openssl/md4.h #usr/include/openssl/md5.h +#usr/include/openssl/modes.h #usr/include/openssl/obj_mac.h #usr/include/openssl/objects.h #usr/include/openssl/ocsp.h @@ -57,7 +61,6 @@ usr/bin/openssl #usr/include/openssl/pem2.h #usr/include/openssl/pkcs12.h #usr/include/openssl/pkcs7.h -#usr/include/openssl/pq_compat.h #usr/include/openssl/pqueue.h #usr/include/openssl/rand.h #usr/include/openssl/rc2.h @@ -65,1113 +68,44 @@ usr/bin/openssl #usr/include/openssl/ripemd.h #usr/include/openssl/rsa.h #usr/include/openssl/safestack.h +#usr/include/openssl/seed.h #usr/include/openssl/sha.h +#usr/include/openssl/srtp.h #usr/include/openssl/ssl.h #usr/include/openssl/ssl2.h #usr/include/openssl/ssl23.h #usr/include/openssl/ssl3.h #usr/include/openssl/stack.h -#usr/include/openssl/store.h #usr/include/openssl/symhacks.h #usr/include/openssl/tls1.h -#usr/include/openssl/tmdiff.h +#usr/include/openssl/ts.h #usr/include/openssl/txt_db.h #usr/include/openssl/ui.h #usr/include/openssl/ui_compat.h +#usr/include/openssl/whrlpool.h #usr/include/openssl/x509.h #usr/include/openssl/x509_vfy.h #usr/include/openssl/x509v3.h -#usr/lib/engines -#usr/lib/engines/lib4758cca.so -#usr/lib/engines/libaep.so -#usr/lib/engines/libatalla.so -#usr/lib/engines/libcapi.so -#usr/lib/engines/libchil.so -#usr/lib/engines/libcswift.so -#usr/lib/engines/libgmp.so -#usr/lib/engines/libnuron.so -#usr/lib/engines/libsureware.so -#usr/lib/engines/libubsec.so #usr/lib/libcrypto.a usr/lib/libcrypto.so -usr/lib/libcrypto.so.0.9.8 +usr/lib/libcrypto.so.10 #usr/lib/libssl.a usr/lib/libssl.so -usr/lib/libssl.so.0.9.8 +usr/lib/libssl.so.10 +#usr/lib/openssl +usr/lib/openssl/engines +#usr/lib/openssl/engines/lib4758cca.so +#usr/lib/openssl/engines/libaep.so +#usr/lib/openssl/engines/libatalla.so +#usr/lib/openssl/engines/libcapi.so +#usr/lib/openssl/engines/libchil.so +#usr/lib/openssl/engines/libcswift.so +#usr/lib/openssl/engines/libgmp.so +#usr/lib/openssl/engines/libgost.so +#usr/lib/openssl/engines/libnuron.so +#usr/lib/openssl/engines/libpadlock.so +#usr/lib/openssl/engines/libsureware.so +#usr/lib/openssl/engines/libubsec.so #usr/lib/pkgconfig/libcrypto.pc #usr/lib/pkgconfig/libssl.pc #usr/lib/pkgconfig/openssl.pc -#usr/share/man/man1/CA.pl.1 -#usr/share/man/man1/asn1parse.1 -#usr/share/man/man1/ca.1 -#usr/share/man/man1/ciphers.1 -#usr/share/man/man1/crl.1 -#usr/share/man/man1/crl2pkcs7.1 -#usr/share/man/man1/dgst.1 -#usr/share/man/man1/dhparam.1 -#usr/share/man/man1/dsa.1 -#usr/share/man/man1/dsaparam.1 -#usr/share/man/man1/ec.1 -#usr/share/man/man1/ecparam.1 -#usr/share/man/man1/enc.1 -#usr/share/man/man1/errstr.1 -#usr/share/man/man1/gendsa.1 -#usr/share/man/man1/genrsa.1 -#usr/share/man/man1/md2.1 -#usr/share/man/man1/md4.1 -#usr/share/man/man1/md5.1 -#usr/share/man/man1/mdc2.1 -#usr/share/man/man1/nseq.1 -#usr/share/man/man1/ocsp.1 -#usr/share/man/man1/openssl.1 -#usr/share/man/man1/passwd.1 -#usr/share/man/man1/pkcs12.1 -#usr/share/man/man1/pkcs7.1 -#usr/share/man/man1/pkcs8.1 -#usr/share/man/man1/rand.1 -#usr/share/man/man1/req.1 -#usr/share/man/man1/ripemd160.1 -#usr/share/man/man1/rsa.1 -#usr/share/man/man1/rsautl.1 -#usr/share/man/man1/s_client.1 -#usr/share/man/man1/s_server.1 -#usr/share/man/man1/s_time.1 -#usr/share/man/man1/sess_id.1 -#usr/share/man/man1/sha.1 -#usr/share/man/man1/sha1.1 -#usr/share/man/man1/smime.1 -#usr/share/man/man1/speed.1 -#usr/share/man/man1/spkac.1 -#usr/share/man/man1/verify.1 -#usr/share/man/man1/version.1 -#usr/share/man/man1/x509.1 -#usr/share/man/man3/ASN1_OBJECT_free.3 -#usr/share/man/man3/ASN1_OBJECT_new.3 -#usr/share/man/man3/ASN1_STRING_cmp.3 -#usr/share/man/man3/ASN1_STRING_data.3 -#usr/share/man/man3/ASN1_STRING_dup.3 -#usr/share/man/man3/ASN1_STRING_free.3 -#usr/share/man/man3/ASN1_STRING_length.3 -#usr/share/man/man3/ASN1_STRING_length_set.3 -#usr/share/man/man3/ASN1_STRING_new.3 -#usr/share/man/man3/ASN1_STRING_print_ex.3 -#usr/share/man/man3/ASN1_STRING_print_ex_fp.3 -#usr/share/man/man3/ASN1_STRING_set.3 -#usr/share/man/man3/ASN1_STRING_type.3 -#usr/share/man/man3/ASN1_STRING_type_new.3 -#usr/share/man/man3/ASN1_generate_nconf.3 -#usr/share/man/man3/ASN1_generate_v3.3 -#usr/share/man/man3/BF_cbc_encrypt.3 -#usr/share/man/man3/BF_cfb64_encrypt.3 -#usr/share/man/man3/BF_decrypt.3 -#usr/share/man/man3/BF_ecb_encrypt.3 -#usr/share/man/man3/BF_encrypt.3 -#usr/share/man/man3/BF_ofb64_encrypt.3 -#usr/share/man/man3/BF_options.3 -#usr/share/man/man3/BF_set_key.3 -#usr/share/man/man3/BIO_append_filename.3 -#usr/share/man/man3/BIO_callback_ctrl.3 -#usr/share/man/man3/BIO_ctrl.3 -#usr/share/man/man3/BIO_ctrl_get_read_request.3 -#usr/share/man/man3/BIO_ctrl_get_write_guarantee.3 -#usr/share/man/man3/BIO_ctrl_pending.3 -#usr/share/man/man3/BIO_ctrl_reset_read_request.3 -#usr/share/man/man3/BIO_ctrl_wpending.3 -#usr/share/man/man3/BIO_debug_callback.3 -#usr/share/man/man3/BIO_destroy_bio_pair.3 -#usr/share/man/man3/BIO_do_accept.3 -#usr/share/man/man3/BIO_do_connect.3 -#usr/share/man/man3/BIO_eof.3 -#usr/share/man/man3/BIO_f_base64.3 -#usr/share/man/man3/BIO_f_buffer.3 -#usr/share/man/man3/BIO_f_cipher.3 -#usr/share/man/man3/BIO_f_md.3 -#usr/share/man/man3/BIO_f_null.3 -#usr/share/man/man3/BIO_f_ssl.3 -#usr/share/man/man3/BIO_find_type.3 -#usr/share/man/man3/BIO_flush.3 -#usr/share/man/man3/BIO_free.3 -#usr/share/man/man3/BIO_free_all.3 -#usr/share/man/man3/BIO_get_accept_port.3 -#usr/share/man/man3/BIO_get_bind_mode.3 -#usr/share/man/man3/BIO_get_callback.3 -#usr/share/man/man3/BIO_get_callback_arg.3 -#usr/share/man/man3/BIO_get_cipher_ctx.3 -#usr/share/man/man3/BIO_get_cipher_status.3 -#usr/share/man/man3/BIO_get_close.3 -#usr/share/man/man3/BIO_get_conn_hostname.3 -#usr/share/man/man3/BIO_get_conn_int_port.3 -#usr/share/man/man3/BIO_get_conn_ip.3 -#usr/share/man/man3/BIO_get_conn_port.3 -#usr/share/man/man3/BIO_get_fd.3 -#usr/share/man/man3/BIO_get_fp.3 -#usr/share/man/man3/BIO_get_info_callback.3 -#usr/share/man/man3/BIO_get_md.3 -#usr/share/man/man3/BIO_get_md_ctx.3 -#usr/share/man/man3/BIO_get_mem_data.3 -#usr/share/man/man3/BIO_get_mem_ptr.3 -#usr/share/man/man3/BIO_get_num_renegotiates.3 -#usr/share/man/man3/BIO_get_read_request.3 -#usr/share/man/man3/BIO_get_retry_BIO.3 -#usr/share/man/man3/BIO_get_retry_reason.3 -#usr/share/man/man3/BIO_get_ssl.3 -#usr/share/man/man3/BIO_get_write_buf_size.3 -#usr/share/man/man3/BIO_get_write_guarantee.3 -#usr/share/man/man3/BIO_gets.3 -#usr/share/man/man3/BIO_int_ctrl.3 -#usr/share/man/man3/BIO_make_bio_pair.3 -#usr/share/man/man3/BIO_new.3 -#usr/share/man/man3/BIO_new_bio_pair.3 -#usr/share/man/man3/BIO_new_buffer_ssl_connect.3 -#usr/share/man/man3/BIO_new_fd.3 -#usr/share/man/man3/BIO_new_file.3 -#usr/share/man/man3/BIO_new_fp.3 -#usr/share/man/man3/BIO_new_mem_buf.3 -#usr/share/man/man3/BIO_new_socket.3 -#usr/share/man/man3/BIO_new_ssl.3 -#usr/share/man/man3/BIO_new_ssl_connect.3 -#usr/share/man/man3/BIO_next.3 -#usr/share/man/man3/BIO_pending.3 -#usr/share/man/man3/BIO_pop.3 -#usr/share/man/man3/BIO_ptr_ctrl.3 -#usr/share/man/man3/BIO_push.3 -#usr/share/man/man3/BIO_puts.3 -#usr/share/man/man3/BIO_read.3 -#usr/share/man/man3/BIO_read_filename.3 -#usr/share/man/man3/BIO_reset.3 -#usr/share/man/man3/BIO_retry_type.3 -#usr/share/man/man3/BIO_rw_filename.3 -#usr/share/man/man3/BIO_s_accept.3 -#usr/share/man/man3/BIO_s_bio.3 -#usr/share/man/man3/BIO_s_connect.3 -#usr/share/man/man3/BIO_s_fd.3 -#usr/share/man/man3/BIO_s_file.3 -#usr/share/man/man3/BIO_s_mem.3 -#usr/share/man/man3/BIO_s_null.3 -#usr/share/man/man3/BIO_s_socket.3 -#usr/share/man/man3/BIO_seek.3 -#usr/share/man/man3/BIO_set.3 -#usr/share/man/man3/BIO_set_accept_bios.3 -#usr/share/man/man3/BIO_set_accept_port.3 -#usr/share/man/man3/BIO_set_bind_mode.3 -#usr/share/man/man3/BIO_set_callback.3 -#usr/share/man/man3/BIO_set_callback_arg.3 -#usr/share/man/man3/BIO_set_cipher.3 -#usr/share/man/man3/BIO_set_close.3 -#usr/share/man/man3/BIO_set_conn_hostname.3 -#usr/share/man/man3/BIO_set_conn_int_port.3 -#usr/share/man/man3/BIO_set_conn_ip.3 -#usr/share/man/man3/BIO_set_conn_port.3 -#usr/share/man/man3/BIO_set_fd.3 -#usr/share/man/man3/BIO_set_fp.3 -#usr/share/man/man3/BIO_set_info_callback.3 -#usr/share/man/man3/BIO_set_md.3 -#usr/share/man/man3/BIO_set_mem_buf.3 -#usr/share/man/man3/BIO_set_mem_eof_return.3 -#usr/share/man/man3/BIO_set_nbio.3 -#usr/share/man/man3/BIO_set_nbio_accept.3 -#usr/share/man/man3/BIO_set_ssl.3 -#usr/share/man/man3/BIO_set_ssl_mode.3 -#usr/share/man/man3/BIO_set_ssl_renegotiate_bytes.3 -#usr/share/man/man3/BIO_set_ssl_renegotiate_timeout.3 -#usr/share/man/man3/BIO_set_write_buf_size.3 -#usr/share/man/man3/BIO_should_io_special.3 -#usr/share/man/man3/BIO_should_read.3 -#usr/share/man/man3/BIO_should_retry.3 -#usr/share/man/man3/BIO_should_write.3 -#usr/share/man/man3/BIO_shutdown_wr.3 -#usr/share/man/man3/BIO_ssl_copy_session_id.3 -#usr/share/man/man3/BIO_ssl_shutdown.3 -#usr/share/man/man3/BIO_tell.3 -#usr/share/man/man3/BIO_vfree.3 -#usr/share/man/man3/BIO_wpending.3 -#usr/share/man/man3/BIO_write.3 -#usr/share/man/man3/BIO_write_filename.3 -#usr/share/man/man3/BN_BLINDING_convert.3 -#usr/share/man/man3/BN_BLINDING_convert_ex.3 -#usr/share/man/man3/BN_BLINDING_create_param.3 -#usr/share/man/man3/BN_BLINDING_free.3 -#usr/share/man/man3/BN_BLINDING_get_flags.3 -#usr/share/man/man3/BN_BLINDING_get_thread_id.3 -#usr/share/man/man3/BN_BLINDING_invert.3 -#usr/share/man/man3/BN_BLINDING_invert_ex.3 -#usr/share/man/man3/BN_BLINDING_new.3 -#usr/share/man/man3/BN_BLINDING_set_flags.3 -#usr/share/man/man3/BN_BLINDING_set_thread_id.3 -#usr/share/man/man3/BN_BLINDING_update.3 -#usr/share/man/man3/BN_CTX_end.3 -#usr/share/man/man3/BN_CTX_free.3 -#usr/share/man/man3/BN_CTX_get.3 -#usr/share/man/man3/BN_CTX_init.3 -#usr/share/man/man3/BN_CTX_new.3 -#usr/share/man/man3/BN_CTX_start.3 -#usr/share/man/man3/BN_MONT_CTX_copy.3 -#usr/share/man/man3/BN_MONT_CTX_free.3 -#usr/share/man/man3/BN_MONT_CTX_init.3 -#usr/share/man/man3/BN_MONT_CTX_new.3 -#usr/share/man/man3/BN_MONT_CTX_set.3 -#usr/share/man/man3/BN_RECP_CTX_free.3 -#usr/share/man/man3/BN_RECP_CTX_init.3 -#usr/share/man/man3/BN_RECP_CTX_new.3 -#usr/share/man/man3/BN_RECP_CTX_set.3 -#usr/share/man/man3/BN_add.3 -#usr/share/man/man3/BN_add_word.3 -#usr/share/man/man3/BN_bin2bn.3 -#usr/share/man/man3/BN_bn2bin.3 -#usr/share/man/man3/BN_bn2dec.3 -#usr/share/man/man3/BN_bn2hex.3 -#usr/share/man/man3/BN_bn2mpi.3 -#usr/share/man/man3/BN_clear.3 -#usr/share/man/man3/BN_clear_bit.3 -#usr/share/man/man3/BN_clear_free.3 -#usr/share/man/man3/BN_cmp.3 -#usr/share/man/man3/BN_copy.3 -#usr/share/man/man3/BN_dec2bn.3 -#usr/share/man/man3/BN_div.3 -#usr/share/man/man3/BN_div_recp.3 -#usr/share/man/man3/BN_div_word.3 -#usr/share/man/man3/BN_dup.3 -#usr/share/man/man3/BN_exp.3 -#usr/share/man/man3/BN_free.3 -#usr/share/man/man3/BN_from_montgomery.3 -#usr/share/man/man3/BN_gcd.3 -#usr/share/man/man3/BN_generate_prime.3 -#usr/share/man/man3/BN_get_word.3 -#usr/share/man/man3/BN_hex2bn.3 -#usr/share/man/man3/BN_init.3 -#usr/share/man/man3/BN_is_bit_set.3 -#usr/share/man/man3/BN_is_odd.3 -#usr/share/man/man3/BN_is_one.3 -#usr/share/man/man3/BN_is_prime.3 -#usr/share/man/man3/BN_is_prime_fasttest.3 -#usr/share/man/man3/BN_is_word.3 -#usr/share/man/man3/BN_is_zero.3 -#usr/share/man/man3/BN_lshift.3 -#usr/share/man/man3/BN_lshift1.3 -#usr/share/man/man3/BN_mask_bits.3 -#usr/share/man/man3/BN_mod.3 -#usr/share/man/man3/BN_mod_add.3 -#usr/share/man/man3/BN_mod_exp.3 -#usr/share/man/man3/BN_mod_inverse.3 -#usr/share/man/man3/BN_mod_mul.3 -#usr/share/man/man3/BN_mod_mul_montgomery.3 -#usr/share/man/man3/BN_mod_mul_reciprocal.3 -#usr/share/man/man3/BN_mod_sqr.3 -#usr/share/man/man3/BN_mod_sub.3 -#usr/share/man/man3/BN_mod_word.3 -#usr/share/man/man3/BN_mpi2bn.3 -#usr/share/man/man3/BN_mul.3 -#usr/share/man/man3/BN_mul_word.3 -#usr/share/man/man3/BN_new.3 -#usr/share/man/man3/BN_nnmod.3 -#usr/share/man/man3/BN_num_bits.3 -#usr/share/man/man3/BN_num_bits_word.3 -#usr/share/man/man3/BN_num_bytes.3 -#usr/share/man/man3/BN_one.3 -#usr/share/man/man3/BN_print.3 -#usr/share/man/man3/BN_print_fp.3 -#usr/share/man/man3/BN_pseudo_rand.3 -#usr/share/man/man3/BN_rand.3 -#usr/share/man/man3/BN_rshift.3 -#usr/share/man/man3/BN_rshift1.3 -#usr/share/man/man3/BN_set_bit.3 -#usr/share/man/man3/BN_set_word.3 -#usr/share/man/man3/BN_sqr.3 -#usr/share/man/man3/BN_sub.3 -#usr/share/man/man3/BN_sub_word.3 -#usr/share/man/man3/BN_swap.3 -#usr/share/man/man3/BN_to_montgomery.3 -#usr/share/man/man3/BN_ucmp.3 -#usr/share/man/man3/BN_value_one.3 -#usr/share/man/man3/BN_zero.3 -#usr/share/man/man3/BUF_MEM_free.3 -#usr/share/man/man3/BUF_MEM_grow.3 -#usr/share/man/man3/BUF_MEM_new.3 -#usr/share/man/man3/BUF_strdup.3 -#usr/share/man/man3/CONF_modules_finish.3 -#usr/share/man/man3/CONF_modules_free.3 -#usr/share/man/man3/CONF_modules_load.3 -#usr/share/man/man3/CONF_modules_load_file.3 -#usr/share/man/man3/CONF_modules_unload.3 -#usr/share/man/man3/CRYPTO_destroy_dynlockid.3 -#usr/share/man/man3/CRYPTO_get_ex_data.3 -#usr/share/man/man3/CRYPTO_get_new_dynlockid.3 -#usr/share/man/man3/CRYPTO_lock.3 -#usr/share/man/man3/CRYPTO_num_locks.3 -#usr/share/man/man3/CRYPTO_set_dynlock_create_callback.3 -#usr/share/man/man3/CRYPTO_set_dynlock_destroy_callback.3 -#usr/share/man/man3/CRYPTO_set_dynlock_lock_callback.3 -#usr/share/man/man3/CRYPTO_set_ex_data.3 -#usr/share/man/man3/CRYPTO_set_id_callback.3 -#usr/share/man/man3/CRYPTO_set_locking_callback.3 -#usr/share/man/man3/DES_cbc_cksum.3 -#usr/share/man/man3/DES_cfb64_encrypt.3 -#usr/share/man/man3/DES_cfb_encrypt.3 -#usr/share/man/man3/DES_crypt.3 -#usr/share/man/man3/DES_ecb2_encrypt.3 -#usr/share/man/man3/DES_ecb3_encrypt.3 -#usr/share/man/man3/DES_ecb_encrypt.3 -#usr/share/man/man3/DES_ede2_cbc_encrypt.3 -#usr/share/man/man3/DES_ede2_cfb64_encrypt.3 -#usr/share/man/man3/DES_ede2_ofb64_encrypt.3 -#usr/share/man/man3/DES_ede3_cbc_encrypt.3 -#usr/share/man/man3/DES_ede3_cbcm_encrypt.3 -#usr/share/man/man3/DES_ede3_cfb64_encrypt.3 -#usr/share/man/man3/DES_ede3_ofb64_encrypt.3 -#usr/share/man/man3/DES_enc_read.3 -#usr/share/man/man3/DES_enc_write.3 -#usr/share/man/man3/DES_fcrypt.3 -#usr/share/man/man3/DES_is_weak_key.3 -#usr/share/man/man3/DES_key_sched.3 -#usr/share/man/man3/DES_ncbc_encrypt.3 -#usr/share/man/man3/DES_ofb64_encrypt.3 -#usr/share/man/man3/DES_ofb_encrypt.3 -#usr/share/man/man3/DES_pcbc_encrypt.3 -#usr/share/man/man3/DES_quad_cksum.3 -#usr/share/man/man3/DES_random_key.3 -#usr/share/man/man3/DES_set_key.3 -#usr/share/man/man3/DES_set_key_checked.3 -#usr/share/man/man3/DES_set_key_unchecked.3 -#usr/share/man/man3/DES_set_odd_parity.3 -#usr/share/man/man3/DES_string_to_2keys.3 -#usr/share/man/man3/DES_string_to_key.3 -#usr/share/man/man3/DES_xcbc_encrypt.3 -#usr/share/man/man3/DH_OpenSSL.3 -#usr/share/man/man3/DH_check.3 -#usr/share/man/man3/DH_compute_key.3 -#usr/share/man/man3/DH_free.3 -#usr/share/man/man3/DH_generate_key.3 -#usr/share/man/man3/DH_generate_parameters.3 -#usr/share/man/man3/DH_get_default_method.3 -#usr/share/man/man3/DH_get_ex_data.3 -#usr/share/man/man3/DH_get_ex_new_index.3 -#usr/share/man/man3/DH_new.3 -#usr/share/man/man3/DH_new_method.3 -#usr/share/man/man3/DH_set_default_method.3 -#usr/share/man/man3/DH_set_ex_data.3 -#usr/share/man/man3/DH_set_method.3 -#usr/share/man/man3/DH_size.3 -#usr/share/man/man3/DHparams_print.3 -#usr/share/man/man3/DHparams_print_fp.3 -#usr/share/man/man3/DSA_OpenSSL.3 -#usr/share/man/man3/DSA_SIG_free.3 -#usr/share/man/man3/DSA_SIG_new.3 -#usr/share/man/man3/DSA_do_sign.3 -#usr/share/man/man3/DSA_do_verify.3 -#usr/share/man/man3/DSA_dup_DH.3 -#usr/share/man/man3/DSA_free.3 -#usr/share/man/man3/DSA_generate_key.3 -#usr/share/man/man3/DSA_generate_parameters.3 -#usr/share/man/man3/DSA_get_default_method.3 -#usr/share/man/man3/DSA_get_ex_data.3 -#usr/share/man/man3/DSA_get_ex_new_index.3 -#usr/share/man/man3/DSA_new.3 -#usr/share/man/man3/DSA_new_method.3 -#usr/share/man/man3/DSA_print.3 -#usr/share/man/man3/DSA_print_fp.3 -#usr/share/man/man3/DSA_set_default_method.3 -#usr/share/man/man3/DSA_set_ex_data.3 -#usr/share/man/man3/DSA_set_method.3 -#usr/share/man/man3/DSA_sign.3 -#usr/share/man/man3/DSA_sign_setup.3 -#usr/share/man/man3/DSA_size.3 -#usr/share/man/man3/DSA_verify.3 -#usr/share/man/man3/DSAparams_print.3 -#usr/share/man/man3/DSAparams_print_fp.3 -#usr/share/man/man3/ERR_GET_FUNC.3 -#usr/share/man/man3/ERR_GET_LIB.3 -#usr/share/man/man3/ERR_GET_REASON.3 -#usr/share/man/man3/ERR_PACK.3 -#usr/share/man/man3/ERR_add_error_data.3 -#usr/share/man/man3/ERR_clear_error.3 -#usr/share/man/man3/ERR_error_string.3 -#usr/share/man/man3/ERR_error_string_n.3 -#usr/share/man/man3/ERR_free_strings.3 -#usr/share/man/man3/ERR_func_error_string.3 -#usr/share/man/man3/ERR_get_error.3 -#usr/share/man/man3/ERR_get_error_line.3 -#usr/share/man/man3/ERR_get_error_line_data.3 -#usr/share/man/man3/ERR_get_next_error_library.3 -#usr/share/man/man3/ERR_lib_error_string.3 -#usr/share/man/man3/ERR_load_UI_strings.3 -#usr/share/man/man3/ERR_load_crypto_strings.3 -#usr/share/man/man3/ERR_load_strings.3 -#usr/share/man/man3/ERR_peek_error.3 -#usr/share/man/man3/ERR_peek_error_line.3 -#usr/share/man/man3/ERR_peek_error_line_data.3 -#usr/share/man/man3/ERR_peek_last_error.3 -#usr/share/man/man3/ERR_peek_last_error_line.3 -#usr/share/man/man3/ERR_peek_last_error_line_data.3 -#usr/share/man/man3/ERR_pop_to_mark.3 -#usr/share/man/man3/ERR_print_errors.3 -#usr/share/man/man3/ERR_print_errors_fp.3 -#usr/share/man/man3/ERR_put_error.3 -#usr/share/man/man3/ERR_reason_error_string.3 -#usr/share/man/man3/ERR_remove_state.3 -#usr/share/man/man3/ERR_set_mark.3 -#usr/share/man/man3/EVP_BytesToKey.3 -#usr/share/man/man3/EVP_CIPHER_CTX_block_size.3 -#usr/share/man/man3/EVP_CIPHER_CTX_cipher.3 -#usr/share/man/man3/EVP_CIPHER_CTX_cleanup.3 -#usr/share/man/man3/EVP_CIPHER_CTX_ctrl.3 -#usr/share/man/man3/EVP_CIPHER_CTX_flags.3 -#usr/share/man/man3/EVP_CIPHER_CTX_get_app_data.3 -#usr/share/man/man3/EVP_CIPHER_CTX_init.3 -#usr/share/man/man3/EVP_CIPHER_CTX_iv_length.3 -#usr/share/man/man3/EVP_CIPHER_CTX_key_length.3 -#usr/share/man/man3/EVP_CIPHER_CTX_mode.3 -#usr/share/man/man3/EVP_CIPHER_CTX_nid.3 -#usr/share/man/man3/EVP_CIPHER_CTX_set_app_data.3 -#usr/share/man/man3/EVP_CIPHER_CTX_set_key_length.3 -#usr/share/man/man3/EVP_CIPHER_CTX_set_padding.3 -#usr/share/man/man3/EVP_CIPHER_CTX_type.3 -#usr/share/man/man3/EVP_CIPHER_asn1_to_param.3 -#usr/share/man/man3/EVP_CIPHER_block_size.3 -#usr/share/man/man3/EVP_CIPHER_flags.3 -#usr/share/man/man3/EVP_CIPHER_iv_length.3 -#usr/share/man/man3/EVP_CIPHER_key_length.3 -#usr/share/man/man3/EVP_CIPHER_mode.3 -#usr/share/man/man3/EVP_CIPHER_nid.3 -#usr/share/man/man3/EVP_CIPHER_param_to_asn1.3 -#usr/share/man/man3/EVP_CIPHER_type.3 -#usr/share/man/man3/EVP_CipherFinal.3 -#usr/share/man/man3/EVP_CipherFinal_ex.3 -#usr/share/man/man3/EVP_CipherInit.3 -#usr/share/man/man3/EVP_CipherInit_ex.3 -#usr/share/man/man3/EVP_CipherUpdate.3 -#usr/share/man/man3/EVP_DecryptFinal.3 -#usr/share/man/man3/EVP_DecryptFinal_ex.3 -#usr/share/man/man3/EVP_DecryptInit.3 -#usr/share/man/man3/EVP_DecryptInit_ex.3 -#usr/share/man/man3/EVP_DecryptUpdate.3 -#usr/share/man/man3/EVP_DigestFinal_ex.3 -#usr/share/man/man3/EVP_DigestInit.3 -#usr/share/man/man3/EVP_DigestInit_ex.3 -#usr/share/man/man3/EVP_DigestUpdate.3 -#usr/share/man/man3/EVP_EncryptFinal.3 -#usr/share/man/man3/EVP_EncryptFinal_ex.3 -#usr/share/man/man3/EVP_EncryptInit.3 -#usr/share/man/man3/EVP_EncryptInit_ex.3 -#usr/share/man/man3/EVP_EncryptUpdate.3 -#usr/share/man/man3/EVP_MAX_MD_SIZE.3 -#usr/share/man/man3/EVP_MD_CTX_block_size.3 -#usr/share/man/man3/EVP_MD_CTX_cleanup.3 -#usr/share/man/man3/EVP_MD_CTX_copy.3 -#usr/share/man/man3/EVP_MD_CTX_copy_ex.3 -#usr/share/man/man3/EVP_MD_CTX_create.3 -#usr/share/man/man3/EVP_MD_CTX_destroy.3 -#usr/share/man/man3/EVP_MD_CTX_init.3 -#usr/share/man/man3/EVP_MD_CTX_md.3 -#usr/share/man/man3/EVP_MD_CTX_size.3 -#usr/share/man/man3/EVP_MD_CTX_type.3 -#usr/share/man/man3/EVP_MD_block_size.3 -#usr/share/man/man3/EVP_MD_pkey_type.3 -#usr/share/man/man3/EVP_MD_size.3 -#usr/share/man/man3/EVP_MD_type.3 -#usr/share/man/man3/EVP_OpenFinal.3 -#usr/share/man/man3/EVP_OpenInit.3 -#usr/share/man/man3/EVP_OpenUpdate.3 -#usr/share/man/man3/EVP_PKEY_assign_DH.3 -#usr/share/man/man3/EVP_PKEY_assign_DSA.3 -#usr/share/man/man3/EVP_PKEY_assign_EC_KEY.3 -#usr/share/man/man3/EVP_PKEY_assign_RSA.3 -#usr/share/man/man3/EVP_PKEY_free.3 -#usr/share/man/man3/EVP_PKEY_get1_DH.3 -#usr/share/man/man3/EVP_PKEY_get1_DSA.3 -#usr/share/man/man3/EVP_PKEY_get1_EC_KEY.3 -#usr/share/man/man3/EVP_PKEY_get1_RSA.3 -#usr/share/man/man3/EVP_PKEY_new.3 -#usr/share/man/man3/EVP_PKEY_set1_DH.3 -#usr/share/man/man3/EVP_PKEY_set1_DSA.3 -#usr/share/man/man3/EVP_PKEY_set1_EC_KEY.3 -#usr/share/man/man3/EVP_PKEY_set1_RSA.3 -#usr/share/man/man3/EVP_PKEY_type.3 -#usr/share/man/man3/EVP_SealFinal.3 -#usr/share/man/man3/EVP_SealInit.3 -#usr/share/man/man3/EVP_SealUpdate.3 -#usr/share/man/man3/EVP_SignFinal.3 -#usr/share/man/man3/EVP_SignInit.3 -#usr/share/man/man3/EVP_SignUpdate.3 -#usr/share/man/man3/EVP_VerifyFinal.3 -#usr/share/man/man3/EVP_VerifyInit.3 -#usr/share/man/man3/EVP_VerifyUpdate.3 -#usr/share/man/man3/EVP_dss.3 -#usr/share/man/man3/EVP_dss1.3 -#usr/share/man/man3/EVP_get_cipherbyname.3 -#usr/share/man/man3/EVP_get_cipherbynid.3 -#usr/share/man/man3/EVP_get_cipherbyobj.3 -#usr/share/man/man3/EVP_get_digestbyname.3 -#usr/share/man/man3/EVP_get_digestbynid.3 -#usr/share/man/man3/EVP_get_digestbyobj.3 -#usr/share/man/man3/EVP_md2.3 -#usr/share/man/man3/EVP_md5.3 -#usr/share/man/man3/EVP_md_null.3 -#usr/share/man/man3/EVP_mdc2.3 -#usr/share/man/man3/EVP_ripemd160.3 -#usr/share/man/man3/EVP_sha.3 -#usr/share/man/man3/EVP_sha1.3 -#usr/share/man/man3/HMAC.3 -#usr/share/man/man3/HMAC_Final.3 -#usr/share/man/man3/HMAC_Init.3 -#usr/share/man/man3/HMAC_Update.3 -#usr/share/man/man3/HMAC_cleanup.3 -#usr/share/man/man3/MD2.3 -#usr/share/man/man3/MD2_Final.3 -#usr/share/man/man3/MD2_Init.3 -#usr/share/man/man3/MD2_Update.3 -#usr/share/man/man3/MD4.3 -#usr/share/man/man3/MD4_Final.3 -#usr/share/man/man3/MD4_Init.3 -#usr/share/man/man3/MD4_Update.3 -#usr/share/man/man3/MD5.3 -#usr/share/man/man3/MD5_Final.3 -#usr/share/man/man3/MD5_Init.3 -#usr/share/man/man3/MD5_Update.3 -#usr/share/man/man3/MDC2.3 -#usr/share/man/man3/MDC2_Final.3 -#usr/share/man/man3/MDC2_Init.3 -#usr/share/man/man3/MDC2_Update.3 -#usr/share/man/man3/OBJ_cleanup.3 -#usr/share/man/man3/OBJ_cmp.3 -#usr/share/man/man3/OBJ_create.3 -#usr/share/man/man3/OBJ_dup.3 -#usr/share/man/man3/OBJ_ln2nid.3 -#usr/share/man/man3/OBJ_nid2ln.3 -#usr/share/man/man3/OBJ_nid2obj.3 -#usr/share/man/man3/OBJ_nid2sn.3 -#usr/share/man/man3/OBJ_obj2nid.3 -#usr/share/man/man3/OBJ_obj2txt.3 -#usr/share/man/man3/OBJ_sn2nid.3 -#usr/share/man/man3/OBJ_txt2nid.3 -#usr/share/man/man3/OBJ_txt2obj.3 -#usr/share/man/man3/OPENSSL_Applink.3 -#usr/share/man/man3/OPENSSL_VERSION_NUMBER.3 -#usr/share/man/man3/OPENSSL_config.3 -#usr/share/man/man3/OPENSSL_ia32cap.3 -#usr/share/man/man3/OPENSSL_load_builtin_modules.3 -#usr/share/man/man3/OPENSSL_no_config.3 -#usr/share/man/man3/OpenSSL_add_all_algorithms.3 -#usr/share/man/man3/OpenSSL_add_all_ciphers.3 -#usr/share/man/man3/OpenSSL_add_all_digests.3 -#usr/share/man/man3/OpenSSL_add_ssl_algorithms.3 -#usr/share/man/man3/PEM.3 -#usr/share/man/man3/PEM_read_DHparams.3 -#usr/share/man/man3/PEM_read_DSAPrivateKey.3 -#usr/share/man/man3/PEM_read_DSA_PUBKEY.3 -#usr/share/man/man3/PEM_read_DSAparams.3 -#usr/share/man/man3/PEM_read_NETSCAPE_CERT_SEQUENCE.3 -#usr/share/man/man3/PEM_read_PKCS7.3 -#usr/share/man/man3/PEM_read_PUBKEY.3 -#usr/share/man/man3/PEM_read_PrivateKey.3 -#usr/share/man/man3/PEM_read_RSAPrivateKey.3 -#usr/share/man/man3/PEM_read_RSAPublicKey.3 -#usr/share/man/man3/PEM_read_RSA_PUBKEY.3 -#usr/share/man/man3/PEM_read_X509.3 -#usr/share/man/man3/PEM_read_X509_AUX.3 -#usr/share/man/man3/PEM_read_X509_CRL.3 -#usr/share/man/man3/PEM_read_X509_REQ.3 -#usr/share/man/man3/PEM_read_bio_DHparams.3 -#usr/share/man/man3/PEM_read_bio_DSAPrivateKey.3 -#usr/share/man/man3/PEM_read_bio_DSA_PUBKEY.3 -#usr/share/man/man3/PEM_read_bio_DSAparams.3 -#usr/share/man/man3/PEM_read_bio_NETSCAPE_CERT_SEQUENCE.3 -#usr/share/man/man3/PEM_read_bio_PKCS7.3 -#usr/share/man/man3/PEM_read_bio_PUBKEY.3 -#usr/share/man/man3/PEM_read_bio_PrivateKey.3 -#usr/share/man/man3/PEM_read_bio_RSAPrivateKey.3 -#usr/share/man/man3/PEM_read_bio_RSAPublicKey.3 -#usr/share/man/man3/PEM_read_bio_RSA_PUBKEY.3 -#usr/share/man/man3/PEM_read_bio_X509.3 -#usr/share/man/man3/PEM_read_bio_X509_AUX.3 -#usr/share/man/man3/PEM_read_bio_X509_CRL.3 -#usr/share/man/man3/PEM_read_bio_X509_REQ.3 -#usr/share/man/man3/PEM_write_DHparams.3 -#usr/share/man/man3/PEM_write_DSAPrivateKey.3 -#usr/share/man/man3/PEM_write_DSA_PUBKEY.3 -#usr/share/man/man3/PEM_write_DSAparams.3 -#usr/share/man/man3/PEM_write_NETSCAPE_CERT_SEQUENCE.3 -#usr/share/man/man3/PEM_write_PKCS7.3 -#usr/share/man/man3/PEM_write_PKCS8PrivateKey.3 -#usr/share/man/man3/PEM_write_PKCS8PrivateKey_nid.3 -#usr/share/man/man3/PEM_write_PUBKEY.3 -#usr/share/man/man3/PEM_write_PrivateKey.3 -#usr/share/man/man3/PEM_write_RSAPrivateKey.3 -#usr/share/man/man3/PEM_write_RSAPublicKey.3 -#usr/share/man/man3/PEM_write_RSA_PUBKEY.3 -#usr/share/man/man3/PEM_write_X509.3 -#usr/share/man/man3/PEM_write_X509_AUX.3 -#usr/share/man/man3/PEM_write_X509_CRL.3 -#usr/share/man/man3/PEM_write_X509_REQ.3 -#usr/share/man/man3/PEM_write_X509_REQ_NEW.3 -#usr/share/man/man3/PEM_write_bio_DHparams.3 -#usr/share/man/man3/PEM_write_bio_DSAPrivateKey.3 -#usr/share/man/man3/PEM_write_bio_DSA_PUBKEY.3 -#usr/share/man/man3/PEM_write_bio_DSAparams.3 -#usr/share/man/man3/PEM_write_bio_NETSCAPE_CERT_SEQUENCE.3 -#usr/share/man/man3/PEM_write_bio_PKCS7.3 -#usr/share/man/man3/PEM_write_bio_PKCS8PrivateKey.3 -#usr/share/man/man3/PEM_write_bio_PKCS8PrivateKey_nid.3 -#usr/share/man/man3/PEM_write_bio_PUBKEY.3 -#usr/share/man/man3/PEM_write_bio_PrivateKey.3 -#usr/share/man/man3/PEM_write_bio_RSAPrivateKey.3 -#usr/share/man/man3/PEM_write_bio_RSAPublicKey.3 -#usr/share/man/man3/PEM_write_bio_RSA_PUBKEY.3 -#usr/share/man/man3/PEM_write_bio_X509.3 -#usr/share/man/man3/PEM_write_bio_X509_AUX.3 -#usr/share/man/man3/PEM_write_bio_X509_CRL.3 -#usr/share/man/man3/PEM_write_bio_X509_REQ.3 -#usr/share/man/man3/PEM_write_bio_X509_REQ_NEW.3 -#usr/share/man/man3/PKCS12_create.3 -#usr/share/man/man3/PKCS12_parse.3 -#usr/share/man/man3/PKCS7_decrypt.3 -#usr/share/man/man3/PKCS7_encrypt.3 -#usr/share/man/man3/PKCS7_sign.3 -#usr/share/man/man3/PKCS7_verify.3 -#usr/share/man/man3/RAND_SSLeay.3 -#usr/share/man/man3/RAND_add.3 -#usr/share/man/man3/RAND_bytes.3 -#usr/share/man/man3/RAND_cleanup.3 -#usr/share/man/man3/RAND_egd.3 -#usr/share/man/man3/RAND_event.3 -#usr/share/man/man3/RAND_file_name.3 -#usr/share/man/man3/RAND_get_rand_method.3 -#usr/share/man/man3/RAND_load_file.3 -#usr/share/man/man3/RAND_pseudo_bytes.3 -#usr/share/man/man3/RAND_screen.3 -#usr/share/man/man3/RAND_seed.3 -#usr/share/man/man3/RAND_set_rand_method.3 -#usr/share/man/man3/RAND_status.3 -#usr/share/man/man3/RAND_write_file.3 -#usr/share/man/man3/RC4.3 -#usr/share/man/man3/RC4_set_key.3 -#usr/share/man/man3/RIPEMD160.3 -#usr/share/man/man3/RIPEMD160_Final.3 -#usr/share/man/man3/RIPEMD160_Init.3 -#usr/share/man/man3/RIPEMD160_Update.3 -#usr/share/man/man3/RSA_PKCS1_SSLeay.3 -#usr/share/man/man3/RSA_blinding_off.3 -#usr/share/man/man3/RSA_blinding_on.3 -#usr/share/man/man3/RSA_check_key.3 -#usr/share/man/man3/RSA_flags.3 -#usr/share/man/man3/RSA_free.3 -#usr/share/man/man3/RSA_generate_key.3 -#usr/share/man/man3/RSA_get_default_method.3 -#usr/share/man/man3/RSA_get_ex_data.3 -#usr/share/man/man3/RSA_get_ex_new_index.3 -#usr/share/man/man3/RSA_get_method.3 -#usr/share/man/man3/RSA_new.3 -#usr/share/man/man3/RSA_new_method.3 -#usr/share/man/man3/RSA_null_method.3 -#usr/share/man/man3/RSA_padding_add_PKCS1_OAEP.3 -#usr/share/man/man3/RSA_padding_add_PKCS1_type_1.3 -#usr/share/man/man3/RSA_padding_add_PKCS1_type_2.3 -#usr/share/man/man3/RSA_padding_add_SSLv23.3 -#usr/share/man/man3/RSA_padding_add_none.3 -#usr/share/man/man3/RSA_padding_check_PKCS1_OAEP.3 -#usr/share/man/man3/RSA_padding_check_PKCS1_type_1.3 -#usr/share/man/man3/RSA_padding_check_PKCS1_type_2.3 -#usr/share/man/man3/RSA_padding_check_SSLv23.3 -#usr/share/man/man3/RSA_padding_check_none.3 -#usr/share/man/man3/RSA_print.3 -#usr/share/man/man3/RSA_print_fp.3 -#usr/share/man/man3/RSA_private_decrypt.3 -#usr/share/man/man3/RSA_private_encrypt.3 -#usr/share/man/man3/RSA_public_decrypt.3 -#usr/share/man/man3/RSA_public_encrypt.3 -#usr/share/man/man3/RSA_set_default_method.3 -#usr/share/man/man3/RSA_set_ex_data.3 -#usr/share/man/man3/RSA_set_method.3 -#usr/share/man/man3/RSA_sign.3 -#usr/share/man/man3/RSA_sign_ASN1_OCTET_STRING.3 -#usr/share/man/man3/RSA_size.3 -#usr/share/man/man3/RSA_verify.3 -#usr/share/man/man3/RSA_verify_ASN1_OCTET_STRING.3 -#usr/share/man/man3/SHA1.3 -#usr/share/man/man3/SHA1_Final.3 -#usr/share/man/man3/SHA1_Init.3 -#usr/share/man/man3/SHA1_Update.3 -#usr/share/man/man3/SMIME_read_PKCS7.3 -#usr/share/man/man3/SMIME_write_PKCS7.3 -#usr/share/man/man3/SSL.3 -#usr/share/man/man3/SSL_CIPHER_description.3 -#usr/share/man/man3/SSL_CIPHER_get_bits.3 -#usr/share/man/man3/SSL_CIPHER_get_name.3 -#usr/share/man/man3/SSL_CIPHER_get_version.3 -#usr/share/man/man3/SSL_COMP_add_compression_method.3 -#usr/share/man/man3/SSL_CTX_add_client_CA.3 -#usr/share/man/man3/SSL_CTX_add_extra_chain_cert.3 -#usr/share/man/man3/SSL_CTX_add_session.3 -#usr/share/man/man3/SSL_CTX_callback_ctrl.3 -#usr/share/man/man3/SSL_CTX_check_private_key.3 -#usr/share/man/man3/SSL_CTX_clear_options.3 -#usr/share/man/man3/SSL_CTX_ctrl.3 -#usr/share/man/man3/SSL_CTX_flush_sessions.3 -#usr/share/man/man3/SSL_CTX_free.3 -#usr/share/man/man3/SSL_CTX_get_cert_store.3 -#usr/share/man/man3/SSL_CTX_get_client_CA_list.3 -#usr/share/man/man3/SSL_CTX_get_client_cert_cb.3 -#usr/share/man/man3/SSL_CTX_get_ex_data.3 -#usr/share/man/man3/SSL_CTX_get_ex_new_index.3 -#usr/share/man/man3/SSL_CTX_get_info_callback.3 -#usr/share/man/man3/SSL_CTX_get_max_cert_list.3 -#usr/share/man/man3/SSL_CTX_get_mode.3 -#usr/share/man/man3/SSL_CTX_get_options.3 -#usr/share/man/man3/SSL_CTX_get_quiet_shutdown.3 -#usr/share/man/man3/SSL_CTX_get_session_cache_mode.3 -#usr/share/man/man3/SSL_CTX_get_timeout.3 -#usr/share/man/man3/SSL_CTX_get_verify_callback.3 -#usr/share/man/man3/SSL_CTX_get_verify_depth.3 -#usr/share/man/man3/SSL_CTX_get_verify_mode.3 -#usr/share/man/man3/SSL_CTX_load_verify_locations.3 -#usr/share/man/man3/SSL_CTX_need_tmp_rsa.3 -#usr/share/man/man3/SSL_CTX_new.3 -#usr/share/man/man3/SSL_CTX_remove_session.3 -#usr/share/man/man3/SSL_CTX_sess_accept.3 -#usr/share/man/man3/SSL_CTX_sess_accept_good.3 -#usr/share/man/man3/SSL_CTX_sess_accept_renegotiate.3 -#usr/share/man/man3/SSL_CTX_sess_cache_full.3 -#usr/share/man/man3/SSL_CTX_sess_cb_hits.3 -#usr/share/man/man3/SSL_CTX_sess_connect.3 -#usr/share/man/man3/SSL_CTX_sess_connect_good.3 -#usr/share/man/man3/SSL_CTX_sess_connect_renegotiate.3 -#usr/share/man/man3/SSL_CTX_sess_get_cache_size.3 -#usr/share/man/man3/SSL_CTX_sess_get_get_cb.3 -#usr/share/man/man3/SSL_CTX_sess_get_new_cb.3 -#usr/share/man/man3/SSL_CTX_sess_get_remove_cb.3 -#usr/share/man/man3/SSL_CTX_sess_hits.3 -#usr/share/man/man3/SSL_CTX_sess_misses.3 -#usr/share/man/man3/SSL_CTX_sess_number.3 -#usr/share/man/man3/SSL_CTX_sess_set_cache_size.3 -#usr/share/man/man3/SSL_CTX_sess_set_get_cb.3 -#usr/share/man/man3/SSL_CTX_sess_set_new_cb.3 -#usr/share/man/man3/SSL_CTX_sess_set_remove_cb.3 -#usr/share/man/man3/SSL_CTX_sess_timeouts.3 -#usr/share/man/man3/SSL_CTX_sessions.3 -#usr/share/man/man3/SSL_CTX_set_cert_store.3 -#usr/share/man/man3/SSL_CTX_set_cert_verify_callback.3 -#usr/share/man/man3/SSL_CTX_set_cipher_list.3 -#usr/share/man/man3/SSL_CTX_set_client_CA_list.3 -#usr/share/man/man3/SSL_CTX_set_client_cert_cb.3 -#usr/share/man/man3/SSL_CTX_set_default_passwd_cb.3 -#usr/share/man/man3/SSL_CTX_set_default_passwd_cb_userdata.3 -#usr/share/man/man3/SSL_CTX_set_ex_data.3 -#usr/share/man/man3/SSL_CTX_set_generate_session_id.3 -#usr/share/man/man3/SSL_CTX_set_info_callback.3 -#usr/share/man/man3/SSL_CTX_set_max_cert_list.3 -#usr/share/man/man3/SSL_CTX_set_mode.3 -#usr/share/man/man3/SSL_CTX_set_msg_callback.3 -#usr/share/man/man3/SSL_CTX_set_msg_callback_arg.3 -#usr/share/man/man3/SSL_CTX_set_options.3 -#usr/share/man/man3/SSL_CTX_set_quiet_shutdown.3 -#usr/share/man/man3/SSL_CTX_set_session_cache_mode.3 -#usr/share/man/man3/SSL_CTX_set_session_id_context.3 -#usr/share/man/man3/SSL_CTX_set_ssl_version.3 -#usr/share/man/man3/SSL_CTX_set_timeout.3 -#usr/share/man/man3/SSL_CTX_set_tmp_dh.3 -#usr/share/man/man3/SSL_CTX_set_tmp_dh_callback.3 -#usr/share/man/man3/SSL_CTX_set_tmp_rsa.3 -#usr/share/man/man3/SSL_CTX_set_tmp_rsa_callback.3 -#usr/share/man/man3/SSL_CTX_set_verify.3 -#usr/share/man/man3/SSL_CTX_set_verify_depth.3 -#usr/share/man/man3/SSL_CTX_use_PrivateKey.3 -#usr/share/man/man3/SSL_CTX_use_PrivateKey_ASN1.3 -#usr/share/man/man3/SSL_CTX_use_PrivateKey_file.3 -#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey.3 -#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey_ASN1.3 -#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey_file.3 -#usr/share/man/man3/SSL_CTX_use_certificate.3 -#usr/share/man/man3/SSL_CTX_use_certificate_ASN1.3 -#usr/share/man/man3/SSL_CTX_use_certificate_chain_file.3 -#usr/share/man/man3/SSL_CTX_use_certificate_file.3 -#usr/share/man/man3/SSL_SESSION_free.3 -#usr/share/man/man3/SSL_SESSION_get_ex_data.3 -#usr/share/man/man3/SSL_SESSION_get_ex_new_index.3 -#usr/share/man/man3/SSL_SESSION_get_time.3 -#usr/share/man/man3/SSL_SESSION_get_timeout.3 -#usr/share/man/man3/SSL_SESSION_set_ex_data.3 -#usr/share/man/man3/SSL_SESSION_set_time.3 -#usr/share/man/man3/SSL_SESSION_set_timeout.3 -#usr/share/man/man3/SSL_accept.3 -#usr/share/man/man3/SSL_add_client_CA.3 -#usr/share/man/man3/SSL_add_session.3 -#usr/share/man/man3/SSL_alert_desc_string.3 -#usr/share/man/man3/SSL_alert_desc_string_long.3 -#usr/share/man/man3/SSL_alert_type_string.3 -#usr/share/man/man3/SSL_alert_type_string_long.3 -#usr/share/man/man3/SSL_callback_ctrl.3 -#usr/share/man/man3/SSL_check_private_key.3 -#usr/share/man/man3/SSL_clear.3 -#usr/share/man/man3/SSL_clear_options.3 -#usr/share/man/man3/SSL_connect.3 -#usr/share/man/man3/SSL_ctrl.3 -#usr/share/man/man3/SSL_do_handshake.3 -#usr/share/man/man3/SSL_flush_sessions.3 -#usr/share/man/man3/SSL_free.3 -#usr/share/man/man3/SSL_get_SSL_CTX.3 -#usr/share/man/man3/SSL_get_accept_state.3 -#usr/share/man/man3/SSL_get_cipher.3 -#usr/share/man/man3/SSL_get_cipher_bits.3 -#usr/share/man/man3/SSL_get_cipher_list.3 -#usr/share/man/man3/SSL_get_cipher_name.3 -#usr/share/man/man3/SSL_get_cipher_version.3 -#usr/share/man/man3/SSL_get_ciphers.3 -#usr/share/man/man3/SSL_get_client_CA_list.3 -#usr/share/man/man3/SSL_get_current_cipher.3 -#usr/share/man/man3/SSL_get_default_timeout.3 -#usr/share/man/man3/SSL_get_error.3 -#usr/share/man/man3/SSL_get_ex_data.3 -#usr/share/man/man3/SSL_get_ex_data_X509_STORE_CTX_idx.3 -#usr/share/man/man3/SSL_get_ex_new_index.3 -#usr/share/man/man3/SSL_get_fd.3 -#usr/share/man/man3/SSL_get_info_callback.3 -#usr/share/man/man3/SSL_get_max_cert_list.3 -#usr/share/man/man3/SSL_get_mode.3 -#usr/share/man/man3/SSL_get_msg_callback_arg.3 -#usr/share/man/man3/SSL_get_options.3 -#usr/share/man/man3/SSL_get_peer_cert_chain.3 -#usr/share/man/man3/SSL_get_peer_certificate.3 -#usr/share/man/man3/SSL_get_quiet_shutdown.3 -#usr/share/man/man3/SSL_get_rbio.3 -#usr/share/man/man3/SSL_get_secure_renegotiation_support.3 -#usr/share/man/man3/SSL_get_session.3 -#usr/share/man/man3/SSL_get_shutdown.3 -#usr/share/man/man3/SSL_get_ssl_method.3 -#usr/share/man/man3/SSL_get_verify_callback.3 -#usr/share/man/man3/SSL_get_verify_depth.3 -#usr/share/man/man3/SSL_get_verify_mode.3 -#usr/share/man/man3/SSL_get_verify_result.3 -#usr/share/man/man3/SSL_get_version.3 -#usr/share/man/man3/SSL_has_matching_session_id.3 -#usr/share/man/man3/SSL_library_init.3 -#usr/share/man/man3/SSL_load_client_CA_file.3 -#usr/share/man/man3/SSL_load_error_strings.3 -#usr/share/man/man3/SSL_need_tmp_rsa.3 -#usr/share/man/man3/SSL_new.3 -#usr/share/man/man3/SSL_pending.3 -#usr/share/man/man3/SSL_read.3 -#usr/share/man/man3/SSL_remove_session.3 -#usr/share/man/man3/SSL_rstate_string.3 -#usr/share/man/man3/SSL_rstate_string_long.3 -#usr/share/man/man3/SSL_session_reused.3 -#usr/share/man/man3/SSL_set_bio.3 -#usr/share/man/man3/SSL_set_cipher_list.3 -#usr/share/man/man3/SSL_set_client_CA_list.3 -#usr/share/man/man3/SSL_set_connect_state.3 -#usr/share/man/man3/SSL_set_ex_data.3 -#usr/share/man/man3/SSL_set_fd.3 -#usr/share/man/man3/SSL_set_generate_session_id.3 -#usr/share/man/man3/SSL_set_info_callback.3 -#usr/share/man/man3/SSL_set_max_cert_list.3 -#usr/share/man/man3/SSL_set_mode.3 -#usr/share/man/man3/SSL_set_msg_callback.3 -#usr/share/man/man3/SSL_set_options.3 -#usr/share/man/man3/SSL_set_quiet_shutdown.3 -#usr/share/man/man3/SSL_set_session.3 -#usr/share/man/man3/SSL_set_session_id_context.3 -#usr/share/man/man3/SSL_set_shutdown.3 -#usr/share/man/man3/SSL_set_ssl_method.3 -#usr/share/man/man3/SSL_set_tmp_dh.3 -#usr/share/man/man3/SSL_set_tmp_dh_callback.3 -#usr/share/man/man3/SSL_set_tmp_rsa.3 -#usr/share/man/man3/SSL_set_tmp_rsa_callback.3 -#usr/share/man/man3/SSL_set_verify.3 -#usr/share/man/man3/SSL_set_verify_depth.3 -#usr/share/man/man3/SSL_set_verify_result.3 -#usr/share/man/man3/SSL_shutdown.3 -#usr/share/man/man3/SSL_state_string.3 -#usr/share/man/man3/SSL_state_string_long.3 -#usr/share/man/man3/SSL_use_PrivateKey.3 -#usr/share/man/man3/SSL_use_PrivateKey_ASN1.3 -#usr/share/man/man3/SSL_use_PrivateKey_file.3 -#usr/share/man/man3/SSL_use_RSAPrivateKey.3 -#usr/share/man/man3/SSL_use_RSAPrivateKey_ASN1.3 -#usr/share/man/man3/SSL_use_RSAPrivateKey_file.3 -#usr/share/man/man3/SSL_use_certificate.3 -#usr/share/man/man3/SSL_use_certificate_ASN1.3 -#usr/share/man/man3/SSL_use_certificate_file.3 -#usr/share/man/man3/SSL_want.3 -#usr/share/man/man3/SSL_want_nothing.3 -#usr/share/man/man3/SSL_want_read.3 -#usr/share/man/man3/SSL_want_write.3 -#usr/share/man/man3/SSL_want_x509_lookup.3 -#usr/share/man/man3/SSL_write.3 -#usr/share/man/man3/SSLeay.3 -#usr/share/man/man3/SSLeay_add_ssl_algorithms.3 -#usr/share/man/man3/SSLeay_version.3 -#usr/share/man/man3/UI_OpenSSL.3 -#usr/share/man/man3/UI_add_error_string.3 -#usr/share/man/man3/UI_add_info_string.3 -#usr/share/man/man3/UI_add_input_boolean.3 -#usr/share/man/man3/UI_add_input_string.3 -#usr/share/man/man3/UI_add_user_data.3 -#usr/share/man/man3/UI_add_verify_string.3 -#usr/share/man/man3/UI_construct_prompt.3 -#usr/share/man/man3/UI_ctrl.3 -#usr/share/man/man3/UI_dup_error_string.3 -#usr/share/man/man3/UI_dup_info_string.3 -#usr/share/man/man3/UI_dup_input_boolean.3 -#usr/share/man/man3/UI_dup_input_string.3 -#usr/share/man/man3/UI_dup_verify_string.3 -#usr/share/man/man3/UI_free.3 -#usr/share/man/man3/UI_get0_result.3 -#usr/share/man/man3/UI_get0_user_data.3 -#usr/share/man/man3/UI_get_default_method.3 -#usr/share/man/man3/UI_get_method.3 -#usr/share/man/man3/UI_new.3 -#usr/share/man/man3/UI_new_method.3 -#usr/share/man/man3/UI_process.3 -#usr/share/man/man3/UI_set_default_method.3 -#usr/share/man/man3/UI_set_method.3 -#usr/share/man/man3/X509_NAME_ENTRY_create_by_NID.3 -#usr/share/man/man3/X509_NAME_ENTRY_create_by_OBJ.3 -#usr/share/man/man3/X509_NAME_ENTRY_create_by_txt.3 -#usr/share/man/man3/X509_NAME_ENTRY_get_data.3 -#usr/share/man/man3/X509_NAME_ENTRY_get_object.3 -#usr/share/man/man3/X509_NAME_ENTRY_set_data.3 -#usr/share/man/man3/X509_NAME_ENTRY_set_object.3 -#usr/share/man/man3/X509_NAME_add_entry.3 -#usr/share/man/man3/X509_NAME_add_entry_by_NID.3 -#usr/share/man/man3/X509_NAME_add_entry_by_OBJ.3 -#usr/share/man/man3/X509_NAME_add_entry_by_txt.3 -#usr/share/man/man3/X509_NAME_delete_entry.3 -#usr/share/man/man3/X509_NAME_entry_count.3 -#usr/share/man/man3/X509_NAME_get_entry.3 -#usr/share/man/man3/X509_NAME_get_index_by_NID.3 -#usr/share/man/man3/X509_NAME_get_index_by_OBJ.3 -#usr/share/man/man3/X509_NAME_get_text_by_NID.3 -#usr/share/man/man3/X509_NAME_get_text_by_OBJ.3 -#usr/share/man/man3/X509_NAME_oneline.3 -#usr/share/man/man3/X509_NAME_print.3 -#usr/share/man/man3/X509_NAME_print_ex.3 -#usr/share/man/man3/X509_NAME_print_ex_fp.3 -#usr/share/man/man3/X509_free.3 -#usr/share/man/man3/X509_new.3 -#usr/share/man/man3/bio.3 -#usr/share/man/man3/blowfish.3 -#usr/share/man/man3/bn.3 -#usr/share/man/man3/bn_add_words.3 -#usr/share/man/man3/bn_check_top.3 -#usr/share/man/man3/bn_cmp_words.3 -#usr/share/man/man3/bn_div_words.3 -#usr/share/man/man3/bn_dump.3 -#usr/share/man/man3/bn_expand.3 -#usr/share/man/man3/bn_expand2.3 -#usr/share/man/man3/bn_fix_top.3 -#usr/share/man/man3/bn_internal.3 -#usr/share/man/man3/bn_mul_add_words.3 -#usr/share/man/man3/bn_mul_comba4.3 -#usr/share/man/man3/bn_mul_comba8.3 -#usr/share/man/man3/bn_mul_high.3 -#usr/share/man/man3/bn_mul_low_normal.3 -#usr/share/man/man3/bn_mul_low_recursive.3 -#usr/share/man/man3/bn_mul_normal.3 -#usr/share/man/man3/bn_mul_part_recursive.3 -#usr/share/man/man3/bn_mul_recursive.3 -#usr/share/man/man3/bn_mul_words.3 -#usr/share/man/man3/bn_print.3 -#usr/share/man/man3/bn_set_high.3 -#usr/share/man/man3/bn_set_low.3 -#usr/share/man/man3/bn_set_max.3 -#usr/share/man/man3/bn_sqr_comba4.3 -#usr/share/man/man3/bn_sqr_comba8.3 -#usr/share/man/man3/bn_sqr_normal.3 -#usr/share/man/man3/bn_sqr_recursive.3 -#usr/share/man/man3/bn_sqr_words.3 -#usr/share/man/man3/bn_sub_words.3 -#usr/share/man/man3/bn_wexpand.3 -#usr/share/man/man3/buffer.3 -#usr/share/man/man3/crypto.3 -#usr/share/man/man3/d2i_509_CRL_fp.3 -#usr/share/man/man3/d2i_ASN1_OBJECT.3 -#usr/share/man/man3/d2i_DHparams.3 -#usr/share/man/man3/d2i_DSAPrivateKey.3 -#usr/share/man/man3/d2i_DSAPublicKey.3 -#usr/share/man/man3/d2i_DSA_PUBKEY.3 -#usr/share/man/man3/d2i_DSA_SIG.3 -#usr/share/man/man3/d2i_Netscape_RSA.3 -#usr/share/man/man3/d2i_PKCS8PrivateKey.3 -#usr/share/man/man3/d2i_PKCS8PrivateKey_bio.3 -#usr/share/man/man3/d2i_PKCS8PrivateKey_fp.3 -#usr/share/man/man3/d2i_RSAPrivateKey.3 -#usr/share/man/man3/d2i_RSAPublicKey.3 -#usr/share/man/man3/d2i_RSA_PUBKEY.3 -#usr/share/man/man3/d2i_SSL_SESSION.3 -#usr/share/man/man3/d2i_X509.3 -#usr/share/man/man3/d2i_X509_ALGOR.3 -#usr/share/man/man3/d2i_X509_CRL.3 -#usr/share/man/man3/d2i_X509_CRL_bio.3 -#usr/share/man/man3/d2i_X509_NAME.3 -#usr/share/man/man3/d2i_X509_REQ.3 -#usr/share/man/man3/d2i_X509_REQ_bio.3 -#usr/share/man/man3/d2i_X509_REQ_fp.3 -#usr/share/man/man3/d2i_X509_SIG.3 -#usr/share/man/man3/d2i_X509_bio.3 -#usr/share/man/man3/d2i_X509_fp.3 -#usr/share/man/man3/des.3 -#usr/share/man/man3/des_read_2passwords.3 -#usr/share/man/man3/des_read_password.3 -#usr/share/man/man3/des_read_pw.3 -#usr/share/man/man3/des_read_pw_string.3 -#usr/share/man/man3/dh.3 -#usr/share/man/man3/dsa.3 -#usr/share/man/man3/ecdsa.3 -#usr/share/man/man3/engine.3 -#usr/share/man/man3/err.3 -#usr/share/man/man3/evp.3 -#usr/share/man/man3/hmac.3 -#usr/share/man/man3/i2d_ASN1_OBJECT.3 -#usr/share/man/man3/i2d_DHparams.3 -#usr/share/man/man3/i2d_DSAPrivateKey.3 -#usr/share/man/man3/i2d_DSAPublicKey.3 -#usr/share/man/man3/i2d_DSA_PUBKEY.3 -#usr/share/man/man3/i2d_DSA_SIG.3 -#usr/share/man/man3/i2d_Netscape_RSA.3 -#usr/share/man/man3/i2d_PKCS8PrivateKey_bio.3 -#usr/share/man/man3/i2d_PKCS8PrivateKey_fp.3 -#usr/share/man/man3/i2d_PKCS8PrivateKey_nid_bio.3 -#usr/share/man/man3/i2d_PKCS8PrivateKey_nid_fp.3 -#usr/share/man/man3/i2d_RSAPrivateKey.3 -#usr/share/man/man3/i2d_RSAPublicKey.3 -#usr/share/man/man3/i2d_RSA_PUBKEY.3 -#usr/share/man/man3/i2d_SSL_SESSION.3 -#usr/share/man/man3/i2d_X509.3 -#usr/share/man/man3/i2d_X509_ALGOR.3 -#usr/share/man/man3/i2d_X509_CRL.3 -#usr/share/man/man3/i2d_X509_CRL_bio.3 -#usr/share/man/man3/i2d_X509_CRL_fp.3 -#usr/share/man/man3/i2d_X509_NAME.3 -#usr/share/man/man3/i2d_X509_REQ.3 -#usr/share/man/man3/i2d_X509_REQ_bio.3 -#usr/share/man/man3/i2d_X509_REQ_fp.3 -#usr/share/man/man3/i2d_X509_SIG.3 -#usr/share/man/man3/i2d_X509_bio.3 -#usr/share/man/man3/i2d_X509_fp.3 -#usr/share/man/man3/lh_delete.3 -#usr/share/man/man3/lh_doall.3 -#usr/share/man/man3/lh_doall_arg.3 -#usr/share/man/man3/lh_error.3 -#usr/share/man/man3/lh_free.3 -#usr/share/man/man3/lh_insert.3 -#usr/share/man/man3/lh_new.3 -#usr/share/man/man3/lh_node_stats.3 -#usr/share/man/man3/lh_node_stats_bio.3 -#usr/share/man/man3/lh_node_usage_stats.3 -#usr/share/man/man3/lh_node_usage_stats_bio.3 -#usr/share/man/man3/lh_retrieve.3 -#usr/share/man/man3/lh_stats.3 -#usr/share/man/man3/lh_stats_bio.3 -#usr/share/man/man3/lhash.3 -#usr/share/man/man3/md5.3 -#usr/share/man/man3/mdc2.3 -#usr/share/man/man3/pem.3 -#usr/share/man/man3/rc4.3 -#usr/share/man/man3/ripemd.3 -#usr/share/man/man3/rsa.3 -#usr/share/man/man3/sha.3 -#usr/share/man/man3/ssl.3 -#usr/share/man/man3/ui.3 -#usr/share/man/man3/ui_compat.3 -#usr/share/man/man3/x509.3 -#usr/share/man/man5/config.5 -#usr/share/man/man5/x509v3_config.5 -#usr/share/man/man7/des_modes.7 diff --git a/config/rootfiles/common/openssl-compat b/config/rootfiles/common/openssl-compat new file mode 100644 index 0000000..ccf89d0 --- /dev/null +++ b/config/rootfiles/common/openssl-compat @@ -0,0 +1,2 @@ +usr/lib/libcrypto.so.0.9.8 +usr/lib/libssl.so.0.9.8 diff --git a/config/rootfiles/common/pakfire b/config/rootfiles/common/pakfire index f46a7b0..ab439c5 100644 --- a/config/rootfiles/common/pakfire +++ b/config/rootfiles/common/pakfire @@ -1,7 +1,4 @@ -#opt/pakfire opt/pakfire/cache -#opt/pakfire/db -opt/pakfire/db/core opt/pakfire/db/installed opt/pakfire/db/lists opt/pakfire/db/meta diff --git a/config/rootfiles/common/paxctl b/config/rootfiles/common/paxctl new file mode 100644 index 0000000..c9135a8 --- /dev/null +++ b/config/rootfiles/common/paxctl @@ -0,0 +1,2 @@ +sbin/paxctl +#usr/share/man/man1/paxctl.1 diff --git a/config/rootfiles/common/stage2 b/config/rootfiles/common/stage2 index 1e91b37..114592a 100644 --- a/config/rootfiles/common/stage2 +++ b/config/rootfiles/common/stage2 @@ -20,8 +20,8 @@ etc/ld.so.conf etc/logrotate.conf etc/mime.types etc/modprobe.d -etc/modprobe.d/cfg80211 -etc/modprobe.d/pcspeaker +etc/modprobe.d/cfg80211.conf +etc/modprobe.d/pcspeaker.conf etc/modules.conf etc/mtab etc/nsswitch.conf @@ -41,6 +41,7 @@ etc/resolv.conf etc/securetty etc/sysctl.conf etc/syslog.conf +etc/system-release #home home/nobody #lib @@ -50,6 +51,10 @@ media/floppy media/usbkey mnt #opt +#opt/pakfire +#opt/pakfire/db +#opt/pakfire/db/core +opt/pakfire/db/core/mine #root root/.bash_logout root/.bash_profile @@ -72,6 +77,7 @@ usr/lib/libstdc++.so.6 usr/local/bin/backupiso usr/local/bin/connscheduler usr/local/bin/consort.sh +usr/local/bin/convert-ovpn usr/local/bin/dialctrl.pl usr/local/bin/hddshutdown usr/local/bin/httpscert @@ -127,6 +133,7 @@ usr/share/doc/licenses/GPLv3 #usr/share/misc #usr/share/terminfo #usr/share/zoneinfo +run #var #var/cache var/empty diff --git a/config/rootfiles/common/strongswan b/config/rootfiles/common/strongswan index 732e327..0e18580 100644 --- a/config/rootfiles/common/strongswan +++ b/config/rootfiles/common/strongswan @@ -68,6 +68,7 @@ usr/lib/ipsec/plugins/libstrongswan-pkcs8.so usr/lib/ipsec/plugins/libstrongswan-pubkey.so usr/lib/ipsec/plugins/libstrongswan-random.so usr/lib/ipsec/plugins/libstrongswan-rc2.so +#usr/lib/ipsec/plugins/libstrongswan-rdrand.so usr/lib/ipsec/plugins/libstrongswan-resolve.so usr/lib/ipsec/plugins/libstrongswan-revocation.so usr/lib/ipsec/plugins/libstrongswan-sha1.so diff --git a/config/rootfiles/common/udev b/config/rootfiles/common/udev index bacd0cb..3b9979b 100644 --- a/config/rootfiles/common/udev +++ b/config/rootfiles/common/udev @@ -1,71 +1,98 @@ -etc/modprobe.d/blacklist -etc/scsi_id.config +bin/udevadm +etc/modprobe.d/blacklist.conf etc/udev #etc/udev/rules.d #etc/udev/rules.d/30-persistent-network.rules +#etc/udev/rules.d/55-lfs.rules +#etc/udev/rules.d/81-cdrom.rules +#etc/udev/rules.d/83-cdrom-symlinks.rules #etc/udev/udev.conf #lib/firmware -lib/libudev.so.0 -lib/libudev.so.0.2.0 -lib/libvolume_id.so.1 -lib/libvolume_id.so.1.1.0 +lib/libudev.so.1 +lib/libudev.so.1.3.2 lib/udev +#lib/udev/accelerometer #lib/udev/ata_id #lib/udev/cdrom_id #lib/udev/collect -#lib/udev/create_floppy_devices #lib/udev/devices -#lib/udev/devices/core -#lib/udev/devices/fd -#lib/udev/devices/null #lib/udev/devices/pts -#lib/udev/devices/shm -#lib/udev/devices/stderr -#lib/udev/devices/stdin -#lib/udev/devices/stdout -#lib/udev/edd_id #lib/udev/enable_codel -#lib/udev/firmware.sh -#lib/udev/fstab_import -#lib/udev/path_id +#lib/udev/hwdb.d +#lib/udev/hwdb.d/20-OUI.hwdb +#lib/udev/hwdb.d/20-acpi-vendor.hwdb +#lib/udev/hwdb.d/20-bluetooth-vendor-product.hwdb +#lib/udev/hwdb.d/20-pci-classes.hwdb +#lib/udev/hwdb.d/20-pci-vendor-model.hwdb +#lib/udev/hwdb.d/20-usb-classes.hwdb +#lib/udev/hwdb.d/20-usb-vendor-model.hwdb +#lib/udev/hwdb.d/60-keyboard.hwdb +#lib/udev/init-net-rules.sh +#lib/udev/mtd_probe #lib/udev/rule_generator.functions #lib/udev/rules.d #lib/udev/rules.d/25-alsa.rules +#lib/udev/rules.d/42-usb-hid-pm.rules #lib/udev/rules.d/50-firmware.rules #lib/udev/rules.d/50-udev-default.rules #lib/udev/rules.d/60-cdrom_id.rules +#lib/udev/rules.d/60-keyboard.rules +#lib/udev/rules.d/60-persistent-alsa.rules #lib/udev/rules.d/60-persistent-input.rules #lib/udev/rules.d/60-persistent-serial.rules #lib/udev/rules.d/60-persistent-storage-tape.rules #lib/udev/rules.d/60-persistent-storage.rules #lib/udev/rules.d/60-persistent-v4l.rules -#lib/udev/rules.d/61-persistent-storage-edd.rules -#lib/udev/rules.d/75-cd-aliases-generator.rules -#lib/udev/rules.d/79-fstab_import.rules +#lib/udev/rules.d/61-accelerometer.rules +#lib/udev/rules.d/64-btrfs.rules +#lib/udev/rules.d/75-net-description.rules +#lib/udev/rules.d/75-probe_mtd.rules +#lib/udev/rules.d/75-tty-description.rules +#lib/udev/rules.d/78-sound-card.rules #lib/udev/rules.d/80-drivers.rules +#lib/udev/rules.d/80-net-name-slot.rules #lib/udev/rules.d/95-udev-late.rules #lib/udev/rules.d/99-codel.rules #lib/udev/scsi_id -#lib/udev/usb_id -#lib/udev/vol_id +#lib/udev/udevd +#lib/udev/v4l_id #lib/udev/write_cd_rules #lib/udev/write_net_rules sbin/udevadm sbin/udevd #usr/include/libudev.h -#usr/include/libvolume_id.h +#usr/lib/firmware usr/lib/libudev.so -usr/lib/libvolume_id.so #usr/lib/pkgconfig/libudev.pc -#usr/lib/pkgconfig/libvolume_id.pc +#usr/lib/pkgconfig/udev.pc +#usr/share/doc/udev-208 +#usr/share/doc/udev-208/lfs +#usr/share/doc/udev-208/lfs/55-lfs.txt +#usr/share/doc/udev-208/lfs/README +#usr/share/doc/udev-208/libudev-overrides.txt +#usr/share/doc/udev-208/libudev-sections.txt +#usr/share/doc/udev-208/libudev.types +#usr/share/gtk-doc +#usr/share/gtk-doc/html +#usr/share/gtk-doc/html/libudev +#usr/share/gtk-doc/html/libudev/api-index-full.html +#usr/share/gtk-doc/html/libudev/ch01.html +#usr/share/gtk-doc/html/libudev/home.png +#usr/share/gtk-doc/html/libudev/index.html +#usr/share/gtk-doc/html/libudev/index.sgml +#usr/share/gtk-doc/html/libudev/left.png +#usr/share/gtk-doc/html/libudev/libudev-udev-device.html +#usr/share/gtk-doc/html/libudev/libudev-udev-enumerate.html +#usr/share/gtk-doc/html/libudev/libudev-udev-hwdb.html +#usr/share/gtk-doc/html/libudev/libudev-udev-list.html +#usr/share/gtk-doc/html/libudev/libudev-udev-monitor.html +#usr/share/gtk-doc/html/libudev/libudev-udev-queue.html +#usr/share/gtk-doc/html/libudev/libudev-udev-util.html +#usr/share/gtk-doc/html/libudev/libudev-udev.html +#usr/share/gtk-doc/html/libudev/libudev.devhelp2 +#usr/share/gtk-doc/html/libudev/right.png +#usr/share/gtk-doc/html/libudev/style.css +#usr/share/gtk-doc/html/libudev/up.png #usr/share/man/man7/udev.7 -#usr/share/man/man8/ata_id.8 -#usr/share/man/man8/cdrom_id.8 -#usr/share/man/man8/create_floppy_devices.8 -#usr/share/man/man8/edd_id.8 -#usr/share/man/man8/path_id.8 -#usr/share/man/man8/scsi_id.8 #usr/share/man/man8/udevadm.8 #usr/share/man/man8/udevd.8 -#usr/share/man/man8/usb_id.8 -#usr/share/man/man8/vol_id.8 diff --git a/config/rootfiles/common/usb_modeswitch b/config/rootfiles/common/usb_modeswitch index ab46c4d..2b386b3 100644 --- a/config/rootfiles/common/usb_modeswitch +++ b/config/rootfiles/common/usb_modeswitch @@ -3,4 +3,5 @@ lib/udev/usb_modeswitch usr/sbin/usb_modeswitch usr/sbin/usb_modeswitch_dispatcher #usr/share/man/man1/usb_modeswitch.1 +#usr/share/man/man1/usb_modeswitch_dispatcher.1 var/lib/usb_modeswitch diff --git a/config/rootfiles/common/usb_modeswitch_data b/config/rootfiles/common/usb_modeswitch_data index a454c61..6948694 100644 --- a/config/rootfiles/common/usb_modeswitch_data +++ b/config/rootfiles/common/usb_modeswitch_data @@ -2,6 +2,9 @@ etc/usb_modeswitch.d lib/udev/rules.d/40-usb_modeswitch.rules #usr/share/usb_modeswitch usr/share/usb_modeswitch/03f0:002a +usr/share/usb_modeswitch/0408:ea17 +usr/share/usb_modeswitch/0408:ea25 +usr/share/usb_modeswitch/0408:ea43 usr/share/usb_modeswitch/0408:f000 usr/share/usb_modeswitch/0421:060c usr/share/usb_modeswitch/0421:0610 @@ -21,6 +24,7 @@ usr/share/usb_modeswitch/04cc:225c usr/share/usb_modeswitch/04e8:680c usr/share/usb_modeswitch/04e8:689a usr/share/usb_modeswitch/04e8:f000:sMo=U209 +usr/share/usb_modeswitch/057c:62ff usr/share/usb_modeswitch/057c:84ff usr/share/usb_modeswitch/05c6:0010 usr/share/usb_modeswitch/05c6:1000:sVe=GT @@ -36,6 +40,7 @@ usr/share/usb_modeswitch/05c6:1000:uMa=Vertex usr/share/usb_modeswitch/05c6:2000 usr/share/usb_modeswitch/05c6:2001 usr/share/usb_modeswitch/05c6:6503 +usr/share/usb_modeswitch/05c6:9024 usr/share/usb_modeswitch/05c6:f000 usr/share/usb_modeswitch/05c7:1000 usr/share/usb_modeswitch/072f:100d @@ -112,6 +117,7 @@ usr/share/usb_modeswitch/0d46:45a5 usr/share/usb_modeswitch/0df7:0800 usr/share/usb_modeswitch/0e8d:0002:uPr=MT usr/share/usb_modeswitch/0e8d:7109 +usr/share/usb_modeswitch/0fca:8020 usr/share/usb_modeswitch/0fce:d0cf usr/share/usb_modeswitch/0fce:d0e1 usr/share/usb_modeswitch/0fce:d103 @@ -136,6 +142,7 @@ usr/share/usb_modeswitch/106c:3b11 usr/share/usb_modeswitch/106c:3b14 usr/share/usb_modeswitch/1076:7f40 usr/share/usb_modeswitch/109b:f009 +usr/share/usb_modeswitch/10a9:6080 usr/share/usb_modeswitch/1199:0fff usr/share/usb_modeswitch/1266:1000 usr/share/usb_modeswitch/12d1:1001 @@ -166,6 +173,7 @@ usr/share/usb_modeswitch/12d1:1526 usr/share/usb_modeswitch/12d1:1553 usr/share/usb_modeswitch/12d1:1557 usr/share/usb_modeswitch/12d1:155b +usr/share/usb_modeswitch/12d1:156a usr/share/usb_modeswitch/12d1:1805 usr/share/usb_modeswitch/12d1:1c0b usr/share/usb_modeswitch/12d1:1c1b @@ -175,6 +183,11 @@ usr/share/usb_modeswitch/12d1:1da1 usr/share/usb_modeswitch/12d1:1f01 usr/share/usb_modeswitch/12d1:1f03 usr/share/usb_modeswitch/12d1:1f11 +usr/share/usb_modeswitch/12d1:1f15 +usr/share/usb_modeswitch/12d1:1f16 +usr/share/usb_modeswitch/12d1:1f17 +usr/share/usb_modeswitch/12d1:1f18 +usr/share/usb_modeswitch/12d1:1f19 usr/share/usb_modeswitch/12d1:380b usr/share/usb_modeswitch/1307:1169 usr/share/usb_modeswitch/1410:5010 @@ -198,12 +211,9 @@ usr/share/usb_modeswitch/1726:f00e usr/share/usb_modeswitch/198a:0003 usr/share/usb_modeswitch/198f:bccd usr/share/usb_modeswitch/19d2:0003 -usr/share/usb_modeswitch/19d2:0013 usr/share/usb_modeswitch/19d2:0026 -usr/share/usb_modeswitch/19d2:0031 usr/share/usb_modeswitch/19d2:0040 usr/share/usb_modeswitch/19d2:0053 -usr/share/usb_modeswitch/19d2:0083 usr/share/usb_modeswitch/19d2:0083:uPr=WCDMA usr/share/usb_modeswitch/19d2:0101 usr/share/usb_modeswitch/19d2:0103 @@ -217,6 +227,7 @@ usr/share/usb_modeswitch/19d2:0154 usr/share/usb_modeswitch/19d2:0166 usr/share/usb_modeswitch/19d2:0169 usr/share/usb_modeswitch/19d2:0266 +usr/share/usb_modeswitch/19d2:0304 usr/share/usb_modeswitch/19d2:0325 usr/share/usb_modeswitch/19d2:1001 usr/share/usb_modeswitch/19d2:1007 @@ -229,6 +240,7 @@ usr/share/usb_modeswitch/19d2:1179 usr/share/usb_modeswitch/19d2:1201 usr/share/usb_modeswitch/19d2:1216 usr/share/usb_modeswitch/19d2:1224 +usr/share/usb_modeswitch/19d2:1225 usr/share/usb_modeswitch/19d2:1227 usr/share/usb_modeswitch/19d2:1514 usr/share/usb_modeswitch/19d2:1517 @@ -237,6 +249,7 @@ usr/share/usb_modeswitch/19d2:1523 usr/share/usb_modeswitch/19d2:1528 usr/share/usb_modeswitch/19d2:1542 usr/share/usb_modeswitch/19d2:2000 +usr/share/usb_modeswitch/19d2:2004 usr/share/usb_modeswitch/19d2:bccd usr/share/usb_modeswitch/19d2:ffde usr/share/usb_modeswitch/19d2:ffe6 @@ -248,6 +261,7 @@ usr/share/usb_modeswitch/1ab7:5700 usr/share/usb_modeswitch/1b7d:0700 usr/share/usb_modeswitch/1bbb:000f usr/share/usb_modeswitch/1bbb:00ca +usr/share/usb_modeswitch/1bbb:011f usr/share/usb_modeswitch/1bbb:f000 usr/share/usb_modeswitch/1bbb:f017 usr/share/usb_modeswitch/1bbb:f052 @@ -296,5 +310,7 @@ usr/share/usb_modeswitch/22f4:0021 usr/share/usb_modeswitch/230d:0001 usr/share/usb_modeswitch/230d:0007 usr/share/usb_modeswitch/230d:0101 +usr/share/usb_modeswitch/230d:0103 usr/share/usb_modeswitch/2357:0200 +usr/share/usb_modeswitch/2357:f000 usr/share/usb_modeswitch/8888:6500 diff --git a/config/rootfiles/common/usbutils b/config/rootfiles/common/usbutils index 3858b39..1162c3a 100644 --- a/config/rootfiles/common/usbutils +++ b/config/rootfiles/common/usbutils @@ -1,5 +1,12 @@ -#usr/man/man8/lsusb.8 -usr/sbin/lsusb -usr/sbin/update-usbids +usr/bin/lsusb +usr/bin/lsusb.py +usr/bin/usb-devices +usr/bin/usbhid-dump +usr/sbin/update-usbids.sh #usr/share/hwdata #usr/share/hwdata/usb.ids +#usr/share/man/man1/usb-devices.1 +#usr/share/man/man8/lsusb.8 +#usr/share/man/man8/usbhid-dump.8 +#usr/share/pkgconfig +#usr/share/pkgconfig/usbutils.pc diff --git a/config/rootfiles/common/vim b/config/rootfiles/common/vim index 6f5ee80..215f689 100644 --- a/config/rootfiles/common/vim +++ b/config/rootfiles/common/vim @@ -1,13 +1,13 @@ etc/vimrc -#usr/bin/ex -#usr/bin/rview -#usr/bin/rvim +usr/bin/ex +usr/bin/rview +usr/bin/rvim usr/bin/vi -#usr/bin/view +usr/bin/view usr/bin/vim -#usr/bin/vimdiff -#usr/bin/vimtutor -#usr/bin/xxd +usr/bin/vimdiff +usr/bin/vimtutor +usr/bin/xxd #usr/share/man/man1/evim.1 #usr/share/man/man1/ex.1 #usr/share/man/man1/rview.1 @@ -18,1203 +18,1311 @@ usr/bin/vim #usr/share/man/man1/vimtutor.1 #usr/share/man/man1/xxd.1 usr/share/vim -#usr/share/vim/vim72 -#usr/share/vim/vim72/autoload -#usr/share/vim/vim72/autoload/README.txt -#usr/share/vim/vim72/autoload/ada.vim -#usr/share/vim/vim72/autoload/adacomplete.vim -#usr/share/vim/vim72/autoload/ccomplete.vim -#usr/share/vim/vim72/autoload/csscomplete.vim -#usr/share/vim/vim72/autoload/decada.vim -#usr/share/vim/vim72/autoload/getscript.vim -#usr/share/vim/vim72/autoload/gnat.vim -#usr/share/vim/vim72/autoload/gzip.vim -#usr/share/vim/vim72/autoload/htmlcomplete.vim -#usr/share/vim/vim72/autoload/javascriptcomplete.vim -#usr/share/vim/vim72/autoload/netrw.vim -#usr/share/vim/vim72/autoload/netrwFileHandlers.vim -#usr/share/vim/vim72/autoload/netrwSettings.vim -#usr/share/vim/vim72/autoload/paste.vim -#usr/share/vim/vim72/autoload/phpcomplete.vim -#usr/share/vim/vim72/autoload/pythoncomplete.vim -#usr/share/vim/vim72/autoload/rubycomplete.vim -#usr/share/vim/vim72/autoload/spellfile.vim -#usr/share/vim/vim72/autoload/sqlcomplete.vim -#usr/share/vim/vim72/autoload/syntaxcomplete.vim -#usr/share/vim/vim72/autoload/tar.vim -#usr/share/vim/vim72/autoload/vimball.vim -#usr/share/vim/vim72/autoload/xml -#usr/share/vim/vim72/autoload/xml/html32.vim -#usr/share/vim/vim72/autoload/xml/html401f.vim -#usr/share/vim/vim72/autoload/xml/html401s.vim -#usr/share/vim/vim72/autoload/xml/html401t.vim -#usr/share/vim/vim72/autoload/xml/html40f.vim -#usr/share/vim/vim72/autoload/xml/html40s.vim -#usr/share/vim/vim72/autoload/xml/html40t.vim -#usr/share/vim/vim72/autoload/xml/xhtml10f.vim -#usr/share/vim/vim72/autoload/xml/xhtml10s.vim -#usr/share/vim/vim72/autoload/xml/xhtml10t.vim -#usr/share/vim/vim72/autoload/xml/xhtml11.vim -#usr/share/vim/vim72/autoload/xml/xsd.vim -#usr/share/vim/vim72/autoload/xml/xsl.vim -#usr/share/vim/vim72/autoload/xmlcomplete.vim -#usr/share/vim/vim72/autoload/zip.vim -#usr/share/vim/vim72/bugreport.vim -#usr/share/vim/vim72/colors -#usr/share/vim/vim72/colors/README.txt -#usr/share/vim/vim72/colors/blue.vim -#usr/share/vim/vim72/colors/darkblue.vim -#usr/share/vim/vim72/colors/default.vim -#usr/share/vim/vim72/colors/delek.vim -#usr/share/vim/vim72/colors/desert.vim -#usr/share/vim/vim72/colors/elflord.vim -#usr/share/vim/vim72/colors/evening.vim -#usr/share/vim/vim72/colors/koehler.vim -#usr/share/vim/vim72/colors/morning.vim -#usr/share/vim/vim72/colors/murphy.vim -#usr/share/vim/vim72/colors/pablo.vim -#usr/share/vim/vim72/colors/peachpuff.vim -#usr/share/vim/vim72/colors/ron.vim -#usr/share/vim/vim72/colors/shine.vim -#usr/share/vim/vim72/colors/slate.vim -#usr/share/vim/vim72/colors/torte.vim -#usr/share/vim/vim72/colors/zellner.vim -#usr/share/vim/vim72/compiler -#usr/share/vim/vim72/compiler/README.txt -#usr/share/vim/vim72/compiler/ant.vim -#usr/share/vim/vim72/compiler/bcc.vim -#usr/share/vim/vim72/compiler/bdf.vim -#usr/share/vim/vim72/compiler/checkstyle.vim -#usr/share/vim/vim72/compiler/cs.vim -#usr/share/vim/vim72/compiler/decada.vim -#usr/share/vim/vim72/compiler/dot.vim -#usr/share/vim/vim72/compiler/eruby.vim -#usr/share/vim/vim72/compiler/fortran_F.vim -#usr/share/vim/vim72/compiler/fortran_cv.vim -#usr/share/vim/vim72/compiler/fortran_elf90.vim -#usr/share/vim/vim72/compiler/fortran_g77.vim -#usr/share/vim/vim72/compiler/fortran_lf95.vim -#usr/share/vim/vim72/compiler/fpc.vim -#usr/share/vim/vim72/compiler/gcc.vim -#usr/share/vim/vim72/compiler/gnat.vim -#usr/share/vim/vim72/compiler/hp_acc.vim -#usr/share/vim/vim72/compiler/icc.vim -#usr/share/vim/vim72/compiler/intel.vim -#usr/share/vim/vim72/compiler/irix5_c.vim -#usr/share/vim/vim72/compiler/irix5_cpp.vim -#usr/share/vim/vim72/compiler/javac.vim -#usr/share/vim/vim72/compiler/jikes.vim -#usr/share/vim/vim72/compiler/mcs.vim -#usr/share/vim/vim72/compiler/mips_c.vim -#usr/share/vim/vim72/compiler/mipspro_c89.vim -#usr/share/vim/vim72/compiler/mipspro_cpp.vim -#usr/share/vim/vim72/compiler/modelsim_vcom.vim -#usr/share/vim/vim72/compiler/msvc.vim -#usr/share/vim/vim72/compiler/neato.vim -#usr/share/vim/vim72/compiler/onsgmls.vim -#usr/share/vim/vim72/compiler/pbx.vim -#usr/share/vim/vim72/compiler/perl.vim -#usr/share/vim/vim72/compiler/php.vim -#usr/share/vim/vim72/compiler/pyunit.vim -#usr/share/vim/vim72/compiler/rspec.vim -#usr/share/vim/vim72/compiler/rst.vim -#usr/share/vim/vim72/compiler/ruby.vim -#usr/share/vim/vim72/compiler/rubyunit.vim -#usr/share/vim/vim72/compiler/se.vim -#usr/share/vim/vim72/compiler/splint.vim -#usr/share/vim/vim72/compiler/tcl.vim -#usr/share/vim/vim72/compiler/tex.vim -#usr/share/vim/vim72/compiler/tidy.vim -#usr/share/vim/vim72/compiler/xmllint.vim -#usr/share/vim/vim72/compiler/xmlwf.vim -#usr/share/vim/vim72/delmenu.vim -#usr/share/vim/vim72/doc -#usr/share/vim/vim72/doc/arabic.txt -#usr/share/vim/vim72/doc/autocmd.txt -#usr/share/vim/vim72/doc/change.txt -#usr/share/vim/vim72/doc/cmdline.txt -#usr/share/vim/vim72/doc/debug.txt -#usr/share/vim/vim72/doc/debugger.txt -#usr/share/vim/vim72/doc/develop.txt -#usr/share/vim/vim72/doc/diff.txt -#usr/share/vim/vim72/doc/digraph.txt -#usr/share/vim/vim72/doc/editing.txt -#usr/share/vim/vim72/doc/eval.txt -#usr/share/vim/vim72/doc/farsi.txt -#usr/share/vim/vim72/doc/filetype.txt -#usr/share/vim/vim72/doc/fold.txt -#usr/share/vim/vim72/doc/ft_ada.txt -#usr/share/vim/vim72/doc/ft_sql.txt -#usr/share/vim/vim72/doc/gui.txt -#usr/share/vim/vim72/doc/gui_w16.txt -#usr/share/vim/vim72/doc/gui_w32.txt -#usr/share/vim/vim72/doc/gui_x11.txt -#usr/share/vim/vim72/doc/hangulin.txt -#usr/share/vim/vim72/doc/hebrew.txt -#usr/share/vim/vim72/doc/help.txt -#usr/share/vim/vim72/doc/howto.txt -#usr/share/vim/vim72/doc/if_cscop.txt -#usr/share/vim/vim72/doc/if_mzsch.txt -#usr/share/vim/vim72/doc/if_ole.txt -#usr/share/vim/vim72/doc/if_perl.txt -#usr/share/vim/vim72/doc/if_pyth.txt -#usr/share/vim/vim72/doc/if_ruby.txt -#usr/share/vim/vim72/doc/if_sniff.txt -#usr/share/vim/vim72/doc/if_tcl.txt -#usr/share/vim/vim72/doc/indent.txt -#usr/share/vim/vim72/doc/index.txt -#usr/share/vim/vim72/doc/insert.txt -#usr/share/vim/vim72/doc/intro.txt -#usr/share/vim/vim72/doc/map.txt -#usr/share/vim/vim72/doc/mbyte.txt -#usr/share/vim/vim72/doc/message.txt -#usr/share/vim/vim72/doc/mlang.txt -#usr/share/vim/vim72/doc/motion.txt -#usr/share/vim/vim72/doc/netbeans.txt -#usr/share/vim/vim72/doc/options.txt -#usr/share/vim/vim72/doc/os_390.txt -#usr/share/vim/vim72/doc/os_amiga.txt -#usr/share/vim/vim72/doc/os_beos.txt -#usr/share/vim/vim72/doc/os_dos.txt -#usr/share/vim/vim72/doc/os_mac.txt -#usr/share/vim/vim72/doc/os_mint.txt -#usr/share/vim/vim72/doc/os_msdos.txt -#usr/share/vim/vim72/doc/os_os2.txt -#usr/share/vim/vim72/doc/os_qnx.txt -#usr/share/vim/vim72/doc/os_risc.txt -#usr/share/vim/vim72/doc/os_unix.txt -#usr/share/vim/vim72/doc/os_vms.txt -#usr/share/vim/vim72/doc/os_win32.txt -#usr/share/vim/vim72/doc/pattern.txt -#usr/share/vim/vim72/doc/pi_getscript.txt -#usr/share/vim/vim72/doc/pi_gzip.txt -#usr/share/vim/vim72/doc/pi_netrw.txt -#usr/share/vim/vim72/doc/pi_paren.txt -#usr/share/vim/vim72/doc/pi_spec.txt -#usr/share/vim/vim72/doc/pi_tar.txt -#usr/share/vim/vim72/doc/pi_vimball.txt -#usr/share/vim/vim72/doc/pi_zip.txt -#usr/share/vim/vim72/doc/print.txt -#usr/share/vim/vim72/doc/quickfix.txt -#usr/share/vim/vim72/doc/quickref.txt -#usr/share/vim/vim72/doc/quotes.txt -#usr/share/vim/vim72/doc/recover.txt -#usr/share/vim/vim72/doc/remote.txt -#usr/share/vim/vim72/doc/repeat.txt -#usr/share/vim/vim72/doc/rileft.txt -#usr/share/vim/vim72/doc/russian.txt -#usr/share/vim/vim72/doc/scroll.txt -#usr/share/vim/vim72/doc/sign.txt -#usr/share/vim/vim72/doc/spell.txt -#usr/share/vim/vim72/doc/sponsor.txt -#usr/share/vim/vim72/doc/starting.txt -#usr/share/vim/vim72/doc/syntax.txt -#usr/share/vim/vim72/doc/tabpage.txt -#usr/share/vim/vim72/doc/tags -#usr/share/vim/vim72/doc/tagsrch.txt -#usr/share/vim/vim72/doc/term.txt -#usr/share/vim/vim72/doc/tips.txt -#usr/share/vim/vim72/doc/todo.txt -#usr/share/vim/vim72/doc/uganda.txt -#usr/share/vim/vim72/doc/undo.txt -#usr/share/vim/vim72/doc/usr_01.txt -#usr/share/vim/vim72/doc/usr_02.txt -#usr/share/vim/vim72/doc/usr_03.txt -#usr/share/vim/vim72/doc/usr_04.txt -#usr/share/vim/vim72/doc/usr_05.txt -#usr/share/vim/vim72/doc/usr_06.txt -#usr/share/vim/vim72/doc/usr_07.txt -#usr/share/vim/vim72/doc/usr_08.txt -#usr/share/vim/vim72/doc/usr_09.txt -#usr/share/vim/vim72/doc/usr_10.txt -#usr/share/vim/vim72/doc/usr_11.txt -#usr/share/vim/vim72/doc/usr_12.txt -#usr/share/vim/vim72/doc/usr_20.txt -#usr/share/vim/vim72/doc/usr_21.txt -#usr/share/vim/vim72/doc/usr_22.txt -#usr/share/vim/vim72/doc/usr_23.txt -#usr/share/vim/vim72/doc/usr_24.txt -#usr/share/vim/vim72/doc/usr_25.txt -#usr/share/vim/vim72/doc/usr_26.txt -#usr/share/vim/vim72/doc/usr_27.txt -#usr/share/vim/vim72/doc/usr_28.txt -#usr/share/vim/vim72/doc/usr_29.txt -#usr/share/vim/vim72/doc/usr_30.txt -#usr/share/vim/vim72/doc/usr_31.txt -#usr/share/vim/vim72/doc/usr_32.txt -#usr/share/vim/vim72/doc/usr_40.txt -#usr/share/vim/vim72/doc/usr_41.txt -#usr/share/vim/vim72/doc/usr_42.txt -#usr/share/vim/vim72/doc/usr_43.txt -#usr/share/vim/vim72/doc/usr_44.txt -#usr/share/vim/vim72/doc/usr_45.txt -#usr/share/vim/vim72/doc/usr_90.txt -#usr/share/vim/vim72/doc/usr_toc.txt -#usr/share/vim/vim72/doc/various.txt -#usr/share/vim/vim72/doc/version4.txt -#usr/share/vim/vim72/doc/version5.txt -#usr/share/vim/vim72/doc/version6.txt -#usr/share/vim/vim72/doc/version7.txt -#usr/share/vim/vim72/doc/vi_diff.txt -#usr/share/vim/vim72/doc/vim2html.pl -#usr/share/vim/vim72/doc/visual.txt -#usr/share/vim/vim72/doc/windows.txt -#usr/share/vim/vim72/doc/workshop.txt -#usr/share/vim/vim72/evim.vim -#usr/share/vim/vim72/filetype.vim -#usr/share/vim/vim72/ftoff.vim -#usr/share/vim/vim72/ftplugin -#usr/share/vim/vim72/ftplugin.vim -#usr/share/vim/vim72/ftplugin/AppendMatchGroup.vim -#usr/share/vim/vim72/ftplugin/README.txt -#usr/share/vim/vim72/ftplugin/a2ps.vim -#usr/share/vim/vim72/ftplugin/aap.vim -#usr/share/vim/vim72/ftplugin/abaqus.vim -#usr/share/vim/vim72/ftplugin/ada.vim -#usr/share/vim/vim72/ftplugin/alsaconf.vim -#usr/share/vim/vim72/ftplugin/ant.vim -#usr/share/vim/vim72/ftplugin/arch.vim -#usr/share/vim/vim72/ftplugin/art.vim -#usr/share/vim/vim72/ftplugin/aspvbs.vim -#usr/share/vim/vim72/ftplugin/automake.vim -#usr/share/vim/vim72/ftplugin/bdf.vim -#usr/share/vim/vim72/ftplugin/bst.vim -#usr/share/vim/vim72/ftplugin/btm.vim -#usr/share/vim/vim72/ftplugin/c.vim -#usr/share/vim/vim72/ftplugin/calendar.vim -#usr/share/vim/vim72/ftplugin/cdrdaoconf.vim -#usr/share/vim/vim72/ftplugin/ch.vim -#usr/share/vim/vim72/ftplugin/changelog.vim -#usr/share/vim/vim72/ftplugin/cobol.vim -#usr/share/vim/vim72/ftplugin/conf.vim -#usr/share/vim/vim72/ftplugin/config.vim -#usr/share/vim/vim72/ftplugin/context.vim -#usr/share/vim/vim72/ftplugin/cpp.vim -#usr/share/vim/vim72/ftplugin/crm.vim -#usr/share/vim/vim72/ftplugin/cs.vim -#usr/share/vim/vim72/ftplugin/csc.vim -#usr/share/vim/vim72/ftplugin/csh.vim -#usr/share/vim/vim72/ftplugin/css.vim -#usr/share/vim/vim72/ftplugin/cvsrc.vim -#usr/share/vim/vim72/ftplugin/debchangelog.vim -#usr/share/vim/vim72/ftplugin/debcontrol.vim -#usr/share/vim/vim72/ftplugin/denyhosts.vim -#usr/share/vim/vim72/ftplugin/dictconf.vim -#usr/share/vim/vim72/ftplugin/dictdconf.vim -#usr/share/vim/vim72/ftplugin/diff.vim -#usr/share/vim/vim72/ftplugin/dircolors.vim -#usr/share/vim/vim72/ftplugin/dosbatch.vim -#usr/share/vim/vim72/ftplugin/dosini.vim -#usr/share/vim/vim72/ftplugin/dtd.vim -#usr/share/vim/vim72/ftplugin/dtrace.vim -#usr/share/vim/vim72/ftplugin/elinks.vim -#usr/share/vim/vim72/ftplugin/eruby.vim -#usr/share/vim/vim72/ftplugin/eterm.vim -#usr/share/vim/vim72/ftplugin/fetchmail.vim -#usr/share/vim/vim72/ftplugin/flexwiki.vim -#usr/share/vim/vim72/ftplugin/fortran.vim -#usr/share/vim/vim72/ftplugin/framescript.vim -#usr/share/vim/vim72/ftplugin/fvwm.vim -#usr/share/vim/vim72/ftplugin/git.vim -#usr/share/vim/vim72/ftplugin/gitcommit.vim -#usr/share/vim/vim72/ftplugin/gitconfig.vim -#usr/share/vim/vim72/ftplugin/gitrebase.vim -#usr/share/vim/vim72/ftplugin/gitsendemail.vim -#usr/share/vim/vim72/ftplugin/gpg.vim -#usr/share/vim/vim72/ftplugin/group.vim -#usr/share/vim/vim72/ftplugin/grub.vim -#usr/share/vim/vim72/ftplugin/haml.vim -#usr/share/vim/vim72/ftplugin/hamster.vim -#usr/share/vim/vim72/ftplugin/haskell.vim -#usr/share/vim/vim72/ftplugin/help.vim -#usr/share/vim/vim72/ftplugin/hostconf.vim -#usr/share/vim/vim72/ftplugin/hostsaccess.vim -#usr/share/vim/vim72/ftplugin/html.vim -#usr/share/vim/vim72/ftplugin/htmldjango.vim -#usr/share/vim/vim72/ftplugin/indent.vim -#usr/share/vim/vim72/ftplugin/initex.vim -#usr/share/vim/vim72/ftplugin/ishd.vim -#usr/share/vim/vim72/ftplugin/java.vim -#usr/share/vim/vim72/ftplugin/javascript.vim -#usr/share/vim/vim72/ftplugin/jsp.vim -#usr/share/vim/vim72/ftplugin/kconfig.vim -#usr/share/vim/vim72/ftplugin/kwt.vim -#usr/share/vim/vim72/ftplugin/ld.vim -#usr/share/vim/vim72/ftplugin/lftp.vim -#usr/share/vim/vim72/ftplugin/libao.vim -#usr/share/vim/vim72/ftplugin/limits.vim -#usr/share/vim/vim72/ftplugin/lisp.vim -#usr/share/vim/vim72/ftplugin/loginaccess.vim -#usr/share/vim/vim72/ftplugin/logindefs.vim -#usr/share/vim/vim72/ftplugin/logtalk.vim -#usr/share/vim/vim72/ftplugin/lprolog.vim -#usr/share/vim/vim72/ftplugin/lua.vim -#usr/share/vim/vim72/ftplugin/m4.vim -#usr/share/vim/vim72/ftplugin/mail.vim -#usr/share/vim/vim72/ftplugin/mailaliases.vim -#usr/share/vim/vim72/ftplugin/mailcap.vim -#usr/share/vim/vim72/ftplugin/make.vim -#usr/share/vim/vim72/ftplugin/man.vim -#usr/share/vim/vim72/ftplugin/manconf.vim -#usr/share/vim/vim72/ftplugin/matlab.vim -#usr/share/vim/vim72/ftplugin/mf.vim -#usr/share/vim/vim72/ftplugin/modconf.vim -#usr/share/vim/vim72/ftplugin/mp.vim -#usr/share/vim/vim72/ftplugin/mplayerconf.vim -#usr/share/vim/vim72/ftplugin/mrxvtrc.vim -#usr/share/vim/vim72/ftplugin/msmessages.vim -#usr/share/vim/vim72/ftplugin/mupad.vim -#usr/share/vim/vim72/ftplugin/muttrc.vim -#usr/share/vim/vim72/ftplugin/nanorc.vim -#usr/share/vim/vim72/ftplugin/netrc.vim -#usr/share/vim/vim72/ftplugin/nsis.vim -#usr/share/vim/vim72/ftplugin/objc.vim -#usr/share/vim/vim72/ftplugin/ocaml.vim -#usr/share/vim/vim72/ftplugin/occam.vim -#usr/share/vim/vim72/ftplugin/pamconf.vim -#usr/share/vim/vim72/ftplugin/pascal.vim -#usr/share/vim/vim72/ftplugin/passwd.vim -#usr/share/vim/vim72/ftplugin/pdf.vim -#usr/share/vim/vim72/ftplugin/perl.vim -#usr/share/vim/vim72/ftplugin/php.vim -#usr/share/vim/vim72/ftplugin/pinfo.vim -#usr/share/vim/vim72/ftplugin/plaintex.vim -#usr/share/vim/vim72/ftplugin/postscr.vim -#usr/share/vim/vim72/ftplugin/procmail.vim -#usr/share/vim/vim72/ftplugin/prolog.vim -#usr/share/vim/vim72/ftplugin/protocols.vim -#usr/share/vim/vim72/ftplugin/pyrex.vim -#usr/share/vim/vim72/ftplugin/python.vim -#usr/share/vim/vim72/ftplugin/quake.vim -#usr/share/vim/vim72/ftplugin/racc.vim -#usr/share/vim/vim72/ftplugin/readline.vim -#usr/share/vim/vim72/ftplugin/reva.vim -#usr/share/vim/vim72/ftplugin/rnc.vim -#usr/share/vim/vim72/ftplugin/rpl.vim -#usr/share/vim/vim72/ftplugin/rst.vim -#usr/share/vim/vim72/ftplugin/ruby.vim -#usr/share/vim/vim72/ftplugin/sass.vim -#usr/share/vim/vim72/ftplugin/scheme.vim -#usr/share/vim/vim72/ftplugin/screen.vim -#usr/share/vim/vim72/ftplugin/sensors.vim -#usr/share/vim/vim72/ftplugin/services.vim -#usr/share/vim/vim72/ftplugin/setserial.vim -#usr/share/vim/vim72/ftplugin/sgml.vim -#usr/share/vim/vim72/ftplugin/sh.vim -#usr/share/vim/vim72/ftplugin/sieve.vim -#usr/share/vim/vim72/ftplugin/slpconf.vim -#usr/share/vim/vim72/ftplugin/slpreg.vim -#usr/share/vim/vim72/ftplugin/slpspi.vim -#usr/share/vim/vim72/ftplugin/spec.vim -#usr/share/vim/vim72/ftplugin/sql.vim -#usr/share/vim/vim72/ftplugin/sshconfig.vim -#usr/share/vim/vim72/ftplugin/sudoers.vim -#usr/share/vim/vim72/ftplugin/svg.vim -#usr/share/vim/vim72/ftplugin/sysctl.vim -#usr/share/vim/vim72/ftplugin/tcsh.vim -#usr/share/vim/vim72/ftplugin/terminfo.vim -#usr/share/vim/vim72/ftplugin/tex.vim -#usr/share/vim/vim72/ftplugin/udevconf.vim -#usr/share/vim/vim72/ftplugin/udevperm.vim -#usr/share/vim/vim72/ftplugin/udevrules.vim -#usr/share/vim/vim72/ftplugin/updatedb.vim -#usr/share/vim/vim72/ftplugin/vb.vim -#usr/share/vim/vim72/ftplugin/verilog.vim -#usr/share/vim/vim72/ftplugin/vhdl.vim -#usr/share/vim/vim72/ftplugin/vim.vim -#usr/share/vim/vim72/ftplugin/xdefaults.vim -#usr/share/vim/vim72/ftplugin/xf86conf.vim -#usr/share/vim/vim72/ftplugin/xhtml.vim -#usr/share/vim/vim72/ftplugin/xinetd.vim -#usr/share/vim/vim72/ftplugin/xml.vim -#usr/share/vim/vim72/ftplugin/xmodmap.vim -#usr/share/vim/vim72/ftplugin/xs.vim -#usr/share/vim/vim72/ftplugin/xsd.vim -#usr/share/vim/vim72/ftplugin/xslt.vim -#usr/share/vim/vim72/ftplugin/yaml.vim -#usr/share/vim/vim72/ftplugin/zsh.vim -#usr/share/vim/vim72/ftplugof.vim -#usr/share/vim/vim72/gvimrc_example.vim -#usr/share/vim/vim72/indent -#usr/share/vim/vim72/indent.vim -#usr/share/vim/vim72/indent/GenericIndent.vim -#usr/share/vim/vim72/indent/README.txt -#usr/share/vim/vim72/indent/aap.vim -#usr/share/vim/vim72/indent/ada.vim -#usr/share/vim/vim72/indent/ant.vim -#usr/share/vim/vim72/indent/automake.vim -#usr/share/vim/vim72/indent/awk.vim -#usr/share/vim/vim72/indent/bib.vim -#usr/share/vim/vim72/indent/bst.vim -#usr/share/vim/vim72/indent/c.vim -#usr/share/vim/vim72/indent/cdl.vim -#usr/share/vim/vim72/indent/ch.vim -#usr/share/vim/vim72/indent/changelog.vim -#usr/share/vim/vim72/indent/cmake.vim -#usr/share/vim/vim72/indent/cobol.vim -#usr/share/vim/vim72/indent/config.vim -#usr/share/vim/vim72/indent/cpp.vim -#usr/share/vim/vim72/indent/cs.vim -#usr/share/vim/vim72/indent/css.vim -#usr/share/vim/vim72/indent/d.vim -#usr/share/vim/vim72/indent/dictconf.vim -#usr/share/vim/vim72/indent/dictdconf.vim -#usr/share/vim/vim72/indent/docbk.vim -#usr/share/vim/vim72/indent/dtd.vim -#usr/share/vim/vim72/indent/dtrace.vim -#usr/share/vim/vim72/indent/dylan.vim -#usr/share/vim/vim72/indent/eiffel.vim -#usr/share/vim/vim72/indent/erlang.vim -#usr/share/vim/vim72/indent/eruby.vim -#usr/share/vim/vim72/indent/eterm.vim -#usr/share/vim/vim72/indent/fortran.vim -#usr/share/vim/vim72/indent/framescript.vim -#usr/share/vim/vim72/indent/gitconfig.vim -#usr/share/vim/vim72/indent/haml.vim -#usr/share/vim/vim72/indent/hamster.vim -#usr/share/vim/vim72/indent/html.vim -#usr/share/vim/vim72/indent/htmldjango.vim -#usr/share/vim/vim72/indent/idlang.vim -#usr/share/vim/vim72/indent/ishd.vim -#usr/share/vim/vim72/indent/java.vim -#usr/share/vim/vim72/indent/javascript.vim -#usr/share/vim/vim72/indent/jsp.vim -#usr/share/vim/vim72/indent/ld.vim -#usr/share/vim/vim72/indent/lisp.vim -#usr/share/vim/vim72/indent/logtalk.vim -#usr/share/vim/vim72/indent/lua.vim -#usr/share/vim/vim72/indent/make.vim -#usr/share/vim/vim72/indent/matlab.vim -#usr/share/vim/vim72/indent/mma.vim -#usr/share/vim/vim72/indent/mp.vim -#usr/share/vim/vim72/indent/mupad.vim -#usr/share/vim/vim72/indent/objc.vim -#usr/share/vim/vim72/indent/ocaml.vim -#usr/share/vim/vim72/indent/occam.vim -#usr/share/vim/vim72/indent/pascal.vim -#usr/share/vim/vim72/indent/perl.vim -#usr/share/vim/vim72/indent/php.vim -#usr/share/vim/vim72/indent/postscr.vim -#usr/share/vim/vim72/indent/pov.vim -#usr/share/vim/vim72/indent/prolog.vim -#usr/share/vim/vim72/indent/pyrex.vim -#usr/share/vim/vim72/indent/python.vim -#usr/share/vim/vim72/indent/readline.vim -#usr/share/vim/vim72/indent/rpl.vim -#usr/share/vim/vim72/indent/rst.vim -#usr/share/vim/vim72/indent/ruby.vim -#usr/share/vim/vim72/indent/sass.vim -#usr/share/vim/vim72/indent/scheme.vim -#usr/share/vim/vim72/indent/sdl.vim -#usr/share/vim/vim72/indent/sh.vim -#usr/share/vim/vim72/indent/sml.vim -#usr/share/vim/vim72/indent/sql.vim -#usr/share/vim/vim72/indent/sqlanywhere.vim -#usr/share/vim/vim72/indent/tcl.vim -#usr/share/vim/vim72/indent/tcsh.vim -#usr/share/vim/vim72/indent/tf.vim -#usr/share/vim/vim72/indent/tilde.vim -#usr/share/vim/vim72/indent/vb.vim -#usr/share/vim/vim72/indent/verilog.vim -#usr/share/vim/vim72/indent/vhdl.vim -#usr/share/vim/vim72/indent/vim.vim -#usr/share/vim/vim72/indent/xf86conf.vim -#usr/share/vim/vim72/indent/xhtml.vim -#usr/share/vim/vim72/indent/xinetd.vim -#usr/share/vim/vim72/indent/xml.vim -#usr/share/vim/vim72/indent/xsd.vim -#usr/share/vim/vim72/indent/xslt.vim -#usr/share/vim/vim72/indent/yacc.vim -#usr/share/vim/vim72/indent/zsh.vim -#usr/share/vim/vim72/indoff.vim -#usr/share/vim/vim72/macros -#usr/share/vim/vim72/macros/README.txt -#usr/share/vim/vim72/macros/dvorak -#usr/share/vim/vim72/macros/editexisting.vim -#usr/share/vim/vim72/macros/hanoi -#usr/share/vim/vim72/macros/hanoi/click.me -#usr/share/vim/vim72/macros/hanoi/hanoi.vim -#usr/share/vim/vim72/macros/hanoi/poster -#usr/share/vim/vim72/macros/justify.vim -#usr/share/vim/vim72/macros/less.sh -#usr/share/vim/vim72/macros/less.vim -#usr/share/vim/vim72/macros/life -#usr/share/vim/vim72/macros/life/click.me -#usr/share/vim/vim72/macros/life/life.vim -#usr/share/vim/vim72/macros/matchit.txt -#usr/share/vim/vim72/macros/matchit.vim -#usr/share/vim/vim72/macros/maze -#usr/share/vim/vim72/macros/maze/Makefile -#usr/share/vim/vim72/macros/maze/README.txt -#usr/share/vim/vim72/macros/maze/main.aap -#usr/share/vim/vim72/macros/maze/maze.c -#usr/share/vim/vim72/macros/maze/maze_5.78 -#usr/share/vim/vim72/macros/maze/maze_mac -#usr/share/vim/vim72/macros/maze/mazeansi.c -#usr/share/vim/vim72/macros/maze/mazeclean.c -#usr/share/vim/vim72/macros/maze/poster -#usr/share/vim/vim72/macros/shellmenu.vim -#usr/share/vim/vim72/macros/swapmous.vim -#usr/share/vim/vim72/macros/urm -#usr/share/vim/vim72/macros/urm/README.txt -#usr/share/vim/vim72/macros/urm/examples -#usr/share/vim/vim72/macros/urm/urm -#usr/share/vim/vim72/macros/urm/urm.vim -#usr/share/vim/vim72/menu.vim -#usr/share/vim/vim72/mswin.vim -#usr/share/vim/vim72/optwin.vim -#usr/share/vim/vim72/plugin -#usr/share/vim/vim72/plugin/README.txt -#usr/share/vim/vim72/plugin/getscriptPlugin.vim -#usr/share/vim/vim72/plugin/gzip.vim -#usr/share/vim/vim72/plugin/matchparen.vim -#usr/share/vim/vim72/plugin/netrwPlugin.vim -#usr/share/vim/vim72/plugin/rrhelper.vim -#usr/share/vim/vim72/plugin/spellfile.vim -#usr/share/vim/vim72/plugin/tarPlugin.vim -#usr/share/vim/vim72/plugin/tohtml.vim -#usr/share/vim/vim72/plugin/vimballPlugin.vim -#usr/share/vim/vim72/plugin/zipPlugin.vim -#usr/share/vim/vim72/print -#usr/share/vim/vim72/print/ascii.ps -#usr/share/vim/vim72/print/cidfont.ps -#usr/share/vim/vim72/print/cns_roman.ps -#usr/share/vim/vim72/print/cp1250.ps -#usr/share/vim/vim72/print/cp1251.ps -#usr/share/vim/vim72/print/cp1252.ps -#usr/share/vim/vim72/print/cp1253.ps -#usr/share/vim/vim72/print/cp1254.ps -#usr/share/vim/vim72/print/cp1255.ps -#usr/share/vim/vim72/print/cp1257.ps -#usr/share/vim/vim72/print/dec-mcs.ps -#usr/share/vim/vim72/print/ebcdic-uk.ps -#usr/share/vim/vim72/print/gb_roman.ps -#usr/share/vim/vim72/print/hp-roman8.ps -#usr/share/vim/vim72/print/iso-8859-10.ps -#usr/share/vim/vim72/print/iso-8859-11.ps -#usr/share/vim/vim72/print/iso-8859-13.ps -#usr/share/vim/vim72/print/iso-8859-14.ps -#usr/share/vim/vim72/print/iso-8859-15.ps -#usr/share/vim/vim72/print/iso-8859-2.ps -#usr/share/vim/vim72/print/iso-8859-3.ps -#usr/share/vim/vim72/print/iso-8859-4.ps -#usr/share/vim/vim72/print/iso-8859-5.ps -#usr/share/vim/vim72/print/iso-8859-7.ps -#usr/share/vim/vim72/print/iso-8859-8.ps -#usr/share/vim/vim72/print/iso-8859-9.ps -#usr/share/vim/vim72/print/jis_roman.ps -#usr/share/vim/vim72/print/koi8-r.ps -#usr/share/vim/vim72/print/koi8-u.ps -#usr/share/vim/vim72/print/ks_roman.ps -#usr/share/vim/vim72/print/latin1.ps -#usr/share/vim/vim72/print/mac-roman.ps -#usr/share/vim/vim72/print/prolog.ps -#usr/share/vim/vim72/scripts.vim -#usr/share/vim/vim72/spell -#usr/share/vim/vim72/spell/cleanadd.vim -#usr/share/vim/vim72/spell/en.ascii.spl -#usr/share/vim/vim72/spell/en.ascii.sug -#usr/share/vim/vim72/spell/en.latin1.spl -#usr/share/vim/vim72/spell/en.latin1.sug -#usr/share/vim/vim72/spell/en.utf-8.spl -#usr/share/vim/vim72/spell/en.utf-8.sug -#usr/share/vim/vim72/spell/he.vim -#usr/share/vim/vim72/spell/yi.vim -#usr/share/vim/vim72/synmenu.vim -#usr/share/vim/vim72/syntax -#usr/share/vim/vim72/syntax/2html.vim -#usr/share/vim/vim72/syntax/README.txt -#usr/share/vim/vim72/syntax/a2ps.vim -#usr/share/vim/vim72/syntax/a65.vim -#usr/share/vim/vim72/syntax/aap.vim -#usr/share/vim/vim72/syntax/abap.vim -#usr/share/vim/vim72/syntax/abaqus.vim -#usr/share/vim/vim72/syntax/abc.vim -#usr/share/vim/vim72/syntax/abel.vim -#usr/share/vim/vim72/syntax/acedb.vim -#usr/share/vim/vim72/syntax/ada.vim -#usr/share/vim/vim72/syntax/aflex.vim -#usr/share/vim/vim72/syntax/ahdl.vim -#usr/share/vim/vim72/syntax/alsaconf.vim -#usr/share/vim/vim72/syntax/amiga.vim -#usr/share/vim/vim72/syntax/aml.vim -#usr/share/vim/vim72/syntax/ampl.vim -#usr/share/vim/vim72/syntax/ant.vim -#usr/share/vim/vim72/syntax/antlr.vim -#usr/share/vim/vim72/syntax/apache.vim -#usr/share/vim/vim72/syntax/apachestyle.vim -#usr/share/vim/vim72/syntax/arch.vim -#usr/share/vim/vim72/syntax/art.vim -#usr/share/vim/vim72/syntax/asm.vim -#usr/share/vim/vim72/syntax/asm68k.vim -#usr/share/vim/vim72/syntax/asmh8300.vim -#usr/share/vim/vim72/syntax/asn.vim -#usr/share/vim/vim72/syntax/aspperl.vim -#usr/share/vim/vim72/syntax/aspvbs.vim -#usr/share/vim/vim72/syntax/asterisk.vim -#usr/share/vim/vim72/syntax/asteriskvm.vim -#usr/share/vim/vim72/syntax/atlas.vim -#usr/share/vim/vim72/syntax/autohotkey.vim -#usr/share/vim/vim72/syntax/autoit.vim -#usr/share/vim/vim72/syntax/automake.vim -#usr/share/vim/vim72/syntax/ave.vim -#usr/share/vim/vim72/syntax/awk.vim -#usr/share/vim/vim72/syntax/ayacc.vim -#usr/share/vim/vim72/syntax/b.vim -#usr/share/vim/vim72/syntax/baan.vim -#usr/share/vim/vim72/syntax/basic.vim -#usr/share/vim/vim72/syntax/bc.vim -#usr/share/vim/vim72/syntax/bdf.vim -#usr/share/vim/vim72/syntax/bib.vim -#usr/share/vim/vim72/syntax/bindzone.vim -#usr/share/vim/vim72/syntax/blank.vim -#usr/share/vim/vim72/syntax/bst.vim -#usr/share/vim/vim72/syntax/btm.vim -#usr/share/vim/vim72/syntax/bzr.vim -#usr/share/vim/vim72/syntax/c.vim -#usr/share/vim/vim72/syntax/calendar.vim -#usr/share/vim/vim72/syntax/catalog.vim -#usr/share/vim/vim72/syntax/cdl.vim -#usr/share/vim/vim72/syntax/cdrdaoconf.vim -#usr/share/vim/vim72/syntax/cdrtoc.vim -#usr/share/vim/vim72/syntax/cf.vim -#usr/share/vim/vim72/syntax/cfg.vim -#usr/share/vim/vim72/syntax/ch.vim -#usr/share/vim/vim72/syntax/change.vim -#usr/share/vim/vim72/syntax/changelog.vim -#usr/share/vim/vim72/syntax/chaskell.vim -#usr/share/vim/vim72/syntax/cheetah.vim -#usr/share/vim/vim72/syntax/chill.vim -#usr/share/vim/vim72/syntax/chordpro.vim -#usr/share/vim/vim72/syntax/cl.vim -#usr/share/vim/vim72/syntax/clean.vim -#usr/share/vim/vim72/syntax/clipper.vim -#usr/share/vim/vim72/syntax/cmake.vim -#usr/share/vim/vim72/syntax/cmusrc.vim -#usr/share/vim/vim72/syntax/cobol.vim -#usr/share/vim/vim72/syntax/coco.vim -#usr/share/vim/vim72/syntax/colortest.vim -#usr/share/vim/vim72/syntax/conaryrecipe.vim -#usr/share/vim/vim72/syntax/conf.vim -#usr/share/vim/vim72/syntax/config.vim -#usr/share/vim/vim72/syntax/context.vim -#usr/share/vim/vim72/syntax/cpp.vim -#usr/share/vim/vim72/syntax/crm.vim -#usr/share/vim/vim72/syntax/crontab.vim -#usr/share/vim/vim72/syntax/cs.vim -#usr/share/vim/vim72/syntax/csc.vim -#usr/share/vim/vim72/syntax/csh.vim -#usr/share/vim/vim72/syntax/csp.vim -#usr/share/vim/vim72/syntax/css.vim -#usr/share/vim/vim72/syntax/cterm.vim -#usr/share/vim/vim72/syntax/ctrlh.vim -#usr/share/vim/vim72/syntax/cuda.vim -#usr/share/vim/vim72/syntax/cupl.vim -#usr/share/vim/vim72/syntax/cuplsim.vim -#usr/share/vim/vim72/syntax/cvs.vim -#usr/share/vim/vim72/syntax/cvsrc.vim -#usr/share/vim/vim72/syntax/cweb.vim -#usr/share/vim/vim72/syntax/cynlib.vim -#usr/share/vim/vim72/syntax/cynpp.vim -#usr/share/vim/vim72/syntax/d.vim -#usr/share/vim/vim72/syntax/dcd.vim -#usr/share/vim/vim72/syntax/dcl.vim -#usr/share/vim/vim72/syntax/debchangelog.vim -#usr/share/vim/vim72/syntax/debcontrol.vim -#usr/share/vim/vim72/syntax/debsources.vim -#usr/share/vim/vim72/syntax/def.vim -#usr/share/vim/vim72/syntax/denyhosts.vim -#usr/share/vim/vim72/syntax/desc.vim -#usr/share/vim/vim72/syntax/desktop.vim -#usr/share/vim/vim72/syntax/dictconf.vim -#usr/share/vim/vim72/syntax/dictdconf.vim -#usr/share/vim/vim72/syntax/diff.vim -#usr/share/vim/vim72/syntax/dircolors.vim -#usr/share/vim/vim72/syntax/diva.vim -#usr/share/vim/vim72/syntax/django.vim -#usr/share/vim/vim72/syntax/dns.vim -#usr/share/vim/vim72/syntax/docbk.vim -#usr/share/vim/vim72/syntax/docbksgml.vim -#usr/share/vim/vim72/syntax/docbkxml.vim -#usr/share/vim/vim72/syntax/dosbatch.vim -#usr/share/vim/vim72/syntax/dosini.vim -#usr/share/vim/vim72/syntax/dot.vim -#usr/share/vim/vim72/syntax/doxygen.vim -#usr/share/vim/vim72/syntax/dracula.vim -#usr/share/vim/vim72/syntax/dsl.vim -#usr/share/vim/vim72/syntax/dtd.vim -#usr/share/vim/vim72/syntax/dtml.vim -#usr/share/vim/vim72/syntax/dtrace.vim -#usr/share/vim/vim72/syntax/dylan.vim -#usr/share/vim/vim72/syntax/dylanintr.vim -#usr/share/vim/vim72/syntax/dylanlid.vim -#usr/share/vim/vim72/syntax/ecd.vim -#usr/share/vim/vim72/syntax/edif.vim -#usr/share/vim/vim72/syntax/eiffel.vim -#usr/share/vim/vim72/syntax/elf.vim -#usr/share/vim/vim72/syntax/elinks.vim -#usr/share/vim/vim72/syntax/elmfilt.vim -#usr/share/vim/vim72/syntax/erlang.vim -#usr/share/vim/vim72/syntax/eruby.vim -#usr/share/vim/vim72/syntax/esmtprc.vim -#usr/share/vim/vim72/syntax/esqlc.vim -#usr/share/vim/vim72/syntax/esterel.vim -#usr/share/vim/vim72/syntax/eterm.vim -#usr/share/vim/vim72/syntax/eviews.vim -#usr/share/vim/vim72/syntax/exim.vim -#usr/share/vim/vim72/syntax/expect.vim -#usr/share/vim/vim72/syntax/exports.vim -#usr/share/vim/vim72/syntax/fasm.vim -#usr/share/vim/vim72/syntax/fdcc.vim -#usr/share/vim/vim72/syntax/fetchmail.vim -#usr/share/vim/vim72/syntax/fgl.vim -#usr/share/vim/vim72/syntax/flexwiki.vim -#usr/share/vim/vim72/syntax/focexec.vim -#usr/share/vim/vim72/syntax/form.vim -#usr/share/vim/vim72/syntax/forth.vim -#usr/share/vim/vim72/syntax/fortran.vim -#usr/share/vim/vim72/syntax/foxpro.vim -#usr/share/vim/vim72/syntax/framescript.vim -#usr/share/vim/vim72/syntax/freebasic.vim -#usr/share/vim/vim72/syntax/fstab.vim -#usr/share/vim/vim72/syntax/fvwm.vim -#usr/share/vim/vim72/syntax/fvwm2m4.vim -#usr/share/vim/vim72/syntax/gdb.vim -#usr/share/vim/vim72/syntax/gdmo.vim -#usr/share/vim/vim72/syntax/gedcom.vim -#usr/share/vim/vim72/syntax/git.vim -#usr/share/vim/vim72/syntax/gitcommit.vim -#usr/share/vim/vim72/syntax/gitconfig.vim -#usr/share/vim/vim72/syntax/gitrebase.vim -#usr/share/vim/vim72/syntax/gitsendemail.vim -#usr/share/vim/vim72/syntax/gkrellmrc.vim -#usr/share/vim/vim72/syntax/gnuplot.vim -#usr/share/vim/vim72/syntax/gp.vim -#usr/share/vim/vim72/syntax/gpg.vim -#usr/share/vim/vim72/syntax/grads.vim -#usr/share/vim/vim72/syntax/gretl.vim -#usr/share/vim/vim72/syntax/groff.vim -#usr/share/vim/vim72/syntax/groovy.vim -#usr/share/vim/vim72/syntax/group.vim -#usr/share/vim/vim72/syntax/grub.vim -#usr/share/vim/vim72/syntax/gsp.vim -#usr/share/vim/vim72/syntax/gtkrc.vim -#usr/share/vim/vim72/syntax/haml.vim -#usr/share/vim/vim72/syntax/hamster.vim -#usr/share/vim/vim72/syntax/haskell.vim -#usr/share/vim/vim72/syntax/haste.vim -#usr/share/vim/vim72/syntax/hastepreproc.vim -#usr/share/vim/vim72/syntax/hb.vim -#usr/share/vim/vim72/syntax/help.vim -#usr/share/vim/vim72/syntax/hercules.vim -#usr/share/vim/vim72/syntax/hex.vim -#usr/share/vim/vim72/syntax/hitest.vim -#usr/share/vim/vim72/syntax/hog.vim -#usr/share/vim/vim72/syntax/hostconf.vim -#usr/share/vim/vim72/syntax/html.vim -#usr/share/vim/vim72/syntax/htmlcheetah.vim -#usr/share/vim/vim72/syntax/htmldjango.vim -#usr/share/vim/vim72/syntax/htmlm4.vim -#usr/share/vim/vim72/syntax/htmlos.vim -#usr/share/vim/vim72/syntax/ia64.vim -#usr/share/vim/vim72/syntax/ibasic.vim -#usr/share/vim/vim72/syntax/icemenu.vim -#usr/share/vim/vim72/syntax/icon.vim -#usr/share/vim/vim72/syntax/idl.vim -#usr/share/vim/vim72/syntax/idlang.vim -#usr/share/vim/vim72/syntax/indent.vim -#usr/share/vim/vim72/syntax/inform.vim -#usr/share/vim/vim72/syntax/initex.vim -#usr/share/vim/vim72/syntax/initng.vim -#usr/share/vim/vim72/syntax/inittab.vim -#usr/share/vim/vim72/syntax/ipfilter.vim -#usr/share/vim/vim72/syntax/ishd.vim -#usr/share/vim/vim72/syntax/iss.vim -#usr/share/vim/vim72/syntax/ist.vim -#usr/share/vim/vim72/syntax/jal.vim -#usr/share/vim/vim72/syntax/jam.vim -#usr/share/vim/vim72/syntax/jargon.vim -#usr/share/vim/vim72/syntax/java.vim -#usr/share/vim/vim72/syntax/javacc.vim -#usr/share/vim/vim72/syntax/javascript.vim -#usr/share/vim/vim72/syntax/jess.vim -#usr/share/vim/vim72/syntax/jgraph.vim -#usr/share/vim/vim72/syntax/jproperties.vim -#usr/share/vim/vim72/syntax/jsp.vim -#usr/share/vim/vim72/syntax/kconfig.vim -#usr/share/vim/vim72/syntax/kix.vim -#usr/share/vim/vim72/syntax/kscript.vim -#usr/share/vim/vim72/syntax/kwt.vim -#usr/share/vim/vim72/syntax/lace.vim -#usr/share/vim/vim72/syntax/latte.vim -#usr/share/vim/vim72/syntax/ld.vim -#usr/share/vim/vim72/syntax/ldapconf.vim -#usr/share/vim/vim72/syntax/ldif.vim -#usr/share/vim/vim72/syntax/lex.vim -#usr/share/vim/vim72/syntax/lftp.vim -#usr/share/vim/vim72/syntax/lhaskell.vim -#usr/share/vim/vim72/syntax/libao.vim -#usr/share/vim/vim72/syntax/lifelines.vim -#usr/share/vim/vim72/syntax/lilo.vim -#usr/share/vim/vim72/syntax/limits.vim -#usr/share/vim/vim72/syntax/lisp.vim -#usr/share/vim/vim72/syntax/lite.vim -#usr/share/vim/vim72/syntax/litestep.vim -#usr/share/vim/vim72/syntax/loginaccess.vim -#usr/share/vim/vim72/syntax/logindefs.vim -#usr/share/vim/vim72/syntax/logtalk.vim -#usr/share/vim/vim72/syntax/lotos.vim -#usr/share/vim/vim72/syntax/lout.vim -#usr/share/vim/vim72/syntax/lpc.vim -#usr/share/vim/vim72/syntax/lprolog.vim -#usr/share/vim/vim72/syntax/lscript.vim -#usr/share/vim/vim72/syntax/lsl.vim -#usr/share/vim/vim72/syntax/lss.vim -#usr/share/vim/vim72/syntax/lua.vim -#usr/share/vim/vim72/syntax/lynx.vim -#usr/share/vim/vim72/syntax/m4.vim -#usr/share/vim/vim72/syntax/mail.vim -#usr/share/vim/vim72/syntax/mailaliases.vim -#usr/share/vim/vim72/syntax/mailcap.vim -#usr/share/vim/vim72/syntax/make.vim -#usr/share/vim/vim72/syntax/man.vim -#usr/share/vim/vim72/syntax/manconf.vim -#usr/share/vim/vim72/syntax/manual.vim -#usr/share/vim/vim72/syntax/maple.vim -#usr/share/vim/vim72/syntax/masm.vim -#usr/share/vim/vim72/syntax/mason.vim -#usr/share/vim/vim72/syntax/master.vim -#usr/share/vim/vim72/syntax/matlab.vim -#usr/share/vim/vim72/syntax/maxima.vim -#usr/share/vim/vim72/syntax/mel.vim -#usr/share/vim/vim72/syntax/messages.vim -#usr/share/vim/vim72/syntax/mf.vim -#usr/share/vim/vim72/syntax/mgl.vim -#usr/share/vim/vim72/syntax/mgp.vim -#usr/share/vim/vim72/syntax/mib.vim -#usr/share/vim/vim72/syntax/mma.vim -#usr/share/vim/vim72/syntax/mmix.vim -#usr/share/vim/vim72/syntax/mmp.vim -#usr/share/vim/vim72/syntax/modconf.vim -#usr/share/vim/vim72/syntax/model.vim -#usr/share/vim/vim72/syntax/modsim3.vim -#usr/share/vim/vim72/syntax/modula2.vim -#usr/share/vim/vim72/syntax/modula3.vim -#usr/share/vim/vim72/syntax/monk.vim -#usr/share/vim/vim72/syntax/moo.vim -#usr/share/vim/vim72/syntax/mp.vim -#usr/share/vim/vim72/syntax/mplayerconf.vim -#usr/share/vim/vim72/syntax/mrxvtrc.vim -#usr/share/vim/vim72/syntax/msidl.vim -#usr/share/vim/vim72/syntax/msmessages.vim -#usr/share/vim/vim72/syntax/msql.vim -#usr/share/vim/vim72/syntax/mupad.vim -#usr/share/vim/vim72/syntax/mush.vim -#usr/share/vim/vim72/syntax/muttrc.vim -#usr/share/vim/vim72/syntax/mysql.vim -#usr/share/vim/vim72/syntax/named.vim -#usr/share/vim/vim72/syntax/nanorc.vim -#usr/share/vim/vim72/syntax/nasm.vim -#usr/share/vim/vim72/syntax/nastran.vim -#usr/share/vim/vim72/syntax/natural.vim -#usr/share/vim/vim72/syntax/ncf.vim -#usr/share/vim/vim72/syntax/netrc.vim -#usr/share/vim/vim72/syntax/netrw.vim -#usr/share/vim/vim72/syntax/nosyntax.vim -#usr/share/vim/vim72/syntax/nqc.vim -#usr/share/vim/vim72/syntax/nroff.vim -#usr/share/vim/vim72/syntax/nsis.vim -#usr/share/vim/vim72/syntax/objc.vim -#usr/share/vim/vim72/syntax/objcpp.vim -#usr/share/vim/vim72/syntax/ocaml.vim -#usr/share/vim/vim72/syntax/occam.vim -#usr/share/vim/vim72/syntax/omnimark.vim -#usr/share/vim/vim72/syntax/openroad.vim -#usr/share/vim/vim72/syntax/opl.vim -#usr/share/vim/vim72/syntax/ora.vim -#usr/share/vim/vim72/syntax/pamconf.vim -#usr/share/vim/vim72/syntax/papp.vim -#usr/share/vim/vim72/syntax/pascal.vim -#usr/share/vim/vim72/syntax/passwd.vim -#usr/share/vim/vim72/syntax/pcap.vim -#usr/share/vim/vim72/syntax/pccts.vim -#usr/share/vim/vim72/syntax/pdf.vim -#usr/share/vim/vim72/syntax/perl.vim -#usr/share/vim/vim72/syntax/pf.vim -#usr/share/vim/vim72/syntax/pfmain.vim -#usr/share/vim/vim72/syntax/php.vim -#usr/share/vim/vim72/syntax/phtml.vim -#usr/share/vim/vim72/syntax/pic.vim -#usr/share/vim/vim72/syntax/pike.vim -#usr/share/vim/vim72/syntax/pilrc.vim -#usr/share/vim/vim72/syntax/pine.vim -#usr/share/vim/vim72/syntax/pinfo.vim -#usr/share/vim/vim72/syntax/plaintex.vim -#usr/share/vim/vim72/syntax/plm.vim -#usr/share/vim/vim72/syntax/plp.vim -#usr/share/vim/vim72/syntax/plsql.vim -#usr/share/vim/vim72/syntax/po.vim -#usr/share/vim/vim72/syntax/pod.vim -#usr/share/vim/vim72/syntax/postscr.vim -#usr/share/vim/vim72/syntax/pov.vim -#usr/share/vim/vim72/syntax/povini.vim -#usr/share/vim/vim72/syntax/ppd.vim -#usr/share/vim/vim72/syntax/ppwiz.vim -#usr/share/vim/vim72/syntax/prescribe.vim -#usr/share/vim/vim72/syntax/privoxy.vim -#usr/share/vim/vim72/syntax/procmail.vim -#usr/share/vim/vim72/syntax/progress.vim -#usr/share/vim/vim72/syntax/prolog.vim -#usr/share/vim/vim72/syntax/promela.vim -#usr/share/vim/vim72/syntax/protocols.vim -#usr/share/vim/vim72/syntax/psf.vim -#usr/share/vim/vim72/syntax/ptcap.vim -#usr/share/vim/vim72/syntax/purifylog.vim -#usr/share/vim/vim72/syntax/pyrex.vim -#usr/share/vim/vim72/syntax/python.vim -#usr/share/vim/vim72/syntax/qf.vim -#usr/share/vim/vim72/syntax/quake.vim -#usr/share/vim/vim72/syntax/r.vim -#usr/share/vim/vim72/syntax/racc.vim -#usr/share/vim/vim72/syntax/radiance.vim -#usr/share/vim/vim72/syntax/ratpoison.vim -#usr/share/vim/vim72/syntax/rc.vim -#usr/share/vim/vim72/syntax/rcs.vim -#usr/share/vim/vim72/syntax/rcslog.vim -#usr/share/vim/vim72/syntax/readline.vim -#usr/share/vim/vim72/syntax/rebol.vim -#usr/share/vim/vim72/syntax/registry.vim -#usr/share/vim/vim72/syntax/remind.vim -#usr/share/vim/vim72/syntax/resolv.vim -#usr/share/vim/vim72/syntax/reva.vim -#usr/share/vim/vim72/syntax/rexx.vim -#usr/share/vim/vim72/syntax/rhelp.vim -#usr/share/vim/vim72/syntax/rib.vim -#usr/share/vim/vim72/syntax/rnc.vim -#usr/share/vim/vim72/syntax/rnoweb.vim -#usr/share/vim/vim72/syntax/robots.vim -#usr/share/vim/vim72/syntax/rpcgen.vim -#usr/share/vim/vim72/syntax/rpl.vim -#usr/share/vim/vim72/syntax/rst.vim -#usr/share/vim/vim72/syntax/rtf.vim -#usr/share/vim/vim72/syntax/ruby.vim -#usr/share/vim/vim72/syntax/samba.vim -#usr/share/vim/vim72/syntax/sas.vim -#usr/share/vim/vim72/syntax/sass.vim -#usr/share/vim/vim72/syntax/sather.vim -#usr/share/vim/vim72/syntax/scheme.vim -#usr/share/vim/vim72/syntax/scilab.vim -#usr/share/vim/vim72/syntax/screen.vim -#usr/share/vim/vim72/syntax/sd.vim -#usr/share/vim/vim72/syntax/sdl.vim -#usr/share/vim/vim72/syntax/sed.vim -#usr/share/vim/vim72/syntax/sendpr.vim -#usr/share/vim/vim72/syntax/sensors.vim -#usr/share/vim/vim72/syntax/services.vim -#usr/share/vim/vim72/syntax/setserial.vim -#usr/share/vim/vim72/syntax/sgml.vim -#usr/share/vim/vim72/syntax/sgmldecl.vim -#usr/share/vim/vim72/syntax/sgmllnx.vim -#usr/share/vim/vim72/syntax/sh.vim -#usr/share/vim/vim72/syntax/sicad.vim -#usr/share/vim/vim72/syntax/sieve.vim -#usr/share/vim/vim72/syntax/simula.vim -#usr/share/vim/vim72/syntax/sinda.vim -#usr/share/vim/vim72/syntax/sindacmp.vim -#usr/share/vim/vim72/syntax/sindaout.vim -#usr/share/vim/vim72/syntax/sisu.vim -#usr/share/vim/vim72/syntax/skill.vim -#usr/share/vim/vim72/syntax/sl.vim -#usr/share/vim/vim72/syntax/slang.vim -#usr/share/vim/vim72/syntax/slice.vim -#usr/share/vim/vim72/syntax/slpconf.vim -#usr/share/vim/vim72/syntax/slpreg.vim -#usr/share/vim/vim72/syntax/slpspi.vim -#usr/share/vim/vim72/syntax/slrnrc.vim -#usr/share/vim/vim72/syntax/slrnsc.vim -#usr/share/vim/vim72/syntax/sm.vim -#usr/share/vim/vim72/syntax/smarty.vim -#usr/share/vim/vim72/syntax/smcl.vim -#usr/share/vim/vim72/syntax/smil.vim -#usr/share/vim/vim72/syntax/smith.vim -#usr/share/vim/vim72/syntax/sml.vim -#usr/share/vim/vim72/syntax/snnsnet.vim -#usr/share/vim/vim72/syntax/snnspat.vim -#usr/share/vim/vim72/syntax/snnsres.vim -#usr/share/vim/vim72/syntax/snobol4.vim -#usr/share/vim/vim72/syntax/spec.vim -#usr/share/vim/vim72/syntax/specman.vim -#usr/share/vim/vim72/syntax/spice.vim -#usr/share/vim/vim72/syntax/splint.vim -#usr/share/vim/vim72/syntax/spup.vim -#usr/share/vim/vim72/syntax/spyce.vim -#usr/share/vim/vim72/syntax/sql.vim -#usr/share/vim/vim72/syntax/sqlanywhere.vim -#usr/share/vim/vim72/syntax/sqlforms.vim -#usr/share/vim/vim72/syntax/sqlinformix.vim -#usr/share/vim/vim72/syntax/sqlj.vim -#usr/share/vim/vim72/syntax/sqloracle.vim -#usr/share/vim/vim72/syntax/sqr.vim -#usr/share/vim/vim72/syntax/squid.vim -#usr/share/vim/vim72/syntax/sshconfig.vim -#usr/share/vim/vim72/syntax/sshdconfig.vim -#usr/share/vim/vim72/syntax/st.vim -#usr/share/vim/vim72/syntax/stata.vim -#usr/share/vim/vim72/syntax/stp.vim -#usr/share/vim/vim72/syntax/strace.vim -#usr/share/vim/vim72/syntax/sudoers.vim -#usr/share/vim/vim72/syntax/svn.vim -#usr/share/vim/vim72/syntax/syncolor.vim -#usr/share/vim/vim72/syntax/synload.vim -#usr/share/vim/vim72/syntax/syntax.vim -#usr/share/vim/vim72/syntax/sysctl.vim -#usr/share/vim/vim72/syntax/tads.vim -#usr/share/vim/vim72/syntax/tags.vim -#usr/share/vim/vim72/syntax/tak.vim -#usr/share/vim/vim72/syntax/takcmp.vim -#usr/share/vim/vim72/syntax/takout.vim -#usr/share/vim/vim72/syntax/tar.vim -#usr/share/vim/vim72/syntax/tasm.vim -#usr/share/vim/vim72/syntax/tcl.vim -#usr/share/vim/vim72/syntax/tcsh.vim -#usr/share/vim/vim72/syntax/terminfo.vim -#usr/share/vim/vim72/syntax/tex.vim -#usr/share/vim/vim72/syntax/texinfo.vim -#usr/share/vim/vim72/syntax/texmf.vim -#usr/share/vim/vim72/syntax/tf.vim -#usr/share/vim/vim72/syntax/tidy.vim -#usr/share/vim/vim72/syntax/tilde.vim -#usr/share/vim/vim72/syntax/tli.vim -#usr/share/vim/vim72/syntax/tpp.vim -#usr/share/vim/vim72/syntax/trasys.vim -#usr/share/vim/vim72/syntax/trustees.vim -#usr/share/vim/vim72/syntax/tsalt.vim -#usr/share/vim/vim72/syntax/tsscl.vim -#usr/share/vim/vim72/syntax/tssgm.vim -#usr/share/vim/vim72/syntax/tssop.vim -#usr/share/vim/vim72/syntax/uc.vim -#usr/share/vim/vim72/syntax/udevconf.vim -#usr/share/vim/vim72/syntax/udevperm.vim -#usr/share/vim/vim72/syntax/udevrules.vim -#usr/share/vim/vim72/syntax/uil.vim -#usr/share/vim/vim72/syntax/updatedb.vim -#usr/share/vim/vim72/syntax/valgrind.vim -#usr/share/vim/vim72/syntax/vb.vim -#usr/share/vim/vim72/syntax/vera.vim -#usr/share/vim/vim72/syntax/verilog.vim -#usr/share/vim/vim72/syntax/verilogams.vim -#usr/share/vim/vim72/syntax/vgrindefs.vim -#usr/share/vim/vim72/syntax/vhdl.vim -#usr/share/vim/vim72/syntax/vim.vim -#usr/share/vim/vim72/syntax/viminfo.vim -#usr/share/vim/vim72/syntax/virata.vim -#usr/share/vim/vim72/syntax/vmasm.vim -#usr/share/vim/vim72/syntax/voscm.vim -#usr/share/vim/vim72/syntax/vrml.vim -#usr/share/vim/vim72/syntax/vsejcl.vim -#usr/share/vim/vim72/syntax/wdiff.vim -#usr/share/vim/vim72/syntax/web.vim -#usr/share/vim/vim72/syntax/webmacro.vim -#usr/share/vim/vim72/syntax/wget.vim -#usr/share/vim/vim72/syntax/whitespace.vim -#usr/share/vim/vim72/syntax/winbatch.vim -#usr/share/vim/vim72/syntax/wml.vim -#usr/share/vim/vim72/syntax/wsh.vim -#usr/share/vim/vim72/syntax/wsml.vim -#usr/share/vim/vim72/syntax/wvdial.vim -#usr/share/vim/vim72/syntax/xbl.vim -#usr/share/vim/vim72/syntax/xdefaults.vim -#usr/share/vim/vim72/syntax/xf86conf.vim -#usr/share/vim/vim72/syntax/xhtml.vim -#usr/share/vim/vim72/syntax/xinetd.vim -#usr/share/vim/vim72/syntax/xkb.vim -#usr/share/vim/vim72/syntax/xmath.vim -#usr/share/vim/vim72/syntax/xml.vim -#usr/share/vim/vim72/syntax/xmodmap.vim -#usr/share/vim/vim72/syntax/xpm.vim -#usr/share/vim/vim72/syntax/xpm2.vim -#usr/share/vim/vim72/syntax/xquery.vim -#usr/share/vim/vim72/syntax/xs.vim -#usr/share/vim/vim72/syntax/xsd.vim -#usr/share/vim/vim72/syntax/xslt.vim -#usr/share/vim/vim72/syntax/xxd.vim -#usr/share/vim/vim72/syntax/yacc.vim -#usr/share/vim/vim72/syntax/yaml.vim -#usr/share/vim/vim72/syntax/z8a.vim -#usr/share/vim/vim72/syntax/zsh.vim -#usr/share/vim/vim72/tools -#usr/share/vim/vim72/tools/README.txt -#usr/share/vim/vim72/tools/blink.c -#usr/share/vim/vim72/tools/ccfilter.1 -#usr/share/vim/vim72/tools/ccfilter.c -#usr/share/vim/vim72/tools/ccfilter_README.txt -#usr/share/vim/vim72/tools/efm_filter.pl -#usr/share/vim/vim72/tools/efm_filter.txt -#usr/share/vim/vim72/tools/efm_perl.pl -#usr/share/vim/vim72/tools/mve.awk -#usr/share/vim/vim72/tools/mve.txt -#usr/share/vim/vim72/tools/pltags.pl -#usr/share/vim/vim72/tools/ref -#usr/share/vim/vim72/tools/shtags.1 -#usr/share/vim/vim72/tools/shtags.pl -#usr/share/vim/vim72/tools/vim132 -#usr/share/vim/vim72/tools/vim_vs_net.cmd -#usr/share/vim/vim72/tools/vimm -#usr/share/vim/vim72/tools/vimspell.sh -#usr/share/vim/vim72/tools/vimspell.txt -#usr/share/vim/vim72/tools/xcmdsrv_client.c -#usr/share/vim/vim72/tutor -#usr/share/vim/vim72/tutor/README.el.cp737.txt -#usr/share/vim/vim72/tutor/README.el.txt -#usr/share/vim/vim72/tutor/README.txt -#usr/share/vim/vim72/tutor/tutor -#usr/share/vim/vim72/tutor/tutor.ca -#usr/share/vim/vim72/tutor/tutor.ca.utf-8 -#usr/share/vim/vim72/tutor/tutor.cs -#usr/share/vim/vim72/tutor/tutor.cs.cp1250 -#usr/share/vim/vim72/tutor/tutor.cs.utf-8 -#usr/share/vim/vim72/tutor/tutor.de -#usr/share/vim/vim72/tutor/tutor.de.utf-8 -#usr/share/vim/vim72/tutor/tutor.el -#usr/share/vim/vim72/tutor/tutor.el.cp737 -#usr/share/vim/vim72/tutor/tutor.el.utf-8 -#usr/share/vim/vim72/tutor/tutor.eo.utf-8 -#usr/share/vim/vim72/tutor/tutor.es -#usr/share/vim/vim72/tutor/tutor.es.utf-8 -#usr/share/vim/vim72/tutor/tutor.fr -#usr/share/vim/vim72/tutor/tutor.fr.utf-8 -#usr/share/vim/vim72/tutor/tutor.hr -#usr/share/vim/vim72/tutor/tutor.hr.cp1250 -#usr/share/vim/vim72/tutor/tutor.hr.utf-8 -#usr/share/vim/vim72/tutor/tutor.hu -#usr/share/vim/vim72/tutor/tutor.hu.cp1250 -#usr/share/vim/vim72/tutor/tutor.hu.utf-8 -#usr/share/vim/vim72/tutor/tutor.it -#usr/share/vim/vim72/tutor/tutor.it.utf-8 -#usr/share/vim/vim72/tutor/tutor.ja.euc -#usr/share/vim/vim72/tutor/tutor.ja.sjis -#usr/share/vim/vim72/tutor/tutor.ja.utf-8 -#usr/share/vim/vim72/tutor/tutor.ko.euc -#usr/share/vim/vim72/tutor/tutor.ko.utf-8 -#usr/share/vim/vim72/tutor/tutor.no -#usr/share/vim/vim72/tutor/tutor.no.utf-8 -#usr/share/vim/vim72/tutor/tutor.pl -#usr/share/vim/vim72/tutor/tutor.pl.cp1250 -#usr/share/vim/vim72/tutor/tutor.pl.utf-8 -#usr/share/vim/vim72/tutor/tutor.ru -#usr/share/vim/vim72/tutor/tutor.ru.cp1251 -#usr/share/vim/vim72/tutor/tutor.ru.utf-8 -#usr/share/vim/vim72/tutor/tutor.sk -#usr/share/vim/vim72/tutor/tutor.sk.cp1250 -#usr/share/vim/vim72/tutor/tutor.sk.utf-8 -#usr/share/vim/vim72/tutor/tutor.sv -#usr/share/vim/vim72/tutor/tutor.sv.utf-8 -#usr/share/vim/vim72/tutor/tutor.tr.iso9 -#usr/share/vim/vim72/tutor/tutor.tr.utf-8 -#usr/share/vim/vim72/tutor/tutor.utf-8 -#usr/share/vim/vim72/tutor/tutor.vi.utf-8 -#usr/share/vim/vim72/tutor/tutor.vim -#usr/share/vim/vim72/tutor/tutor.zh.big5 -#usr/share/vim/vim72/tutor/tutor.zh.euc -#usr/share/vim/vim72/tutor/tutor.zh.utf-8 -#usr/share/vim/vim72/vimrc_example.vim +#usr/share/vim/vim74 +#usr/share/vim/vim74/autoload +#usr/share/vim/vim74/autoload/README.txt +#usr/share/vim/vim74/autoload/ada.vim +#usr/share/vim/vim74/autoload/adacomplete.vim +#usr/share/vim/vim74/autoload/ccomplete.vim +#usr/share/vim/vim74/autoload/clojurecomplete.vim +#usr/share/vim/vim74/autoload/csscomplete.vim +#usr/share/vim/vim74/autoload/decada.vim +#usr/share/vim/vim74/autoload/getscript.vim +#usr/share/vim/vim74/autoload/gnat.vim +#usr/share/vim/vim74/autoload/gzip.vim +#usr/share/vim/vim74/autoload/htmlcomplete.vim +#usr/share/vim/vim74/autoload/javascriptcomplete.vim +#usr/share/vim/vim74/autoload/netrw.vim +#usr/share/vim/vim74/autoload/netrwFileHandlers.vim +#usr/share/vim/vim74/autoload/netrwSettings.vim +#usr/share/vim/vim74/autoload/paste.vim +#usr/share/vim/vim74/autoload/phpcomplete.vim +#usr/share/vim/vim74/autoload/python3complete.vim +#usr/share/vim/vim74/autoload/pythoncomplete.vim +#usr/share/vim/vim74/autoload/rubycomplete.vim +#usr/share/vim/vim74/autoload/spellfile.vim +#usr/share/vim/vim74/autoload/sqlcomplete.vim +#usr/share/vim/vim74/autoload/syntaxcomplete.vim +#usr/share/vim/vim74/autoload/tar.vim +#usr/share/vim/vim74/autoload/tohtml.vim +#usr/share/vim/vim74/autoload/vimball.vim +#usr/share/vim/vim74/autoload/xml +#usr/share/vim/vim74/autoload/xml/html32.vim +#usr/share/vim/vim74/autoload/xml/html401f.vim +#usr/share/vim/vim74/autoload/xml/html401s.vim +#usr/share/vim/vim74/autoload/xml/html401t.vim +#usr/share/vim/vim74/autoload/xml/html40f.vim +#usr/share/vim/vim74/autoload/xml/html40s.vim +#usr/share/vim/vim74/autoload/xml/html40t.vim +#usr/share/vim/vim74/autoload/xml/xhtml10f.vim +#usr/share/vim/vim74/autoload/xml/xhtml10s.vim +#usr/share/vim/vim74/autoload/xml/xhtml10t.vim +#usr/share/vim/vim74/autoload/xml/xhtml11.vim +#usr/share/vim/vim74/autoload/xml/xsd.vim +#usr/share/vim/vim74/autoload/xml/xsl.vim +#usr/share/vim/vim74/autoload/xmlcomplete.vim +#usr/share/vim/vim74/autoload/zip.vim +#usr/share/vim/vim74/bugreport.vim +#usr/share/vim/vim74/colors +#usr/share/vim/vim74/colors/README.txt +#usr/share/vim/vim74/colors/blue.vim +#usr/share/vim/vim74/colors/darkblue.vim +#usr/share/vim/vim74/colors/default.vim +#usr/share/vim/vim74/colors/delek.vim +#usr/share/vim/vim74/colors/desert.vim +#usr/share/vim/vim74/colors/elflord.vim +#usr/share/vim/vim74/colors/evening.vim +#usr/share/vim/vim74/colors/koehler.vim +#usr/share/vim/vim74/colors/morning.vim +#usr/share/vim/vim74/colors/murphy.vim +#usr/share/vim/vim74/colors/pablo.vim +#usr/share/vim/vim74/colors/peachpuff.vim +#usr/share/vim/vim74/colors/ron.vim +#usr/share/vim/vim74/colors/shine.vim +#usr/share/vim/vim74/colors/slate.vim +#usr/share/vim/vim74/colors/torte.vim +#usr/share/vim/vim74/colors/zellner.vim +#usr/share/vim/vim74/compiler +#usr/share/vim/vim74/compiler/README.txt +#usr/share/vim/vim74/compiler/ant.vim +#usr/share/vim/vim74/compiler/bcc.vim +#usr/share/vim/vim74/compiler/bdf.vim +#usr/share/vim/vim74/compiler/checkstyle.vim +#usr/share/vim/vim74/compiler/cs.vim +#usr/share/vim/vim74/compiler/cucumber.vim +#usr/share/vim/vim74/compiler/decada.vim +#usr/share/vim/vim74/compiler/dot.vim +#usr/share/vim/vim74/compiler/erlang.vim +#usr/share/vim/vim74/compiler/eruby.vim +#usr/share/vim/vim74/compiler/fortran_F.vim +#usr/share/vim/vim74/compiler/fortran_cv.vim +#usr/share/vim/vim74/compiler/fortran_elf90.vim +#usr/share/vim/vim74/compiler/fortran_g77.vim +#usr/share/vim/vim74/compiler/fortran_lf95.vim +#usr/share/vim/vim74/compiler/fpc.vim +#usr/share/vim/vim74/compiler/g95.vim +#usr/share/vim/vim74/compiler/gcc.vim +#usr/share/vim/vim74/compiler/gfortran.vim +#usr/share/vim/vim74/compiler/gnat.vim +#usr/share/vim/vim74/compiler/haml.vim +#usr/share/vim/vim74/compiler/hp_acc.vim +#usr/share/vim/vim74/compiler/icc.vim +#usr/share/vim/vim74/compiler/ifort.vim +#usr/share/vim/vim74/compiler/intel.vim +#usr/share/vim/vim74/compiler/irix5_c.vim +#usr/share/vim/vim74/compiler/irix5_cpp.vim +#usr/share/vim/vim74/compiler/javac.vim +#usr/share/vim/vim74/compiler/jikes.vim +#usr/share/vim/vim74/compiler/mcs.vim +#usr/share/vim/vim74/compiler/mips_c.vim +#usr/share/vim/vim74/compiler/mipspro_c89.vim +#usr/share/vim/vim74/compiler/mipspro_cpp.vim +#usr/share/vim/vim74/compiler/modelsim_vcom.vim +#usr/share/vim/vim74/compiler/msbuild.vim +#usr/share/vim/vim74/compiler/msvc.vim +#usr/share/vim/vim74/compiler/neato.vim +#usr/share/vim/vim74/compiler/ocaml.vim +#usr/share/vim/vim74/compiler/onsgmls.vim +#usr/share/vim/vim74/compiler/pbx.vim +#usr/share/vim/vim74/compiler/perl.vim +#usr/share/vim/vim74/compiler/php.vim +#usr/share/vim/vim74/compiler/pyunit.vim +#usr/share/vim/vim74/compiler/rake.vim +#usr/share/vim/vim74/compiler/rspec.vim +#usr/share/vim/vim74/compiler/rst.vim +#usr/share/vim/vim74/compiler/ruby.vim +#usr/share/vim/vim74/compiler/rubyunit.vim +#usr/share/vim/vim74/compiler/sass.vim +#usr/share/vim/vim74/compiler/se.vim +#usr/share/vim/vim74/compiler/splint.vim +#usr/share/vim/vim74/compiler/tcl.vim +#usr/share/vim/vim74/compiler/tex.vim +#usr/share/vim/vim74/compiler/tidy.vim +#usr/share/vim/vim74/compiler/xbuild.vim +#usr/share/vim/vim74/compiler/xmllint.vim +#usr/share/vim/vim74/compiler/xmlwf.vim +#usr/share/vim/vim74/delmenu.vim +#usr/share/vim/vim74/doc +#usr/share/vim/vim74/doc/arabic.txt +#usr/share/vim/vim74/doc/autocmd.txt +#usr/share/vim/vim74/doc/change.txt +#usr/share/vim/vim74/doc/cmdline.txt +#usr/share/vim/vim74/doc/debug.txt +#usr/share/vim/vim74/doc/debugger.txt +#usr/share/vim/vim74/doc/develop.txt +#usr/share/vim/vim74/doc/diff.txt +#usr/share/vim/vim74/doc/digraph.txt +#usr/share/vim/vim74/doc/editing.txt +#usr/share/vim/vim74/doc/eval.txt +#usr/share/vim/vim74/doc/farsi.txt +#usr/share/vim/vim74/doc/filetype.txt +#usr/share/vim/vim74/doc/fold.txt +#usr/share/vim/vim74/doc/ft_ada.txt +#usr/share/vim/vim74/doc/ft_sql.txt +#usr/share/vim/vim74/doc/gui.txt +#usr/share/vim/vim74/doc/gui_w16.txt +#usr/share/vim/vim74/doc/gui_w32.txt +#usr/share/vim/vim74/doc/gui_x11.txt +#usr/share/vim/vim74/doc/hangulin.txt +#usr/share/vim/vim74/doc/hebrew.txt +#usr/share/vim/vim74/doc/help.txt +#usr/share/vim/vim74/doc/helphelp.txt +#usr/share/vim/vim74/doc/howto.txt +#usr/share/vim/vim74/doc/if_cscop.txt +#usr/share/vim/vim74/doc/if_lua.txt +#usr/share/vim/vim74/doc/if_mzsch.txt +#usr/share/vim/vim74/doc/if_ole.txt +#usr/share/vim/vim74/doc/if_perl.txt +#usr/share/vim/vim74/doc/if_pyth.txt +#usr/share/vim/vim74/doc/if_ruby.txt +#usr/share/vim/vim74/doc/if_sniff.txt +#usr/share/vim/vim74/doc/if_tcl.txt +#usr/share/vim/vim74/doc/indent.txt +#usr/share/vim/vim74/doc/index.txt +#usr/share/vim/vim74/doc/insert.txt +#usr/share/vim/vim74/doc/intro.txt +#usr/share/vim/vim74/doc/map.txt +#usr/share/vim/vim74/doc/mbyte.txt +#usr/share/vim/vim74/doc/message.txt +#usr/share/vim/vim74/doc/mlang.txt +#usr/share/vim/vim74/doc/motion.txt +#usr/share/vim/vim74/doc/netbeans.txt +#usr/share/vim/vim74/doc/options.txt +#usr/share/vim/vim74/doc/os_390.txt +#usr/share/vim/vim74/doc/os_amiga.txt +#usr/share/vim/vim74/doc/os_beos.txt +#usr/share/vim/vim74/doc/os_dos.txt +#usr/share/vim/vim74/doc/os_mac.txt +#usr/share/vim/vim74/doc/os_mint.txt +#usr/share/vim/vim74/doc/os_msdos.txt +#usr/share/vim/vim74/doc/os_os2.txt +#usr/share/vim/vim74/doc/os_qnx.txt +#usr/share/vim/vim74/doc/os_risc.txt +#usr/share/vim/vim74/doc/os_unix.txt +#usr/share/vim/vim74/doc/os_vms.txt +#usr/share/vim/vim74/doc/os_win32.txt +#usr/share/vim/vim74/doc/pattern.txt +#usr/share/vim/vim74/doc/pi_getscript.txt +#usr/share/vim/vim74/doc/pi_gzip.txt +#usr/share/vim/vim74/doc/pi_netrw.txt +#usr/share/vim/vim74/doc/pi_paren.txt +#usr/share/vim/vim74/doc/pi_spec.txt +#usr/share/vim/vim74/doc/pi_tar.txt +#usr/share/vim/vim74/doc/pi_vimball.txt +#usr/share/vim/vim74/doc/pi_zip.txt +#usr/share/vim/vim74/doc/print.txt +#usr/share/vim/vim74/doc/quickfix.txt +#usr/share/vim/vim74/doc/quickref.txt +#usr/share/vim/vim74/doc/quotes.txt +#usr/share/vim/vim74/doc/recover.txt +#usr/share/vim/vim74/doc/remote.txt +#usr/share/vim/vim74/doc/repeat.txt +#usr/share/vim/vim74/doc/rileft.txt +#usr/share/vim/vim74/doc/russian.txt +#usr/share/vim/vim74/doc/scroll.txt +#usr/share/vim/vim74/doc/sign.txt +#usr/share/vim/vim74/doc/spell.txt +#usr/share/vim/vim74/doc/sponsor.txt +#usr/share/vim/vim74/doc/starting.txt +#usr/share/vim/vim74/doc/syntax.txt +#usr/share/vim/vim74/doc/tabpage.txt +#usr/share/vim/vim74/doc/tags +#usr/share/vim/vim74/doc/tagsrch.txt +#usr/share/vim/vim74/doc/term.txt +#usr/share/vim/vim74/doc/tips.txt +#usr/share/vim/vim74/doc/todo.txt +#usr/share/vim/vim74/doc/uganda.txt +#usr/share/vim/vim74/doc/undo.txt +#usr/share/vim/vim74/doc/usr_01.txt +#usr/share/vim/vim74/doc/usr_02.txt +#usr/share/vim/vim74/doc/usr_03.txt +#usr/share/vim/vim74/doc/usr_04.txt +#usr/share/vim/vim74/doc/usr_05.txt +#usr/share/vim/vim74/doc/usr_06.txt +#usr/share/vim/vim74/doc/usr_07.txt +#usr/share/vim/vim74/doc/usr_08.txt +#usr/share/vim/vim74/doc/usr_09.txt +#usr/share/vim/vim74/doc/usr_10.txt +#usr/share/vim/vim74/doc/usr_11.txt +#usr/share/vim/vim74/doc/usr_12.txt +#usr/share/vim/vim74/doc/usr_20.txt +#usr/share/vim/vim74/doc/usr_21.txt +#usr/share/vim/vim74/doc/usr_22.txt +#usr/share/vim/vim74/doc/usr_23.txt +#usr/share/vim/vim74/doc/usr_24.txt +#usr/share/vim/vim74/doc/usr_25.txt +#usr/share/vim/vim74/doc/usr_26.txt +#usr/share/vim/vim74/doc/usr_27.txt +#usr/share/vim/vim74/doc/usr_28.txt +#usr/share/vim/vim74/doc/usr_29.txt +#usr/share/vim/vim74/doc/usr_30.txt +#usr/share/vim/vim74/doc/usr_31.txt +#usr/share/vim/vim74/doc/usr_32.txt +#usr/share/vim/vim74/doc/usr_40.txt +#usr/share/vim/vim74/doc/usr_41.txt +#usr/share/vim/vim74/doc/usr_42.txt +#usr/share/vim/vim74/doc/usr_43.txt +#usr/share/vim/vim74/doc/usr_44.txt +#usr/share/vim/vim74/doc/usr_45.txt +#usr/share/vim/vim74/doc/usr_90.txt +#usr/share/vim/vim74/doc/usr_toc.txt +#usr/share/vim/vim74/doc/various.txt +#usr/share/vim/vim74/doc/version4.txt +#usr/share/vim/vim74/doc/version5.txt +#usr/share/vim/vim74/doc/version6.txt +#usr/share/vim/vim74/doc/version7.txt +#usr/share/vim/vim74/doc/vi_diff.txt +#usr/share/vim/vim74/doc/vim2html.pl +#usr/share/vim/vim74/doc/visual.txt +#usr/share/vim/vim74/doc/windows.txt +#usr/share/vim/vim74/doc/workshop.txt +#usr/share/vim/vim74/evim.vim +#usr/share/vim/vim74/filetype.vim +#usr/share/vim/vim74/ftoff.vim +#usr/share/vim/vim74/ftplugin +#usr/share/vim/vim74/ftplugin.vim +#usr/share/vim/vim74/ftplugin/README.txt +#usr/share/vim/vim74/ftplugin/a2ps.vim +#usr/share/vim/vim74/ftplugin/aap.vim +#usr/share/vim/vim74/ftplugin/abap.vim +#usr/share/vim/vim74/ftplugin/abaqus.vim +#usr/share/vim/vim74/ftplugin/ada.vim +#usr/share/vim/vim74/ftplugin/alsaconf.vim +#usr/share/vim/vim74/ftplugin/ant.vim +#usr/share/vim/vim74/ftplugin/arch.vim +#usr/share/vim/vim74/ftplugin/art.vim +#usr/share/vim/vim74/ftplugin/aspvbs.vim +#usr/share/vim/vim74/ftplugin/automake.vim +#usr/share/vim/vim74/ftplugin/bdf.vim +#usr/share/vim/vim74/ftplugin/bst.vim +#usr/share/vim/vim74/ftplugin/btm.vim +#usr/share/vim/vim74/ftplugin/c.vim +#usr/share/vim/vim74/ftplugin/calendar.vim +#usr/share/vim/vim74/ftplugin/cdrdaoconf.vim +#usr/share/vim/vim74/ftplugin/ch.vim +#usr/share/vim/vim74/ftplugin/changelog.vim +#usr/share/vim/vim74/ftplugin/clojure.vim +#usr/share/vim/vim74/ftplugin/cobol.vim +#usr/share/vim/vim74/ftplugin/conf.vim +#usr/share/vim/vim74/ftplugin/config.vim +#usr/share/vim/vim74/ftplugin/context.vim +#usr/share/vim/vim74/ftplugin/cpp.vim +#usr/share/vim/vim74/ftplugin/crm.vim +#usr/share/vim/vim74/ftplugin/cs.vim +#usr/share/vim/vim74/ftplugin/csc.vim +#usr/share/vim/vim74/ftplugin/csh.vim +#usr/share/vim/vim74/ftplugin/css.vim +#usr/share/vim/vim74/ftplugin/cucumber.vim +#usr/share/vim/vim74/ftplugin/cvsrc.vim +#usr/share/vim/vim74/ftplugin/debchangelog.vim +#usr/share/vim/vim74/ftplugin/debcontrol.vim +#usr/share/vim/vim74/ftplugin/denyhosts.vim +#usr/share/vim/vim74/ftplugin/dictconf.vim +#usr/share/vim/vim74/ftplugin/dictdconf.vim +#usr/share/vim/vim74/ftplugin/diff.vim +#usr/share/vim/vim74/ftplugin/dircolors.vim +#usr/share/vim/vim74/ftplugin/docbk.vim +#usr/share/vim/vim74/ftplugin/dosbatch.vim +#usr/share/vim/vim74/ftplugin/dosini.vim +#usr/share/vim/vim74/ftplugin/dtd.vim +#usr/share/vim/vim74/ftplugin/dtrace.vim +#usr/share/vim/vim74/ftplugin/elinks.vim +#usr/share/vim/vim74/ftplugin/erlang.vim +#usr/share/vim/vim74/ftplugin/eruby.vim +#usr/share/vim/vim74/ftplugin/eterm.vim +#usr/share/vim/vim74/ftplugin/falcon.vim +#usr/share/vim/vim74/ftplugin/fetchmail.vim +#usr/share/vim/vim74/ftplugin/flexwiki.vim +#usr/share/vim/vim74/ftplugin/fortran.vim +#usr/share/vim/vim74/ftplugin/framescript.vim +#usr/share/vim/vim74/ftplugin/fvwm.vim +#usr/share/vim/vim74/ftplugin/git.vim +#usr/share/vim/vim74/ftplugin/gitcommit.vim +#usr/share/vim/vim74/ftplugin/gitconfig.vim +#usr/share/vim/vim74/ftplugin/gitrebase.vim +#usr/share/vim/vim74/ftplugin/gitsendemail.vim +#usr/share/vim/vim74/ftplugin/gpg.vim +#usr/share/vim/vim74/ftplugin/gprof.vim +#usr/share/vim/vim74/ftplugin/group.vim +#usr/share/vim/vim74/ftplugin/grub.vim +#usr/share/vim/vim74/ftplugin/haml.vim +#usr/share/vim/vim74/ftplugin/hamster.vim +#usr/share/vim/vim74/ftplugin/haskell.vim +#usr/share/vim/vim74/ftplugin/help.vim +#usr/share/vim/vim74/ftplugin/hostconf.vim +#usr/share/vim/vim74/ftplugin/hostsaccess.vim +#usr/share/vim/vim74/ftplugin/html.vim +#usr/share/vim/vim74/ftplugin/htmldjango.vim +#usr/share/vim/vim74/ftplugin/indent.vim +#usr/share/vim/vim74/ftplugin/initex.vim +#usr/share/vim/vim74/ftplugin/ishd.vim +#usr/share/vim/vim74/ftplugin/java.vim +#usr/share/vim/vim74/ftplugin/javascript.vim +#usr/share/vim/vim74/ftplugin/jsp.vim +#usr/share/vim/vim74/ftplugin/kconfig.vim +#usr/share/vim/vim74/ftplugin/kwt.vim +#usr/share/vim/vim74/ftplugin/ld.vim +#usr/share/vim/vim74/ftplugin/lftp.vim +#usr/share/vim/vim74/ftplugin/libao.vim +#usr/share/vim/vim74/ftplugin/limits.vim +#usr/share/vim/vim74/ftplugin/liquid.vim +#usr/share/vim/vim74/ftplugin/lisp.vim +#usr/share/vim/vim74/ftplugin/logcheck.vim +#usr/share/vim/vim74/ftplugin/loginaccess.vim +#usr/share/vim/vim74/ftplugin/logindefs.vim +#usr/share/vim/vim74/ftplugin/logtalk.dict +#usr/share/vim/vim74/ftplugin/logtalk.vim +#usr/share/vim/vim74/ftplugin/lprolog.vim +#usr/share/vim/vim74/ftplugin/lua.vim +#usr/share/vim/vim74/ftplugin/m4.vim +#usr/share/vim/vim74/ftplugin/mail.vim +#usr/share/vim/vim74/ftplugin/mailaliases.vim +#usr/share/vim/vim74/ftplugin/mailcap.vim +#usr/share/vim/vim74/ftplugin/make.vim +#usr/share/vim/vim74/ftplugin/man.vim +#usr/share/vim/vim74/ftplugin/manconf.vim +#usr/share/vim/vim74/ftplugin/markdown.vim +#usr/share/vim/vim74/ftplugin/matlab.vim +#usr/share/vim/vim74/ftplugin/mf.vim +#usr/share/vim/vim74/ftplugin/modconf.vim +#usr/share/vim/vim74/ftplugin/mp.vim +#usr/share/vim/vim74/ftplugin/mplayerconf.vim +#usr/share/vim/vim74/ftplugin/mrxvtrc.vim +#usr/share/vim/vim74/ftplugin/msmessages.vim +#usr/share/vim/vim74/ftplugin/muttrc.vim +#usr/share/vim/vim74/ftplugin/nanorc.vim +#usr/share/vim/vim74/ftplugin/netrc.vim +#usr/share/vim/vim74/ftplugin/nsis.vim +#usr/share/vim/vim74/ftplugin/objc.vim +#usr/share/vim/vim74/ftplugin/ocaml.vim +#usr/share/vim/vim74/ftplugin/occam.vim +#usr/share/vim/vim74/ftplugin/pamconf.vim +#usr/share/vim/vim74/ftplugin/pascal.vim +#usr/share/vim/vim74/ftplugin/passwd.vim +#usr/share/vim/vim74/ftplugin/pdf.vim +#usr/share/vim/vim74/ftplugin/perl.vim +#usr/share/vim/vim74/ftplugin/perl6.vim +#usr/share/vim/vim74/ftplugin/php.vim +#usr/share/vim/vim74/ftplugin/pinfo.vim +#usr/share/vim/vim74/ftplugin/plaintex.vim +#usr/share/vim/vim74/ftplugin/postscr.vim +#usr/share/vim/vim74/ftplugin/procmail.vim +#usr/share/vim/vim74/ftplugin/prolog.vim +#usr/share/vim/vim74/ftplugin/protocols.vim +#usr/share/vim/vim74/ftplugin/pyrex.vim +#usr/share/vim/vim74/ftplugin/python.vim +#usr/share/vim/vim74/ftplugin/qf.vim +#usr/share/vim/vim74/ftplugin/quake.vim +#usr/share/vim/vim74/ftplugin/racc.vim +#usr/share/vim/vim74/ftplugin/readline.vim +#usr/share/vim/vim74/ftplugin/reva.vim +#usr/share/vim/vim74/ftplugin/rnc.vim +#usr/share/vim/vim74/ftplugin/rpl.vim +#usr/share/vim/vim74/ftplugin/rst.vim +#usr/share/vim/vim74/ftplugin/ruby.vim +#usr/share/vim/vim74/ftplugin/sass.vim +#usr/share/vim/vim74/ftplugin/scheme.vim +#usr/share/vim/vim74/ftplugin/screen.vim +#usr/share/vim/vim74/ftplugin/scss.vim +#usr/share/vim/vim74/ftplugin/sensors.vim +#usr/share/vim/vim74/ftplugin/services.vim +#usr/share/vim/vim74/ftplugin/setserial.vim +#usr/share/vim/vim74/ftplugin/sgml.vim +#usr/share/vim/vim74/ftplugin/sh.vim +#usr/share/vim/vim74/ftplugin/sieve.vim +#usr/share/vim/vim74/ftplugin/slpconf.vim +#usr/share/vim/vim74/ftplugin/slpreg.vim +#usr/share/vim/vim74/ftplugin/slpspi.vim +#usr/share/vim/vim74/ftplugin/spec.vim +#usr/share/vim/vim74/ftplugin/sql.vim +#usr/share/vim/vim74/ftplugin/sshconfig.vim +#usr/share/vim/vim74/ftplugin/sudoers.vim +#usr/share/vim/vim74/ftplugin/svg.vim +#usr/share/vim/vim74/ftplugin/sysctl.vim +#usr/share/vim/vim74/ftplugin/tcl.vim +#usr/share/vim/vim74/ftplugin/tcsh.vim +#usr/share/vim/vim74/ftplugin/terminfo.vim +#usr/share/vim/vim74/ftplugin/tex.vim +#usr/share/vim/vim74/ftplugin/treetop.vim +#usr/share/vim/vim74/ftplugin/tt2html.vim +#usr/share/vim/vim74/ftplugin/udevconf.vim +#usr/share/vim/vim74/ftplugin/udevperm.vim +#usr/share/vim/vim74/ftplugin/udevrules.vim +#usr/share/vim/vim74/ftplugin/updatedb.vim +#usr/share/vim/vim74/ftplugin/vb.vim +#usr/share/vim/vim74/ftplugin/verilog.vim +#usr/share/vim/vim74/ftplugin/vhdl.vim +#usr/share/vim/vim74/ftplugin/vim.vim +#usr/share/vim/vim74/ftplugin/xdefaults.vim +#usr/share/vim/vim74/ftplugin/xf86conf.vim +#usr/share/vim/vim74/ftplugin/xhtml.vim +#usr/share/vim/vim74/ftplugin/xinetd.vim +#usr/share/vim/vim74/ftplugin/xml.vim +#usr/share/vim/vim74/ftplugin/xmodmap.vim +#usr/share/vim/vim74/ftplugin/xs.vim +#usr/share/vim/vim74/ftplugin/xsd.vim +#usr/share/vim/vim74/ftplugin/xslt.vim +#usr/share/vim/vim74/ftplugin/yaml.vim +#usr/share/vim/vim74/ftplugin/zimbu.vim +#usr/share/vim/vim74/ftplugin/zsh.vim +#usr/share/vim/vim74/ftplugof.vim +#usr/share/vim/vim74/gvimrc_example.vim +#usr/share/vim/vim74/indent +#usr/share/vim/vim74/indent.vim +#usr/share/vim/vim74/indent/README.txt +#usr/share/vim/vim74/indent/aap.vim +#usr/share/vim/vim74/indent/ada.vim +#usr/share/vim/vim74/indent/ant.vim +#usr/share/vim/vim74/indent/automake.vim +#usr/share/vim/vim74/indent/awk.vim +#usr/share/vim/vim74/indent/bib.vim +#usr/share/vim/vim74/indent/bst.vim +#usr/share/vim/vim74/indent/c.vim +#usr/share/vim/vim74/indent/cdl.vim +#usr/share/vim/vim74/indent/ch.vim +#usr/share/vim/vim74/indent/chaiscript.vim +#usr/share/vim/vim74/indent/changelog.vim +#usr/share/vim/vim74/indent/clojure.vim +#usr/share/vim/vim74/indent/cmake.vim +#usr/share/vim/vim74/indent/cobol.vim +#usr/share/vim/vim74/indent/config.vim +#usr/share/vim/vim74/indent/cpp.vim +#usr/share/vim/vim74/indent/cs.vim +#usr/share/vim/vim74/indent/css.vim +#usr/share/vim/vim74/indent/cucumber.vim +#usr/share/vim/vim74/indent/cuda.vim +#usr/share/vim/vim74/indent/d.vim +#usr/share/vim/vim74/indent/dictconf.vim +#usr/share/vim/vim74/indent/dictdconf.vim +#usr/share/vim/vim74/indent/docbk.vim +#usr/share/vim/vim74/indent/dtd.vim +#usr/share/vim/vim74/indent/dtrace.vim +#usr/share/vim/vim74/indent/dylan.vim +#usr/share/vim/vim74/indent/eiffel.vim +#usr/share/vim/vim74/indent/erlang.vim +#usr/share/vim/vim74/indent/eruby.vim +#usr/share/vim/vim74/indent/eterm.vim +#usr/share/vim/vim74/indent/falcon.vim +#usr/share/vim/vim74/indent/fortran.vim +#usr/share/vim/vim74/indent/framescript.vim +#usr/share/vim/vim74/indent/gitconfig.vim +#usr/share/vim/vim74/indent/gitolite.vim +#usr/share/vim/vim74/indent/haml.vim +#usr/share/vim/vim74/indent/hamster.vim +#usr/share/vim/vim74/indent/html.vim +#usr/share/vim/vim74/indent/htmldjango.vim +#usr/share/vim/vim74/indent/idlang.vim +#usr/share/vim/vim74/indent/ishd.vim +#usr/share/vim/vim74/indent/java.vim +#usr/share/vim/vim74/indent/javascript.vim +#usr/share/vim/vim74/indent/jsp.vim +#usr/share/vim/vim74/indent/ld.vim +#usr/share/vim/vim74/indent/lifelines.vim +#usr/share/vim/vim74/indent/liquid.vim +#usr/share/vim/vim74/indent/lisp.vim +#usr/share/vim/vim74/indent/logtalk.vim +#usr/share/vim/vim74/indent/lua.vim +#usr/share/vim/vim74/indent/mail.vim +#usr/share/vim/vim74/indent/make.vim +#usr/share/vim/vim74/indent/matlab.vim +#usr/share/vim/vim74/indent/mma.vim +#usr/share/vim/vim74/indent/mp.vim +#usr/share/vim/vim74/indent/objc.vim +#usr/share/vim/vim74/indent/ocaml.vim +#usr/share/vim/vim74/indent/occam.vim +#usr/share/vim/vim74/indent/pascal.vim +#usr/share/vim/vim74/indent/perl.vim +#usr/share/vim/vim74/indent/perl6.vim +#usr/share/vim/vim74/indent/php.vim +#usr/share/vim/vim74/indent/postscr.vim +#usr/share/vim/vim74/indent/pov.vim +#usr/share/vim/vim74/indent/prolog.vim +#usr/share/vim/vim74/indent/pyrex.vim +#usr/share/vim/vim74/indent/python.vim +#usr/share/vim/vim74/indent/r.vim +#usr/share/vim/vim74/indent/readline.vim +#usr/share/vim/vim74/indent/rpl.vim +#usr/share/vim/vim74/indent/rst.vim +#usr/share/vim/vim74/indent/ruby.vim +#usr/share/vim/vim74/indent/sass.vim +#usr/share/vim/vim74/indent/scheme.vim +#usr/share/vim/vim74/indent/scss.vim +#usr/share/vim/vim74/indent/sdl.vim +#usr/share/vim/vim74/indent/sh.vim +#usr/share/vim/vim74/indent/sml.vim +#usr/share/vim/vim74/indent/sql.vim +#usr/share/vim/vim74/indent/sqlanywhere.vim +#usr/share/vim/vim74/indent/tcl.vim +#usr/share/vim/vim74/indent/tcsh.vim +#usr/share/vim/vim74/indent/tex.vim +#usr/share/vim/vim74/indent/tf.vim +#usr/share/vim/vim74/indent/tilde.vim +#usr/share/vim/vim74/indent/treetop.vim +#usr/share/vim/vim74/indent/vb.vim +#usr/share/vim/vim74/indent/verilog.vim +#usr/share/vim/vim74/indent/vhdl.vim +#usr/share/vim/vim74/indent/vim.vim +#usr/share/vim/vim74/indent/xf86conf.vim +#usr/share/vim/vim74/indent/xhtml.vim +#usr/share/vim/vim74/indent/xinetd.vim +#usr/share/vim/vim74/indent/xml.vim +#usr/share/vim/vim74/indent/xsd.vim +#usr/share/vim/vim74/indent/xslt.vim +#usr/share/vim/vim74/indent/yacc.vim +#usr/share/vim/vim74/indent/yaml.vim +#usr/share/vim/vim74/indent/zimbu.vim +#usr/share/vim/vim74/indent/zsh.vim +#usr/share/vim/vim74/indoff.vim +#usr/share/vim/vim74/macros +#usr/share/vim/vim74/macros/README.txt +#usr/share/vim/vim74/macros/dvorak +#usr/share/vim/vim74/macros/editexisting.vim +#usr/share/vim/vim74/macros/hanoi +#usr/share/vim/vim74/macros/hanoi/click.me +#usr/share/vim/vim74/macros/hanoi/hanoi.vim +#usr/share/vim/vim74/macros/hanoi/poster +#usr/share/vim/vim74/macros/justify.vim +#usr/share/vim/vim74/macros/less.bat +#usr/share/vim/vim74/macros/less.sh +#usr/share/vim/vim74/macros/less.vim +#usr/share/vim/vim74/macros/life +#usr/share/vim/vim74/macros/life/click.me +#usr/share/vim/vim74/macros/life/life.vim +#usr/share/vim/vim74/macros/matchit.txt +#usr/share/vim/vim74/macros/matchit.vim +#usr/share/vim/vim74/macros/maze +#usr/share/vim/vim74/macros/maze/Makefile +#usr/share/vim/vim74/macros/maze/README.txt +#usr/share/vim/vim74/macros/maze/main.aap +#usr/share/vim/vim74/macros/maze/maze.c +#usr/share/vim/vim74/macros/maze/maze_5.78 +#usr/share/vim/vim74/macros/maze/maze_mac +#usr/share/vim/vim74/macros/maze/mazeansi.c +#usr/share/vim/vim74/macros/maze/mazeclean.c +#usr/share/vim/vim74/macros/maze/poster +#usr/share/vim/vim74/macros/shellmenu.vim +#usr/share/vim/vim74/macros/swapmous.vim +#usr/share/vim/vim74/macros/urm +#usr/share/vim/vim74/macros/urm/README.txt +#usr/share/vim/vim74/macros/urm/examples +#usr/share/vim/vim74/macros/urm/urm +#usr/share/vim/vim74/macros/urm/urm.vim +#usr/share/vim/vim74/menu.vim +#usr/share/vim/vim74/mswin.vim +#usr/share/vim/vim74/optwin.vim +#usr/share/vim/vim74/plugin +#usr/share/vim/vim74/plugin/README.txt +#usr/share/vim/vim74/plugin/getscriptPlugin.vim +#usr/share/vim/vim74/plugin/gzip.vim +#usr/share/vim/vim74/plugin/matchparen.vim +#usr/share/vim/vim74/plugin/netrwPlugin.vim +#usr/share/vim/vim74/plugin/rrhelper.vim +#usr/share/vim/vim74/plugin/spellfile.vim +#usr/share/vim/vim74/plugin/tarPlugin.vim +#usr/share/vim/vim74/plugin/tohtml.vim +#usr/share/vim/vim74/plugin/vimballPlugin.vim +#usr/share/vim/vim74/plugin/zipPlugin.vim +#usr/share/vim/vim74/print +#usr/share/vim/vim74/print/ascii.ps +#usr/share/vim/vim74/print/cidfont.ps +#usr/share/vim/vim74/print/cns_roman.ps +#usr/share/vim/vim74/print/cp1250.ps +#usr/share/vim/vim74/print/cp1251.ps +#usr/share/vim/vim74/print/cp1252.ps +#usr/share/vim/vim74/print/cp1253.ps +#usr/share/vim/vim74/print/cp1254.ps +#usr/share/vim/vim74/print/cp1255.ps +#usr/share/vim/vim74/print/cp1257.ps +#usr/share/vim/vim74/print/dec-mcs.ps +#usr/share/vim/vim74/print/ebcdic-uk.ps +#usr/share/vim/vim74/print/gb_roman.ps +#usr/share/vim/vim74/print/hp-roman8.ps +#usr/share/vim/vim74/print/iso-8859-10.ps +#usr/share/vim/vim74/print/iso-8859-11.ps +#usr/share/vim/vim74/print/iso-8859-13.ps +#usr/share/vim/vim74/print/iso-8859-14.ps +#usr/share/vim/vim74/print/iso-8859-15.ps +#usr/share/vim/vim74/print/iso-8859-2.ps +#usr/share/vim/vim74/print/iso-8859-3.ps +#usr/share/vim/vim74/print/iso-8859-4.ps +#usr/share/vim/vim74/print/iso-8859-5.ps +#usr/share/vim/vim74/print/iso-8859-7.ps +#usr/share/vim/vim74/print/iso-8859-8.ps +#usr/share/vim/vim74/print/iso-8859-9.ps +#usr/share/vim/vim74/print/jis_roman.ps +#usr/share/vim/vim74/print/koi8-r.ps +#usr/share/vim/vim74/print/koi8-u.ps +#usr/share/vim/vim74/print/ks_roman.ps +#usr/share/vim/vim74/print/latin1.ps +#usr/share/vim/vim74/print/mac-roman.ps +#usr/share/vim/vim74/print/prolog.ps +#usr/share/vim/vim74/scripts.vim +#usr/share/vim/vim74/spell +#usr/share/vim/vim74/spell/check_locales.vim +#usr/share/vim/vim74/spell/cleanadd.vim +#usr/share/vim/vim74/spell/en.ascii.spl +#usr/share/vim/vim74/spell/en.ascii.sug +#usr/share/vim/vim74/spell/en.latin1.spl +#usr/share/vim/vim74/spell/en.latin1.sug +#usr/share/vim/vim74/spell/en.utf-8.spl +#usr/share/vim/vim74/spell/en.utf-8.sug +#usr/share/vim/vim74/spell/fixdup.vim +#usr/share/vim/vim74/spell/he.vim +#usr/share/vim/vim74/spell/spell.vim +#usr/share/vim/vim74/spell/yi.vim +#usr/share/vim/vim74/synmenu.vim +#usr/share/vim/vim74/syntax +#usr/share/vim/vim74/syntax/2html.vim +#usr/share/vim/vim74/syntax/README.txt +#usr/share/vim/vim74/syntax/a2ps.vim +#usr/share/vim/vim74/syntax/a65.vim +#usr/share/vim/vim74/syntax/aap.vim +#usr/share/vim/vim74/syntax/abap.vim +#usr/share/vim/vim74/syntax/abaqus.vim +#usr/share/vim/vim74/syntax/abc.vim +#usr/share/vim/vim74/syntax/abel.vim +#usr/share/vim/vim74/syntax/acedb.vim +#usr/share/vim/vim74/syntax/ada.vim +#usr/share/vim/vim74/syntax/aflex.vim +#usr/share/vim/vim74/syntax/ahdl.vim +#usr/share/vim/vim74/syntax/alsaconf.vim +#usr/share/vim/vim74/syntax/amiga.vim +#usr/share/vim/vim74/syntax/aml.vim +#usr/share/vim/vim74/syntax/ampl.vim +#usr/share/vim/vim74/syntax/ant.vim +#usr/share/vim/vim74/syntax/antlr.vim +#usr/share/vim/vim74/syntax/apache.vim +#usr/share/vim/vim74/syntax/apachestyle.vim +#usr/share/vim/vim74/syntax/aptconf.vim +#usr/share/vim/vim74/syntax/arch.vim +#usr/share/vim/vim74/syntax/art.vim +#usr/share/vim/vim74/syntax/asciidoc.vim +#usr/share/vim/vim74/syntax/asm.vim +#usr/share/vim/vim74/syntax/asm68k.vim +#usr/share/vim/vim74/syntax/asmh8300.vim +#usr/share/vim/vim74/syntax/asn.vim +#usr/share/vim/vim74/syntax/aspperl.vim +#usr/share/vim/vim74/syntax/aspvbs.vim +#usr/share/vim/vim74/syntax/asterisk.vim +#usr/share/vim/vim74/syntax/asteriskvm.vim +#usr/share/vim/vim74/syntax/atlas.vim +#usr/share/vim/vim74/syntax/autohotkey.vim +#usr/share/vim/vim74/syntax/autoit.vim +#usr/share/vim/vim74/syntax/automake.vim +#usr/share/vim/vim74/syntax/ave.vim +#usr/share/vim/vim74/syntax/awk.vim +#usr/share/vim/vim74/syntax/ayacc.vim +#usr/share/vim/vim74/syntax/b.vim +#usr/share/vim/vim74/syntax/baan.vim +#usr/share/vim/vim74/syntax/basic.vim +#usr/share/vim/vim74/syntax/bc.vim +#usr/share/vim/vim74/syntax/bdf.vim +#usr/share/vim/vim74/syntax/bib.vim +#usr/share/vim/vim74/syntax/bindzone.vim +#usr/share/vim/vim74/syntax/blank.vim +#usr/share/vim/vim74/syntax/bst.vim +#usr/share/vim/vim74/syntax/btm.vim +#usr/share/vim/vim74/syntax/bzr.vim +#usr/share/vim/vim74/syntax/c.vim +#usr/share/vim/vim74/syntax/cabal.vim +#usr/share/vim/vim74/syntax/calendar.vim +#usr/share/vim/vim74/syntax/catalog.vim +#usr/share/vim/vim74/syntax/cdl.vim +#usr/share/vim/vim74/syntax/cdrdaoconf.vim +#usr/share/vim/vim74/syntax/cdrtoc.vim +#usr/share/vim/vim74/syntax/cf.vim +#usr/share/vim/vim74/syntax/cfg.vim +#usr/share/vim/vim74/syntax/ch.vim +#usr/share/vim/vim74/syntax/chaiscript.vim +#usr/share/vim/vim74/syntax/change.vim +#usr/share/vim/vim74/syntax/changelog.vim +#usr/share/vim/vim74/syntax/chaskell.vim +#usr/share/vim/vim74/syntax/cheetah.vim +#usr/share/vim/vim74/syntax/chill.vim +#usr/share/vim/vim74/syntax/chordpro.vim +#usr/share/vim/vim74/syntax/cl.vim +#usr/share/vim/vim74/syntax/clean.vim +#usr/share/vim/vim74/syntax/clipper.vim +#usr/share/vim/vim74/syntax/clojure.vim +#usr/share/vim/vim74/syntax/cmake.vim +#usr/share/vim/vim74/syntax/cmusrc.vim +#usr/share/vim/vim74/syntax/cobol.vim +#usr/share/vim/vim74/syntax/coco.vim +#usr/share/vim/vim74/syntax/colortest.vim +#usr/share/vim/vim74/syntax/conaryrecipe.vim +#usr/share/vim/vim74/syntax/conf.vim +#usr/share/vim/vim74/syntax/config.vim +#usr/share/vim/vim74/syntax/context.vim +#usr/share/vim/vim74/syntax/cpp.vim +#usr/share/vim/vim74/syntax/crm.vim +#usr/share/vim/vim74/syntax/crontab.vim +#usr/share/vim/vim74/syntax/cs.vim +#usr/share/vim/vim74/syntax/csc.vim +#usr/share/vim/vim74/syntax/csdl.vim +#usr/share/vim/vim74/syntax/csh.vim +#usr/share/vim/vim74/syntax/csp.vim +#usr/share/vim/vim74/syntax/css.vim +#usr/share/vim/vim74/syntax/cterm.vim +#usr/share/vim/vim74/syntax/ctrlh.vim +#usr/share/vim/vim74/syntax/cucumber.vim +#usr/share/vim/vim74/syntax/cuda.vim +#usr/share/vim/vim74/syntax/cupl.vim +#usr/share/vim/vim74/syntax/cuplsim.vim +#usr/share/vim/vim74/syntax/cvs.vim +#usr/share/vim/vim74/syntax/cvsrc.vim +#usr/share/vim/vim74/syntax/cweb.vim +#usr/share/vim/vim74/syntax/cynlib.vim +#usr/share/vim/vim74/syntax/cynpp.vim +#usr/share/vim/vim74/syntax/d.vim +#usr/share/vim/vim74/syntax/datascript.vim +#usr/share/vim/vim74/syntax/dcd.vim +#usr/share/vim/vim74/syntax/dcl.vim +#usr/share/vim/vim74/syntax/debchangelog.vim +#usr/share/vim/vim74/syntax/debcontrol.vim +#usr/share/vim/vim74/syntax/debsources.vim +#usr/share/vim/vim74/syntax/def.vim +#usr/share/vim/vim74/syntax/denyhosts.vim +#usr/share/vim/vim74/syntax/desc.vim +#usr/share/vim/vim74/syntax/desktop.vim +#usr/share/vim/vim74/syntax/dictconf.vim +#usr/share/vim/vim74/syntax/dictdconf.vim +#usr/share/vim/vim74/syntax/diff.vim +#usr/share/vim/vim74/syntax/dircolors.vim +#usr/share/vim/vim74/syntax/dirpager.vim +#usr/share/vim/vim74/syntax/diva.vim +#usr/share/vim/vim74/syntax/django.vim +#usr/share/vim/vim74/syntax/dns.vim +#usr/share/vim/vim74/syntax/dnsmasq.vim +#usr/share/vim/vim74/syntax/docbk.vim +#usr/share/vim/vim74/syntax/docbksgml.vim +#usr/share/vim/vim74/syntax/docbkxml.vim +#usr/share/vim/vim74/syntax/dosbatch.vim +#usr/share/vim/vim74/syntax/dosini.vim +#usr/share/vim/vim74/syntax/dot.vim +#usr/share/vim/vim74/syntax/doxygen.vim +#usr/share/vim/vim74/syntax/dracula.vim +#usr/share/vim/vim74/syntax/dsl.vim +#usr/share/vim/vim74/syntax/dtd.vim +#usr/share/vim/vim74/syntax/dtml.vim +#usr/share/vim/vim74/syntax/dtrace.vim +#usr/share/vim/vim74/syntax/dts.vim +#usr/share/vim/vim74/syntax/dylan.vim +#usr/share/vim/vim74/syntax/dylanintr.vim +#usr/share/vim/vim74/syntax/dylanlid.vim +#usr/share/vim/vim74/syntax/ecd.vim +#usr/share/vim/vim74/syntax/edif.vim +#usr/share/vim/vim74/syntax/eiffel.vim +#usr/share/vim/vim74/syntax/elf.vim +#usr/share/vim/vim74/syntax/elinks.vim +#usr/share/vim/vim74/syntax/elmfilt.vim +#usr/share/vim/vim74/syntax/erlang.vim +#usr/share/vim/vim74/syntax/eruby.vim +#usr/share/vim/vim74/syntax/esmtprc.vim +#usr/share/vim/vim74/syntax/esqlc.vim +#usr/share/vim/vim74/syntax/esterel.vim +#usr/share/vim/vim74/syntax/eterm.vim +#usr/share/vim/vim74/syntax/eviews.vim +#usr/share/vim/vim74/syntax/exim.vim +#usr/share/vim/vim74/syntax/expect.vim +#usr/share/vim/vim74/syntax/exports.vim +#usr/share/vim/vim74/syntax/falcon.vim +#usr/share/vim/vim74/syntax/fan.vim +#usr/share/vim/vim74/syntax/fasm.vim +#usr/share/vim/vim74/syntax/fdcc.vim +#usr/share/vim/vim74/syntax/fetchmail.vim +#usr/share/vim/vim74/syntax/fgl.vim +#usr/share/vim/vim74/syntax/flexwiki.vim +#usr/share/vim/vim74/syntax/focexec.vim +#usr/share/vim/vim74/syntax/form.vim +#usr/share/vim/vim74/syntax/forth.vim +#usr/share/vim/vim74/syntax/fortran.vim +#usr/share/vim/vim74/syntax/foxpro.vim +#usr/share/vim/vim74/syntax/framescript.vim +#usr/share/vim/vim74/syntax/freebasic.vim +#usr/share/vim/vim74/syntax/fstab.vim +#usr/share/vim/vim74/syntax/fvwm.vim +#usr/share/vim/vim74/syntax/fvwm2m4.vim +#usr/share/vim/vim74/syntax/gdb.vim +#usr/share/vim/vim74/syntax/gdmo.vim +#usr/share/vim/vim74/syntax/gedcom.vim +#usr/share/vim/vim74/syntax/git.vim +#usr/share/vim/vim74/syntax/gitcommit.vim +#usr/share/vim/vim74/syntax/gitconfig.vim +#usr/share/vim/vim74/syntax/gitolite.vim +#usr/share/vim/vim74/syntax/gitrebase.vim +#usr/share/vim/vim74/syntax/gitsendemail.vim +#usr/share/vim/vim74/syntax/gkrellmrc.vim +#usr/share/vim/vim74/syntax/gnash.vim +#usr/share/vim/vim74/syntax/gnuplot.vim +#usr/share/vim/vim74/syntax/gp.vim +#usr/share/vim/vim74/syntax/gpg.vim +#usr/share/vim/vim74/syntax/gprof.vim +#usr/share/vim/vim74/syntax/grads.vim +#usr/share/vim/vim74/syntax/gretl.vim +#usr/share/vim/vim74/syntax/groff.vim +#usr/share/vim/vim74/syntax/groovy.vim +#usr/share/vim/vim74/syntax/group.vim +#usr/share/vim/vim74/syntax/grub.vim +#usr/share/vim/vim74/syntax/gsp.vim +#usr/share/vim/vim74/syntax/gtkrc.vim +#usr/share/vim/vim74/syntax/haml.vim +#usr/share/vim/vim74/syntax/hamster.vim +#usr/share/vim/vim74/syntax/haskell.vim +#usr/share/vim/vim74/syntax/haste.vim +#usr/share/vim/vim74/syntax/hastepreproc.vim +#usr/share/vim/vim74/syntax/hb.vim +#usr/share/vim/vim74/syntax/help.vim +#usr/share/vim/vim74/syntax/hercules.vim +#usr/share/vim/vim74/syntax/hex.vim +#usr/share/vim/vim74/syntax/hgcommit.vim +#usr/share/vim/vim74/syntax/hitest.vim +#usr/share/vim/vim74/syntax/hog.vim +#usr/share/vim/vim74/syntax/hostconf.vim +#usr/share/vim/vim74/syntax/hostsaccess.vim +#usr/share/vim/vim74/syntax/html.vim +#usr/share/vim/vim74/syntax/htmlcheetah.vim +#usr/share/vim/vim74/syntax/htmldjango.vim +#usr/share/vim/vim74/syntax/htmlm4.vim +#usr/share/vim/vim74/syntax/htmlos.vim +#usr/share/vim/vim74/syntax/ia64.vim +#usr/share/vim/vim74/syntax/ibasic.vim +#usr/share/vim/vim74/syntax/icemenu.vim +#usr/share/vim/vim74/syntax/icon.vim +#usr/share/vim/vim74/syntax/idl.vim +#usr/share/vim/vim74/syntax/idlang.vim +#usr/share/vim/vim74/syntax/indent.vim +#usr/share/vim/vim74/syntax/inform.vim +#usr/share/vim/vim74/syntax/initex.vim +#usr/share/vim/vim74/syntax/initng.vim +#usr/share/vim/vim74/syntax/inittab.vim +#usr/share/vim/vim74/syntax/ipfilter.vim +#usr/share/vim/vim74/syntax/ishd.vim +#usr/share/vim/vim74/syntax/iss.vim +#usr/share/vim/vim74/syntax/ist.vim +#usr/share/vim/vim74/syntax/jal.vim +#usr/share/vim/vim74/syntax/jam.vim +#usr/share/vim/vim74/syntax/jargon.vim +#usr/share/vim/vim74/syntax/java.vim +#usr/share/vim/vim74/syntax/javacc.vim +#usr/share/vim/vim74/syntax/javascript.vim +#usr/share/vim/vim74/syntax/jess.vim +#usr/share/vim/vim74/syntax/jgraph.vim +#usr/share/vim/vim74/syntax/jovial.vim +#usr/share/vim/vim74/syntax/jproperties.vim +#usr/share/vim/vim74/syntax/jsp.vim +#usr/share/vim/vim74/syntax/kconfig.vim +#usr/share/vim/vim74/syntax/kix.vim +#usr/share/vim/vim74/syntax/kscript.vim +#usr/share/vim/vim74/syntax/kwt.vim +#usr/share/vim/vim74/syntax/lace.vim +#usr/share/vim/vim74/syntax/latte.vim +#usr/share/vim/vim74/syntax/ld.vim +#usr/share/vim/vim74/syntax/ldapconf.vim +#usr/share/vim/vim74/syntax/ldif.vim +#usr/share/vim/vim74/syntax/lex.vim +#usr/share/vim/vim74/syntax/lftp.vim +#usr/share/vim/vim74/syntax/lhaskell.vim +#usr/share/vim/vim74/syntax/libao.vim +#usr/share/vim/vim74/syntax/lifelines.vim +#usr/share/vim/vim74/syntax/lilo.vim +#usr/share/vim/vim74/syntax/limits.vim +#usr/share/vim/vim74/syntax/liquid.vim +#usr/share/vim/vim74/syntax/lisp.vim +#usr/share/vim/vim74/syntax/lite.vim +#usr/share/vim/vim74/syntax/litestep.vim +#usr/share/vim/vim74/syntax/loginaccess.vim +#usr/share/vim/vim74/syntax/logindefs.vim +#usr/share/vim/vim74/syntax/logtalk.vim +#usr/share/vim/vim74/syntax/lotos.vim +#usr/share/vim/vim74/syntax/lout.vim +#usr/share/vim/vim74/syntax/lpc.vim +#usr/share/vim/vim74/syntax/lprolog.vim +#usr/share/vim/vim74/syntax/lscript.vim +#usr/share/vim/vim74/syntax/lsl.vim +#usr/share/vim/vim74/syntax/lss.vim +#usr/share/vim/vim74/syntax/lua.vim +#usr/share/vim/vim74/syntax/lynx.vim +#usr/share/vim/vim74/syntax/m4.vim +#usr/share/vim/vim74/syntax/mail.vim +#usr/share/vim/vim74/syntax/mailaliases.vim +#usr/share/vim/vim74/syntax/mailcap.vim +#usr/share/vim/vim74/syntax/make.vim +#usr/share/vim/vim74/syntax/mallard.vim +#usr/share/vim/vim74/syntax/man.vim +#usr/share/vim/vim74/syntax/manconf.vim +#usr/share/vim/vim74/syntax/manual.vim +#usr/share/vim/vim74/syntax/maple.vim +#usr/share/vim/vim74/syntax/markdown.vim +#usr/share/vim/vim74/syntax/masm.vim +#usr/share/vim/vim74/syntax/mason.vim +#usr/share/vim/vim74/syntax/master.vim +#usr/share/vim/vim74/syntax/matlab.vim +#usr/share/vim/vim74/syntax/maxima.vim +#usr/share/vim/vim74/syntax/mel.vim +#usr/share/vim/vim74/syntax/messages.vim +#usr/share/vim/vim74/syntax/mf.vim +#usr/share/vim/vim74/syntax/mgl.vim +#usr/share/vim/vim74/syntax/mgp.vim +#usr/share/vim/vim74/syntax/mib.vim +#usr/share/vim/vim74/syntax/mma.vim +#usr/share/vim/vim74/syntax/mmix.vim +#usr/share/vim/vim74/syntax/mmp.vim +#usr/share/vim/vim74/syntax/modconf.vim +#usr/share/vim/vim74/syntax/model.vim +#usr/share/vim/vim74/syntax/modsim3.vim +#usr/share/vim/vim74/syntax/modula2.vim +#usr/share/vim/vim74/syntax/modula3.vim +#usr/share/vim/vim74/syntax/monk.vim +#usr/share/vim/vim74/syntax/moo.vim +#usr/share/vim/vim74/syntax/mp.vim +#usr/share/vim/vim74/syntax/mplayerconf.vim +#usr/share/vim/vim74/syntax/mrxvtrc.vim +#usr/share/vim/vim74/syntax/msidl.vim +#usr/share/vim/vim74/syntax/msmessages.vim +#usr/share/vim/vim74/syntax/msql.vim +#usr/share/vim/vim74/syntax/mupad.vim +#usr/share/vim/vim74/syntax/mush.vim +#usr/share/vim/vim74/syntax/muttrc.vim +#usr/share/vim/vim74/syntax/mysql.vim +#usr/share/vim/vim74/syntax/named.vim +#usr/share/vim/vim74/syntax/nanorc.vim +#usr/share/vim/vim74/syntax/nasm.vim +#usr/share/vim/vim74/syntax/nastran.vim +#usr/share/vim/vim74/syntax/natural.vim +#usr/share/vim/vim74/syntax/ncf.vim +#usr/share/vim/vim74/syntax/netrc.vim +#usr/share/vim/vim74/syntax/netrw.vim +#usr/share/vim/vim74/syntax/ninja.vim +#usr/share/vim/vim74/syntax/nosyntax.vim +#usr/share/vim/vim74/syntax/nqc.vim +#usr/share/vim/vim74/syntax/nroff.vim +#usr/share/vim/vim74/syntax/nsis.vim +#usr/share/vim/vim74/syntax/obj.vim +#usr/share/vim/vim74/syntax/objc.vim +#usr/share/vim/vim74/syntax/objcpp.vim +#usr/share/vim/vim74/syntax/ocaml.vim +#usr/share/vim/vim74/syntax/occam.vim +#usr/share/vim/vim74/syntax/omnimark.vim +#usr/share/vim/vim74/syntax/openroad.vim +#usr/share/vim/vim74/syntax/opl.vim +#usr/share/vim/vim74/syntax/ora.vim +#usr/share/vim/vim74/syntax/pamconf.vim +#usr/share/vim/vim74/syntax/papp.vim +#usr/share/vim/vim74/syntax/pascal.vim +#usr/share/vim/vim74/syntax/passwd.vim +#usr/share/vim/vim74/syntax/pcap.vim +#usr/share/vim/vim74/syntax/pccts.vim +#usr/share/vim/vim74/syntax/pdf.vim +#usr/share/vim/vim74/syntax/perl.vim +#usr/share/vim/vim74/syntax/perl6.vim +#usr/share/vim/vim74/syntax/pf.vim +#usr/share/vim/vim74/syntax/pfmain.vim +#usr/share/vim/vim74/syntax/php.vim +#usr/share/vim/vim74/syntax/phtml.vim +#usr/share/vim/vim74/syntax/pic.vim +#usr/share/vim/vim74/syntax/pike.vim +#usr/share/vim/vim74/syntax/pilrc.vim +#usr/share/vim/vim74/syntax/pine.vim +#usr/share/vim/vim74/syntax/pinfo.vim +#usr/share/vim/vim74/syntax/plaintex.vim +#usr/share/vim/vim74/syntax/pli.vim +#usr/share/vim/vim74/syntax/plm.vim +#usr/share/vim/vim74/syntax/plp.vim +#usr/share/vim/vim74/syntax/plsql.vim +#usr/share/vim/vim74/syntax/po.vim +#usr/share/vim/vim74/syntax/pod.vim +#usr/share/vim/vim74/syntax/postscr.vim +#usr/share/vim/vim74/syntax/pov.vim +#usr/share/vim/vim74/syntax/povini.vim +#usr/share/vim/vim74/syntax/ppd.vim +#usr/share/vim/vim74/syntax/ppwiz.vim +#usr/share/vim/vim74/syntax/prescribe.vim +#usr/share/vim/vim74/syntax/privoxy.vim +#usr/share/vim/vim74/syntax/procmail.vim +#usr/share/vim/vim74/syntax/progress.vim +#usr/share/vim/vim74/syntax/prolog.vim +#usr/share/vim/vim74/syntax/promela.vim +#usr/share/vim/vim74/syntax/proto.vim +#usr/share/vim/vim74/syntax/protocols.vim +#usr/share/vim/vim74/syntax/psf.vim +#usr/share/vim/vim74/syntax/ptcap.vim +#usr/share/vim/vim74/syntax/purifylog.vim +#usr/share/vim/vim74/syntax/pyrex.vim +#usr/share/vim/vim74/syntax/python.vim +#usr/share/vim/vim74/syntax/qf.vim +#usr/share/vim/vim74/syntax/quake.vim +#usr/share/vim/vim74/syntax/r.vim +#usr/share/vim/vim74/syntax/racc.vim +#usr/share/vim/vim74/syntax/radiance.vim +#usr/share/vim/vim74/syntax/ratpoison.vim +#usr/share/vim/vim74/syntax/rc.vim +#usr/share/vim/vim74/syntax/rcs.vim +#usr/share/vim/vim74/syntax/rcslog.vim +#usr/share/vim/vim74/syntax/readline.vim +#usr/share/vim/vim74/syntax/rebol.vim +#usr/share/vim/vim74/syntax/redif.vim +#usr/share/vim/vim74/syntax/registry.vim +#usr/share/vim/vim74/syntax/remind.vim +#usr/share/vim/vim74/syntax/resolv.vim +#usr/share/vim/vim74/syntax/reva.vim +#usr/share/vim/vim74/syntax/rexx.vim +#usr/share/vim/vim74/syntax/rhelp.vim +#usr/share/vim/vim74/syntax/rib.vim +#usr/share/vim/vim74/syntax/rnc.vim +#usr/share/vim/vim74/syntax/rng.vim +#usr/share/vim/vim74/syntax/rnoweb.vim +#usr/share/vim/vim74/syntax/robots.vim +#usr/share/vim/vim74/syntax/rpcgen.vim +#usr/share/vim/vim74/syntax/rpl.vim +#usr/share/vim/vim74/syntax/rst.vim +#usr/share/vim/vim74/syntax/rtf.vim +#usr/share/vim/vim74/syntax/ruby.vim +#usr/share/vim/vim74/syntax/samba.vim +#usr/share/vim/vim74/syntax/sas.vim +#usr/share/vim/vim74/syntax/sass.vim +#usr/share/vim/vim74/syntax/sather.vim +#usr/share/vim/vim74/syntax/scheme.vim +#usr/share/vim/vim74/syntax/scilab.vim +#usr/share/vim/vim74/syntax/screen.vim +#usr/share/vim/vim74/syntax/scss.vim +#usr/share/vim/vim74/syntax/sd.vim +#usr/share/vim/vim74/syntax/sdc.vim +#usr/share/vim/vim74/syntax/sdl.vim +#usr/share/vim/vim74/syntax/sed.vim +#usr/share/vim/vim74/syntax/sendpr.vim +#usr/share/vim/vim74/syntax/sensors.vim +#usr/share/vim/vim74/syntax/services.vim +#usr/share/vim/vim74/syntax/setserial.vim +#usr/share/vim/vim74/syntax/sgml.vim +#usr/share/vim/vim74/syntax/sgmldecl.vim +#usr/share/vim/vim74/syntax/sgmllnx.vim +#usr/share/vim/vim74/syntax/sh.vim +#usr/share/vim/vim74/syntax/sicad.vim +#usr/share/vim/vim74/syntax/sieve.vim +#usr/share/vim/vim74/syntax/simula.vim +#usr/share/vim/vim74/syntax/sinda.vim +#usr/share/vim/vim74/syntax/sindacmp.vim +#usr/share/vim/vim74/syntax/sindaout.vim +#usr/share/vim/vim74/syntax/sisu.vim +#usr/share/vim/vim74/syntax/skill.vim +#usr/share/vim/vim74/syntax/sl.vim +#usr/share/vim/vim74/syntax/slang.vim +#usr/share/vim/vim74/syntax/slice.vim +#usr/share/vim/vim74/syntax/slpconf.vim +#usr/share/vim/vim74/syntax/slpreg.vim +#usr/share/vim/vim74/syntax/slpspi.vim +#usr/share/vim/vim74/syntax/slrnrc.vim +#usr/share/vim/vim74/syntax/slrnsc.vim +#usr/share/vim/vim74/syntax/sm.vim +#usr/share/vim/vim74/syntax/smarty.vim +#usr/share/vim/vim74/syntax/smcl.vim +#usr/share/vim/vim74/syntax/smil.vim +#usr/share/vim/vim74/syntax/smith.vim +#usr/share/vim/vim74/syntax/sml.vim +#usr/share/vim/vim74/syntax/snnsnet.vim +#usr/share/vim/vim74/syntax/snnspat.vim +#usr/share/vim/vim74/syntax/snnsres.vim +#usr/share/vim/vim74/syntax/snobol4.vim +#usr/share/vim/vim74/syntax/spec.vim +#usr/share/vim/vim74/syntax/specman.vim +#usr/share/vim/vim74/syntax/spice.vim +#usr/share/vim/vim74/syntax/splint.vim +#usr/share/vim/vim74/syntax/spup.vim +#usr/share/vim/vim74/syntax/spyce.vim +#usr/share/vim/vim74/syntax/sql.vim +#usr/share/vim/vim74/syntax/sqlanywhere.vim +#usr/share/vim/vim74/syntax/sqlforms.vim +#usr/share/vim/vim74/syntax/sqlhana.vim +#usr/share/vim/vim74/syntax/sqlinformix.vim +#usr/share/vim/vim74/syntax/sqlj.vim +#usr/share/vim/vim74/syntax/sqloracle.vim +#usr/share/vim/vim74/syntax/sqr.vim +#usr/share/vim/vim74/syntax/squid.vim +#usr/share/vim/vim74/syntax/sshconfig.vim +#usr/share/vim/vim74/syntax/sshdconfig.vim +#usr/share/vim/vim74/syntax/st.vim +#usr/share/vim/vim74/syntax/stata.vim +#usr/share/vim/vim74/syntax/stp.vim +#usr/share/vim/vim74/syntax/strace.vim +#usr/share/vim/vim74/syntax/sudoers.vim +#usr/share/vim/vim74/syntax/svg.vim +#usr/share/vim/vim74/syntax/svn.vim +#usr/share/vim/vim74/syntax/syncolor.vim +#usr/share/vim/vim74/syntax/synload.vim +#usr/share/vim/vim74/syntax/syntax.vim +#usr/share/vim/vim74/syntax/sysctl.vim +#usr/share/vim/vim74/syntax/tads.vim +#usr/share/vim/vim74/syntax/tags.vim +#usr/share/vim/vim74/syntax/tak.vim +#usr/share/vim/vim74/syntax/takcmp.vim +#usr/share/vim/vim74/syntax/takout.vim +#usr/share/vim/vim74/syntax/tar.vim +#usr/share/vim/vim74/syntax/taskdata.vim +#usr/share/vim/vim74/syntax/taskedit.vim +#usr/share/vim/vim74/syntax/tasm.vim +#usr/share/vim/vim74/syntax/tcl.vim +#usr/share/vim/vim74/syntax/tcsh.vim +#usr/share/vim/vim74/syntax/terminfo.vim +#usr/share/vim/vim74/syntax/tex.vim +#usr/share/vim/vim74/syntax/texinfo.vim +#usr/share/vim/vim74/syntax/texmf.vim +#usr/share/vim/vim74/syntax/tf.vim +#usr/share/vim/vim74/syntax/tidy.vim +#usr/share/vim/vim74/syntax/tilde.vim +#usr/share/vim/vim74/syntax/tli.vim +#usr/share/vim/vim74/syntax/tpp.vim +#usr/share/vim/vim74/syntax/trasys.vim +#usr/share/vim/vim74/syntax/treetop.vim +#usr/share/vim/vim74/syntax/trustees.vim +#usr/share/vim/vim74/syntax/tsalt.vim +#usr/share/vim/vim74/syntax/tsscl.vim +#usr/share/vim/vim74/syntax/tssgm.vim +#usr/share/vim/vim74/syntax/tssop.vim +#usr/share/vim/vim74/syntax/tt2.vim +#usr/share/vim/vim74/syntax/tt2html.vim +#usr/share/vim/vim74/syntax/tt2js.vim +#usr/share/vim/vim74/syntax/uc.vim +#usr/share/vim/vim74/syntax/udevconf.vim +#usr/share/vim/vim74/syntax/udevperm.vim +#usr/share/vim/vim74/syntax/udevrules.vim +#usr/share/vim/vim74/syntax/uil.vim +#usr/share/vim/vim74/syntax/updatedb.vim +#usr/share/vim/vim74/syntax/upstart.vim +#usr/share/vim/vim74/syntax/upstreamdat.vim +#usr/share/vim/vim74/syntax/upstreaminstalllog.vim +#usr/share/vim/vim74/syntax/upstreamlog.vim +#usr/share/vim/vim74/syntax/usserverlog.vim +#usr/share/vim/vim74/syntax/usw2kagtlog.vim +#usr/share/vim/vim74/syntax/valgrind.vim +#usr/share/vim/vim74/syntax/vb.vim +#usr/share/vim/vim74/syntax/vera.vim +#usr/share/vim/vim74/syntax/verilog.vim +#usr/share/vim/vim74/syntax/verilogams.vim +#usr/share/vim/vim74/syntax/vgrindefs.vim +#usr/share/vim/vim74/syntax/vhdl.vim +#usr/share/vim/vim74/syntax/vim.vim +#usr/share/vim/vim74/syntax/viminfo.vim +#usr/share/vim/vim74/syntax/virata.vim +#usr/share/vim/vim74/syntax/vmasm.vim +#usr/share/vim/vim74/syntax/voscm.vim +#usr/share/vim/vim74/syntax/vrml.vim +#usr/share/vim/vim74/syntax/vsejcl.vim +#usr/share/vim/vim74/syntax/wdiff.vim +#usr/share/vim/vim74/syntax/web.vim +#usr/share/vim/vim74/syntax/webmacro.vim +#usr/share/vim/vim74/syntax/wget.vim +#usr/share/vim/vim74/syntax/whitespace.vim +#usr/share/vim/vim74/syntax/winbatch.vim +#usr/share/vim/vim74/syntax/wml.vim +#usr/share/vim/vim74/syntax/wsh.vim +#usr/share/vim/vim74/syntax/wsml.vim +#usr/share/vim/vim74/syntax/wvdial.vim +#usr/share/vim/vim74/syntax/xbl.vim +#usr/share/vim/vim74/syntax/xdefaults.vim +#usr/share/vim/vim74/syntax/xf86conf.vim +#usr/share/vim/vim74/syntax/xhtml.vim +#usr/share/vim/vim74/syntax/xinetd.vim +#usr/share/vim/vim74/syntax/xkb.vim +#usr/share/vim/vim74/syntax/xmath.vim +#usr/share/vim/vim74/syntax/xml.vim +#usr/share/vim/vim74/syntax/xmodmap.vim +#usr/share/vim/vim74/syntax/xpm.vim +#usr/share/vim/vim74/syntax/xpm2.vim +#usr/share/vim/vim74/syntax/xquery.vim +#usr/share/vim/vim74/syntax/xs.vim +#usr/share/vim/vim74/syntax/xsd.vim +#usr/share/vim/vim74/syntax/xslt.vim +#usr/share/vim/vim74/syntax/xxd.vim +#usr/share/vim/vim74/syntax/yacc.vim +#usr/share/vim/vim74/syntax/yaml.vim +#usr/share/vim/vim74/syntax/z8a.vim +#usr/share/vim/vim74/syntax/zimbu.vim +#usr/share/vim/vim74/syntax/zsh.vim +#usr/share/vim/vim74/tools +#usr/share/vim/vim74/tools/README.txt +#usr/share/vim/vim74/tools/blink.c +#usr/share/vim/vim74/tools/ccfilter.1 +#usr/share/vim/vim74/tools/ccfilter.c +#usr/share/vim/vim74/tools/ccfilter_README.txt +#usr/share/vim/vim74/tools/efm_filter.pl +#usr/share/vim/vim74/tools/efm_filter.txt +#usr/share/vim/vim74/tools/efm_perl.pl +#usr/share/vim/vim74/tools/mve.awk +#usr/share/vim/vim74/tools/mve.txt +#usr/share/vim/vim74/tools/pltags.pl +#usr/share/vim/vim74/tools/ref +#usr/share/vim/vim74/tools/shtags.1 +#usr/share/vim/vim74/tools/shtags.pl +#usr/share/vim/vim74/tools/unicode.vim +#usr/share/vim/vim74/tools/vim132 +#usr/share/vim/vim74/tools/vim_vs_net.cmd +#usr/share/vim/vim74/tools/vimm +#usr/share/vim/vim74/tools/vimspell.sh +#usr/share/vim/vim74/tools/vimspell.txt +#usr/share/vim/vim74/tools/xcmdsrv_client.c +#usr/share/vim/vim74/tutor +#usr/share/vim/vim74/tutor/README.el.cp737.txt +#usr/share/vim/vim74/tutor/README.el.txt +#usr/share/vim/vim74/tutor/README.txt +#usr/share/vim/vim74/tutor/tutor +#usr/share/vim/vim74/tutor/tutor.bar +#usr/share/vim/vim74/tutor/tutor.bar.utf-8 +#usr/share/vim/vim74/tutor/tutor.ca +#usr/share/vim/vim74/tutor/tutor.ca.utf-8 +#usr/share/vim/vim74/tutor/tutor.cs +#usr/share/vim/vim74/tutor/tutor.cs.cp1250 +#usr/share/vim/vim74/tutor/tutor.cs.utf-8 +#usr/share/vim/vim74/tutor/tutor.de +#usr/share/vim/vim74/tutor/tutor.de.utf-8 +#usr/share/vim/vim74/tutor/tutor.el +#usr/share/vim/vim74/tutor/tutor.el.cp737 +#usr/share/vim/vim74/tutor/tutor.el.utf-8 +#usr/share/vim/vim74/tutor/tutor.eo +#usr/share/vim/vim74/tutor/tutor.eo.utf-8 +#usr/share/vim/vim74/tutor/tutor.es +#usr/share/vim/vim74/tutor/tutor.es.utf-8 +#usr/share/vim/vim74/tutor/tutor.fr +#usr/share/vim/vim74/tutor/tutor.fr.utf-8 +#usr/share/vim/vim74/tutor/tutor.hr +#usr/share/vim/vim74/tutor/tutor.hr.cp1250 +#usr/share/vim/vim74/tutor/tutor.hr.utf-8 +#usr/share/vim/vim74/tutor/tutor.hu +#usr/share/vim/vim74/tutor/tutor.hu.cp1250 +#usr/share/vim/vim74/tutor/tutor.hu.utf-8 +#usr/share/vim/vim74/tutor/tutor.it +#usr/share/vim/vim74/tutor/tutor.it.utf-8 +#usr/share/vim/vim74/tutor/tutor.ja.euc +#usr/share/vim/vim74/tutor/tutor.ja.sjis +#usr/share/vim/vim74/tutor/tutor.ja.utf-8 +#usr/share/vim/vim74/tutor/tutor.ko.euc +#usr/share/vim/vim74/tutor/tutor.ko.utf-8 +#usr/share/vim/vim74/tutor/tutor.nb +#usr/share/vim/vim74/tutor/tutor.nb.utf-8 +#usr/share/vim/vim74/tutor/tutor.nl +#usr/share/vim/vim74/tutor/tutor.nl.utf-8 +#usr/share/vim/vim74/tutor/tutor.no +#usr/share/vim/vim74/tutor/tutor.no.utf-8 +#usr/share/vim/vim74/tutor/tutor.pl +#usr/share/vim/vim74/tutor/tutor.pl.cp1250 +#usr/share/vim/vim74/tutor/tutor.pl.utf-8 +#usr/share/vim/vim74/tutor/tutor.pt +#usr/share/vim/vim74/tutor/tutor.pt.utf-8 +#usr/share/vim/vim74/tutor/tutor.ru +#usr/share/vim/vim74/tutor/tutor.ru.cp1251 +#usr/share/vim/vim74/tutor/tutor.ru.utf-8 +#usr/share/vim/vim74/tutor/tutor.sk +#usr/share/vim/vim74/tutor/tutor.sk.cp1250 +#usr/share/vim/vim74/tutor/tutor.sk.utf-8 +#usr/share/vim/vim74/tutor/tutor.sv +#usr/share/vim/vim74/tutor/tutor.sv.utf-8 +#usr/share/vim/vim74/tutor/tutor.tr.iso9 +#usr/share/vim/vim74/tutor/tutor.tr.utf-8 +#usr/share/vim/vim74/tutor/tutor.utf-8 +#usr/share/vim/vim74/tutor/tutor.vi.utf-8 +#usr/share/vim/vim74/tutor/tutor.vim +#usr/share/vim/vim74/tutor/tutor.zh.big5 +#usr/share/vim/vim74/tutor/tutor.zh.euc +#usr/share/vim/vim74/tutor/tutor.zh.utf-8 +#usr/share/vim/vim74/tutor/tutor.zh_cn.utf-8 +#usr/share/vim/vim74/tutor/tutor.zh_tw.utf-8 +#usr/share/vim/vim74/vimrc_example.vim diff --git a/config/rootfiles/common/wget b/config/rootfiles/common/wget index a015280..968ab9f 100644 --- a/config/rootfiles/common/wget +++ b/config/rootfiles/common/wget @@ -1,5 +1,4 @@ +#etc/wgetrc usr/bin/wget -#usr/etc -#usr/etc/wgetrc -#usr/info/wget.info -#usr/man/man1/wget.1 +#usr/share/info/wget.info +#usr/share/man/man1/wget.1 diff --git a/config/rootfiles/common/xz b/config/rootfiles/common/xz index a8fa20b..7c83de7 100644 --- a/config/rootfiles/common/xz +++ b/config/rootfiles/common/xz @@ -41,7 +41,7 @@ usr/bin/xzmore #usr/lib/liblzma.la usr/lib/liblzma.so usr/lib/liblzma.so.5 -usr/lib/liblzma.so.5.0.4 +usr/lib/liblzma.so.5.0.5 #usr/lib/pkgconfig/liblzma.pc #usr/share/doc/xz #usr/share/doc/xz/AUTHORS diff --git a/config/rootfiles/core/75/filelists/files b/config/rootfiles/core/75/filelists/files index 647eb26..9d4fbe4 100644 --- a/config/rootfiles/core/75/filelists/files +++ b/config/rootfiles/core/75/filelists/files @@ -1,6 +1,9 @@ etc/system-release etc/issue opt/pakfire/lib/functions.pl +srv/web/ipfire/cgi-bin/ovpnmain.cgi usr/lib/openvpn/verify +usr/local/bin/convert-ovpn +var/ipfire/backup/bin/backup.pl var/ipfire/header.pl var/ipfire/langs diff --git a/config/rootfiles/core/75/update.sh b/config/rootfiles/core/75/update.sh index 3fd00fe..94bec74 100644 --- a/config/rootfiles/core/75/update.sh +++ b/config/rootfiles/core/75/update.sh @@ -44,6 +44,9 @@ if [ -r "/var/ipfire/ovpn/server.conf" ]; then -i /var/ipfire/ovpn/server.conf fi
+# Convert CCD files. +/usr/local/bin/convert-ovpn + # Update Language cache perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
diff --git a/config/rootfiles/core/76/exclude b/config/rootfiles/core/76/exclude new file mode 100644 index 0000000..321a931 --- /dev/null +++ b/config/rootfiles/core/76/exclude @@ -0,0 +1,17 @@ +srv/web/ipfire/html/proxy.pac +boot/config.txt +etc/udev/rules.d/30-persistent-network.rules +etc/collectd.custom +etc/shadow +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +var/log/cache +var/updatecache +etc/localtime +var/ipfire/ovpn +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf +var/state/dhcp/dhcpd.leases diff --git a/config/rootfiles/core/76/filelists/Net_SSLeay b/config/rootfiles/core/76/filelists/Net_SSLeay new file mode 120000 index 0000000..13fe056 --- /dev/null +++ b/config/rootfiles/core/76/filelists/Net_SSLeay @@ -0,0 +1 @@ +../../../common/Net_SSLeay \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/apache2 b/config/rootfiles/core/76/filelists/apache2 new file mode 120000 index 0000000..eef95ef --- /dev/null +++ b/config/rootfiles/core/76/filelists/apache2 @@ -0,0 +1 @@ +../../../common/apache2 \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/binutils b/config/rootfiles/core/76/filelists/armv5tel/binutils new file mode 120000 index 0000000..ac971f9 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/binutils @@ -0,0 +1 @@ +../../../../common/armv5tel/binutils \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/dracut b/config/rootfiles/core/76/filelists/armv5tel/dracut new file mode 120000 index 0000000..861df3f --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/dracut @@ -0,0 +1 @@ +../../../../common/armv5tel/dracut \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/gcc b/config/rootfiles/core/76/filelists/armv5tel/gcc new file mode 120000 index 0000000..84f7b93 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/gcc @@ -0,0 +1 @@ +../../../../common/armv5tel/gcc \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/glibc b/config/rootfiles/core/76/filelists/armv5tel/glibc new file mode 120000 index 0000000..4c70d72 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/glibc @@ -0,0 +1 @@ +../../../../common/armv5tel/glibc \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/initscripts b/config/rootfiles/core/76/filelists/armv5tel/initscripts new file mode 120000 index 0000000..af1d762 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/initscripts @@ -0,0 +1 @@ +../../../../common/armv5tel/initscripts \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/linux-kirkwood b/config/rootfiles/core/76/filelists/armv5tel/linux-kirkwood new file mode 120000 index 0000000..7217107 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/linux-kirkwood @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-kirkwood \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/linux-multi b/config/rootfiles/core/76/filelists/armv5tel/linux-multi new file mode 120000 index 0000000..204eb4c --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/linux-multi @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-multi \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/linux-rpi b/config/rootfiles/core/76/filelists/armv5tel/linux-rpi new file mode 120000 index 0000000..a651a49 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/linux-rpi @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-rpi \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/lm_sensors b/config/rootfiles/core/76/filelists/armv5tel/lm_sensors new file mode 120000 index 0000000..eec84cd --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/lm_sensors @@ -0,0 +1 @@ +../../../../common/armv5tel/lm_sensors \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/rpi-firmware b/config/rootfiles/core/76/filelists/armv5tel/rpi-firmware new file mode 120000 index 0000000..428fdf8 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/rpi-firmware @@ -0,0 +1 @@ +../../../../common/armv5tel/rpi-firmware \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/u-boot b/config/rootfiles/core/76/filelists/armv5tel/u-boot new file mode 120000 index 0000000..3df31a8 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/u-boot @@ -0,0 +1 @@ +../../../../common/armv5tel/u-boot \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/armv5tel/util-linux b/config/rootfiles/core/76/filelists/armv5tel/util-linux new file mode 120000 index 0000000..2596908 --- /dev/null +++ b/config/rootfiles/core/76/filelists/armv5tel/util-linux @@ -0,0 +1 @@ +../../../../common/armv5tel/util-linux \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/bridge-utils b/config/rootfiles/core/76/filelists/bridge-utils new file mode 120000 index 0000000..3dee211 --- /dev/null +++ b/config/rootfiles/core/76/filelists/bridge-utils @@ -0,0 +1 @@ +../../../common/bridge-utils \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/coreutils b/config/rootfiles/core/76/filelists/coreutils new file mode 120000 index 0000000..7351ed2 --- /dev/null +++ b/config/rootfiles/core/76/filelists/coreutils @@ -0,0 +1 @@ +../../../common/coreutils \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/cyrus-sasl b/config/rootfiles/core/76/filelists/cyrus-sasl new file mode 120000 index 0000000..bb51b4c --- /dev/null +++ b/config/rootfiles/core/76/filelists/cyrus-sasl @@ -0,0 +1 @@ +../../../common/cyrus-sasl \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/dosfstools b/config/rootfiles/core/76/filelists/dosfstools new file mode 120000 index 0000000..087ccb0 --- /dev/null +++ b/config/rootfiles/core/76/filelists/dosfstools @@ -0,0 +1 @@ +../../../common/dosfstools \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/dvb-firmwares b/config/rootfiles/core/76/filelists/dvb-firmwares new file mode 120000 index 0000000..69d0cdc --- /dev/null +++ b/config/rootfiles/core/76/filelists/dvb-firmwares @@ -0,0 +1 @@ +../../../common/dvb-firmwares \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/e2fsprogs b/config/rootfiles/core/76/filelists/e2fsprogs new file mode 120000 index 0000000..37b55de --- /dev/null +++ b/config/rootfiles/core/76/filelists/e2fsprogs @@ -0,0 +1 @@ +../../../common/e2fsprogs \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/files b/config/rootfiles/core/76/filelists/files new file mode 100644 index 0000000..f069534 --- /dev/null +++ b/config/rootfiles/core/76/filelists/files @@ -0,0 +1,28 @@ +etc/system-release +etc/issue +etc/collectd.conf +etc/rc.d/init.d/network +run +srv/web/ipfire/cgi-bin/credits.cgi +srv/web/ipfire/cgi-bin/gui.cgi +srv/web/ipfire/cgi-bin/index.cgi +srv/web/ipfire/cgi-bin/netinternal.cgi +srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/proxy.cgi +srv/web/ipfire/cgi-bin/upnp.cgi +srv/web/ipfire/cgi-bin/speed.cgi +srv/web/ipfire/cgi-bin/urlfilter.cgi +srv/web/ipfire/cgi-bin/vpnmain.cgi +srv/web/ipfire/html/themes/darkdos +srv/web/ipfire/html/themes/ipfire +srv/web/ipfire/html/themes/ipfire-legacy +srv/web/ipfire/html/themes/maniac +usr/local/bin/setddns.pl +var/ipfire/backup/bin/backup.pl +var/ipfire/backup/exclude +var/ipfire/backup/include +var/ipfire/general-functions.pl +var/ipfire/header.pl +var/ipfire/graphs.pl +var/ipfire/langs +var/ipfire/menu.d/10-system.menu diff --git a/config/rootfiles/core/76/filelists/fireinfo b/config/rootfiles/core/76/filelists/fireinfo new file mode 120000 index 0000000..c461155 --- /dev/null +++ b/config/rootfiles/core/76/filelists/fireinfo @@ -0,0 +1 @@ +../../../common/fireinfo \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/firewall b/config/rootfiles/core/76/filelists/firewall new file mode 100644 index 0000000..3edde8e --- /dev/null +++ b/config/rootfiles/core/76/filelists/firewall @@ -0,0 +1,27 @@ +etc/rc.d/init.d/firewall +etc/rc.d/init.d/networking/red.up/22-forwardfwctrl +srv/web/ipfire/cgi-bin/firewall.cgi +srv/web/ipfire/cgi-bin/fwhosts.cgi +srv/web/ipfire/cgi-bin/optionsfw.cgi +srv/web/ipfire/cgi-bin/p2p-block.cgi +usr/sbin/convert-dmz +usr/sbin/convert-outgoingfw +usr/sbin/convert-portfw +usr/sbin/convert-xtaccess +usr/sbin/firewall-policy +var/ipfire/firewall +var/ipfire/firewall/bin/firewall-lib.pl +var/ipfire/firewall/bin/rules.pl +var/ipfire/firewall/config +var/ipfire/firewall/input +var/ipfire/firewall/outgoing +var/ipfire/firewall/p2protocols +var/ipfire/firewall/settings +var/ipfire/fwhosts +var/ipfire/fwhosts/customhosts +var/ipfire/fwhosts/customnetworks +var/ipfire/fwhosts/customgroups +var/ipfire/fwhosts/customservices +var/ipfire/fwhosts/customservicegrp +var/ipfire/fwhosts/icmp-types +var/ipfire/menu.d/50-firewall.menu diff --git a/config/rootfiles/core/76/filelists/i586/binutils b/config/rootfiles/core/76/filelists/i586/binutils new file mode 120000 index 0000000..78695d7 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/binutils @@ -0,0 +1 @@ +../../../../common/i586/binutils \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/dracut b/config/rootfiles/core/76/filelists/i586/dracut new file mode 120000 index 0000000..9a09010 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/dracut @@ -0,0 +1 @@ +../../../../common/i586/dracut \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/gcc b/config/rootfiles/core/76/filelists/i586/gcc new file mode 120000 index 0000000..ba328e3 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/gcc @@ -0,0 +1 @@ +../../../../common/i586/gcc \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/glibc b/config/rootfiles/core/76/filelists/i586/glibc new file mode 120000 index 0000000..943021f --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/glibc @@ -0,0 +1 @@ +../../../../common/i586/glibc \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/grub b/config/rootfiles/core/76/filelists/i586/grub new file mode 120000 index 0000000..feb236a --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/grub @@ -0,0 +1 @@ +../../../../common/i586/grub \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/initscripts b/config/rootfiles/core/76/filelists/i586/initscripts new file mode 120000 index 0000000..12d8770 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/initscripts @@ -0,0 +1 @@ +../../../../common/i586/initscripts \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/linux b/config/rootfiles/core/76/filelists/i586/linux new file mode 120000 index 0000000..693ec4b --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/linux @@ -0,0 +1 @@ +../../../../common/i586/linux \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/lm_sensors b/config/rootfiles/core/76/filelists/i586/lm_sensors new file mode 120000 index 0000000..17d6c01 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/lm_sensors @@ -0,0 +1 @@ +../../../../common/i586/lm_sensors \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/i586/util-linux b/config/rootfiles/core/76/filelists/i586/util-linux new file mode 120000 index 0000000..c973106 --- /dev/null +++ b/config/rootfiles/core/76/filelists/i586/util-linux @@ -0,0 +1 @@ +../../../../common/i586/util-linux \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/iptables b/config/rootfiles/core/76/filelists/iptables new file mode 120000 index 0000000..8caf12b --- /dev/null +++ b/config/rootfiles/core/76/filelists/iptables @@ -0,0 +1 @@ +../../../common/iptables \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/iw b/config/rootfiles/core/76/filelists/iw new file mode 120000 index 0000000..7c58a20 --- /dev/null +++ b/config/rootfiles/core/76/filelists/iw @@ -0,0 +1 @@ +../../../common/iw \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/jquery b/config/rootfiles/core/76/filelists/jquery new file mode 120000 index 0000000..65df10c --- /dev/null +++ b/config/rootfiles/core/76/filelists/jquery @@ -0,0 +1 @@ +../../../common/jquery \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/kmod b/config/rootfiles/core/76/filelists/kmod new file mode 120000 index 0000000..0020e19 --- /dev/null +++ b/config/rootfiles/core/76/filelists/kmod @@ -0,0 +1 @@ +../../../common/kmod \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/libnl b/config/rootfiles/core/76/filelists/libnl new file mode 120000 index 0000000..7181849 --- /dev/null +++ b/config/rootfiles/core/76/filelists/libnl @@ -0,0 +1 @@ +../../../common/libnl \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/libusbx b/config/rootfiles/core/76/filelists/libusbx new file mode 120000 index 0000000..96c9995 --- /dev/null +++ b/config/rootfiles/core/76/filelists/libusbx @@ -0,0 +1 @@ +../../../common/libusbx \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/libxml2 b/config/rootfiles/core/76/filelists/libxml2 new file mode 120000 index 0000000..242e69f --- /dev/null +++ b/config/rootfiles/core/76/filelists/libxml2 @@ -0,0 +1 @@ +../../../common/libxml2 \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/linux-firmware b/config/rootfiles/core/76/filelists/linux-firmware new file mode 120000 index 0000000..4bf91bc --- /dev/null +++ b/config/rootfiles/core/76/filelists/linux-firmware @@ -0,0 +1 @@ +../../../common/linux-firmware \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/lzo b/config/rootfiles/core/76/filelists/lzo new file mode 120000 index 0000000..8e11e78 --- /dev/null +++ b/config/rootfiles/core/76/filelists/lzo @@ -0,0 +1 @@ +../../../common/lzo \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/misc-progs b/config/rootfiles/core/76/filelists/misc-progs new file mode 120000 index 0000000..7223cad --- /dev/null +++ b/config/rootfiles/core/76/filelists/misc-progs @@ -0,0 +1 @@ +../../../common/misc-progs \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/mysql-libs b/config/rootfiles/core/76/filelists/mysql-libs new file mode 120000 index 0000000..c63bc7f --- /dev/null +++ b/config/rootfiles/core/76/filelists/mysql-libs @@ -0,0 +1 @@ +../../../common/mysql-libs \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/net-tools b/config/rootfiles/core/76/filelists/net-tools new file mode 120000 index 0000000..bac6b00 --- /dev/null +++ b/config/rootfiles/core/76/filelists/net-tools @@ -0,0 +1 @@ +../../../common/net-tools \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/openssl b/config/rootfiles/core/76/filelists/openssl new file mode 120000 index 0000000..e011a92 --- /dev/null +++ b/config/rootfiles/core/76/filelists/openssl @@ -0,0 +1 @@ +../../../common/openssl \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/openssl-compat b/config/rootfiles/core/76/filelists/openssl-compat new file mode 120000 index 0000000..c9fa421 --- /dev/null +++ b/config/rootfiles/core/76/filelists/openssl-compat @@ -0,0 +1 @@ +../../../common/openssl-compat \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/openvpn b/config/rootfiles/core/76/filelists/openvpn new file mode 120000 index 0000000..493f3f7 --- /dev/null +++ b/config/rootfiles/core/76/filelists/openvpn @@ -0,0 +1 @@ +../../../common/openvpn \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/pakfire b/config/rootfiles/core/76/filelists/pakfire new file mode 100644 index 0000000..fd324bb --- /dev/null +++ b/config/rootfiles/core/76/filelists/pakfire @@ -0,0 +1,4 @@ +opt/pakfire/etc/pakfire.conf +opt/pakfire/lib/functions.pl +opt/pakfire/lib/functions.sh +opt/pakfire/pakfire diff --git a/config/rootfiles/core/76/filelists/paxctl b/config/rootfiles/core/76/filelists/paxctl new file mode 120000 index 0000000..dda8d9f --- /dev/null +++ b/config/rootfiles/core/76/filelists/paxctl @@ -0,0 +1 @@ +../../../common/paxctl \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/php b/config/rootfiles/core/76/filelists/php new file mode 120000 index 0000000..1ae48d7 --- /dev/null +++ b/config/rootfiles/core/76/filelists/php @@ -0,0 +1 @@ +../../../common/php \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/setup b/config/rootfiles/core/76/filelists/setup new file mode 120000 index 0000000..209374b --- /dev/null +++ b/config/rootfiles/core/76/filelists/setup @@ -0,0 +1 @@ +../../../common/setup \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/strongswan b/config/rootfiles/core/76/filelists/strongswan new file mode 120000 index 0000000..90c727e --- /dev/null +++ b/config/rootfiles/core/76/filelists/strongswan @@ -0,0 +1 @@ +../../../common/strongswan \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/udev b/config/rootfiles/core/76/filelists/udev new file mode 120000 index 0000000..e967a1c --- /dev/null +++ b/config/rootfiles/core/76/filelists/udev @@ -0,0 +1 @@ +../../../common/udev \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/usb_modeswitch b/config/rootfiles/core/76/filelists/usb_modeswitch new file mode 120000 index 0000000..acbab6f --- /dev/null +++ b/config/rootfiles/core/76/filelists/usb_modeswitch @@ -0,0 +1 @@ +../../../common/usb_modeswitch \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/usb_modeswitch_data b/config/rootfiles/core/76/filelists/usb_modeswitch_data new file mode 120000 index 0000000..4cbce46 --- /dev/null +++ b/config/rootfiles/core/76/filelists/usb_modeswitch_data @@ -0,0 +1 @@ +../../../common/usb_modeswitch_data \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/usbutils b/config/rootfiles/core/76/filelists/usbutils new file mode 120000 index 0000000..31db5a7 --- /dev/null +++ b/config/rootfiles/core/76/filelists/usbutils @@ -0,0 +1 @@ +../../../common/usbutils \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/vim b/config/rootfiles/core/76/filelists/vim new file mode 120000 index 0000000..9861317 --- /dev/null +++ b/config/rootfiles/core/76/filelists/vim @@ -0,0 +1 @@ +../../../common/vim \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/wget b/config/rootfiles/core/76/filelists/wget new file mode 120000 index 0000000..fcb57df --- /dev/null +++ b/config/rootfiles/core/76/filelists/wget @@ -0,0 +1 @@ +../../../common/wget \ No newline at end of file diff --git a/config/rootfiles/core/76/filelists/xz b/config/rootfiles/core/76/filelists/xz new file mode 120000 index 0000000..734e926 --- /dev/null +++ b/config/rootfiles/core/76/filelists/xz @@ -0,0 +1 @@ +../../../common/xz \ No newline at end of file diff --git a/config/rootfiles/core/76/meta b/config/rootfiles/core/76/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/core/76/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/core/76/update.sh b/config/rootfiles/core/76/update.sh new file mode 100644 index 0000000..12d6b1c --- /dev/null +++ b/config/rootfiles/core/76/update.sh @@ -0,0 +1,385 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2014 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +function add_to_backup () +{ + # Add path to ROOTFILES but remove old entries to prevent double + # files in the tar + grep -v "^$1" /opt/pakfire/tmp/ROOTFILES > /opt/pakfire/tmp/ROOTFILES.tmp + mv /opt/pakfire/tmp/ROOTFILES.tmp /opt/pakfire/tmp/ROOTFILES + echo $1 >> /opt/pakfire/tmp/ROOTFILES +} + +# +# Remove old core updates from pakfire cache to save space... +core=76 +for (( i=1; i<=$core; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# +# Do some sanity checks. +case $(uname -r) in + *-ipfire-versatile ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update. versatile support is dropped." + # Report no error to pakfire. So it does not try to install it again. + exit 0 + ;; + *-ipfire-xen ) + BOOTSIZE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f2 | tail -n 1` + if [ $BOOTSIZE -lt 28000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update because not enough space on boot." + exit 2 + fi + ;; + *-ipfire* ) + # Ok. + ;; + * ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update. No IPFire Kernel." + exit 1 + ;; +esac + + +# +# +KVER="3.10.26" +MOUNT=`grep "kernel" /boot/grub/grub.conf 2>/dev/null | tail -n 1 ` +# Nur den letzten Parameter verwenden +echo $MOUNT > /dev/null +MOUNT=$_ +if [ ! $MOUNT == "rw" ]; then + MOUNT="ro" +fi + +# +# check if we the backup file already exist +if [ -e /var/ipfire/backup/core-upgrade$core_$KVER.tar.xz ]; then + echo Moving backup to backup-old ... + mv -f /var/ipfire/backup/core-upgrade$core_$KVER.tar.xz \ + /var/ipfire/backup/core-upgrade$core_$KVER-old.tar.xz +fi +echo First we made a backup of all files that was inside of the +echo update archive. This may take a while ... +# Add some files that are not in the package to backup +add_to_backup lib/modules +add_to_backup etc/udev +add_to_backup lib/udev +add_to_backup boot +add_to_backup etc/sysconfig/lm_sensors +add_to_backup etc/sysconfig/rc.local +add_to_backup srv/web/ipfire/html/themes/ipfire +add_to_backup usr/lib/engines +add_to_backup etc/rc.d/init.d/networking/red.up/22-outgoingfwctrl +add_to_backup etc/rc.d/init.d/networking/red.up/25-portfw +add_to_backup etc/rc.d/init.d/networking/red.up/26-xtaccess +add_to_backup usr/local/bin/setportfw +add_to_backup usr/local/bin/setdmzholes +add_to_backup usr/local/bin/setxtaccess +add_to_backup usr/local/bin/outgoingfwctrl +add_to_backup srv/web/ipfire/cgi-bin/{dmzholes,outgoingfw,portfw,xtaccess}.cgi +add_to_backup var/ipfire/{dmzholes,portfw,outgoing,xtaccess} +add_to_backup etc/inittab +add_to_backup etc/fstab +add_to_backup usr/share/usb_modeswitch + +# Backup the files +tar cJvf /var/ipfire/backup/core-upgrade$core_$KVER.tar.xz \ + -C / -T /opt/pakfire/tmp/ROOTFILES --exclude='#*' --exclude='/var/cache' > /dev/null 2>&1 + +# Check diskspace on root +ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + +if [ $ROOTSPACE -lt 70000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update because not enough free space on root." + exit 2 +fi + + +echo +echo Update Kernel to $KVER ... +# +# Remove old kernel, configs, initrd, modules ... +# +rm -rf /boot/System.map-* +rm -rf /boot/config-* +rm -rf /boot/ipfirerd-* +rm -rf /boot/vmlinuz-* +rm -rf /boot/uImage-ipfire-* +rm -rf /boot/uInit-ipfire-* +rm -rf /lib/modules + +# Remove old usb_modeswitch_data +rm -rf /usr/share/usb_modeswitch + +# +# Remove old udev rules. +# +if [ -e /etc/udev/rules.d/29-ct-server-network.rules ]; then + cp /etc/udev/rules.d/29-ct-server-network.rules /tmp/ +fi +cp /etc/udev/rules.d/30-persistent-network.rules /tmp/ +rm -rf /etc/udev +rm -rf /lib/udev +mkdir -p /etc/udev/rules.d +if [ -e /tmp/rules.d/29-ct-server-network.rules ]; then + mv /tmp/29-ct-server-network.rules /etc/udev/rules.d/ +fi +mv /tmp/30-persistent-network.rules /etc/udev/rules.d/ + +case $(uname -m) in + i?86 ) + # + # Backup grub.conf + # + cp -vf /boot/grub/grub.conf /boot/grub/grub.conf.org + ;; +esac +# +#Stop services +/etc/init.d/snort stop +/etc/init.d/squid stop +/etc/init.d/ipsec stop +/etc/init.d/apache stop + +# Remove the old default theme +rm -rf /srv/web/ipfire/html/themes/ipfire + +# rename /etc/modprobe.d files +for i in $(find /etc/modprobe.d/* | grep -v ".conf") + mv $i $i.conf +done + +# +#Extract files +tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C / + +# Check diskspace on boot +BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + +if [ $BOOTSPACE -lt 1000 ]; then + case $(uname -r) in + *-ipfire-kirkwood ) + # Special handling for old kirkwood images. + # (install only kirkwood kernel) + rm -rf /boot/* + tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p \ + --numeric-owner -C / --wildcards 'boot/*-kirkwood*' + ;; + * ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: FATAL-ERROR space run out on boot. System is not bootable..." + /etc/init.d/apache start + exit 4 + ;; + esac +fi + +# +#Reload init to close old linker/glibc +telinit u + +# Regenerate ipsec configuration files. +/srv/web/ipfire/cgi-bin/vpnmain.cgi + +# Update Language cache +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +# Remove old openssl engines +rm -rf /usr/lib/engines + +# Remove old initscripts +rm -f /etc/rc.d/init.d/networking/red.up/22-outgoingfwctrl +rm -f /etc/rc.d/init.d/networking/red.up/25-portfw +rm -f /etc/rc.d/init.d/networking/red.up/26-xtaccess + +# Remove old firewallscripts +rm -f /usr/local/bin/setportfw +rm -f /usr/local/bin/setdmzholes +rm -f /usr/local/bin/setxtaccess +rm -f /usr/local/bin/outgoingfwctrl + +# Remove old CGI files +rm -f /srv/web/ipfire/cgi-bin/{dmzholes,outgoingfw,portfw,xtaccess}.cgi + +# Generate chains for new firewall +/sbin/iptables -N INPUTFW +/sbin/iptables -N FORWARDFW +/sbin/iptables -N POLICYFWD +/sbin/iptables -N POLICYIN +/sbin/iptables -N POLICYOUT +/sbin/iptables -t nat -N NAT_SOURCE +/sbin/iptables -t nat -N NAT_DESTINATION + +# Convert firewall configuration +/usr/sbin/convert-xtaccess +/usr/sbin/convert-outgoingfw +/usr/sbin/convert-portfw +/usr/sbin/convert-dmz + +# Remove old firewall configuration files +rm -rf /var/ipfire/{dmzholes,portfw,outgoing,xtaccess} + +# Convert inittab and fstab +sed -i -e "s/tty1 9600$/tty1 9600 --noclear/g" /etc/inittab +sed -i -e "s/^proc/#proc/g" /etc/fstab +sed -i -e "s/^sysfs/#sysfs/g" /etc/fstab +sed -i -e "s/^devpts/#devpts/g" /etc/fstab + +# Convert udev persistent network rules +sed -i -e "s/SYSFS{/ATTR{/g" /etc/udev/rules.d/30-persistent-network.rules + +# +# Start services +# +/etc/init.d/apache start +/etc/init.d/squid start +/etc/init.d/snort start +if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then + /etc/init.d/ipsec start +fi + +# +# Rebuild qosscript if enabled +# +if [ -e /var/ipfire/qos/enable ]; then + /usr/local/bin/qosctrl stop + /usr/local/bin/qosctrl generate + /usr/local/bin/qosctrl start +fi + + +case $(uname -m) in + i?86 ) + # + # Modify grub.conf + # + echo + echo Update grub configuration ... + ROOT=`mount | grep " / " | cut -d" " -f1` + + if [ ! -z $ROOT ]; then + ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2` + fi + + if [ ! -z $ROOTUUID ]; then + sed -i "s|ROOT|UUID=$ROOTUUID|g" /boot/grub/grub.conf + else + sed -i "s|ROOT|$ROOT|g" /boot/grub/grub.conf + fi + sed -i "s|KVER|$KVER|g" /boot/grub/grub.conf + sed -i "s|MOUNT|$MOUNT|g" /boot/grub/grub.conf + + if [ "$(grep "^serial" /boot/grub/grub.conf.org)" == "" ]; then + echo "grub use default console ..." + else + echo "grub use serial console ..." + sed -i -e "s|splashimage|#splashimage|g" /boot/grub/grub.conf + sed -i -e "s|#serial|serial|g" /boot/grub/grub.conf + sed -i -e "s|#terminal|terminal|g" /boot/grub/grub.conf + sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" /boot/grub/grub.conf + fi + + # + # ReInstall grub + # + echo "(hd0) ${ROOT::`expr length $ROOT`-1}" > /boot/grub/device.map + grub-install --no-floppy ${ROOT::`expr length $ROOT`-1} + ;; +esac +# +# Delete old lm-sensor modullist to force search at next boot +# +rm -rf /etc/sysconfig/lm_sensors + + +# Force (re)install pae kernel if pae is supported +rm -rf /opt/pakfire/db/*/meta-linux-pae +if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then + ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + if [ $BOOTSPACE -lt 8000 -o $ROOTSPACE -lt 70000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: WARNING not enough space for pae kernel." + else + echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae + echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae + fi +fi + +# Force reinstall xen kernel if it was installed +if [ -e "/opt/pakfire/db/installed/meta-linux-xen" ]; then + echo "Name: linux-xen" > /opt/pakfire/db/installed/meta-linux-xen + echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-xen + echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-xen + # Add xvc0 to /etc/securetty + echo "xvc0" >> /etc/securetty +fi + +# +# After pakfire has ended run it again and update the lists and do upgrade +# +echo '#!/bin/bash' > /tmp/pak_update +echo 'while [ "$(ps -A | grep " update.sh")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo 'while [ "$(ps -A | grep " pakfire")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo '/opt/pakfire/pakfire update -y --force' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire "Core-upgrade finished. If you use a customized grub.cfg"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire "Check it before reboot !!!"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire " *** Please reboot... *** "' >> /tmp/pak_update +echo 'touch /var/run/need_reboot ' >> /tmp/pak_update +# +chmod +x /tmp/pak_update +/tmp/pak_update & + +sync + +# +#Finish +( + /etc/init.d/fireinfo start + sendprofile +) >/dev/null 2>&1 & + +echo +echo Please wait until pakfire has ended... +echo +#Don't report the exitcode last command +exit 0 + diff --git a/config/rootfiles/oldcore/66/filelists/files b/config/rootfiles/oldcore/66/filelists/files index 9d0006f..821263e 100644 --- a/config/rootfiles/oldcore/66/filelists/files +++ b/config/rootfiles/oldcore/66/filelists/files @@ -48,6 +48,5 @@ var/ipfire/backup/bin/backup.pl var/ipfire/backup/include var/ipfire/general-functions.pl var/ipfire/langs -var/ipfire/outgoing/bin/outgoingfw.pl var/ipfire/qos/bin/makeqosscripts.pl var/ipfire/updatexlrator/bin/download diff --git a/config/rootfiles/oldcore/72/filelists/strongswan b/config/rootfiles/oldcore/72/filelists/strongswan deleted file mode 120000 index 90c727e..0000000 --- a/config/rootfiles/oldcore/72/filelists/strongswan +++ /dev/null @@ -1 +0,0 @@ -../../../common/strongswan \ No newline at end of file diff --git a/config/rootfiles/packages/clamav b/config/rootfiles/packages/clamav index 1f09b8d..6e0276b 100644 --- a/config/rootfiles/packages/clamav +++ b/config/rootfiles/packages/clamav @@ -10,15 +10,15 @@ usr/bin/sigtool #usr/lib/libclamav.la usr/lib/libclamav.so usr/lib/libclamav.so.6 -usr/lib/libclamav.so.6.1.17 +usr/lib/libclamav.so.6.1.18 #usr/lib/libclamunrar.la usr/lib/libclamunrar.so usr/lib/libclamunrar.so.6 -usr/lib/libclamunrar.so.6.1.17 +usr/lib/libclamunrar.so.6.1.18 #usr/lib/libclamunrar_iface.la usr/lib/libclamunrar_iface.so usr/lib/libclamunrar_iface.so.6 -usr/lib/libclamunrar_iface.so.6.1.17 +usr/lib/libclamunrar_iface.so.6.1.18 #usr/lib/pkgconfig/libclamav.pc usr/sbin/clamd usr/share/clamav @@ -36,7 +36,9 @@ usr/share/clamav #usr/share/man/man8/clamd.8 #var/ipfire/clamav var/ipfire/clamav/clamd.conf +var/ipfire/clamav/clamd.conf.sample var/ipfire/clamav/freshclam.conf +var/ipfire/clamav/freshclam.conf.sample var/run/clamav etc/rc.d/init.d/clamav usr/local/bin/clamavctrl diff --git a/config/rootfiles/packages/cups b/config/rootfiles/packages/cups index 742cd8f..7693e15 100644 --- a/config/rootfiles/packages/cups +++ b/config/rootfiles/packages/cups @@ -1,4 +1,6 @@ +#etc/dbus-1/system.d/cups.conf etc/pam.d/cups +etc/rc.d/init.d/cups #etc/rc0.d #etc/rc0.d/K36cups #etc/rc2.d @@ -14,6 +16,7 @@ usr/bin/cancel #usr/bin/cups-config usr/bin/cupstestdsc usr/bin/cupstestppd +usr/bin/ipptool usr/bin/lp usr/bin/lpoptions usr/bin/lppasswd @@ -33,16 +36,15 @@ usr/bin/ppdpo #usr/include/cups/cgi.h #usr/include/cups/cups.h #usr/include/cups/dir.h -#usr/include/cups/driver.h #usr/include/cups/file.h #usr/include/cups/help-index.h #usr/include/cups/http.h -#usr/include/cups/image.h #usr/include/cups/ipp.h #usr/include/cups/language.h #usr/include/cups/mime.h #usr/include/cups/ppd.h #usr/include/cups/ppdc.h +#usr/include/cups/pwg.h #usr/include/cups/raster.h #usr/include/cups/sidechannel.h #usr/include/cups/transcode.h @@ -50,11 +52,10 @@ usr/bin/ppdpo #usr/lib/cups #usr/lib/cups/backend usr/lib/cups/backend/http +usr/lib/cups/backend/https usr/lib/cups/backend/ipp +usr/lib/cups/backend/ipps usr/lib/cups/backend/lpd -usr/lib/cups/backend/parallel -usr/lib/cups/backend/scsi -usr/lib/cups/backend/serial usr/lib/cups/backend/smb usr/lib/cups/backend/snmp usr/lib/cups/backend/socket @@ -68,26 +69,18 @@ usr/lib/cups/cgi-bin/printers.cgi #usr/lib/cups/daemon usr/lib/cups/daemon/cups-deviced usr/lib/cups/daemon/cups-driverd +usr/lib/cups/daemon/cups-exec usr/lib/cups/daemon/cups-lpd -usr/lib/cups/daemon/cups-polld usr/lib/cups/driver #usr/lib/cups/filter -usr/lib/cups/filter/bannertops -usr/lib/cups/filter/commandtoescpx -usr/lib/cups/filter/commandtopclx usr/lib/cups/filter/commandtops usr/lib/cups/filter/gziptoany -usr/lib/cups/filter/hpgltops -usr/lib/cups/filter/imagetops -usr/lib/cups/filter/imagetoraster usr/lib/cups/filter/pstops usr/lib/cups/filter/rastertodymo usr/lib/cups/filter/rastertoepson -usr/lib/cups/filter/rastertoescpx usr/lib/cups/filter/rastertohp usr/lib/cups/filter/rastertolabel -usr/lib/cups/filter/rastertopclx -usr/lib/cups/filter/texttops +usr/lib/cups/filter/rastertopwg #usr/lib/cups/monitor usr/lib/cups/monitor/bcp usr/lib/cups/monitor/tbcp @@ -98,15 +91,12 @@ usr/lib/libcups.so usr/lib/libcups.so.2 usr/lib/libcupscgi.so usr/lib/libcupscgi.so.1 -usr/lib/libcupsdriver.so -usr/lib/libcupsdriver.so.1 usr/lib/libcupsimage.so usr/lib/libcupsimage.so.2 usr/lib/libcupsmime.so usr/lib/libcupsmime.so.1 usr/lib/libcupsppdc.so usr/lib/libcupsppdc.so.1 -#usr/lib/php/extensions/no-debug-non-zts-20090626/phpcups.so usr/sbin/accept usr/sbin/cupsaccept usr/sbin/cupsaddsmb @@ -129,50 +119,7 @@ usr/share/cups/banners/secret usr/share/cups/banners/standard usr/share/cups/banners/topsecret usr/share/cups/banners/unclassified -#usr/share/cups/charmaps -usr/share/cups/charmaps/euc-cn.txt -usr/share/cups/charmaps/euc-jp.txt -usr/share/cups/charmaps/euc-kr.txt -usr/share/cups/charmaps/euc-tw.txt -usr/share/cups/charmaps/iso-8859-1.txt -usr/share/cups/charmaps/iso-8859-10.txt -usr/share/cups/charmaps/iso-8859-11.txt -usr/share/cups/charmaps/iso-8859-13.txt -usr/share/cups/charmaps/iso-8859-14.txt -usr/share/cups/charmaps/iso-8859-15.txt -usr/share/cups/charmaps/iso-8859-16.txt -usr/share/cups/charmaps/iso-8859-2.txt -usr/share/cups/charmaps/iso-8859-3.txt -usr/share/cups/charmaps/iso-8859-4.txt -usr/share/cups/charmaps/iso-8859-5.txt -usr/share/cups/charmaps/iso-8859-6.txt -usr/share/cups/charmaps/iso-8859-7.txt -usr/share/cups/charmaps/iso-8859-8.txt -usr/share/cups/charmaps/iso-8859-9.txt -usr/share/cups/charmaps/jis-x0213.txt -usr/share/cups/charmaps/koi8-r.txt -usr/share/cups/charmaps/koi8-u.txt -usr/share/cups/charmaps/mac-roman.txt -usr/share/cups/charmaps/windows-1250.txt -usr/share/cups/charmaps/windows-1251.txt -usr/share/cups/charmaps/windows-1252.txt -usr/share/cups/charmaps/windows-1253.txt -usr/share/cups/charmaps/windows-1254.txt -usr/share/cups/charmaps/windows-1255.txt -usr/share/cups/charmaps/windows-1256.txt -usr/share/cups/charmaps/windows-1257.txt -usr/share/cups/charmaps/windows-1258.txt -usr/share/cups/charmaps/windows-1361.txt -usr/share/cups/charmaps/windows-874.txt -usr/share/cups/charmaps/windows-932.txt -usr/share/cups/charmaps/windows-936.txt -usr/share/cups/charmaps/windows-949.txt -usr/share/cups/charmaps/windows-950.txt -#usr/share/cups/charsets -usr/share/cups/charsets/utf-8 #usr/share/cups/data -usr/share/cups/data/HPGLprolog -usr/share/cups/data/psglyphs usr/share/cups/data/testprint #usr/share/cups/drv usr/share/cups/drv/sample.drv @@ -188,23 +135,47 @@ usr/share/cups/examples/postscript.drv usr/share/cups/examples/r300-basic.drv usr/share/cups/examples/r300-colorman.drv usr/share/cups/examples/r300-remote.drv -#usr/share/cups/fonts -usr/share/cups/fonts/Monospace -usr/share/cups/fonts/Monospace-Bold -usr/share/cups/fonts/Monospace-BoldOblique -usr/share/cups/fonts/Monospace-Oblique +#usr/share/cups/ipptool +usr/share/cups/ipptool/color.jpg +usr/share/cups/ipptool/create-printer-subscription.test +usr/share/cups/ipptool/document-a4.pdf +usr/share/cups/ipptool/document-a4.ps +usr/share/cups/ipptool/document-letter.pdf +usr/share/cups/ipptool/document-letter.ps +usr/share/cups/ipptool/get-completed-jobs.test +usr/share/cups/ipptool/get-jobs.test +usr/share/cups/ipptool/get-notifications.test +usr/share/cups/ipptool/get-printer-attributes.test +usr/share/cups/ipptool/get-subscriptions.test +usr/share/cups/ipptool/gray.jpg +usr/share/cups/ipptool/ipp-1.1.test +usr/share/cups/ipptool/ipp-2.0.test +usr/share/cups/ipptool/ipp-2.1.test +usr/share/cups/ipptool/ipp-2.2.test +usr/share/cups/ipptool/ipp-everywhere.test +usr/share/cups/ipptool/onepage-a4.pdf +usr/share/cups/ipptool/onepage-a4.ps +usr/share/cups/ipptool/onepage-letter.pdf +usr/share/cups/ipptool/onepage-letter.ps +usr/share/cups/ipptool/print-job-deflate.test +usr/share/cups/ipptool/print-job-gzip.test +usr/share/cups/ipptool/print-job.test +usr/share/cups/ipptool/testfile.jpg +usr/share/cups/ipptool/testfile.pcl +usr/share/cups/ipptool/testfile.pdf +usr/share/cups/ipptool/testfile.ps +usr/share/cups/ipptool/testfile.txt +usr/share/cups/ipptool/validate-job.test #usr/share/cups/mime usr/share/cups/mime/mime.convs usr/share/cups/mime/mime.types #usr/share/cups/model #usr/share/cups/ppdc #usr/share/cups/ppdc/epson.h -#usr/share/cups/ppdc/escp.h usr/share/cups/ppdc/font.defs #usr/share/cups/ppdc/hp.h #usr/share/cups/ppdc/label.h usr/share/cups/ppdc/media.defs -#usr/share/cups/ppdc/pcl.h usr/share/cups/ppdc/raster.defs usr/share/cups/profiles #usr/share/cups/templates @@ -212,6 +183,77 @@ usr/share/cups/templates/add-class.tmpl usr/share/cups/templates/add-printer.tmpl usr/share/cups/templates/add-rss-subscription.tmpl usr/share/cups/templates/admin.tmpl +usr/share/cups/templates/ca +usr/share/cups/templates/ca/add-class.tmpl +usr/share/cups/templates/ca/add-printer.tmpl +usr/share/cups/templates/ca/add-rss-subscription.tmpl +usr/share/cups/templates/ca/admin.tmpl +usr/share/cups/templates/ca/choose-device.tmpl +usr/share/cups/templates/ca/choose-make.tmpl +usr/share/cups/templates/ca/choose-model.tmpl +usr/share/cups/templates/ca/choose-serial.tmpl +usr/share/cups/templates/ca/choose-uri.tmpl +usr/share/cups/templates/ca/class-added.tmpl +usr/share/cups/templates/ca/class-confirm.tmpl +usr/share/cups/templates/ca/class-deleted.tmpl +usr/share/cups/templates/ca/class-jobs-header.tmpl +usr/share/cups/templates/ca/class-modified.tmpl +usr/share/cups/templates/ca/class.tmpl +usr/share/cups/templates/ca/classes-header.tmpl +usr/share/cups/templates/ca/classes.tmpl +usr/share/cups/templates/ca/command.tmpl +usr/share/cups/templates/ca/edit-config.tmpl +usr/share/cups/templates/ca/error-op.tmpl +usr/share/cups/templates/ca/error.tmpl +usr/share/cups/templates/ca/header.tmpl +usr/share/cups/templates/ca/help-header.tmpl +usr/share/cups/templates/ca/help-printable.tmpl +usr/share/cups/templates/ca/help-trailer.tmpl +usr/share/cups/templates/ca/job-cancel.tmpl +usr/share/cups/templates/ca/job-hold.tmpl +usr/share/cups/templates/ca/job-move.tmpl +usr/share/cups/templates/ca/job-moved.tmpl +usr/share/cups/templates/ca/job-release.tmpl +usr/share/cups/templates/ca/job-restart.tmpl +usr/share/cups/templates/ca/jobs-header.tmpl +usr/share/cups/templates/ca/jobs.tmpl +usr/share/cups/templates/ca/list-available-printers.tmpl +usr/share/cups/templates/ca/modify-class.tmpl +usr/share/cups/templates/ca/modify-printer.tmpl +usr/share/cups/templates/ca/norestart.tmpl +usr/share/cups/templates/ca/option-boolean.tmpl +usr/share/cups/templates/ca/option-conflict.tmpl +usr/share/cups/templates/ca/option-header.tmpl +usr/share/cups/templates/ca/option-pickmany.tmpl +usr/share/cups/templates/ca/option-pickone.tmpl +usr/share/cups/templates/ca/option-trailer.tmpl +usr/share/cups/templates/ca/pager.tmpl +usr/share/cups/templates/ca/printer-accept.tmpl +usr/share/cups/templates/ca/printer-added.tmpl +usr/share/cups/templates/ca/printer-configured.tmpl +usr/share/cups/templates/ca/printer-confirm.tmpl +usr/share/cups/templates/ca/printer-default.tmpl +usr/share/cups/templates/ca/printer-deleted.tmpl +usr/share/cups/templates/ca/printer-jobs-header.tmpl +usr/share/cups/templates/ca/printer-modified.tmpl +usr/share/cups/templates/ca/printer-purge.tmpl +usr/share/cups/templates/ca/printer-reject.tmpl +usr/share/cups/templates/ca/printer-start.tmpl +usr/share/cups/templates/ca/printer-stop.tmpl +usr/share/cups/templates/ca/printer.tmpl +usr/share/cups/templates/ca/printers-header.tmpl +usr/share/cups/templates/ca/printers.tmpl +usr/share/cups/templates/ca/restart.tmpl +usr/share/cups/templates/ca/samba-export.tmpl +usr/share/cups/templates/ca/samba-exported.tmpl +usr/share/cups/templates/ca/search.tmpl +usr/share/cups/templates/ca/set-printer-options-header.tmpl +usr/share/cups/templates/ca/set-printer-options-trailer.tmpl +usr/share/cups/templates/ca/subscription-added.tmpl +usr/share/cups/templates/ca/subscription-canceled.tmpl +usr/share/cups/templates/ca/test-page.tmpl +usr/share/cups/templates/ca/trailer.tmpl +usr/share/cups/templates/ca/users.tmpl usr/share/cups/templates/choose-device.tmpl usr/share/cups/templates/choose-make.tmpl usr/share/cups/templates/choose-model.tmpl @@ -226,367 +268,297 @@ usr/share/cups/templates/class.tmpl usr/share/cups/templates/classes-header.tmpl usr/share/cups/templates/classes.tmpl usr/share/cups/templates/command.tmpl -usr/share/cups/templates/de -usr/share/cups/templates/de/add-class.tmpl -usr/share/cups/templates/de/add-printer.tmpl -usr/share/cups/templates/de/add-rss-subscription.tmpl -usr/share/cups/templates/de/admin.tmpl -usr/share/cups/templates/de/choose-device.tmpl -usr/share/cups/templates/de/choose-make.tmpl -usr/share/cups/templates/de/choose-model.tmpl -usr/share/cups/templates/de/choose-serial.tmpl -usr/share/cups/templates/de/choose-uri.tmpl -usr/share/cups/templates/de/class-added.tmpl -usr/share/cups/templates/de/class-confirm.tmpl -usr/share/cups/templates/de/class-deleted.tmpl -usr/share/cups/templates/de/class-jobs-header.tmpl -usr/share/cups/templates/de/class-modified.tmpl -usr/share/cups/templates/de/class.tmpl -usr/share/cups/templates/de/classes-header.tmpl -usr/share/cups/templates/de/classes.tmpl -usr/share/cups/templates/de/command.tmpl -usr/share/cups/templates/de/edit-config.tmpl -usr/share/cups/templates/de/error-op.tmpl -usr/share/cups/templates/de/error.tmpl -usr/share/cups/templates/de/header.tmpl -usr/share/cups/templates/de/help-header.tmpl -usr/share/cups/templates/de/help-printable.tmpl -usr/share/cups/templates/de/help-trailer.tmpl -usr/share/cups/templates/de/job-cancel.tmpl -usr/share/cups/templates/de/job-hold.tmpl -usr/share/cups/templates/de/job-move.tmpl -usr/share/cups/templates/de/job-moved.tmpl -usr/share/cups/templates/de/job-release.tmpl -usr/share/cups/templates/de/job-restart.tmpl -usr/share/cups/templates/de/jobs-header.tmpl -usr/share/cups/templates/de/jobs.tmpl -usr/share/cups/templates/de/list-available-printers.tmpl -usr/share/cups/templates/de/modify-class.tmpl -usr/share/cups/templates/de/modify-printer.tmpl -usr/share/cups/templates/de/norestart.tmpl -usr/share/cups/templates/de/option-boolean.tmpl -usr/share/cups/templates/de/option-conflict.tmpl -usr/share/cups/templates/de/option-header.tmpl -usr/share/cups/templates/de/option-pickmany.tmpl -usr/share/cups/templates/de/option-pickone.tmpl -usr/share/cups/templates/de/option-trailer.tmpl -usr/share/cups/templates/de/pager.tmpl -usr/share/cups/templates/de/printer-accept.tmpl -usr/share/cups/templates/de/printer-added.tmpl -usr/share/cups/templates/de/printer-configured.tmpl -usr/share/cups/templates/de/printer-confirm.tmpl -usr/share/cups/templates/de/printer-default.tmpl -usr/share/cups/templates/de/printer-deleted.tmpl -usr/share/cups/templates/de/printer-jobs-header.tmpl -usr/share/cups/templates/de/printer-modified.tmpl -usr/share/cups/templates/de/printer-purge.tmpl -usr/share/cups/templates/de/printer-reject.tmpl -usr/share/cups/templates/de/printer-start.tmpl -usr/share/cups/templates/de/printer-stop.tmpl -usr/share/cups/templates/de/printer.tmpl -usr/share/cups/templates/de/printers-header.tmpl -usr/share/cups/templates/de/printers.tmpl -usr/share/cups/templates/de/restart.tmpl -usr/share/cups/templates/de/samba-export.tmpl -usr/share/cups/templates/de/samba-exported.tmpl -usr/share/cups/templates/de/search.tmpl -usr/share/cups/templates/de/set-printer-options-header.tmpl -usr/share/cups/templates/de/set-printer-options-trailer.tmpl -usr/share/cups/templates/de/subscription-added.tmpl -usr/share/cups/templates/de/subscription-canceled.tmpl -usr/share/cups/templates/de/test-page.tmpl -usr/share/cups/templates/de/trailer.tmpl -usr/share/cups/templates/de/users.tmpl +usr/share/cups/templates/cs +usr/share/cups/templates/cs/add-class.tmpl +usr/share/cups/templates/cs/add-printer.tmpl +usr/share/cups/templates/cs/add-rss-subscription.tmpl +usr/share/cups/templates/cs/admin.tmpl +usr/share/cups/templates/cs/choose-device.tmpl +usr/share/cups/templates/cs/choose-make.tmpl +usr/share/cups/templates/cs/choose-model.tmpl +usr/share/cups/templates/cs/choose-serial.tmpl +usr/share/cups/templates/cs/choose-uri.tmpl +usr/share/cups/templates/cs/class-added.tmpl +usr/share/cups/templates/cs/class-confirm.tmpl +usr/share/cups/templates/cs/class-deleted.tmpl +usr/share/cups/templates/cs/class-jobs-header.tmpl +usr/share/cups/templates/cs/class-modified.tmpl +usr/share/cups/templates/cs/class.tmpl +usr/share/cups/templates/cs/classes-header.tmpl +usr/share/cups/templates/cs/classes.tmpl +usr/share/cups/templates/cs/command.tmpl +usr/share/cups/templates/cs/edit-config.tmpl +usr/share/cups/templates/cs/error-op.tmpl +usr/share/cups/templates/cs/error.tmpl +usr/share/cups/templates/cs/header.tmpl +usr/share/cups/templates/cs/help-header.tmpl +usr/share/cups/templates/cs/help-printable.tmpl +usr/share/cups/templates/cs/help-trailer.tmpl +usr/share/cups/templates/cs/job-cancel.tmpl +usr/share/cups/templates/cs/job-hold.tmpl +usr/share/cups/templates/cs/job-move.tmpl +usr/share/cups/templates/cs/job-moved.tmpl +usr/share/cups/templates/cs/job-release.tmpl +usr/share/cups/templates/cs/job-restart.tmpl +usr/share/cups/templates/cs/jobs-header.tmpl +usr/share/cups/templates/cs/jobs.tmpl +usr/share/cups/templates/cs/list-available-printers.tmpl +usr/share/cups/templates/cs/modify-class.tmpl +usr/share/cups/templates/cs/modify-printer.tmpl +usr/share/cups/templates/cs/norestart.tmpl +usr/share/cups/templates/cs/option-boolean.tmpl +usr/share/cups/templates/cs/option-conflict.tmpl +usr/share/cups/templates/cs/option-header.tmpl +usr/share/cups/templates/cs/option-pickmany.tmpl +usr/share/cups/templates/cs/option-pickone.tmpl +usr/share/cups/templates/cs/option-trailer.tmpl +usr/share/cups/templates/cs/pager.tmpl +usr/share/cups/templates/cs/printer-accept.tmpl +usr/share/cups/templates/cs/printer-added.tmpl +usr/share/cups/templates/cs/printer-configured.tmpl +usr/share/cups/templates/cs/printer-confirm.tmpl +usr/share/cups/templates/cs/printer-default.tmpl +usr/share/cups/templates/cs/printer-deleted.tmpl +usr/share/cups/templates/cs/printer-jobs-header.tmpl +usr/share/cups/templates/cs/printer-modified.tmpl +usr/share/cups/templates/cs/printer-purge.tmpl +usr/share/cups/templates/cs/printer-reject.tmpl +usr/share/cups/templates/cs/printer-start.tmpl +usr/share/cups/templates/cs/printer-stop.tmpl +usr/share/cups/templates/cs/printer.tmpl +usr/share/cups/templates/cs/printers-header.tmpl +usr/share/cups/templates/cs/printers.tmpl +usr/share/cups/templates/cs/restart.tmpl +usr/share/cups/templates/cs/samba-export.tmpl +usr/share/cups/templates/cs/samba-exported.tmpl +usr/share/cups/templates/cs/search.tmpl +usr/share/cups/templates/cs/set-printer-options-header.tmpl +usr/share/cups/templates/cs/set-printer-options-trailer.tmpl +usr/share/cups/templates/cs/subscription-added.tmpl +usr/share/cups/templates/cs/subscription-canceled.tmpl +usr/share/cups/templates/cs/test-page.tmpl +usr/share/cups/templates/cs/trailer.tmpl +usr/share/cups/templates/cs/users.tmpl usr/share/cups/templates/edit-config.tmpl usr/share/cups/templates/error-op.tmpl usr/share/cups/templates/error.tmpl -#usr/share/cups/templates/es -#usr/share/cups/templates/es/add-class.tmpl -#usr/share/cups/templates/es/add-printer.tmpl -#usr/share/cups/templates/es/add-rss-subscription.tmpl -#usr/share/cups/templates/es/admin.tmpl -#usr/share/cups/templates/es/choose-device.tmpl -#usr/share/cups/templates/es/choose-make.tmpl -#usr/share/cups/templates/es/choose-model.tmpl -#usr/share/cups/templates/es/choose-serial.tmpl -#usr/share/cups/templates/es/choose-uri.tmpl -#usr/share/cups/templates/es/class-added.tmpl -#usr/share/cups/templates/es/class-confirm.tmpl -#usr/share/cups/templates/es/class-deleted.tmpl -#usr/share/cups/templates/es/class-jobs-header.tmpl -#usr/share/cups/templates/es/class-modified.tmpl -#usr/share/cups/templates/es/class.tmpl -#usr/share/cups/templates/es/classes-header.tmpl -#usr/share/cups/templates/es/classes.tmpl -#usr/share/cups/templates/es/command.tmpl -#usr/share/cups/templates/es/edit-config.tmpl -#usr/share/cups/templates/es/error-op.tmpl -#usr/share/cups/templates/es/error.tmpl -#usr/share/cups/templates/es/header.tmpl -#usr/share/cups/templates/es/help-header.tmpl -#usr/share/cups/templates/es/help-printable.tmpl -#usr/share/cups/templates/es/help-trailer.tmpl -#usr/share/cups/templates/es/job-cancel.tmpl -#usr/share/cups/templates/es/job-hold.tmpl -#usr/share/cups/templates/es/job-move.tmpl -#usr/share/cups/templates/es/job-moved.tmpl -#usr/share/cups/templates/es/job-release.tmpl -#usr/share/cups/templates/es/job-restart.tmpl -#usr/share/cups/templates/es/jobs-header.tmpl -#usr/share/cups/templates/es/jobs.tmpl -#usr/share/cups/templates/es/list-available-printers.tmpl -#usr/share/cups/templates/es/modify-class.tmpl -#usr/share/cups/templates/es/modify-printer.tmpl -#usr/share/cups/templates/es/norestart.tmpl -#usr/share/cups/templates/es/option-boolean.tmpl -#usr/share/cups/templates/es/option-conflict.tmpl -#usr/share/cups/templates/es/option-header.tmpl -#usr/share/cups/templates/es/option-pickmany.tmpl -#usr/share/cups/templates/es/option-pickone.tmpl -#usr/share/cups/templates/es/option-trailer.tmpl -#usr/share/cups/templates/es/pager.tmpl -#usr/share/cups/templates/es/printer-accept.tmpl -#usr/share/cups/templates/es/printer-added.tmpl -#usr/share/cups/templates/es/printer-configured.tmpl -#usr/share/cups/templates/es/printer-confirm.tmpl -#usr/share/cups/templates/es/printer-default.tmpl -#usr/share/cups/templates/es/printer-deleted.tmpl -#usr/share/cups/templates/es/printer-jobs-header.tmpl -#usr/share/cups/templates/es/printer-modified.tmpl -#usr/share/cups/templates/es/printer-purge.tmpl -#usr/share/cups/templates/es/printer-reject.tmpl -#usr/share/cups/templates/es/printer-start.tmpl -#usr/share/cups/templates/es/printer-stop.tmpl -#usr/share/cups/templates/es/printer.tmpl -#usr/share/cups/templates/es/printers-header.tmpl -#usr/share/cups/templates/es/printers.tmpl -#usr/share/cups/templates/es/restart.tmpl -#usr/share/cups/templates/es/samba-export.tmpl -#usr/share/cups/templates/es/samba-exported.tmpl -#usr/share/cups/templates/es/search.tmpl -#usr/share/cups/templates/es/set-printer-options-header.tmpl -#usr/share/cups/templates/es/set-printer-options-trailer.tmpl -#usr/share/cups/templates/es/subscription-added.tmpl -#usr/share/cups/templates/es/subscription-canceled.tmpl -#usr/share/cups/templates/es/test-page.tmpl -#usr/share/cups/templates/es/trailer.tmpl -#usr/share/cups/templates/es/users.tmpl -#usr/share/cups/templates/eu -#usr/share/cups/templates/eu/add-class.tmpl -#usr/share/cups/templates/eu/add-printer.tmpl -#usr/share/cups/templates/eu/add-rss-subscription.tmpl -#usr/share/cups/templates/eu/admin.tmpl -#usr/share/cups/templates/eu/choose-device.tmpl -#usr/share/cups/templates/eu/choose-make.tmpl -#usr/share/cups/templates/eu/choose-model.tmpl -#usr/share/cups/templates/eu/choose-serial.tmpl -#usr/share/cups/templates/eu/choose-uri.tmpl -#usr/share/cups/templates/eu/class-added.tmpl -#usr/share/cups/templates/eu/class-confirm.tmpl -#usr/share/cups/templates/eu/class-deleted.tmpl -#usr/share/cups/templates/eu/class-jobs-header.tmpl -#usr/share/cups/templates/eu/class-modified.tmpl -#usr/share/cups/templates/eu/class.tmpl -#usr/share/cups/templates/eu/classes-header.tmpl -#usr/share/cups/templates/eu/classes.tmpl -#usr/share/cups/templates/eu/command.tmpl -#usr/share/cups/templates/eu/edit-config.tmpl -#usr/share/cups/templates/eu/error-op.tmpl -#usr/share/cups/templates/eu/error.tmpl -#usr/share/cups/templates/eu/header.tmpl -#usr/share/cups/templates/eu/help-header.tmpl -#usr/share/cups/templates/eu/help-printable.tmpl -#usr/share/cups/templates/eu/help-trailer.tmpl -#usr/share/cups/templates/eu/job-cancel.tmpl -#usr/share/cups/templates/eu/job-hold.tmpl -#usr/share/cups/templates/eu/job-move.tmpl -#usr/share/cups/templates/eu/job-moved.tmpl -#usr/share/cups/templates/eu/job-release.tmpl -#usr/share/cups/templates/eu/job-restart.tmpl -#usr/share/cups/templates/eu/jobs-header.tmpl -#usr/share/cups/templates/eu/jobs.tmpl -#usr/share/cups/templates/eu/list-available-printers.tmpl -#usr/share/cups/templates/eu/modify-class.tmpl -#usr/share/cups/templates/eu/modify-printer.tmpl -#usr/share/cups/templates/eu/norestart.tmpl -#usr/share/cups/templates/eu/option-boolean.tmpl -#usr/share/cups/templates/eu/option-conflict.tmpl -#usr/share/cups/templates/eu/option-header.tmpl -#usr/share/cups/templates/eu/option-pickmany.tmpl -#usr/share/cups/templates/eu/option-pickone.tmpl -#usr/share/cups/templates/eu/option-trailer.tmpl -#usr/share/cups/templates/eu/pager.tmpl -#usr/share/cups/templates/eu/printer-accept.tmpl -#usr/share/cups/templates/eu/printer-added.tmpl -#usr/share/cups/templates/eu/printer-configured.tmpl -#usr/share/cups/templates/eu/printer-confirm.tmpl -#usr/share/cups/templates/eu/printer-default.tmpl -#usr/share/cups/templates/eu/printer-deleted.tmpl -#usr/share/cups/templates/eu/printer-jobs-header.tmpl -#usr/share/cups/templates/eu/printer-modified.tmpl -#usr/share/cups/templates/eu/printer-purge.tmpl -#usr/share/cups/templates/eu/printer-reject.tmpl -#usr/share/cups/templates/eu/printer-start.tmpl -#usr/share/cups/templates/eu/printer-stop.tmpl -#usr/share/cups/templates/eu/printer.tmpl -#usr/share/cups/templates/eu/printers-header.tmpl -#usr/share/cups/templates/eu/printers.tmpl -#usr/share/cups/templates/eu/restart.tmpl -#usr/share/cups/templates/eu/samba-export.tmpl -#usr/share/cups/templates/eu/samba-exported.tmpl -#usr/share/cups/templates/eu/search.tmpl -#usr/share/cups/templates/eu/set-printer-options-header.tmpl -#usr/share/cups/templates/eu/set-printer-options-trailer.tmpl -#usr/share/cups/templates/eu/subscription-added.tmpl -#usr/share/cups/templates/eu/subscription-canceled.tmpl -#usr/share/cups/templates/eu/test-page.tmpl -#usr/share/cups/templates/eu/trailer.tmpl -#usr/share/cups/templates/eu/users.tmpl +usr/share/cups/templates/es +usr/share/cups/templates/es/add-class.tmpl +usr/share/cups/templates/es/add-printer.tmpl +usr/share/cups/templates/es/add-rss-subscription.tmpl +usr/share/cups/templates/es/admin.tmpl +usr/share/cups/templates/es/choose-device.tmpl +usr/share/cups/templates/es/choose-make.tmpl +usr/share/cups/templates/es/choose-model.tmpl +usr/share/cups/templates/es/choose-serial.tmpl +usr/share/cups/templates/es/choose-uri.tmpl +usr/share/cups/templates/es/class-added.tmpl +usr/share/cups/templates/es/class-confirm.tmpl +usr/share/cups/templates/es/class-deleted.tmpl +usr/share/cups/templates/es/class-jobs-header.tmpl +usr/share/cups/templates/es/class-modified.tmpl +usr/share/cups/templates/es/class.tmpl +usr/share/cups/templates/es/classes-header.tmpl +usr/share/cups/templates/es/classes.tmpl +usr/share/cups/templates/es/command.tmpl +usr/share/cups/templates/es/edit-config.tmpl +usr/share/cups/templates/es/error-op.tmpl +usr/share/cups/templates/es/error.tmpl +usr/share/cups/templates/es/header.tmpl +usr/share/cups/templates/es/help-header.tmpl +usr/share/cups/templates/es/help-printable.tmpl +usr/share/cups/templates/es/help-trailer.tmpl +usr/share/cups/templates/es/job-cancel.tmpl +usr/share/cups/templates/es/job-hold.tmpl +usr/share/cups/templates/es/job-move.tmpl +usr/share/cups/templates/es/job-moved.tmpl +usr/share/cups/templates/es/job-release.tmpl +usr/share/cups/templates/es/job-restart.tmpl +usr/share/cups/templates/es/jobs-header.tmpl +usr/share/cups/templates/es/jobs.tmpl +usr/share/cups/templates/es/list-available-printers.tmpl +usr/share/cups/templates/es/modify-class.tmpl +usr/share/cups/templates/es/modify-printer.tmpl +usr/share/cups/templates/es/norestart.tmpl +usr/share/cups/templates/es/option-boolean.tmpl +usr/share/cups/templates/es/option-conflict.tmpl +usr/share/cups/templates/es/option-header.tmpl +usr/share/cups/templates/es/option-pickmany.tmpl +usr/share/cups/templates/es/option-pickone.tmpl +usr/share/cups/templates/es/option-trailer.tmpl +usr/share/cups/templates/es/pager.tmpl +usr/share/cups/templates/es/printer-accept.tmpl +usr/share/cups/templates/es/printer-added.tmpl +usr/share/cups/templates/es/printer-configured.tmpl +usr/share/cups/templates/es/printer-confirm.tmpl +usr/share/cups/templates/es/printer-default.tmpl +usr/share/cups/templates/es/printer-deleted.tmpl +usr/share/cups/templates/es/printer-jobs-header.tmpl +usr/share/cups/templates/es/printer-modified.tmpl +usr/share/cups/templates/es/printer-purge.tmpl +usr/share/cups/templates/es/printer-reject.tmpl +usr/share/cups/templates/es/printer-start.tmpl +usr/share/cups/templates/es/printer-stop.tmpl +usr/share/cups/templates/es/printer.tmpl +usr/share/cups/templates/es/printers-header.tmpl +usr/share/cups/templates/es/printers.tmpl +usr/share/cups/templates/es/restart.tmpl +usr/share/cups/templates/es/samba-export.tmpl +usr/share/cups/templates/es/samba-exported.tmpl +usr/share/cups/templates/es/search.tmpl +usr/share/cups/templates/es/set-printer-options-header.tmpl +usr/share/cups/templates/es/set-printer-options-trailer.tmpl +usr/share/cups/templates/es/subscription-added.tmpl +usr/share/cups/templates/es/subscription-canceled.tmpl +usr/share/cups/templates/es/test-page.tmpl +usr/share/cups/templates/es/trailer.tmpl +usr/share/cups/templates/es/users.tmpl +usr/share/cups/templates/fr +usr/share/cups/templates/fr/add-class.tmpl +usr/share/cups/templates/fr/add-printer.tmpl +usr/share/cups/templates/fr/add-rss-subscription.tmpl +usr/share/cups/templates/fr/admin.tmpl +usr/share/cups/templates/fr/choose-device.tmpl +usr/share/cups/templates/fr/choose-make.tmpl +usr/share/cups/templates/fr/choose-model.tmpl +usr/share/cups/templates/fr/choose-serial.tmpl +usr/share/cups/templates/fr/choose-uri.tmpl +usr/share/cups/templates/fr/class-added.tmpl +usr/share/cups/templates/fr/class-confirm.tmpl +usr/share/cups/templates/fr/class-deleted.tmpl +usr/share/cups/templates/fr/class-jobs-header.tmpl +usr/share/cups/templates/fr/class-modified.tmpl +usr/share/cups/templates/fr/class.tmpl +usr/share/cups/templates/fr/classes-header.tmpl +usr/share/cups/templates/fr/classes.tmpl +usr/share/cups/templates/fr/command.tmpl +usr/share/cups/templates/fr/edit-config.tmpl +usr/share/cups/templates/fr/error-op.tmpl +usr/share/cups/templates/fr/error.tmpl +usr/share/cups/templates/fr/header.tmpl +usr/share/cups/templates/fr/help-header.tmpl +usr/share/cups/templates/fr/help-printable.tmpl +usr/share/cups/templates/fr/help-trailer.tmpl +usr/share/cups/templates/fr/job-cancel.tmpl +usr/share/cups/templates/fr/job-hold.tmpl +usr/share/cups/templates/fr/job-move.tmpl +usr/share/cups/templates/fr/job-moved.tmpl +usr/share/cups/templates/fr/job-release.tmpl +usr/share/cups/templates/fr/job-restart.tmpl +usr/share/cups/templates/fr/jobs-header.tmpl +usr/share/cups/templates/fr/jobs.tmpl +usr/share/cups/templates/fr/list-available-printers.tmpl +usr/share/cups/templates/fr/modify-class.tmpl +usr/share/cups/templates/fr/modify-printer.tmpl +usr/share/cups/templates/fr/norestart.tmpl +usr/share/cups/templates/fr/option-boolean.tmpl +usr/share/cups/templates/fr/option-conflict.tmpl +usr/share/cups/templates/fr/option-header.tmpl +usr/share/cups/templates/fr/option-pickmany.tmpl +usr/share/cups/templates/fr/option-pickone.tmpl +usr/share/cups/templates/fr/option-trailer.tmpl +usr/share/cups/templates/fr/pager.tmpl +usr/share/cups/templates/fr/printer-accept.tmpl +usr/share/cups/templates/fr/printer-added.tmpl +usr/share/cups/templates/fr/printer-configured.tmpl +usr/share/cups/templates/fr/printer-confirm.tmpl +usr/share/cups/templates/fr/printer-default.tmpl +usr/share/cups/templates/fr/printer-deleted.tmpl +usr/share/cups/templates/fr/printer-jobs-header.tmpl +usr/share/cups/templates/fr/printer-modified.tmpl +usr/share/cups/templates/fr/printer-purge.tmpl +usr/share/cups/templates/fr/printer-reject.tmpl +usr/share/cups/templates/fr/printer-start.tmpl +usr/share/cups/templates/fr/printer-stop.tmpl +usr/share/cups/templates/fr/printer.tmpl +usr/share/cups/templates/fr/printers-header.tmpl +usr/share/cups/templates/fr/printers.tmpl +usr/share/cups/templates/fr/restart.tmpl +usr/share/cups/templates/fr/samba-export.tmpl +usr/share/cups/templates/fr/samba-exported.tmpl +usr/share/cups/templates/fr/search.tmpl +usr/share/cups/templates/fr/set-printer-options-header.tmpl +usr/share/cups/templates/fr/set-printer-options-trailer.tmpl +usr/share/cups/templates/fr/subscription-added.tmpl +usr/share/cups/templates/fr/subscription-canceled.tmpl +usr/share/cups/templates/fr/test-page.tmpl +usr/share/cups/templates/fr/trailer.tmpl +usr/share/cups/templates/fr/users.tmpl usr/share/cups/templates/header.tmpl usr/share/cups/templates/help-header.tmpl usr/share/cups/templates/help-printable.tmpl usr/share/cups/templates/help-trailer.tmpl -#usr/share/cups/templates/id -#usr/share/cups/templates/id/add-class.tmpl -#usr/share/cups/templates/id/add-printer.tmpl -#usr/share/cups/templates/id/add-rss-subscription.tmpl -#usr/share/cups/templates/id/admin.tmpl -#usr/share/cups/templates/id/choose-device.tmpl -#usr/share/cups/templates/id/choose-make.tmpl -#usr/share/cups/templates/id/choose-model.tmpl -#usr/share/cups/templates/id/choose-serial.tmpl -#usr/share/cups/templates/id/choose-uri.tmpl -#usr/share/cups/templates/id/class-added.tmpl -#usr/share/cups/templates/id/class-confirm.tmpl -#usr/share/cups/templates/id/class-deleted.tmpl -#usr/share/cups/templates/id/class-jobs-header.tmpl -#usr/share/cups/templates/id/class-modified.tmpl -#usr/share/cups/templates/id/class.tmpl -#usr/share/cups/templates/id/classes-header.tmpl -#usr/share/cups/templates/id/classes.tmpl -#usr/share/cups/templates/id/command.tmpl -#usr/share/cups/templates/id/edit-config.tmpl -#usr/share/cups/templates/id/error-op.tmpl -#usr/share/cups/templates/id/error.tmpl -#usr/share/cups/templates/id/header.tmpl -#usr/share/cups/templates/id/help-header.tmpl -#usr/share/cups/templates/id/help-printable.tmpl -#usr/share/cups/templates/id/help-trailer.tmpl -#usr/share/cups/templates/id/job-cancel.tmpl -#usr/share/cups/templates/id/job-hold.tmpl -#usr/share/cups/templates/id/job-move.tmpl -#usr/share/cups/templates/id/job-moved.tmpl -#usr/share/cups/templates/id/job-release.tmpl -#usr/share/cups/templates/id/job-restart.tmpl -#usr/share/cups/templates/id/jobs-header.tmpl -#usr/share/cups/templates/id/jobs.tmpl -#usr/share/cups/templates/id/list-available-printers.tmpl -#usr/share/cups/templates/id/modify-class.tmpl -#usr/share/cups/templates/id/modify-printer.tmpl -#usr/share/cups/templates/id/norestart.tmpl -#usr/share/cups/templates/id/option-boolean.tmpl -#usr/share/cups/templates/id/option-conflict.tmpl -#usr/share/cups/templates/id/option-header.tmpl -#usr/share/cups/templates/id/option-pickmany.tmpl -#usr/share/cups/templates/id/option-pickone.tmpl -#usr/share/cups/templates/id/option-trailer.tmpl -#usr/share/cups/templates/id/pager.tmpl -#usr/share/cups/templates/id/printer-accept.tmpl -#usr/share/cups/templates/id/printer-added.tmpl -#usr/share/cups/templates/id/printer-configured.tmpl -#usr/share/cups/templates/id/printer-confirm.tmpl -#usr/share/cups/templates/id/printer-default.tmpl -#usr/share/cups/templates/id/printer-deleted.tmpl -#usr/share/cups/templates/id/printer-jobs-header.tmpl -#usr/share/cups/templates/id/printer-modified.tmpl -#usr/share/cups/templates/id/printer-purge.tmpl -#usr/share/cups/templates/id/printer-reject.tmpl -#usr/share/cups/templates/id/printer-start.tmpl -#usr/share/cups/templates/id/printer-stop.tmpl -#usr/share/cups/templates/id/printer.tmpl -#usr/share/cups/templates/id/printers-header.tmpl -#usr/share/cups/templates/id/printers.tmpl -#usr/share/cups/templates/id/restart.tmpl -#usr/share/cups/templates/id/samba-export.tmpl -#usr/share/cups/templates/id/samba-exported.tmpl -#usr/share/cups/templates/id/search.tmpl -#usr/share/cups/templates/id/set-printer-options-header.tmpl -#usr/share/cups/templates/id/set-printer-options-trailer.tmpl -#usr/share/cups/templates/id/subscription-added.tmpl -#usr/share/cups/templates/id/subscription-canceled.tmpl -#usr/share/cups/templates/id/test-page.tmpl -#usr/share/cups/templates/id/trailer.tmpl -#usr/share/cups/templates/id/users.tmpl -#usr/share/cups/templates/it -#usr/share/cups/templates/it/add-class.tmpl -#usr/share/cups/templates/it/add-printer.tmpl -#usr/share/cups/templates/it/add-rss-subscription.tmpl -#usr/share/cups/templates/it/admin.tmpl -#usr/share/cups/templates/it/choose-device.tmpl -#usr/share/cups/templates/it/choose-make.tmpl -#usr/share/cups/templates/it/choose-model.tmpl -#usr/share/cups/templates/it/choose-serial.tmpl -#usr/share/cups/templates/it/choose-uri.tmpl -#usr/share/cups/templates/it/class-added.tmpl -#usr/share/cups/templates/it/class-confirm.tmpl -#usr/share/cups/templates/it/class-deleted.tmpl -#usr/share/cups/templates/it/class-jobs-header.tmpl -#usr/share/cups/templates/it/class-modified.tmpl -#usr/share/cups/templates/it/class.tmpl -#usr/share/cups/templates/it/classes-header.tmpl -#usr/share/cups/templates/it/classes.tmpl -#usr/share/cups/templates/it/command.tmpl -#usr/share/cups/templates/it/edit-config.tmpl -#usr/share/cups/templates/it/error-op.tmpl -#usr/share/cups/templates/it/error.tmpl -#usr/share/cups/templates/it/help-header.tmpl -#usr/share/cups/templates/it/help-printable.tmpl -#usr/share/cups/templates/it/help-trailer.tmpl -#usr/share/cups/templates/it/job-cancel.tmpl -#usr/share/cups/templates/it/job-hold.tmpl -#usr/share/cups/templates/it/job-move.tmpl -#usr/share/cups/templates/it/job-moved.tmpl -#usr/share/cups/templates/it/job-release.tmpl -#usr/share/cups/templates/it/job-restart.tmpl -#usr/share/cups/templates/it/jobs-header.tmpl -#usr/share/cups/templates/it/jobs.tmpl -#usr/share/cups/templates/it/list-available-printers.tmpl -#usr/share/cups/templates/it/modify-class.tmpl -#usr/share/cups/templates/it/modify-printer.tmpl -#usr/share/cups/templates/it/norestart.tmpl -#usr/share/cups/templates/it/option-boolean.tmpl -#usr/share/cups/templates/it/option-conflict.tmpl -#usr/share/cups/templates/it/option-header.tmpl -#usr/share/cups/templates/it/option-pickmany.tmpl -#usr/share/cups/templates/it/option-pickone.tmpl -#usr/share/cups/templates/it/option-trailer.tmpl -#usr/share/cups/templates/it/pager.tmpl -#usr/share/cups/templates/it/printer-accept.tmpl -#usr/share/cups/templates/it/printer-added.tmpl -#usr/share/cups/templates/it/printer-configured.tmpl -#usr/share/cups/templates/it/printer-confirm.tmpl -#usr/share/cups/templates/it/printer-default.tmpl -#usr/share/cups/templates/it/printer-deleted.tmpl -#usr/share/cups/templates/it/printer-jobs-header.tmpl -#usr/share/cups/templates/it/printer-modified.tmpl -#usr/share/cups/templates/it/printer-purge.tmpl -#usr/share/cups/templates/it/printer-reject.tmpl -#usr/share/cups/templates/it/printer-start.tmpl -#usr/share/cups/templates/it/printer-stop.tmpl -#usr/share/cups/templates/it/printer.tmpl -#usr/share/cups/templates/it/printers-header.tmpl -#usr/share/cups/templates/it/printers.tmpl -#usr/share/cups/templates/it/restart.tmpl -#usr/share/cups/templates/it/samba-export.tmpl -#usr/share/cups/templates/it/samba-exported.tmpl -#usr/share/cups/templates/it/search.tmpl -#usr/share/cups/templates/it/set-printer-options-header.tmpl -#usr/share/cups/templates/it/set-printer-options-trailer.tmpl -#usr/share/cups/templates/it/subscription-added.tmpl -#usr/share/cups/templates/it/subscription-canceled.tmpl -#usr/share/cups/templates/it/test-page.tmpl -#usr/share/cups/templates/it/trailer.tmpl -#usr/share/cups/templates/it/users.tmpl +usr/share/cups/templates/it +usr/share/cups/templates/it/add-class.tmpl +usr/share/cups/templates/it/add-printer.tmpl +usr/share/cups/templates/it/add-rss-subscription.tmpl +usr/share/cups/templates/it/admin.tmpl +usr/share/cups/templates/it/choose-device.tmpl +usr/share/cups/templates/it/choose-make.tmpl +usr/share/cups/templates/it/choose-model.tmpl +usr/share/cups/templates/it/choose-serial.tmpl +usr/share/cups/templates/it/choose-uri.tmpl +usr/share/cups/templates/it/class-added.tmpl +usr/share/cups/templates/it/class-confirm.tmpl +usr/share/cups/templates/it/class-deleted.tmpl +usr/share/cups/templates/it/class-jobs-header.tmpl +usr/share/cups/templates/it/class-modified.tmpl +usr/share/cups/templates/it/class.tmpl +usr/share/cups/templates/it/classes-header.tmpl +usr/share/cups/templates/it/classes.tmpl +usr/share/cups/templates/it/command.tmpl +usr/share/cups/templates/it/edit-config.tmpl +usr/share/cups/templates/it/error-op.tmpl +usr/share/cups/templates/it/error.tmpl +usr/share/cups/templates/it/header.tmpl +usr/share/cups/templates/it/help-header.tmpl +usr/share/cups/templates/it/help-printable.tmpl +usr/share/cups/templates/it/help-trailer.tmpl +usr/share/cups/templates/it/job-cancel.tmpl +usr/share/cups/templates/it/job-hold.tmpl +usr/share/cups/templates/it/job-move.tmpl +usr/share/cups/templates/it/job-moved.tmpl +usr/share/cups/templates/it/job-release.tmpl +usr/share/cups/templates/it/job-restart.tmpl +usr/share/cups/templates/it/jobs-header.tmpl +usr/share/cups/templates/it/jobs.tmpl +usr/share/cups/templates/it/list-available-printers.tmpl +usr/share/cups/templates/it/modify-class.tmpl +usr/share/cups/templates/it/modify-printer.tmpl +usr/share/cups/templates/it/norestart.tmpl +usr/share/cups/templates/it/option-boolean.tmpl +usr/share/cups/templates/it/option-conflict.tmpl +usr/share/cups/templates/it/option-header.tmpl +usr/share/cups/templates/it/option-pickmany.tmpl +usr/share/cups/templates/it/option-pickone.tmpl +usr/share/cups/templates/it/option-trailer.tmpl +usr/share/cups/templates/it/pager.tmpl +usr/share/cups/templates/it/printer-accept.tmpl +usr/share/cups/templates/it/printer-added.tmpl +usr/share/cups/templates/it/printer-configured.tmpl +usr/share/cups/templates/it/printer-confirm.tmpl +usr/share/cups/templates/it/printer-default.tmpl +usr/share/cups/templates/it/printer-deleted.tmpl +usr/share/cups/templates/it/printer-jobs-header.tmpl +usr/share/cups/templates/it/printer-modified.tmpl +usr/share/cups/templates/it/printer-purge.tmpl +usr/share/cups/templates/it/printer-reject.tmpl +usr/share/cups/templates/it/printer-start.tmpl +usr/share/cups/templates/it/printer-stop.tmpl +usr/share/cups/templates/it/printer.tmpl +usr/share/cups/templates/it/printers-header.tmpl +usr/share/cups/templates/it/printers.tmpl +usr/share/cups/templates/it/restart.tmpl +usr/share/cups/templates/it/samba-export.tmpl +usr/share/cups/templates/it/samba-exported.tmpl +usr/share/cups/templates/it/search.tmpl +usr/share/cups/templates/it/set-printer-options-header.tmpl +usr/share/cups/templates/it/set-printer-options-trailer.tmpl +usr/share/cups/templates/it/subscription-added.tmpl +usr/share/cups/templates/it/subscription-canceled.tmpl +usr/share/cups/templates/it/test-page.tmpl +usr/share/cups/templates/it/trailer.tmpl +usr/share/cups/templates/it/users.tmpl #usr/share/cups/templates/ja #usr/share/cups/templates/ja/add-class.tmpl #usr/share/cups/templates/ja/add-printer.tmpl @@ -677,77 +649,6 @@ usr/share/cups/templates/option-pickmany.tmpl usr/share/cups/templates/option-pickone.tmpl usr/share/cups/templates/option-trailer.tmpl usr/share/cups/templates/pager.tmpl -#usr/share/cups/templates/pl -#usr/share/cups/templates/pl/add-class.tmpl -#usr/share/cups/templates/pl/add-printer.tmpl -#usr/share/cups/templates/pl/add-rss-subscription.tmpl -#usr/share/cups/templates/pl/admin.tmpl -#usr/share/cups/templates/pl/choose-device.tmpl -#usr/share/cups/templates/pl/choose-make.tmpl -#usr/share/cups/templates/pl/choose-model.tmpl -#usr/share/cups/templates/pl/choose-serial.tmpl -#usr/share/cups/templates/pl/choose-uri.tmpl -#usr/share/cups/templates/pl/class-added.tmpl -#usr/share/cups/templates/pl/class-confirm.tmpl -#usr/share/cups/templates/pl/class-deleted.tmpl -#usr/share/cups/templates/pl/class-jobs-header.tmpl -#usr/share/cups/templates/pl/class-modified.tmpl -#usr/share/cups/templates/pl/class.tmpl -#usr/share/cups/templates/pl/classes-header.tmpl -#usr/share/cups/templates/pl/classes.tmpl -#usr/share/cups/templates/pl/command.tmpl -#usr/share/cups/templates/pl/edit-config.tmpl -#usr/share/cups/templates/pl/error-op.tmpl -#usr/share/cups/templates/pl/error.tmpl -#usr/share/cups/templates/pl/header.tmpl -#usr/share/cups/templates/pl/help-header.tmpl -#usr/share/cups/templates/pl/help-printable.tmpl -#usr/share/cups/templates/pl/help-trailer.tmpl -#usr/share/cups/templates/pl/job-cancel.tmpl -#usr/share/cups/templates/pl/job-hold.tmpl -#usr/share/cups/templates/pl/job-move.tmpl -#usr/share/cups/templates/pl/job-moved.tmpl -#usr/share/cups/templates/pl/job-release.tmpl -#usr/share/cups/templates/pl/job-restart.tmpl -#usr/share/cups/templates/pl/jobs-header.tmpl -#usr/share/cups/templates/pl/jobs.tmpl -#usr/share/cups/templates/pl/list-available-printers.tmpl -#usr/share/cups/templates/pl/modify-class.tmpl -#usr/share/cups/templates/pl/modify-printer.tmpl -#usr/share/cups/templates/pl/norestart.tmpl -#usr/share/cups/templates/pl/option-boolean.tmpl -#usr/share/cups/templates/pl/option-conflict.tmpl -#usr/share/cups/templates/pl/option-header.tmpl -#usr/share/cups/templates/pl/option-pickmany.tmpl -#usr/share/cups/templates/pl/option-pickone.tmpl -#usr/share/cups/templates/pl/option-trailer.tmpl -#usr/share/cups/templates/pl/pager.tmpl -#usr/share/cups/templates/pl/printer-accept.tmpl -#usr/share/cups/templates/pl/printer-added.tmpl -#usr/share/cups/templates/pl/printer-configured.tmpl -#usr/share/cups/templates/pl/printer-confirm.tmpl -#usr/share/cups/templates/pl/printer-default.tmpl -#usr/share/cups/templates/pl/printer-deleted.tmpl -#usr/share/cups/templates/pl/printer-jobs-header.tmpl -#usr/share/cups/templates/pl/printer-modified.tmpl -#usr/share/cups/templates/pl/printer-purge.tmpl -#usr/share/cups/templates/pl/printer-reject.tmpl -#usr/share/cups/templates/pl/printer-start.tmpl -#usr/share/cups/templates/pl/printer-stop.tmpl -#usr/share/cups/templates/pl/printer.tmpl -#usr/share/cups/templates/pl/printers-header.tmpl -#usr/share/cups/templates/pl/printers.tmpl -#usr/share/cups/templates/pl/restart.tmpl -#usr/share/cups/templates/pl/samba-export.tmpl -#usr/share/cups/templates/pl/samba-exported.tmpl -#usr/share/cups/templates/pl/search.tmpl -#usr/share/cups/templates/pl/set-printer-options-header.tmpl -#usr/share/cups/templates/pl/set-printer-options-trailer.tmpl -#usr/share/cups/templates/pl/subscription-added.tmpl -#usr/share/cups/templates/pl/subscription-canceled.tmpl -#usr/share/cups/templates/pl/test-page.tmpl -#usr/share/cups/templates/pl/trailer.tmpl -#usr/share/cups/templates/pl/users.tmpl usr/share/cups/templates/printer-accept.tmpl usr/share/cups/templates/printer-added.tmpl usr/share/cups/templates/printer-configured.tmpl @@ -764,96 +665,100 @@ usr/share/cups/templates/printer.tmpl usr/share/cups/templates/printers-header.tmpl usr/share/cups/templates/printers.tmpl usr/share/cups/templates/restart.tmpl -#usr/share/cups/templates/ru -#usr/share/cups/templates/ru/add-class.tmpl -#usr/share/cups/templates/ru/add-printer.tmpl -#usr/share/cups/templates/ru/add-rss-subscription.tmpl -#usr/share/cups/templates/ru/admin.tmpl -#usr/share/cups/templates/ru/choose-device.tmpl -#usr/share/cups/templates/ru/choose-make.tmpl -#usr/share/cups/templates/ru/choose-model.tmpl -#usr/share/cups/templates/ru/choose-serial.tmpl -#usr/share/cups/templates/ru/choose-uri.tmpl -#usr/share/cups/templates/ru/class-added.tmpl -#usr/share/cups/templates/ru/class-confirm.tmpl -#usr/share/cups/templates/ru/class-deleted.tmpl -#usr/share/cups/templates/ru/class-jobs-header.tmpl -#usr/share/cups/templates/ru/class-modified.tmpl -#usr/share/cups/templates/ru/class.tmpl -#usr/share/cups/templates/ru/classes-header.tmpl -#usr/share/cups/templates/ru/classes.tmpl -#usr/share/cups/templates/ru/command.tmpl -#usr/share/cups/templates/ru/edit-config.tmpl -#usr/share/cups/templates/ru/error-op.tmpl -#usr/share/cups/templates/ru/error.tmpl -#usr/share/cups/templates/ru/header.tmpl -#usr/share/cups/templates/ru/help-header.tmpl -#usr/share/cups/templates/ru/help-printable.tmpl -#usr/share/cups/templates/ru/help-trailer.tmpl -#usr/share/cups/templates/ru/job-cancel.tmpl -#usr/share/cups/templates/ru/job-hold.tmpl -#usr/share/cups/templates/ru/job-move.tmpl -#usr/share/cups/templates/ru/job-moved.tmpl -#usr/share/cups/templates/ru/job-release.tmpl -#usr/share/cups/templates/ru/job-restart.tmpl -#usr/share/cups/templates/ru/jobs-header.tmpl -#usr/share/cups/templates/ru/jobs.tmpl -#usr/share/cups/templates/ru/list-available-printers.tmpl -#usr/share/cups/templates/ru/modify-class.tmpl -#usr/share/cups/templates/ru/modify-printer.tmpl -#usr/share/cups/templates/ru/norestart.tmpl -#usr/share/cups/templates/ru/option-boolean.tmpl -#usr/share/cups/templates/ru/option-conflict.tmpl -#usr/share/cups/templates/ru/option-header.tmpl -#usr/share/cups/templates/ru/option-pickmany.tmpl -#usr/share/cups/templates/ru/option-pickone.tmpl -#usr/share/cups/templates/ru/option-trailer.tmpl -#usr/share/cups/templates/ru/pager.tmpl -#usr/share/cups/templates/ru/printer-accept.tmpl -#usr/share/cups/templates/ru/printer-added.tmpl -#usr/share/cups/templates/ru/printer-configured.tmpl -#usr/share/cups/templates/ru/printer-confirm.tmpl -#usr/share/cups/templates/ru/printer-default.tmpl -#usr/share/cups/templates/ru/printer-deleted.tmpl -#usr/share/cups/templates/ru/printer-jobs-header.tmpl -#usr/share/cups/templates/ru/printer-modified.tmpl -#usr/share/cups/templates/ru/printer-purge.tmpl -#usr/share/cups/templates/ru/printer-reject.tmpl -#usr/share/cups/templates/ru/printer-start.tmpl -#usr/share/cups/templates/ru/printer-stop.tmpl -#usr/share/cups/templates/ru/printer.tmpl -#usr/share/cups/templates/ru/printers-header.tmpl -#usr/share/cups/templates/ru/printers.tmpl -#usr/share/cups/templates/ru/restart.tmpl -#usr/share/cups/templates/ru/samba-export.tmpl -#usr/share/cups/templates/ru/samba-exported.tmpl -#usr/share/cups/templates/ru/search.tmpl -#usr/share/cups/templates/ru/set-printer-options-header.tmpl -#usr/share/cups/templates/ru/set-printer-options-trailer.tmpl -#usr/share/cups/templates/ru/subscription-added.tmpl -#usr/share/cups/templates/ru/subscription-canceled.tmpl -#usr/share/cups/templates/ru/test-page.tmpl -#usr/share/cups/templates/ru/trailer.tmpl -#usr/share/cups/templates/ru/users.tmpl +usr/share/cups/templates/ru +usr/share/cups/templates/ru/add-class.tmpl +usr/share/cups/templates/ru/add-printer.tmpl +usr/share/cups/templates/ru/add-rss-subscription.tmpl +usr/share/cups/templates/ru/admin.tmpl +usr/share/cups/templates/ru/choose-device.tmpl +usr/share/cups/templates/ru/choose-make.tmpl +usr/share/cups/templates/ru/choose-model.tmpl +usr/share/cups/templates/ru/choose-serial.tmpl +usr/share/cups/templates/ru/choose-uri.tmpl +usr/share/cups/templates/ru/class-added.tmpl +usr/share/cups/templates/ru/class-confirm.tmpl +usr/share/cups/templates/ru/class-deleted.tmpl +usr/share/cups/templates/ru/class-jobs-header.tmpl +usr/share/cups/templates/ru/class-modified.tmpl +usr/share/cups/templates/ru/class.tmpl +usr/share/cups/templates/ru/classes-header.tmpl +usr/share/cups/templates/ru/classes.tmpl +usr/share/cups/templates/ru/command.tmpl +usr/share/cups/templates/ru/edit-config.tmpl +usr/share/cups/templates/ru/error-op.tmpl +usr/share/cups/templates/ru/error.tmpl +usr/share/cups/templates/ru/header.tmpl +usr/share/cups/templates/ru/help-header.tmpl +usr/share/cups/templates/ru/help-printable.tmpl +usr/share/cups/templates/ru/help-trailer.tmpl +usr/share/cups/templates/ru/job-cancel.tmpl +usr/share/cups/templates/ru/job-hold.tmpl +usr/share/cups/templates/ru/job-move.tmpl +usr/share/cups/templates/ru/job-moved.tmpl +usr/share/cups/templates/ru/job-release.tmpl +usr/share/cups/templates/ru/job-restart.tmpl +usr/share/cups/templates/ru/jobs-header.tmpl +usr/share/cups/templates/ru/jobs.tmpl +usr/share/cups/templates/ru/list-available-printers.tmpl +usr/share/cups/templates/ru/modify-class.tmpl +usr/share/cups/templates/ru/modify-printer.tmpl +usr/share/cups/templates/ru/norestart.tmpl +usr/share/cups/templates/ru/option-boolean.tmpl +usr/share/cups/templates/ru/option-conflict.tmpl +usr/share/cups/templates/ru/option-header.tmpl +usr/share/cups/templates/ru/option-pickmany.tmpl +usr/share/cups/templates/ru/option-pickone.tmpl +usr/share/cups/templates/ru/option-trailer.tmpl +usr/share/cups/templates/ru/pager.tmpl +usr/share/cups/templates/ru/printer-accept.tmpl +usr/share/cups/templates/ru/printer-added.tmpl +usr/share/cups/templates/ru/printer-configured.tmpl +usr/share/cups/templates/ru/printer-confirm.tmpl +usr/share/cups/templates/ru/printer-default.tmpl +usr/share/cups/templates/ru/printer-deleted.tmpl +usr/share/cups/templates/ru/printer-jobs-header.tmpl +usr/share/cups/templates/ru/printer-modified.tmpl +usr/share/cups/templates/ru/printer-purge.tmpl +usr/share/cups/templates/ru/printer-reject.tmpl +usr/share/cups/templates/ru/printer-start.tmpl +usr/share/cups/templates/ru/printer-stop.tmpl +usr/share/cups/templates/ru/printer.tmpl +usr/share/cups/templates/ru/printers-header.tmpl +usr/share/cups/templates/ru/printers.tmpl +usr/share/cups/templates/ru/restart.tmpl +usr/share/cups/templates/ru/samba-export.tmpl +usr/share/cups/templates/ru/samba-exported.tmpl +usr/share/cups/templates/ru/search.tmpl +usr/share/cups/templates/ru/set-printer-options-header.tmpl +usr/share/cups/templates/ru/set-printer-options-trailer.tmpl +usr/share/cups/templates/ru/subscription-added.tmpl +usr/share/cups/templates/ru/subscription-canceled.tmpl +usr/share/cups/templates/ru/test-page.tmpl +usr/share/cups/templates/ru/trailer.tmpl +usr/share/cups/templates/ru/users.tmpl usr/share/cups/templates/samba-export.tmpl usr/share/cups/templates/samba-exported.tmpl usr/share/cups/templates/search.tmpl usr/share/cups/templates/set-printer-options-header.tmpl usr/share/cups/templates/set-printer-options-trailer.tmpl -#usr/share/cups/templates/subscription-added.tmpl -#usr/share/cups/templates/subscription-canceled.tmpl +usr/share/cups/templates/subscription-added.tmpl +usr/share/cups/templates/subscription-canceled.tmpl usr/share/cups/templates/test-page.tmpl usr/share/cups/templates/trailer.tmpl usr/share/cups/templates/users.tmpl +usr/share/cups/usb +usr/share/cups/usb/org.cups.usb-quirks #usr/share/doc/cups -usr/share/doc/cups/cups-printable.css -usr/share/doc/cups/cups.css -usr/share/doc/cups/de -#usr/share/doc/cups/de/index.html +#usr/share/doc/cups/ca +#usr/share/doc/cups/ca/index.html +#usr/share/doc/cups/cs +#usr/share/doc/cups/cs/index.html +#usr/share/doc/cups/cups-printable.css +#usr/share/doc/cups/cups.css #usr/share/doc/cups/es #usr/share/doc/cups/es/index.html -#usr/share/doc/cups/eu -#usr/share/doc/cups/eu/index.html +#usr/share/doc/cups/fr +#usr/share/doc/cups/fr/index.html usr/share/doc/cups/help #usr/share/doc/cups/help/accounting.html #usr/share/doc/cups/help/api-array.html @@ -876,7 +781,7 @@ usr/share/doc/cups/help #usr/share/doc/cups/help/man-cancel.html #usr/share/doc/cups/help/man-cups-config.html #usr/share/doc/cups/help/man-cups-lpd.html -#usr/share/doc/cups/help/man-cups-polld.html +#usr/share/doc/cups/help/man-cups-snmp.html #usr/share/doc/cups/help/man-cupsaccept.html #usr/share/doc/cups/help/man-cupsaddsmb.html #usr/share/doc/cups/help/man-cupsd.html @@ -884,6 +789,8 @@ usr/share/doc/cups/help #usr/share/doc/cups/help/man-cupstestdsc.html #usr/share/doc/cups/help/man-cupstestppd.html #usr/share/doc/cups/help/man-filter.html +#usr/share/doc/cups/help/man-ipptool.html +#usr/share/doc/cups/help/man-ipptoolfile.html #usr/share/doc/cups/help/man-lp.html #usr/share/doc/cups/help/man-lpadmin.html #usr/share/doc/cups/help/man-lpc.html @@ -913,6 +820,7 @@ usr/share/doc/cups/help #usr/share/doc/cups/help/ref-access_log.html #usr/share/doc/cups/help/ref-classes-conf.html #usr/share/doc/cups/help/ref-client-conf.html +#usr/share/doc/cups/help/ref-cups-files-conf.html #usr/share/doc/cups/help/ref-cupsd-conf.html #usr/share/doc/cups/help/ref-error_log.html #usr/share/doc/cups/help/ref-mailto-conf.html @@ -924,7 +832,6 @@ usr/share/doc/cups/help #usr/share/doc/cups/help/security.html #usr/share/doc/cups/help/sharing.html #usr/share/doc/cups/help/spec-banner.html -#usr/share/doc/cups/help/spec-browsing.html #usr/share/doc/cups/help/spec-cmp.html #usr/share/doc/cups/help/spec-command.html #usr/share/doc/cups/help/spec-design.html @@ -934,11 +841,8 @@ usr/share/doc/cups/help #usr/share/doc/cups/help/spec-ppd.html #usr/share/doc/cups/help/spec-raster.html #usr/share/doc/cups/help/spec-stp.html -#usr/share/doc/cups/help/standard.html #usr/share/doc/cups/help/translation.html #usr/share/doc/cups/help/whatsnew.html -#usr/share/doc/cups/id -#usr/share/doc/cups/id/index.html usr/share/doc/cups/images #usr/share/doc/cups/images/color-wheel.png #usr/share/doc/cups/images/cups-block-diagram.png @@ -947,7 +851,6 @@ usr/share/doc/cups/images #usr/share/doc/cups/images/cups-postscript-chain.png #usr/share/doc/cups/images/cups-raster-chain.png #usr/share/doc/cups/images/cups.png -#usr/share/doc/cups/images/generic.png #usr/share/doc/cups/images/left.gif #usr/share/doc/cups/images/raster-organization.png #usr/share/doc/cups/images/raster.png @@ -962,36 +865,21 @@ usr/share/doc/cups/index.html #usr/share/doc/cups/it/index.html #usr/share/doc/cups/ja #usr/share/doc/cups/ja/index.html -#usr/share/doc/cups/pl -#usr/share/doc/cups/pl/index.html usr/share/doc/cups/robots.txt #usr/share/doc/cups/ru #usr/share/doc/cups/ru/index.html -#usr/share/locale/da/cups_da.po -#usr/share/locale/de/cups_de.po +#usr/share/locale/ca/cups_ca.po +#usr/share/locale/cs/cups_cs.po #usr/share/locale/es/cups_es.po -#usr/share/locale/eu/cups_eu.po -#usr/share/locale/fi/cups_fi.po #usr/share/locale/fr/cups_fr.po -#usr/share/locale/id/cups_id.po #usr/share/locale/it/cups_it.po #usr/share/locale/ja/cups_ja.po -#usr/share/locale/ko/cups_ko.po -#usr/share/locale/nl/cups_nl.po -#usr/share/locale/no -#usr/share/locale/no/cups_no.po -#usr/share/locale/pl/cups_pl.po -#usr/share/locale/pt/cups_pt.po -#usr/share/locale/pt_BR/cups_pt_BR.po #usr/share/locale/ru/cups_ru.po -#usr/share/locale/sv/cups_sv.po -#usr/share/locale/zh -#usr/share/locale/zh/cups_zh.po -#usr/share/locale/zh_TW/cups_zh_TW.po #usr/share/man/man1/cancel.1.gz #usr/share/man/man1/cups-config.1.gz #usr/share/man/man1/cupstestdsc.1.gz #usr/share/man/man1/cupstestppd.1.gz +#usr/share/man/man1/ipptool.1.gz #usr/share/man/man1/lp.1.gz #usr/share/man/man1/lpoptions.1.gz #usr/share/man/man1/lppasswd.1.gz @@ -1006,8 +894,10 @@ usr/share/doc/cups/robots.txt #usr/share/man/man1/ppdpo.1.gz #usr/share/man/man5/classes.conf.5.gz #usr/share/man/man5/client.conf.5.gz +#usr/share/man/man5/cups-files.conf.5.gz #usr/share/man/man5/cups-snmp.conf.5.gz #usr/share/man/man5/cupsd.conf.5.gz +#usr/share/man/man5/ipptoolfile.5.gz #usr/share/man/man5/mailto.conf.5.gz #usr/share/man/man5/mime.convs.5.gz #usr/share/man/man5/mime.types.5.gz @@ -1021,7 +911,7 @@ usr/share/doc/cups/robots.txt #usr/share/man/man8/cups-deviced.8.gz #usr/share/man/man8/cups-driverd.8.gz #usr/share/man/man8/cups-lpd.8.gz -#usr/share/man/man8/cups-polld.8.gz +#usr/share/man/man8/cups-snmp.8.gz #usr/share/man/man8/cupsaccept.8.gz #usr/share/man/man8/cupsaddsmb.8.gz #usr/share/man/man8/cupsctl.8.gz @@ -1038,6 +928,7 @@ usr/share/doc/cups/robots.txt var/cache/cups #var/cache/cups/rss #var/ipfire/cups +var/ipfire/cups/cups-files.conf var/ipfire/cups/cupsd.conf #var/ipfire/cups/cupsd.conf.default var/ipfire/cups/interfaces @@ -1049,4 +940,3 @@ var/run/cups var/run/cups/certs var/spool/cups var/spool/cups/tmp -etc/rc.d/init.d/cups diff --git a/config/rootfiles/packages/foomatic b/config/rootfiles/packages/foomatic index 589c9e3..933000a 100644 --- a/config/rootfiles/packages/foomatic +++ b/config/rootfiles/packages/foomatic @@ -1,46 +1,29 @@ #etc/foomatic +etc/foomatic/defaultspooler etc/foomatic/direct etc/foomatic/filter.conf -#etc/foomatic/filter.conf.sample usr/bin/foomatic-combo-xml usr/bin/foomatic-compiledb usr/bin/foomatic-configure usr/bin/foomatic-datafile -usr/bin/foomatic-gswrapper usr/bin/foomatic-perl-data usr/bin/foomatic-ppd-options +usr/bin/foomatic-ppd-to-xml usr/bin/foomatic-ppdfile usr/bin/foomatic-printjob usr/bin/foomatic-rip usr/bin/foomatic-searchprinter usr/lib/cups/backend/beh usr/lib/cups/driver/foomatic +usr/lib/cups/filter/foomatic-ppdfile usr/lib/cups/filter/foomatic-rip #usr/lib/perl5/site_perl/5.12.3/Foomatic usr/lib/perl5/site_perl/5.12.3/Foomatic/DB.pm usr/lib/perl5/site_perl/5.12.3/Foomatic/Defaults.pm usr/lib/perl5/site_perl/5.12.3/Foomatic/PPD.pm usr/lib/perl5/site_perl/5.12.3/Foomatic/UIElem.pm -#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Foomatic -#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Foomatic/.packlist -#usr/lib/ppr -#usr/lib/ppr/interfaces -usr/lib/ppr/interfaces/foomatic-rip -#usr/lib/ppr/lib -usr/lib/ppr/lib/foomatic-rip -#usr/man/man1/foomatic-combo-xml.1 -#usr/man/man1/foomatic-compiledb.1 -#usr/man/man1/foomatic-configure.1 -#usr/man/man1/foomatic-gswrapper.1 -#usr/man/man1/foomatic-perl-data.1 -#usr/man/man1/foomatic-ppd-options.1 -#usr/man/man1/foomatic-ppdfile.1 -#usr/man/man1/foomatic-printjob.1 -#usr/man/man1/foomatic-rip.1 -#usr/man/man8/foomatic-addpjloptions.8 -#usr/man/man8/foomatic-getpjloptions.8 -#usr/man/man8/foomatic-kitload.8 -#usr/man/man8/foomatic-preferred-driver.8 +#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Foomatic +#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Foomatic/.packlist usr/sbin/foomatic-addpjloptions usr/sbin/foomatic-cleanupdrivers usr/sbin/foomatic-extract-text @@ -60,7 +43,10 @@ usr/share/cups/model/foomatic-db-ppds #usr/share/foomatic/db/source/PPD/Brother usr/share/foomatic/db/source/PPD/Brother/BR2600CN_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR2700_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR3070_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR3450CN_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR4050_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR4070_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5050_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5070DN_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5070_2_GPL.ppd.gz @@ -69,24 +55,49 @@ usr/share/foomatic/db/source/PPD/Brother/BR5170_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5240_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5250_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR5270_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR5350_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR5370_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR5380_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR6050D2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR6050_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR7025_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR7045_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR7050_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR7225_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR7450_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR7820_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR7840_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR784N_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8020_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8025_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8040_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8045_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8050_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8080_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8085_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8220_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8370_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8380_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8420_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8440_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8480_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8640_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8670_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8680_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8820_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR8840_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8880_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR8890_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR901D_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR901M_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9040_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9045_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9120_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9320_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BR9420_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9440_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9450_2_GPL.ppd.gz +usr/share/foomatic/db/source/PPD/Brother/BR9840_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BRHL14_1_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BRHL14_2_GPL.ppd.gz usr/share/foomatic/db/source/PPD/Brother/BRHL16_2_GPL.ppd.gz @@ -98,10 +109,23 @@ usr/share/foomatic/db/source/PPD/Epson/epal2600.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc190.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc200.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc260.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalc280.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalc380.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc400.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc410.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalc420.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc860.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epalc910.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalc920.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalcx21.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm200.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm201.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm240.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm241.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm400.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalm800.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalmx20.ppd.gz +usr/share/foomatic/db/source/PPD/Epson/epalmx21.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epl5900.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epl6100.ppd.gz usr/share/foomatic/db/source/PPD/Epson/epl6200.ppd.gz @@ -143,7 +167,12 @@ usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C7528n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C7531dn_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C7535n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C7640nD_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C8140ND_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-C8150ND_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-CS555_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc1030_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc1045_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc1060_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc224_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc232_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSc328_PS.ppd.gz @@ -178,10 +207,19 @@ usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSm730_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSm735_735G_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-DSm745_745G_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-F9199_9199nf_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-GWD2004_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-GWD2006_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-GWD3006_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-GWD5100_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-GWD7140_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP1100_DSm7110_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP1350_DSm7135_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP1600_DSm716_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP2000_DSm721d_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP2352_DSm923_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP2500_DSm625_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP2852_DSm928_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP3352_DSm933_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP3500_DSm735e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP4500_DSm745e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP5500_DSm755_PS.ppd.gz @@ -194,11 +232,79 @@ usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MPC3000_DSc530_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MPC3500_DSc535_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MPC4500_DSc545_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_161_DSm416_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_171_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2501_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2510_DSm725e_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2550B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_2851_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_3010_DSm730e_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_3350B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_3350_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_3351_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_4000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_4001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_4002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_5000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_5001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_5002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_6001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_6002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_7000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_7001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_8000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_8001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_9001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_9002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C2050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C2051_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C2551_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C2800_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C300SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C400SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C400_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C6501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C7501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-MP_CW2200_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7026_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7026n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7031nL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7031n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7032_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7035n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7126_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7126n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7132n_PS.ppd.gz @@ -212,6 +318,20 @@ usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7527n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7535n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7575_PS.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-P7675_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_4210N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_6330N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_8200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_C320DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_C420DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_C430DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_C431DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PS/Gestetner-SP_W2470_PS.ppd.gz #usr/share/foomatic/db/source/PPD/Gestetner/PXL usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-10512_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-2212_PXL.ppd.gz @@ -225,6 +345,9 @@ usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-6002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-7502_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-9002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-CS555_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc1030_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc1045_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc1060_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc424_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc428_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-DSc432_PXL.ppd.gz @@ -253,6 +376,10 @@ usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP1100_DSm7110_PXL.ppd. usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP1350_DSm7135_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP1600_DSm716_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP2000_DSm721d_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP2352_DSm923_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP2500_DSm625_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP2852_DSm928_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP3352_DSm933_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP3500_DSm735e_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP4500_DSm745e_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP5500_DSm755_PXL.ppd.gz @@ -265,34 +392,77 @@ usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MPC3000_DSc530_PXL.ppd. usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MPC3500_DSc535_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MPC4500_DSc545_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_161_DSm416_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_171_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2501_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2510_DSm725e_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2550B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_2851_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_3010_DSm730e_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_3350B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_3350_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_3351_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_4000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_4001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_4002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_5000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_5001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_5002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_6001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_6002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_7000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_7001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_8000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_8001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_9001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_9002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C2050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C2051_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C2551_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C2800_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C300SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C400SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C400_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C6501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C7501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Gestetner/PXL/Gestetner-Pro_907EX_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/HP -usr/share/foomatic/db/source/PPD/HP/HP_Business_Inkjet_2250.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Business_Inkjet_2280.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Business_Inkjet_2600.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Business_Inkjet_2800.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Business_Inkjet_3000.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_CM8050_CM8060_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_2550.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_2605.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_2700.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_2800.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_3000.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_3800.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_4500.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_4550.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_4700.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_4730_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_5550.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_5M.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_8500.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_8550.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_CM1015.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_CM4730_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_CP3505.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_CP4005.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_DesignJet_1050C_PS3.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_DesignJet_1055CM_PS3.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_DesignJet_2500CP_PS3.ppd.gz @@ -300,78 +470,16 @@ usr/share/foomatic/db/source/PPD/HP/HP_DesignJet_3500CP_PS3.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_Designjet_5000_PS3.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_Designjet_5500_PS3.ppd.gz usr/share/foomatic/db/source/PPD/HP/HP_Designjet_800_PS3.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_1200.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_1220.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_1320_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_2100_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_2200.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_2410.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_2420.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_2430.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_3050.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_3052.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_3200.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_3300_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_3390.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4000_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4050_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4100_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4100_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4240.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4250.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4345_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4350.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4ML.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4MP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4Si_v2011.110.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4V.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4_Plus.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5000_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5100_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5200.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5200L.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5M.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5MP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5Si.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_5Si_Mopier.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_6MP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_8000_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_8100_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_8150_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9000_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9000_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9040.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9040_9050_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9050.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_9055_9065_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_M3027_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_M3035_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_M4345_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_M5025_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_M5035_MFP.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_P2015.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_P3004.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_P3005.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Mopier_240.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_Mopier_320.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_1300_series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_2300.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_3015.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_3020_3030.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_3380.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_4200_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_4300_Series.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_business_inkjet_2300.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_2500.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_3700.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_4600.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_4610.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_4650.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_5500.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_9500.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_color_LaserJet_9500_MFP.ppd.gz usr/share/foomatic/db/source/PPD/HP/hp_officejet_9100_series.ppd.gz +#usr/share/foomatic/db/source/PPD/InfoPrint +#usr/share/foomatic/db/source/PPD/InfoPrint/PS +usr/share/foomatic/db/source/PPD/InfoPrint/PS/InfoPrint-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/InfoPrint/PS/InfoPrint-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/InfoPrint/PS/InfoPrint-Pro_907EX_PS.ppd.gz +#usr/share/foomatic/db/source/PPD/InfoPrint/PXL +usr/share/foomatic/db/source/PPD/InfoPrint/PXL/InfoPrint-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/InfoPrint/PXL/InfoPrint-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/InfoPrint/PXL/InfoPrint-Pro_907EX_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/Infotec #usr/share/foomatic/db/source/PPD/Infotec/PS usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-4353_MF_PS.ppd.gz @@ -435,6 +543,7 @@ usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2265_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2275_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2316_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2320_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2325_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2416_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2425_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2430_PS.ppd.gz @@ -443,6 +552,82 @@ usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_2445_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_3090_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_3110_PS.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-IS_3135_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_171_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_201_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2550B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2851_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_2852_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_3350B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_3350_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_3351_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_3352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_4000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_4001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_4002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_5000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_5001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_5002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_6001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_6002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_7000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_7001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_8000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_8001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_9001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_9002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C2050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C2051_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C2551_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C2800_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C300SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C400SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C400_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C6501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C7501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_C5100S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PS/Infotec-Pro_C5110S_PS.ppd.gz #usr/share/foomatic/db/source/PPD/Infotec/PXL usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-4353_MF_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-4452_MF_PXL.ppd.gz @@ -491,6 +676,7 @@ usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2265_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2275_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2316_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2320_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2325_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2416_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2425_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2430_PXL.ppd.gz @@ -499,6 +685,80 @@ usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_2445_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_3090_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_3110_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-IS_3135_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_171_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_201_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2550B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2851_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_2852_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_3350B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_3350_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_3351_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_3352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_4000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_4001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_4002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_5000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_5001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_5002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_6001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_6002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_7000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_7001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_8000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_8001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_9001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_9002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C2050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C2051_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C2551_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C2800_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C300SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C400SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C400_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C6501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C7501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_907EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_C5100S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Infotec/PXL/Infotec-Pro_C5110S_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/KONICA_MINOLTA usr/share/foomatic/db/source/PPD/KONICA_MINOLTA/KO1050UX.ppd.gz usr/share/foomatic/db/source/PPD/KONICA_MINOLTA/KO500UX.ppd.gz @@ -521,17 +781,29 @@ usr/share/foomatic/db/source/PPD/KONICA_MINOLTA/KOC550UX.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera #usr/share/foomatic/db/source/PPD/Kyocera/ReadMe.htm #usr/share/foomatic/db/source/PPD/Kyocera/de +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS-C2525E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS-C3225E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS-C3232E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS-C4035E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1000_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1030_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1118MFP_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1200_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1700+_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1700_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1714M_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-1750_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-2000D_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-3700+_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-3700_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-3718M_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-3750_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-3900DN_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-4000DN_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-5800C_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-5900C_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-600_de.ppd.gz @@ -539,19 +811,34 @@ usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-6300_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-6700_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-680_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-6900_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-6950DN_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-7000+_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-7000_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-7028M_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-800_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-9000_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-920_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5015N_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5020N_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5025N_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5030N_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS-C8100DN_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-1820_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-3050_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-4050_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-5050_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-6030_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-8030_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-C2525E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-C3225E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-C3232E_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_KM-C4035E_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_CS-1650_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_CS-1815_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_CS-2050_de.ppd.gz @@ -602,21 +889,41 @@ usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_KM-7530_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_KM-C2630_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_KM-C830_de.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_Mita_KM-C850_de.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/de/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera/en +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS-C2525E_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS-C3225E_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS-C3232E_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS-C4035E_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_3050ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_3550ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1000_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1030_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1118MFP_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1200_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1700+_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1700_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1714M_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-1750_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-2000D_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-2100D.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-2100DN.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-3700+_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-3700_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-3718M_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-3750_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-3900DN_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-4000DN_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-4100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-4200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-4300DN.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-5800C_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-5900C_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-600_en.ppd.gz @@ -634,16 +941,30 @@ usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-9000_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-9130DN_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-920_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-9530DN_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5015N_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5020N_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5025N_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5030N_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS-C8100DN_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-1820_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-3050_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-4050_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-5050_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-6030_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-8030_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C2520_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C2525E_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C3225E_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C3225_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C3232E_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C3232_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_KM-C4035E_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_CS-1650_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_CS-1815_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_CS-2050_en.ppd.gz @@ -695,8 +1016,22 @@ usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_KM-7530_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_KM-C2630_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_KM-C830_en.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_Mita_KM-C850_en.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/en/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera/es +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS-C2525E_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS-C3225E_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS-C3232E_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS-C4035E_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1000_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1030_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1118MFP_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1200_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1700+_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-1700_es.ppd.gz @@ -713,6 +1048,7 @@ usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-5800C_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-5900C_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-600_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-6300_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-6500+_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-6700_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-680_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-6900_es.ppd.gz @@ -723,10 +1059,29 @@ usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-7028M_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-800_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-9000_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-9130DN_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-920_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-9530DN_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5015N_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5020N_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5025N_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5030N_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS-C8100DN_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-1820_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-6030_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-8030_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C2520_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C2525E_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C3225E_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C3225_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C3232E_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C3232_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_KM-C4035E_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_CS-1650_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_CS-1815_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_CS-2050_es.ppd.gz @@ -777,8 +1132,22 @@ usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_KM-7530_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_KM-C2630_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_KM-C830_es.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_Mita_KM-C850_es.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/es/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera/fr +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS-C2525E_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS-C3225E_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS-C3232E_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS-C4035E_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1000_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1030_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1118MFP_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1200_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1700+_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-1700_fr.ppd.gz @@ -795,6 +1164,7 @@ usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-5800C_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-5900C_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-600_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-6300_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-6500+_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-6700_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-680_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-6900_fr.ppd.gz @@ -805,10 +1175,29 @@ usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-7028M_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-800_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-9000_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-9130DN_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-920_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-9530DN_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5015N_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5020N_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5025N_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5030N_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS-C8100DN_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-1820_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-6030_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-8030_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C2520_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C2525E_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C3225E_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C3225_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C3232E_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C3232_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_KM-C4035E_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_CS-1650_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_CS-1815_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_CS-2050_fr.ppd.gz @@ -859,18 +1248,34 @@ usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_KM-7530_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_KM-C2630_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_KM-C830_fr.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_Mita_KM-C850_fr.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/fr/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera/it +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS-C2525E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS-C3225E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS-C3232E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS-C4035E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1000_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1030_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1118MFP_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1200_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1700+_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1700_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1714M_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-1750_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-2000D_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-3700+_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-3700_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-3718M_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-3750_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-3900DN_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-4000DN_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-5800C_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-5900C_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-600_it.ppd.gz @@ -878,19 +1283,34 @@ usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-6300_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-6700_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-680_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-6900_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-6950DN_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-7000+_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-7000_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-7028M_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-800_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-9000_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-920_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5015N_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5020N_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5025N_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5030N_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS-C8100DN_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-1820_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-3050_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-4050_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-5050_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-6030_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-8030_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-C2525E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-C3225E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-C3232E_it.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_KM-C4035E_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_CS-1650_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_CS-1815_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_CS-2050_it.ppd.gz @@ -941,9 +1361,22 @@ usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_KM-7530_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_KM-C2630_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_KM-C830_it.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_Mita_KM-C850_it.ppd.gz -usr/share/foomatic/db/source/PPD/Kyocera/kyocera_ppd_8.2.txt +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/it/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Kyocera/pt +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS-C2525E_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS-C3225E_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS-C3232E_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS-C4035E_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_CS_500ci.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1000_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1030_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1118MFP_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1200_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1700+_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-1700_pt.ppd.gz @@ -960,6 +1393,7 @@ usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-5800C_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-5900C_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-600_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-6300_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-6500+_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-6700_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-680_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-6900_pt.ppd.gz @@ -970,10 +1404,29 @@ usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-7028M_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-800_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-9000_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-9130DN_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-920_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-9530DN_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5015N_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5020N_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5025N_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5030N_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5100DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5200DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5300DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5350DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C5400DN.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS-C8100DN_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_FS_C8100DNP.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-1820_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-6030_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-8030_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C2520_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C2525E_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C3225E_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C3225_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C3232E_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C3232_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_KM-C4035E_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_CS-1650_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_CS-1815_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_CS-2050_pt.ppd.gz @@ -1024,6 +1477,10 @@ usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_KM-7530_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_KM-C2630_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_KM-C830_pt.ppd.gz usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_Mita_KM-C850_pt.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_TASKalfa_250ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_TASKalfa_300ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_TASKalfa_400ci.ppd.gz +usr/share/foomatic/db/source/PPD/Kyocera/pt/Kyocera_TASKalfa_500ci.ppd.gz #usr/share/foomatic/db/source/PPD/Lanier #usr/share/foomatic/db/source/PPD/Lanier/PS usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-2132_PS.ppd.gz @@ -1071,6 +1528,12 @@ usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD245_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD328c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD335c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD345c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_130CSR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_130C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_140CSR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_140C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_620C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LD_625C_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LF510_515e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP025N_LP026N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP025_LP026_PS.ppd.gz @@ -1078,41 +1541,153 @@ usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP031c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP032_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP116c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP122c_LP121c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP124w_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP125cx_LP126cn_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP127n_LP128n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP128_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP131nL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP131n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP135n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP136n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP137CN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP138c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP142CN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP145n_SP_8100DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP150dn_SP8200DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP175_LP175hdn_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP222cn_LP221c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP226c_SP_C410_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP231c_SP_C411_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP235N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP235c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP331cn_SP_C420_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP332c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP335c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP37N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP440c_SP_C811DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP540C_SPC820DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP550C_SPC821DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP_020c_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LP_036c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LW324_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LW326_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LW426_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LW5100_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-LW7140_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP2500_LD125_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MPC1500_LD215c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MPC4501A_LD645CA_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MPC5501A_LD655CA_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_1100_LD1100_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_1350_LD1135_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_1600_LD316_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_161_LD016_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_171_LD_117_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2000_LD320d_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_201_LD_220_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2501_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2510_LD325_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2550B_LD425B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2550_LD425_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2851_LD528_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_2852_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3010_LD330_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3350B_LD433B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3350_LD433_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3351_LD533_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3352_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_3500_LD335_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_4000B_LD040B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_4000_LD040_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_4001_LD140_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_4002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_4500_LD345_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_5000B_LD050B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_5000_LD050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_5001_LD150_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_5002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_5500_LD255_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_6000_LD260_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_6001_LD360_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_6002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_6500_LD265_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_7000_LD270_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_7001_LD370_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_7500_LD275_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_8000_LD280_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_8001_LD380_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_9000_LD190_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_9001_LD390_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_9002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C2050_LD520C_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C2500_LD425c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C2550_LD525C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C2800_LD528C_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3000_LD430c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3001_LD630C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C300SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3300_LD533C_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3500_LD435c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3501_LD635C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4000_LD540C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C400SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C400_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4500_LD445c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4501_LD645C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C5000_LD550C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C5501_LD655C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C6000_LD260c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C6501_LD365C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C7500_LD275c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C7501_LD375C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-MP_CW2200_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_C5100S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-Pro_C5110S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_4100NL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_4100N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_4110N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_4210N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_4310N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_5200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_5200S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_5210DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_5210SF_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_5210SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_6330N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_8300DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_9100_LP275_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C320DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C400DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C430DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C431DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C730DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C830DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PS/Lanier-SP_C831DN_PS.ppd.gz #usr/share/foomatic/db/source/PPD/Lanier/PXL usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-5622_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-5627_PXL.ppd.gz @@ -1151,24 +1726,176 @@ usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD245_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD328c_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD335c_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD345c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_130CSR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_130C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_140CSR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_140C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_620C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-LD_625C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP2500_LD125_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MPC1500_LD215c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MPC4501A_LD645CA_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MPC5501A_LD655CA_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_1100_LD1100_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_1350_LD1135_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_1600_LD316_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_161_LD016_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_171_LD_117_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2000_LD320d_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_201_LD_220_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2501_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2510_LD325_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2550B_LD425B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2550_LD425_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2851_LD528_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_2852_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3010_LD330_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3350B_LD433B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3350_LD433_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3351_LD533_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3352_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_3500_LD335_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_4000B_LD040B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_4000_LD040_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_4001_LD140_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_4002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_4500_LD345_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_5000B_LD050B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_5000_LD050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_5001_LD150_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_5002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_5500_LD255_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_6000_LD260_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_6001_LD360_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_6002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_6500_LD265_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_7000_LD270_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_7001_LD370_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_7500_LD275_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_8000_LD280_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_8001_LD380_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_9000_LD190_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_9001_LD390_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_9002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C2050_LD520C_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C2500_LD425c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C2550_LD525C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C2800_LD528C_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3000_LD430c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3001_LD630C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C300SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3300_LD533C_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3500_LD435c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3501_LD635C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4000_LD540C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C400SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C400_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4500_LD445c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4501_LD645C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C5000_LD550C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C5501_LD655C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C6000_LD260c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C6501_LD365C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C7500_LD275c_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C7501_LD375C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_907EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_C5100S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-Pro_C5110S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-SG3100SNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lanier/PXL/Lanier-SG3110SFNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_6500e_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C510.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C520.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C522.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C524.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C540.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C543.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C544.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C546.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C734.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C736.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C750.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C752.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C780.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C782.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C790_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C910.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C912.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C920_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C930.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C935.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_C950_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E260.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E260d.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E260dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E350d.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E352dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E360d.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E360dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E460dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E460dw.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_E462dtn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_EG460dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_T650.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_T652.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_T654.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_T656.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_TG654.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_W850.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X203n.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X204n.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X264dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X363dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X364dn.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X364dw.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X463de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X464de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X466de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X466dte.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X466dwe.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X543.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X544.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X546.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X548_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X651de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X652de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X654de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X656de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X658de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X734de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X736de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X738de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X790_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X860de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X862de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X864de.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X920_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X940e.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X945e.ppd.gz +usr/share/foomatic/db/source/PPD/Lexmark/Lexmark_X950_Series.ppd.gz #usr/share/foomatic/db/source/PPD/NRG #usr/share/foomatic/db/source/PPD/NRG/PS usr/share/foomatic/db/source/PPD/NRG/PS/NRG-10515_10518_10512_PS.ppd.gz @@ -1229,20 +1956,96 @@ usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_1100_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_1350_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_1600_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_161_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_171_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_201_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2501_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2510_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2550B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2851_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_2852_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3010_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3350B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3350_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3351_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3352_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_3500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_4000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_4001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_4002_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_4500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_5000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_5001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_5002_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_5500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_6001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_6002_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_6500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_7000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_7001_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_8000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_8001_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_9000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_9001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_9002_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C1500sp_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2051_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2551_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C2800_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C300SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3300_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C400SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C400_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C6501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C7501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_CW2200_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W2400_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W2401_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W3600_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W3601_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W5100_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-MP_W7140_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7026N_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7026_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7032_PS.ppd.gz @@ -1257,11 +2060,42 @@ usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7527_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7527n_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7535n_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-P7575_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_C5100S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-Pro_C5110S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_4100NL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_4100N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_4110N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_4210N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_4310N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_5200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_5200S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_5210DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_5210SF_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_5210SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_6330N_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_8100DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_8200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_8300DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_9100DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C320DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C410DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C411DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C420DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C430DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C431DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C730DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C811DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C820DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C821DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C830DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_C831DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PS/NRG-SP_W2470_PS.ppd.gz #usr/share/foomatic/db/source/PPD/NRG/PXL usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-10515_10518_10512_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-2205_2238_2212_PXL.ppd.gz @@ -1304,20 +2138,100 @@ usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_1100_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_1350_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_1600_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_161_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_171_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_201_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2501_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2510_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2550B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2851_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_2852_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3010_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3350B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3350_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3351_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3352_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_3500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_4000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_4001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_4002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_4500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_5000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_5001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_5002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_5500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_6001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_6002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_6500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_7000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_7001_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_8000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_8001_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_9000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_9001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_9002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C1500sp_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2051_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2551_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C2800_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C300SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3300_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C400SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C400_PXL.ppd.gz usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C6501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C7501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_907EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_C5100S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-Pro_C5110S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-SG2100N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-SG3100SNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-SG3110DN_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-SG3110DNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/NRG/PXL/NRG-SG3110SFNw_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/Oce #usr/share/foomatic/db/source/PPD/Oce/Oce-3145PS #usr/share/foomatic/db/source/PPD/Oce/Oce-3145PS/1 @@ -1389,43 +2303,36 @@ usr/share/foomatic/db/source/PPD/Oce/Oce-VarioPrint_2105PS/1/OCVP2105.ppd.gz #usr/share/foomatic/db/source/PPD/Oce/Oce-VarioPrint_2110PS/1 usr/share/foomatic/db/source/PPD/Oce/Oce-VarioPrint_2110PS/1/OCVP2110.ppd.gz #usr/share/foomatic/db/source/PPD/Oce/Others -usr/share/foomatic/db/source/PPD/Oce/Others/OC2050_3.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC2060_3.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC2070_3.ppd.gz +usr/share/foomatic/db/source/PPD/Oce/Others/IM8530_1.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC3145_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC3145_3.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC3155_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC3155_3.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC3165_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC3165_3.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC8445_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC8445_3.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC8465_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OC8465_3.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC9230_2.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC9245_2.ppd.gz usr/share/foomatic/db/source/PPD/Oce/Others/OC9260_2.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OCVP2090.ppd.gz -usr/share/foomatic/db/source/PPD/Oce/Others/OCVP2105.ppd.gz -#usr/share/foomatic/db/source/PPD/Okidata -usr/share/foomatic/db/source/PPD/Okidata/OK5700_a.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/OK5900_a.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/OK6100_a.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok4300u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok5300u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok5400u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok5450u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok7100u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok7200u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok7300u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok7400u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok7500u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok9200u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok9300u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok9400u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok9500u1.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/ok9600u1a.ppd.gz -usr/share/foomatic/db/source/PPD/Okidata/okop14u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki +usr/share/foomatic/db/source/PPD/Oki/OK5700_a.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/OK5900_a.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/OK6100_a.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/OK8800_a.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok4300u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok4350u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok5300u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok5400u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok5450u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok7100u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok7200u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok7300u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok7400u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok7500u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok9200u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok9300u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok9400u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok9500u1.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/ok9600u1a.ppd.gz +usr/share/foomatic/db/source/PPD/Oki/okop14u1.ppd.gz #usr/share/foomatic/db/source/PPD/Ricoh #usr/share/foomatic/db/source/PPD/Ricoh/PS usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_1022_PS.ppd.gz @@ -1501,24 +2408,114 @@ usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_1100_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_1350_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_1600_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_161_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_171_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_201_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2500_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2510_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2550B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2851_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_2852_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3010_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3350B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3350_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3351_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3352_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_3500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_4000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_4001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_4002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_4500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_5000B_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_5001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_5002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_5500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_6001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_6002_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_6500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_7000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_7001_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_8000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_8001_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_9000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_9001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_9002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2051_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2550_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2551_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C2800_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C300SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C300_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3300_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C400SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C400_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C5000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C5501A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C5501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C6000_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C6501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C7500_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_C7501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W2400_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W2401_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W3600_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W3601_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W5100_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_MP_W7140_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_4100NL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_4100N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_4110N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_4210N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_4310N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_5200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_5200S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_5210DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_5210SF_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_5210SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_6330N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_8100DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_8200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_8300DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_9100DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C320DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C400DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C410DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C411DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C420DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C430DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C431DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C730DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C811DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C820DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C821DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C830DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_C831DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Aficio_SP_W2470_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-ColorLaser_AP828_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-DDP_70_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-DDP_92_PS.ppd.gz @@ -1528,8 +2525,31 @@ usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-LASER_AP2600N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-LASER_AP2600_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-LASER_AP2610N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-LASER_AP2610_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_2001_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_2501_PS.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C1500_615C_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-MP_CW2200_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_C5100S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PS/Ricoh-Pro_C5110S_PS.ppd.gz #usr/share/foomatic/db/source/PPD/Ricoh/PXL +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-AficioSG2100N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-AficioSG3100SNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-AficioSG3110DN_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-AficioSG3110DNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-AficioSG3110SFNw_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_1022_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_1027_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_1032_PXL.ppd.gz @@ -1571,22 +2591,181 @@ usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_1100_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_1350_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_1600_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_161_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_171_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_201_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2500_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2510_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2550B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2851_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_2852_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3010_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3350B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3350_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3351_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3352_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_3500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_4000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_4001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_4002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_4500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_5000B_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_5001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_5002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_5500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_6001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_6002_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_6500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_7000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_7001_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_8000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_8001_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_9000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_9001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_9002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2051_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2550_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2551_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C2800_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C300SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C300_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3300_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C400SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C400_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C5000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C5501A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C5501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C6000_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C6501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C7500_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Aficio_MP_C7501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-GX_3050N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-GX_3050SFN_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-GX_5050N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-GX_E3350N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-GX_E5550N_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_2001_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_2501_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C1500_615C_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_907EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_C5100S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Ricoh/PXL/Ricoh-Pro_C5110S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung +usr/share/foomatic/db/source/PPD/Samsung/PS +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-350_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-410_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-660_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-670_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-680_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-770_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLP-775_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-3300_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-4190_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-6200_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-6220_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-6240_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-6250_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-6260_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-8380_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-8385X_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-8385_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-8540_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-8640_8650_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-9250_9350_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-9252_9352_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-92x1_93x1_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-981x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_CLX-982x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_M337x_387x_407x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2150_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2550_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2570_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2850_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2853_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-2855_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-3470_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-3475_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-371x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-375x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-4050_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-4055_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-451x_501x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-4550_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-4555_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-551x_651x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-8850_8950_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_ML-8x00_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-483x_5x3x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-4x28_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-5635_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-5835_5935X_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-5835_5935_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6545X_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6545_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-681x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6x20_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6x22_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6x45_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6x55X_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-6x55_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-8030_8040_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-8123_8128_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-8230_8240_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-881x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PS/Samsung_SCX-882x_Series.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_CLP-610_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_CLP-620_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_M262x_282x_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_M267x_287x_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_ML-2525W_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_ML-2580_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_ML-2950_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_SCX-470x_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_SCX-472x_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_SCX-4x24_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_SCX-4x25_Series_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Samsung/PXL/Samsung_SCX-4x26_Series_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/Savin #usr/share/foomatic/db/source/PPD/Savin/PS +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2404WDP_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2404WD_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2406WD_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2522_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2527_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2532_PS.ppd.gz @@ -1594,6 +2773,7 @@ usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2535_2235_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2545_2245_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2560_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-2575_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-3406WD_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-3515_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-40105_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-4015_PS.ppd.gz @@ -1609,6 +2789,9 @@ usr/share/foomatic/db/source/PPD/Savin/PS/Savin-4051_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-4060_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-4075_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-4090_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-5100WD_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-7025_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-7140WD_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8016_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8020_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8020d_PS.ppd.gz @@ -1621,14 +2804,35 @@ usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8035e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8045_8045g_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8045e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8055_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8060_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8065_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8070_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8075_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8080_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8090_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8110_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-8135_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-816_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9016_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9021d_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9025_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9025b_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9033_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9033b_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9040_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9040b_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9050_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9050b_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9060_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9070_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9080_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9090_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-917_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-920_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9228_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9233_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9240_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-9250_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2408_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2410_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2524_PS.ppd.gz @@ -1636,18 +2840,37 @@ usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2525_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2532_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2820_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2824_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C2828_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3030_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3210_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3210e_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3224_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3333_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3528_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3535_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C3828_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C4040_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C4535_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C4540_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C5050_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C6045_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C6055_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C7570_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9020_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9025_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9065_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9075_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9120_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9125_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9130_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9135_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9145A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9145_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9155A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C9155_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP1036_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP128_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP131DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP135_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP1620_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP17_PS.ppd.gz @@ -1658,28 +2881,89 @@ usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP26DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP27DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP28_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP31DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP340D_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP350D_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP35_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP37DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP42DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-CLP831_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C_230SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C_230_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C_240SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-C_240_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-FAX3799_3799nf_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP145_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP150DN_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP175n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP235n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP25_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP25n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP26_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP26n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP28_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP28n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP31nL_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP31n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP32_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP35n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP36n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP37N_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP45_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MLP75n_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_2352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_2501_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_2852_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_301_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_3352_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_4002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_5002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_6002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_7502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_9002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C3002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C3003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C305_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C3502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C3503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C4502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C4502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C4503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C5502A_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C5502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C5503_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C6003_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C6502_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_C8002_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-MP_CW2200_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_1106EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_1107EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_1356EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_1357EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_906EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_907EX_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_C5100S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-Pro_C5110S_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SDC555_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SGC_1506_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SLP26_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SLP26n_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SLP32_PS.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SLP38c_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_4310N_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_5200DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_5200S_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_5210DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_5210SF_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_5210SR_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_8300DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_C320DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_C400DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_C730DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_C830DN_PS.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PS/Savin-SP_C831DN_PS.ppd.gz #usr/share/foomatic/db/source/PPD/Savin/PXL +usr/share/foomatic/db/source/PPD/Savin/PXL/SAVIN-SG3110DN_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/SAVIN-SG3110DNw_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-2522_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-2527_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-2532_PXL.ppd.gz @@ -1702,6 +2986,7 @@ usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-4051_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-4060_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-4075_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-4090_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-7025_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8016_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8020_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8020d_PXL.ppd.gz @@ -1714,46 +2999,115 @@ usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8035e_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8045_8045g_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8045e_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8055_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8060_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8065_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8070_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8075_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8080_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8090_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8110_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-8135_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-816_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9016_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9021d_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9025_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9025b_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9033_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9033b_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9040_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9040b_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9050_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9050b_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9060_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9070_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9080_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9090_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-917_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-920_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9228_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9233_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9240_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-9250_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C2410_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C2525_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C2824_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C2828_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C3030_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C3210e_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C3333_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C3528_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C3535_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C4040_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C4535_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C4540_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C5050_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C6045_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C6055_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C7570_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9020_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9025_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9065_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9075_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9120_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9125_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9130_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9135_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9145A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9145_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9155A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C9155_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C_230SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C_230_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C_240SR_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-C_240_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_2352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_2501_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_2852_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_3352_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_4002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_5002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_6002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_7502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_9002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C3002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C3003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C3502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C3503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C4502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C4502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C4503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C5502A_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C5502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C5503_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C6003_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C6502_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-MP_C8002_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_1106EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_1107EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_1356EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_1357EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_906EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_907EX_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_C5100S_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-Pro_C5110S_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-SDC555_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-SG3100SNw_PXL.ppd.gz +usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-SG3110SFNw_PXL.ppd.gz usr/share/foomatic/db/source/PPD/Savin/PXL/Savin-SGC_1506_PXL.ppd.gz #usr/share/foomatic/db/source/PPD/Sharp usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2300FG-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2300G-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2300G-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2300N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2700FG-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2700G-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2700G-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-2700N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3500FN-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3500N-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3500N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3501FN-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3501N-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-3501N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4500FN-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4500N-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4500N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4501FN-ps-jp.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4501N-ps-jp.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/Sharp-MX-4501N-ps.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/sc170fpj.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/sc172fpj.ppd.gz @@ -1823,7 +3177,6 @@ usr/share/foomatic/db/source/PPD/Sharp/sharm237.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/sharm276.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/sharm277.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/shc260fj.ppd.gz -usr/share/foomatic/db/source/PPD/Sharp/shc260mj.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/shc260sj.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/shc261fj.ppd.gz usr/share/foomatic/db/source/PPD/Sharp/shc261mj.ppd.gz @@ -1838,27 +3191,28 @@ usr/share/foomatic/db/source/PPD/Toshiba/TOSHIBA_EST4511_451c_CUPS.ppd.gz usr/share/foomatic/db/source/PPD/Toshiba/TOSHIBA_EST850_CUPS.ppd.gz usr/share/foomatic/db/source/PPD/Toshiba/Toshiba_GL1010_CUPS.ppd.gz usr/share/foomatic/db/source/PPD/Toshiba/Toshiba_GL1020_CUPS.ppd.gz -usr/share/foomatic/db/source/PPD/bzrAddPPD.sh -usr/share/foomatic/db/source/PPD/bzrAddXML.sh -usr/share/foomatic/db/source/PPD/generateBZRScript.sh #usr/share/foomatic/db/source/driver -usr/share/foomatic/db/source/driver/PM760p.upp.xml -usr/share/foomatic/db/source/driver/PM760pl.upp.xml -usr/share/foomatic/db/source/driver/PM820p.upp.xml -usr/share/foomatic/db/source/driver/PM820pl.upp.xml +usr/share/foomatic/db/source/driver/Postscript-Brother.xml +usr/share/foomatic/db/source/driver/Postscript-Epson.xml +usr/share/foomatic/db/source/driver/Postscript-Gestetner.xml +usr/share/foomatic/db/source/driver/Postscript-HP.xml +usr/share/foomatic/db/source/driver/Postscript-InfoPrint.xml +usr/share/foomatic/db/source/driver/Postscript-Infotec.xml +usr/share/foomatic/db/source/driver/Postscript-KONICA_MINOLTA.xml +usr/share/foomatic/db/source/driver/Postscript-Kyocera.xml +usr/share/foomatic/db/source/driver/Postscript-Lanier.xml +usr/share/foomatic/db/source/driver/Postscript-Lexmark.xml +usr/share/foomatic/db/source/driver/Postscript-NRG.xml +usr/share/foomatic/db/source/driver/Postscript-Oce.xml +usr/share/foomatic/db/source/driver/Postscript-Oki.xml +usr/share/foomatic/db/source/driver/Postscript-Ricoh.xml +usr/share/foomatic/db/source/driver/Postscript-Samsung.xml +usr/share/foomatic/db/source/driver/Postscript-Savin.xml +usr/share/foomatic/db/source/driver/Postscript-Sharp.xml +usr/share/foomatic/db/source/driver/Postscript-Toshiba.xml usr/share/foomatic/db/source/driver/Postscript.xml -usr/share/foomatic/db/source/driver/Stc670p.upp.xml -usr/share/foomatic/db/source/driver/Stc670pl.upp.xml -usr/share/foomatic/db/source/driver/Stc680p.upp.xml -usr/share/foomatic/db/source/driver/Stc680pl.upp.xml -usr/share/foomatic/db/source/driver/Stc760p.upp.xml -usr/share/foomatic/db/source/driver/Stc760pl.upp.xml -usr/share/foomatic/db/source/driver/Stc777p.upp.xml -usr/share/foomatic/db/source/driver/Stc777pl.upp.xml -usr/share/foomatic/db/source/driver/Stp720p.upp.xml -usr/share/foomatic/db/source/driver/Stp720pl.upp.xml -usr/share/foomatic/db/source/driver/Stp870p.upp.xml -usr/share/foomatic/db/source/driver/Stp870pl.upp.xml +usr/share/foomatic/db/source/driver/Postscript1.xml +usr/share/foomatic/db/source/driver/Postscript2-Oce.xml usr/share/foomatic/db/source/driver/ap3250.xml usr/share/foomatic/db/source/driver/appledmp.xml usr/share/foomatic/db/source/driver/bj10.xml @@ -1866,51 +3220,22 @@ usr/share/foomatic/db/source/driver/bj10e.xml usr/share/foomatic/db/source/driver/bj10v.xml usr/share/foomatic/db/source/driver/bj10vh.xml usr/share/foomatic/db/source/driver/bj200.xml -usr/share/foomatic/db/source/driver/bj8gc12f.upp.xml -usr/share/foomatic/db/source/driver/bj8hg12f.upp.xml -usr/share/foomatic/db/source/driver/bj8oh06n.upp.xml -usr/share/foomatic/db/source/driver/bj8pa06n.upp.xml -usr/share/foomatic/db/source/driver/bj8pp12f.upp.xml -usr/share/foomatic/db/source/driver/bj8ts06n.upp.xml +usr/share/foomatic/db/source/driver/bj8XXYYZ.upp.xml usr/share/foomatic/db/source/driver/bjc250gs.xml usr/share/foomatic/db/source/driver/bjc600.xml -usr/share/foomatic/db/source/driver/bjc6000a1.upp.xml -usr/share/foomatic/db/source/driver/bjc6000b1.upp.xml -usr/share/foomatic/db/source/driver/bjc610a0.upp.xml -usr/share/foomatic/db/source/driver/bjc610a1.upp.xml -usr/share/foomatic/db/source/driver/bjc610a2.upp.xml -usr/share/foomatic/db/source/driver/bjc610a3.upp.xml -usr/share/foomatic/db/source/driver/bjc610a4.upp.xml -usr/share/foomatic/db/source/driver/bjc610a5.upp.xml -usr/share/foomatic/db/source/driver/bjc610a6.upp.xml -usr/share/foomatic/db/source/driver/bjc610a7.upp.xml -usr/share/foomatic/db/source/driver/bjc610a8.upp.xml -usr/share/foomatic/db/source/driver/bjc610b1.upp.xml -usr/share/foomatic/db/source/driver/bjc610b2.upp.xml -usr/share/foomatic/db/source/driver/bjc610b3.upp.xml -usr/share/foomatic/db/source/driver/bjc610b4.upp.xml -usr/share/foomatic/db/source/driver/bjc610b6.upp.xml -usr/share/foomatic/db/source/driver/bjc610b7.upp.xml -usr/share/foomatic/db/source/driver/bjc610b8.upp.xml usr/share/foomatic/db/source/driver/bjc800.xml usr/share/foomatic/db/source/driver/bjc800j.xml usr/share/foomatic/db/source/driver/bjc880j.xml usr/share/foomatic/db/source/driver/c2050.xml usr/share/foomatic/db/source/driver/c2070.xml +usr/share/foomatic/db/source/driver/c2esp.xml usr/share/foomatic/db/source/driver/capt.xml -usr/share/foomatic/db/source/driver/cdj1600.xml usr/share/foomatic/db/source/driver/cdj500.xml -usr/share/foomatic/db/source/driver/cdj550.upp.xml usr/share/foomatic/db/source/driver/cdj550.xml -usr/share/foomatic/db/source/driver/cdj670.xml -usr/share/foomatic/db/source/driver/cdj850.xml -usr/share/foomatic/db/source/driver/cdj880.xml -usr/share/foomatic/db/source/driver/cdj890.xml -usr/share/foomatic/db/source/driver/cdj970.xml +usr/share/foomatic/db/source/driver/cdnj500.xml usr/share/foomatic/db/source/driver/chp2200.xml usr/share/foomatic/db/source/driver/cjet.xml usr/share/foomatic/db/source/driver/cljet5.xml -usr/share/foomatic/db/source/driver/cljet5c.xml usr/share/foomatic/db/source/driver/cp50.xml usr/share/foomatic/db/source/driver/declj250.xml usr/share/foomatic/db/source/driver/deskjet.xml @@ -1922,23 +3247,35 @@ usr/share/foomatic/db/source/driver/eplaser-jp.xml usr/share/foomatic/db/source/driver/eplaser.xml usr/share/foomatic/db/source/driver/eps9high.xml usr/share/foomatic/db/source/driver/eps9mid.xml +usr/share/foomatic/db/source/driver/epson-escpr.xml usr/share/foomatic/db/source/driver/epson.xml usr/share/foomatic/db/source/driver/epsonc.xml usr/share/foomatic/db/source/driver/epsonepl.xml usr/share/foomatic/db/source/driver/escpage.xml usr/share/foomatic/db/source/driver/fmlbp.xml usr/share/foomatic/db/source/driver/fmpr.xml +usr/share/foomatic/db/source/driver/foo2hbpl2.xml +usr/share/foomatic/db/source/driver/foo2hiperc.xml usr/share/foomatic/db/source/driver/foo2hp.xml usr/share/foomatic/db/source/driver/foo2kyo.xml usr/share/foomatic/db/source/driver/foo2lava.xml +usr/share/foomatic/db/source/driver/foo2oak-z1.xml +usr/share/foomatic/db/source/driver/foo2oak.xml usr/share/foomatic/db/source/driver/foo2qpdl.xml +usr/share/foomatic/db/source/driver/foo2slx.xml usr/share/foomatic/db/source/driver/foo2xqx.xml +usr/share/foomatic/db/source/driver/foo2zjs-z1.xml +usr/share/foomatic/db/source/driver/foo2zjs-z2.xml +usr/share/foomatic/db/source/driver/foo2zjs-z3.xml usr/share/foomatic/db/source/driver/foo2zjs.xml usr/share/foomatic/db/source/driver/gdi.xml usr/share/foomatic/db/source/driver/gutenprint.xml usr/share/foomatic/db/source/driver/hl1250.xml usr/share/foomatic/db/source/driver/hl7x0.xml -usr/share/foomatic/db/source/driver/hpijs.xml +usr/share/foomatic/db/source/driver/hpijs-pcl3.xml +usr/share/foomatic/db/source/driver/hpijs-pcl5c.xml +usr/share/foomatic/db/source/driver/hpijs-pcl5e.xml +usr/share/foomatic/db/source/driver/hplip.xml usr/share/foomatic/db/source/driver/ibmpro.xml usr/share/foomatic/db/source/driver/imagen.xml usr/share/foomatic/db/source/driver/iwhi.xml @@ -1948,7 +3285,6 @@ usr/share/foomatic/db/source/driver/jetp3852.xml usr/share/foomatic/db/source/driver/jj100.xml usr/share/foomatic/db/source/driver/la50.xml usr/share/foomatic/db/source/driver/la70.xml -usr/share/foomatic/db/source/driver/la70t.xml usr/share/foomatic/db/source/driver/la75.xml usr/share/foomatic/db/source/driver/la75plus.xml usr/share/foomatic/db/source/driver/laserjet.xml @@ -1956,6 +3292,7 @@ usr/share/foomatic/db/source/driver/lbp310.xml usr/share/foomatic/db/source/driver/lbp320.xml usr/share/foomatic/db/source/driver/lbp660.xml usr/share/foomatic/db/source/driver/lbp8.xml +usr/share/foomatic/db/source/driver/lbp800.xml usr/share/foomatic/db/source/driver/lex5700.xml usr/share/foomatic/db/source/driver/lex7000.xml usr/share/foomatic/db/source/driver/lips2p.xml @@ -1966,7 +3303,6 @@ usr/share/foomatic/db/source/driver/lj250.xml usr/share/foomatic/db/source/driver/lj4dith.xml usr/share/foomatic/db/source/driver/lj4dithp.xml usr/share/foomatic/db/source/driver/lj5gray.xml -usr/share/foomatic/db/source/driver/lj5mono.xml usr/share/foomatic/db/source/driver/ljet2p.xml usr/share/foomatic/db/source/driver/ljet3.xml usr/share/foomatic/db/source/driver/ljet3d.xml @@ -1980,7 +3316,6 @@ usr/share/foomatic/db/source/driver/lp2563.xml usr/share/foomatic/db/source/driver/lp8000.xml usr/share/foomatic/db/source/driver/lpstyl.xml usr/share/foomatic/db/source/driver/lq850.xml -usr/share/foomatic/db/source/driver/lx5000.xml usr/share/foomatic/db/source/driver/lxm3200-tweaked.xml usr/share/foomatic/db/source/driver/lxm5700m.xml usr/share/foomatic/db/source/driver/lxx74.xml @@ -1994,17 +3329,12 @@ usr/share/foomatic/db/source/driver/md50Eco.xml usr/share/foomatic/db/source/driver/md50Mono.xml usr/share/foomatic/db/source/driver/md5k.xml usr/share/foomatic/db/source/driver/min12xxw.xml -usr/share/foomatic/db/source/driver/mj500c.xml -usr/share/foomatic/db/source/driver/mj6000c.xml usr/share/foomatic/db/source/driver/mj700v2c.xml -usr/share/foomatic/db/source/driver/mj8000c.xml usr/share/foomatic/db/source/driver/ml600.xml usr/share/foomatic/db/source/driver/ml85p.xml -usr/share/foomatic/db/source/driver/necp2x.upp.xml -usr/share/foomatic/db/source/driver/necp2x6.upp.xml +usr/share/foomatic/db/source/driver/necp2xX.upp.xml usr/share/foomatic/db/source/driver/necp6.xml usr/share/foomatic/db/source/driver/npdl.xml -usr/share/foomatic/db/source/driver/nwp533.xml usr/share/foomatic/db/source/driver/oce9050.xml usr/share/foomatic/db/source/driver/oki182.xml usr/share/foomatic/db/source/driver/oki4w.xml @@ -2027,60 +3357,37 @@ usr/share/foomatic/db/source/driver/ppmtomd.xml usr/share/foomatic/db/source/driver/pr150.xml usr/share/foomatic/db/source/driver/pr201.xml usr/share/foomatic/db/source/driver/ptouch.xml +usr/share/foomatic/db/source/driver/pxlcolor-Gestetner.xml +usr/share/foomatic/db/source/driver/pxlcolor-InfoPrint.xml +usr/share/foomatic/db/source/driver/pxlcolor-Infotec.xml +usr/share/foomatic/db/source/driver/pxlcolor-Lanier.xml +usr/share/foomatic/db/source/driver/pxlcolor-NRG.xml +usr/share/foomatic/db/source/driver/pxlcolor-Ricoh.xml +usr/share/foomatic/db/source/driver/pxlcolor-Samsung.xml +usr/share/foomatic/db/source/driver/pxlcolor-Savin.xml usr/share/foomatic/db/source/driver/pxlcolor.xml +usr/share/foomatic/db/source/driver/pxldpl.xml usr/share/foomatic/db/source/driver/pxljr.xml +usr/share/foomatic/db/source/driver/pxlmono-Gestetner.xml +usr/share/foomatic/db/source/driver/pxlmono-InfoPrint.xml +usr/share/foomatic/db/source/driver/pxlmono-Infotec.xml +usr/share/foomatic/db/source/driver/pxlmono-Lanier.xml +usr/share/foomatic/db/source/driver/pxlmono-NRG.xml +usr/share/foomatic/db/source/driver/pxlmono-Ricoh.xml +usr/share/foomatic/db/source/driver/pxlmono-Samsung.xml +usr/share/foomatic/db/source/driver/pxlmono-Savin.xml usr/share/foomatic/db/source/driver/pxlmono.xml usr/share/foomatic/db/source/driver/r4081.xml -usr/share/foomatic/db/source/driver/ras1.upp.xml -usr/share/foomatic/db/source/driver/ras24.upp.xml -usr/share/foomatic/db/source/driver/ras3.upp.xml -usr/share/foomatic/db/source/driver/ras32.upp.xml -usr/share/foomatic/db/source/driver/ras4.upp.xml -usr/share/foomatic/db/source/driver/ras8m.upp.xml usr/share/foomatic/db/source/driver/rastertokmXXXXdl.xml +usr/share/foomatic/db/source/driver/rastertosag-gdi.xml usr/share/foomatic/db/source/driver/rpdl.xml -usr/share/foomatic/db/source/driver/s400a1.upp.xml -usr/share/foomatic/db/source/driver/s400b1.upp.xml usr/share/foomatic/db/source/driver/sharp.upp.xml usr/share/foomatic/db/source/driver/sipixa6.upp.xml usr/share/foomatic/db/source/driver/sj48.xml usr/share/foomatic/db/source/driver/slap.xml -usr/share/foomatic/db/source/driver/sparc.xml usr/share/foomatic/db/source/driver/splix.xml -usr/share/foomatic/db/source/driver/st640ih.upp.xml -usr/share/foomatic/db/source/driver/st640ihg.upp.xml -usr/share/foomatic/db/source/driver/st640p.upp.xml -usr/share/foomatic/db/source/driver/st640pg.upp.xml -usr/share/foomatic/db/source/driver/st640pl.upp.xml -usr/share/foomatic/db/source/driver/st640plg.upp.xml -usr/share/foomatic/db/source/driver/st800.xml -usr/share/foomatic/db/source/driver/stc.upp.xml -usr/share/foomatic/db/source/driver/stc1520h.upp.xml -usr/share/foomatic/db/source/driver/stc2.upp.xml -usr/share/foomatic/db/source/driver/stc2_h.upp.xml -usr/share/foomatic/db/source/driver/stc2s_h.upp.xml -usr/share/foomatic/db/source/driver/stc300.upp.xml -usr/share/foomatic/db/source/driver/stc300bl.upp.xml -usr/share/foomatic/db/source/driver/stc300bm.upp.xml -usr/share/foomatic/db/source/driver/stc500p.upp.xml -usr/share/foomatic/db/source/driver/stc500ph.upp.xml -usr/share/foomatic/db/source/driver/stc600ih.upp.xml -usr/share/foomatic/db/source/driver/stc600p.upp.xml -usr/share/foomatic/db/source/driver/stc600pl.upp.xml -usr/share/foomatic/db/source/driver/stc640p.upp.xml -usr/share/foomatic/db/source/driver/stc740ih.upp.xml -usr/share/foomatic/db/source/driver/stc740p.upp.xml -usr/share/foomatic/db/source/driver/stc740pl.upp.xml -usr/share/foomatic/db/source/driver/stc800ih.upp.xml -usr/share/foomatic/db/source/driver/stc800p.upp.xml -usr/share/foomatic/db/source/driver/stc800pl.upp.xml -usr/share/foomatic/db/source/driver/stc_h.upp.xml -usr/share/foomatic/db/source/driver/stc_l.upp.xml -usr/share/foomatic/db/source/driver/stcany.upp.xml usr/share/foomatic/db/source/driver/stcolor.xml -usr/share/foomatic/db/source/driver/t4693d2.xml -usr/share/foomatic/db/source/driver/t4693d4.xml -usr/share/foomatic/db/source/driver/t4693d8.xml +usr/share/foomatic/db/source/driver/t4693dX.xml usr/share/foomatic/db/source/driver/tek4696.xml usr/share/foomatic/db/source/driver/xes.xml #usr/share/foomatic/db/source/opt @@ -2178,7 +3485,6 @@ usr/share/foomatic/db/source/opt/188.xml usr/share/foomatic/db/source/opt/189.xml usr/share/foomatic/db/source/opt/190.xml usr/share/foomatic/db/source/opt/191.xml -usr/share/foomatic/db/source/opt/192.xml usr/share/foomatic/db/source/opt/193.xml usr/share/foomatic/db/source/opt/194.xml usr/share/foomatic/db/source/opt/195.xml @@ -2277,7 +3583,6 @@ usr/share/foomatic/db/source/opt/97.xml usr/share/foomatic/db/source/opt/98.xml usr/share/foomatic/db/source/opt/99.xml usr/share/foomatic/db/source/opt/Brother-MediaType.xml -usr/share/foomatic/db/source/opt/GS-HalftoningAlgorithm-Gray.xml usr/share/foomatic/db/source/opt/Minolta-PCL600.xml usr/share/foomatic/db/source/opt/PCL-4-5-InputSlot.xml usr/share/foomatic/db/source/opt/PCL-XL-InputSlot.xml @@ -2285,9 +3590,13 @@ usr/share/foomatic/db/source/opt/PJL-Duplex.xml usr/share/foomatic/db/source/opt/PJL-PJLBinding.xml usr/share/foomatic/db/source/opt/PJL-PJLDuplex.xml usr/share/foomatic/db/source/opt/PageSize-A4only.xml -usr/share/foomatic/db/source/opt/Postscript-PreFilter.xml +usr/share/foomatic/db/source/opt/Postscript-Duplex.xml +usr/share/foomatic/db/source/opt/Postscript-InputSlot.xml +usr/share/foomatic/db/source/opt/Postscript-PageSize.xml usr/share/foomatic/db/source/opt/Postscript-Resolution.xml -usr/share/foomatic/db/source/opt/bj8pa06n-Resolution.xml +usr/share/foomatic/db/source/opt/Postscript-largeformat-PageSize.xml +usr/share/foomatic/db/source/opt/Postscript1-Resolution.xml +usr/share/foomatic/db/source/opt/bj8XXYYZ-Resolution.xml usr/share/foomatic/db/source/opt/bjc250gs-BlueGamma.xml usr/share/foomatic/db/source/opt/bjc250gs-ColorMode.xml usr/share/foomatic/db/source/opt/bjc250gs-ComposeK.xml @@ -2315,8 +3624,10 @@ usr/share/foomatic/db/source/opt/cZ11somsom-Magenta.xml usr/share/foomatic/db/source/opt/cZ11somsom-Yellow.xml usr/share/foomatic/db/source/opt/cdj5XX-BlackCorrect.xml usr/share/foomatic/db/source/opt/cdj5XX-Depletion.xml +usr/share/foomatic/db/source/opt/cdj690X-Resolution.xml usr/share/foomatic/db/source/opt/cljet5-ColorMode.xml usr/share/foomatic/db/source/opt/dnj650c-Resolution.xml +usr/share/foomatic/db/source/opt/dnj750X-Resolution.xml usr/share/foomatic/db/source/opt/drv_x125-Bidirectional.xml usr/share/foomatic/db/source/opt/drv_x125-ColorMode.xml usr/share/foomatic/db/source/opt/drv_x125-Device.xml @@ -2359,12 +3670,18 @@ usr/share/foomatic/db/source/opt/hl7x0-InputSlot.xml usr/share/foomatic/db/source/opt/hl7x0-MediaType.xml usr/share/foomatic/db/source/opt/hl7x0-PIN.xml usr/share/foomatic/db/source/opt/hl7x0-Resolution.xml -usr/share/foomatic/db/source/opt/hpijs-Duplex.xml -usr/share/foomatic/db/source/opt/hpijs-InputSlot.xml -usr/share/foomatic/db/source/opt/hpijs-Model.xml -usr/share/foomatic/db/source/opt/hpijs-PageSize.xml -usr/share/foomatic/db/source/opt/hpijs-PrintoutMode.xml -usr/share/foomatic/db/source/opt/hpijs-Quality.xml +usr/share/foomatic/db/source/opt/hpijs-pcl3-Model.xml +usr/share/foomatic/db/source/opt/hpijs-pcl3-PageSize.xml +usr/share/foomatic/db/source/opt/hpijs-pcl3-PrintoutMode.xml +usr/share/foomatic/db/source/opt/hpijs-pcl3-Quality.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5-Duplex.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5-InputSlot.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5-PageSize.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5c-PrintoutMode.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5c-Quality.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5e-PrintoutMode.xml +usr/share/foomatic/db/source/opt/hpijs-pcl5e-Quality.xml +usr/share/foomatic/db/source/opt/ibmpro-Resolution.xml usr/share/foomatic/db/source/opt/jap-PageSize.xml usr/share/foomatic/db/source/opt/jap-Resolution.xml usr/share/foomatic/db/source/opt/largeformat-PageSize.xml @@ -2395,6 +3712,7 @@ usr/share/foomatic/db/source/opt/pcl3-PrintoutMode-HPDJ520.xml usr/share/foomatic/db/source/opt/pentaxpj-Density.xml usr/share/foomatic/db/source/opt/pentaxpj-OutputType.xml usr/share/foomatic/db/source/opt/pentaxpj-PageSize.xml +usr/share/foomatic/db/source/opt/pjl-HP-DesignJet-InputSlot.xml usr/share/foomatic/db/source/opt/pjl-Samsung-ML-1650-AllowReprint.xml usr/share/foomatic/db/source/opt/pjl-Samsung-ML-1650-Economode.xml usr/share/foomatic/db/source/opt/pjl-Samsung-ML-1650-MediaType.xml @@ -2424,14 +3742,13 @@ usr/share/foomatic/db/source/opt/ppmtomd-Primer.xml usr/share/foomatic/db/source/opt/ppmtomd-PrintColors.xml usr/share/foomatic/db/source/opt/ppmtomd-PrintingMethod.xml usr/share/foomatic/db/source/opt/ppmtomd-UseMultiColourRibbon.xml -usr/share/foomatic/db/source/opt/pxlmono-GSResolution.xml -usr/share/foomatic/db/source/opt/pxlmono-JCLResolution.xml usr/share/foomatic/db/source/opt/pxlmono-PrinterResolution.xml usr/share/foomatic/db/source/opt/pxlmono-PrintoutMode.xml usr/share/foomatic/db/source/opt/s400a1-Resolution.xml usr/share/foomatic/db/source/opt/sipixa6.upp-PageSize.xml -usr/share/foomatic/db/source/opt/st640ih-Resolution.xml -usr/share/foomatic/db/source/opt/stc300.upp-Resolution.xml +usr/share/foomatic/db/source/opt/st640X-Resolution.xml +usr/share/foomatic/db/source/opt/stc300X.upp-Resolution.xml +usr/share/foomatic/db/source/opt/stcanyX-Resolution.xml #usr/share/foomatic/db/source/printer usr/share/foomatic/db/source/printer/Alps-MD-1000.xml usr/share/foomatic/db/source/printer/Alps-MD-1300.xml @@ -2480,7 +3797,19 @@ usr/share/foomatic/db/source/printer/Avery-Personal_Label_Printer.xml usr/share/foomatic/db/source/printer/Avery-Personal_Label_Printerplus.xml usr/share/foomatic/db/source/printer/Brother-4550.xml usr/share/foomatic/db/source/printer/Brother-DCP-1200.xml +usr/share/foomatic/db/source/printer/Brother-DCP-7010.xml +usr/share/foomatic/db/source/printer/Brother-DCP-7020.xml +usr/share/foomatic/db/source/printer/Brother-DCP-7025.xml +usr/share/foomatic/db/source/printer/Brother-DCP-7045N.xml +usr/share/foomatic/db/source/printer/Brother-DCP-8020.xml +usr/share/foomatic/db/source/printer/Brother-DCP-8025D.xml +usr/share/foomatic/db/source/printer/Brother-DCP-8040.xml usr/share/foomatic/db/source/printer/Brother-DCP-8045D.xml +usr/share/foomatic/db/source/printer/Brother-DCP-8080DN.xml +usr/share/foomatic/db/source/printer/Brother-DCP-8085DN.xml +usr/share/foomatic/db/source/printer/Brother-DCP-9010CN.xml +usr/share/foomatic/db/source/printer/Brother-DCP-9040CN.xml +usr/share/foomatic/db/source/printer/Brother-DCP-9045CDN.xml usr/share/foomatic/db/source/printer/Brother-HJ-400.xml usr/share/foomatic/db/source/printer/Brother-HL-1020.xml usr/share/foomatic/db/source/printer/Brother-HL-1030.xml @@ -2501,19 +3830,32 @@ usr/share/foomatic/db/source/printer/Brother-HL-1440.xml usr/share/foomatic/db/source/printer/Brother-HL-1450.xml usr/share/foomatic/db/source/printer/Brother-HL-1470N.xml usr/share/foomatic/db/source/printer/Brother-HL-1650.xml +usr/share/foomatic/db/source/printer/Brother-HL-1650_70N.xml usr/share/foomatic/db/source/printer/Brother-HL-1660e.xml usr/share/foomatic/db/source/printer/Brother-HL-1670N.xml usr/share/foomatic/db/source/printer/Brother-HL-1850.xml +usr/share/foomatic/db/source/printer/Brother-HL-1850_70N.xml usr/share/foomatic/db/source/printer/Brother-HL-1870N.xml +usr/share/foomatic/db/source/printer/Brother-HL-2030.xml +usr/share/foomatic/db/source/printer/Brother-HL-2035.xml +usr/share/foomatic/db/source/printer/Brother-HL-2040.xml usr/share/foomatic/db/source/printer/Brother-HL-2060.xml +usr/share/foomatic/db/source/printer/Brother-HL-2070N.xml +usr/share/foomatic/db/source/printer/Brother-HL-2140.xml +usr/share/foomatic/db/source/printer/Brother-HL-2170W.xml usr/share/foomatic/db/source/printer/Brother-HL-2400CeN.xml usr/share/foomatic/db/source/printer/Brother-HL-2460.xml usr/share/foomatic/db/source/printer/Brother-HL-2460N.xml usr/share/foomatic/db/source/printer/Brother-HL-2600CN.xml +usr/share/foomatic/db/source/printer/Brother-HL-2700CN.xml +usr/share/foomatic/db/source/printer/Brother-HL-3070CW.xml usr/share/foomatic/db/source/printer/Brother-HL-3260N.xml usr/share/foomatic/db/source/printer/Brother-HL-3400CN.xml usr/share/foomatic/db/source/printer/Brother-HL-3450CN.xml usr/share/foomatic/db/source/printer/Brother-HL-4000CN.xml +usr/share/foomatic/db/source/printer/Brother-HL-4040CN.xml +usr/share/foomatic/db/source/printer/Brother-HL-4050CDN.xml +usr/share/foomatic/db/source/printer/Brother-HL-4070CDW.xml usr/share/foomatic/db/source/printer/Brother-HL-4Ve.xml usr/share/foomatic/db/source/printer/Brother-HL-5030.xml usr/share/foomatic/db/source/printer/Brother-HL-5040.xml @@ -2522,6 +3864,14 @@ usr/share/foomatic/db/source/printer/Brother-HL-5070N.xml usr/share/foomatic/db/source/printer/Brother-HL-5140.xml usr/share/foomatic/db/source/printer/Brother-HL-5150D.xml usr/share/foomatic/db/source/printer/Brother-HL-5170DN.xml +usr/share/foomatic/db/source/printer/Brother-HL-5240.xml +usr/share/foomatic/db/source/printer/Brother-HL-5250DN.xml +usr/share/foomatic/db/source/printer/Brother-HL-5270DN.xml +usr/share/foomatic/db/source/printer/Brother-HL-5350DN.xml +usr/share/foomatic/db/source/printer/Brother-HL-5370DW.xml +usr/share/foomatic/db/source/printer/Brother-HL-5380DN.xml +usr/share/foomatic/db/source/printer/Brother-HL-6050.xml +usr/share/foomatic/db/source/printer/Brother-HL-6050D_DN.xml usr/share/foomatic/db/source/printer/Brother-HL-630.xml usr/share/foomatic/db/source/printer/Brother-HL-660.xml usr/share/foomatic/db/source/printer/Brother-HL-7050.xml @@ -2530,17 +3880,45 @@ usr/share/foomatic/db/source/printer/Brother-HL-720.xml usr/share/foomatic/db/source/printer/Brother-HL-730.xml usr/share/foomatic/db/source/printer/Brother-HL-760.xml usr/share/foomatic/db/source/printer/Brother-HL-8.xml +usr/share/foomatic/db/source/printer/Brother-HL-8050N.xml usr/share/foomatic/db/source/printer/Brother-HL-820.xml usr/share/foomatic/db/source/printer/Brother-HL-960.xml usr/share/foomatic/db/source/printer/Brother-MC-3000.xml +usr/share/foomatic/db/source/printer/Brother-MFC-295CN.xml usr/share/foomatic/db/source/printer/Brother-MFC-4350.xml usr/share/foomatic/db/source/printer/Brother-MFC-6550MC.xml +usr/share/foomatic/db/source/printer/Brother-MFC-7225N.xml +usr/share/foomatic/db/source/printer/Brother-MFC-7450.xml +usr/share/foomatic/db/source/printer/Brother-MFC-7820N.xml +usr/share/foomatic/db/source/printer/Brother-MFC-7840N.xml +usr/share/foomatic/db/source/printer/Brother-MFC-7840W.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8220.xml usr/share/foomatic/db/source/printer/Brother-MFC-8300.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8370DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8380DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8420.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8440.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8480DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8600.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8640D.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8670DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8680DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8820D.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8840D.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8880DN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-8890DW.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9010CN.xml usr/share/foomatic/db/source/printer/Brother-MFC-9050.xml usr/share/foomatic/db/source/printer/Brother-MFC-9100c.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9120CN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9320CW.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9420CN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9440CN.xml +usr/share/foomatic/db/source/printer/Brother-MFC-9450CDN.xml usr/share/foomatic/db/source/printer/Brother-MFC-9500.xml usr/share/foomatic/db/source/printer/Brother-MFC-9600.xml usr/share/foomatic/db/source/printer/Brother-MFC-P2500.xml +usr/share/foomatic/db/source/printer/Brother-MFC9840CDW.xml usr/share/foomatic/db/source/printer/Brother-MFC_7150C.xml usr/share/foomatic/db/source/printer/Brother-MP-21C.xml usr/share/foomatic/db/source/printer/Brother-PT-1500PC.xml @@ -2548,6 +3926,7 @@ usr/share/foomatic/db/source/printer/Brother-PT-18R.xml usr/share/foomatic/db/source/printer/Brother-PT-1950.xml usr/share/foomatic/db/source/printer/Brother-PT-1950VP.xml usr/share/foomatic/db/source/printer/Brother-PT-1960.xml +usr/share/foomatic/db/source/printer/Brother-PT-2300.xml usr/share/foomatic/db/source/printer/Brother-PT-2420PC.xml usr/share/foomatic/db/source/printer/Brother-PT-2450DX.xml usr/share/foomatic/db/source/printer/Brother-PT-2500PC.xml @@ -2632,6 +4011,8 @@ usr/share/foomatic/db/source/printer/Canon-LBP-1260.xml usr/share/foomatic/db/source/printer/Canon-LBP-1760.xml usr/share/foomatic/db/source/printer/Canon-LBP-310.xml usr/share/foomatic/db/source/printer/Canon-LBP-320_Pro.xml +usr/share/foomatic/db/source/printer/Canon-LBP-3360.xml +usr/share/foomatic/db/source/printer/Canon-LBP-3460.xml usr/share/foomatic/db/source/printer/Canon-LBP-350.xml usr/share/foomatic/db/source/printer/Canon-LBP-430.xml usr/share/foomatic/db/source/printer/Canon-LBP-460.xml @@ -2639,6 +4020,10 @@ usr/share/foomatic/db/source/printer/Canon-LBP-470.xml usr/share/foomatic/db/source/printer/Canon-LBP-4U.xml usr/share/foomatic/db/source/printer/Canon-LBP-4plus.xml usr/share/foomatic/db/source/printer/Canon-LBP-4sx.xml +usr/share/foomatic/db/source/printer/Canon-LBP-5360.xml +usr/share/foomatic/db/source/printer/Canon-LBP-5960.xml +usr/share/foomatic/db/source/printer/Canon-LBP-5970.xml +usr/share/foomatic/db/source/printer/Canon-LBP-5975.xml usr/share/foomatic/db/source/printer/Canon-LBP-600.xml usr/share/foomatic/db/source/printer/Canon-LBP-660.xml usr/share/foomatic/db/source/printer/Canon-LBP-800.xml @@ -2657,6 +4042,7 @@ usr/share/foomatic/db/source/printer/Canon-Multipass_L6000.xml usr/share/foomatic/db/source/printer/Canon-S100.xml usr/share/foomatic/db/source/printer/Canon-S200.xml usr/share/foomatic/db/source/printer/Canon-S300.xml +usr/share/foomatic/db/source/printer/Canon-S330_Photo.xml usr/share/foomatic/db/source/printer/Canon-S400.xml usr/share/foomatic/db/source/printer/Canon-S450.xml usr/share/foomatic/db/source/printer/Canon-S4500.xml @@ -2669,8 +4055,53 @@ usr/share/foomatic/db/source/printer/Canon-SELPHY-CP-500.xml usr/share/foomatic/db/source/printer/Canon-SELPHY-CP-510.xml usr/share/foomatic/db/source/printer/Canon-SELPHY-CP-600.xml usr/share/foomatic/db/source/printer/Canon-SELPHY-CP-710.xml +usr/share/foomatic/db/source/printer/Canon-i450.xml usr/share/foomatic/db/source/printer/Canon-iP4000.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_1023.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_1023N.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_1023iF.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2016.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2016i.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2018.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2020.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2020i.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2022.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2200.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2230.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2270.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_2800.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_3025.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_3225.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_3300.xml usr/share/foomatic/db/source/printer/Canon-imageRunner_330s.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_3570.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_4570.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_5000.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_5570.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_6000.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_6570.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_7086.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_7095.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_7105.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_8070.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_8500.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C2550.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C2570.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C2570i.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C2620N.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C3100.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C3170.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C3170i.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C3200.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5058.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5068.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5180.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5185.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5185i.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5800.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C5870U.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C6800.xml +usr/share/foomatic/db/source/printer/Canon-imageRunner_C6870U.xml usr/share/foomatic/db/source/printer/Casio-KL-E11.xml usr/share/foomatic/db/source/printer/Casio-KL-P1000.xml usr/share/foomatic/db/source/printer/Casio-KP-C10.xml @@ -2696,6 +4127,11 @@ usr/share/foomatic/db/source/printer/DEC-LJ250.xml usr/share/foomatic/db/source/printer/DEC-LN03.xml usr/share/foomatic/db/source/printer/DEC-LN07.xml usr/share/foomatic/db/source/printer/DEC-LN17.xml +usr/share/foomatic/db/source/printer/Dell-1110.xml +usr/share/foomatic/db/source/printer/Dell-1355.xml +usr/share/foomatic/db/source/printer/Dell-3000cn.xml +usr/share/foomatic/db/source/printer/Dell-3010cn.xml +usr/share/foomatic/db/source/printer/Dell-3100cn.xml usr/share/foomatic/db/source/printer/Dell-M5200.xml usr/share/foomatic/db/source/printer/Dell-S2500.xml usr/share/foomatic/db/source/printer/Dymo-CoStar-ASCII_250.xml @@ -2708,32 +4144,105 @@ usr/share/foomatic/db/source/printer/Dymo-CoStar-LabelWriter_XLplus.xml usr/share/foomatic/db/source/printer/Dymo-CoStar-SE250.xml usr/share/foomatic/db/source/printer/Dymo-CoStar-SE250plus.xml usr/share/foomatic/db/source/printer/Dymo-CoStar-Turbo.xml +usr/share/foomatic/db/source/printer/Epson-1430_Series.xml +usr/share/foomatic/db/source/printer/Epson-1500_Series.xml +usr/share/foomatic/db/source/printer/Epson-AL-2600.xml +usr/share/foomatic/db/source/printer/Epson-AL-C1000.xml +usr/share/foomatic/db/source/printer/Epson-AL-C1900.xml +usr/share/foomatic/db/source/printer/Epson-AL-C1900_PS3.xml +usr/share/foomatic/db/source/printer/Epson-AL-C2000.xml +usr/share/foomatic/db/source/printer/Epson-AL-C2000_PS3.xml +usr/share/foomatic/db/source/printer/Epson-AL-C2600.xml +usr/share/foomatic/db/source/printer/Epson-AL-C2800.xml +usr/share/foomatic/db/source/printer/Epson-AL-C3800.xml +usr/share/foomatic/db/source/printer/Epson-AL-C4000.xml +usr/share/foomatic/db/source/printer/Epson-AL-C4000_PS3.xml +usr/share/foomatic/db/source/printer/Epson-AL-C4100.xml +usr/share/foomatic/db/source/printer/Epson-AL-C4200.xml +usr/share/foomatic/db/source/printer/Epson-AL-C8500.xml +usr/share/foomatic/db/source/printer/Epson-AL-C8500PS.xml +usr/share/foomatic/db/source/printer/Epson-AL-C8600.xml +usr/share/foomatic/db/source/printer/Epson-AL-C8600_PS3.xml +usr/share/foomatic/db/source/printer/Epson-AL-C900.xml +usr/share/foomatic/db/source/printer/Epson-AL-C9100.xml +usr/share/foomatic/db/source/printer/Epson-AL-C9200.xml +usr/share/foomatic/db/source/printer/Epson-AL-CX21.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2000.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2010.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2300.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2310.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2400.xml +usr/share/foomatic/db/source/printer/Epson-AL-M2410.xml +usr/share/foomatic/db/source/printer/Epson-AL-M4000.xml +usr/share/foomatic/db/source/printer/Epson-AL-M8000.xml +usr/share/foomatic/db/source/printer/Epson-AL-MX20.xml +usr/share/foomatic/db/source/printer/Epson-AL-MX21.xml usr/share/foomatic/db/source/printer/Epson-ActionLaser_1100.xml usr/share/foomatic/db/source/printer/Epson-ActionLaser_II.xml usr/share/foomatic/db/source/printer/Epson-ActionPrinter_3250.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C1000.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C1900.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C1900PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C2000.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C2000PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C4000.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C4000PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C4100.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C4100PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C8500.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C8500PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C8600.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C8600PS.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C900.xml -usr/share/foomatic/db/source/printer/Epson-AcuLaser_C9100.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_1430_Series.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_50.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_630_Series.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_700.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_710.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_720_Series.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_730_Series.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_800.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_810.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_830_Series.xml +usr/share/foomatic/db/source/printer/Epson-Artisan_837_Series.xml +usr/share/foomatic/db/source/printer/Epson-B42WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX305_Plus_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX305_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX320FW_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX525WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX535WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX620FWD_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX630FW_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX635FWD_Series.xml +usr/share/foomatic/db/source/printer/Epson-BX935FWD_Series.xml usr/share/foomatic/db/source/printer/Epson-CL_700.xml usr/share/foomatic/db/source/printer/Epson-CL_750.xml usr/share/foomatic/db/source/printer/Epson-CL_760.xml usr/share/foomatic/db/source/printer/Epson-Dot_Matrix.xml +usr/share/foomatic/db/source/printer/Epson-E-150.xml +usr/share/foomatic/db/source/printer/Epson-E-200.xml +usr/share/foomatic/db/source/printer/Epson-E-300.xml +usr/share/foomatic/db/source/printer/Epson-E-330.xml +usr/share/foomatic/db/source/printer/Epson-E-330S.xml +usr/share/foomatic/db/source/printer/Epson-E-340.xml +usr/share/foomatic/db/source/printer/Epson-E-350.xml +usr/share/foomatic/db/source/printer/Epson-E-360_Series.xml +usr/share/foomatic/db/source/printer/Epson-E-370_Series.xml +usr/share/foomatic/db/source/printer/Epson-E-500.xml +usr/share/foomatic/db/source/printer/Epson-E-520.xml +usr/share/foomatic/db/source/printer/Epson-E-530.xml +usr/share/foomatic/db/source/printer/Epson-E-600.xml +usr/share/foomatic/db/source/printer/Epson-E-700.xml +usr/share/foomatic/db/source/printer/Epson-E-720.xml +usr/share/foomatic/db/source/printer/Epson-E-800.xml +usr/share/foomatic/db/source/printer/Epson-E-810.xml +usr/share/foomatic/db/source/printer/Epson-E-820.xml +usr/share/foomatic/db/source/printer/Epson-E-830_Series.xml +usr/share/foomatic/db/source/printer/Epson-E-840_Series.xml usr/share/foomatic/db/source/printer/Epson-EM_900C.xml usr/share/foomatic/db/source/printer/Epson-EM_900CN.xml usr/share/foomatic/db/source/printer/Epson-EM_930C.xml usr/share/foomatic/db/source/printer/Epson-EM_930CN.xml +usr/share/foomatic/db/source/printer/Epson-EP-306_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-705A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-706A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-775A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-776A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-801A.xml +usr/share/foomatic/db/source/printer/Epson-EP-805A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-806A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-901A.xml +usr/share/foomatic/db/source/printer/Epson-EP-901F.xml +usr/share/foomatic/db/source/printer/Epson-EP-905A_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-905F_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-906F_Series.xml +usr/share/foomatic/db/source/printer/Epson-EP-976A3_Series.xml usr/share/foomatic/db/source/printer/Epson-EPL-5200.xml usr/share/foomatic/db/source/printer/Epson-EPL-5200plus.xml usr/share/foomatic/db/source/printer/Epson-EPL-5500W.xml @@ -2745,10 +4254,11 @@ usr/share/foomatic/db/source/printer/Epson-EPL-5800L.xml usr/share/foomatic/db/source/printer/Epson-EPL-5800PS.xml usr/share/foomatic/db/source/printer/Epson-EPL-5900.xml usr/share/foomatic/db/source/printer/Epson-EPL-5900L.xml -usr/share/foomatic/db/source/printer/Epson-EPL-5900PS.xml +usr/share/foomatic/db/source/printer/Epson-EPL-5900_PS3.xml usr/share/foomatic/db/source/printer/Epson-EPL-6100.xml usr/share/foomatic/db/source/printer/Epson-EPL-6100L.xml -usr/share/foomatic/db/source/printer/Epson-EPL-6100PS.xml +usr/share/foomatic/db/source/printer/Epson-EPL-6100_PS3.xml +usr/share/foomatic/db/source/printer/Epson-EPL-6200.xml usr/share/foomatic/db/source/printer/Epson-EPL-6200L.xml usr/share/foomatic/db/source/printer/Epson-EPL-7100.xml usr/share/foomatic/db/source/printer/Epson-EPL-N1600.xml @@ -2759,11 +4269,39 @@ usr/share/foomatic/db/source/printer/Epson-EPL-N2050PSplus.xml usr/share/foomatic/db/source/printer/Epson-EPL-N2050plus.xml usr/share/foomatic/db/source/printer/Epson-EPL-N2120.xml usr/share/foomatic/db/source/printer/Epson-EPL-N2500.xml -usr/share/foomatic/db/source/printer/Epson-EPL-N2500PS.xml +usr/share/foomatic/db/source/printer/Epson-EPL-N2500_PS3.xml +usr/share/foomatic/db/source/printer/Epson-EPL-N2550.xml +usr/share/foomatic/db/source/printer/Epson-EPL-N2700.xml usr/share/foomatic/db/source/printer/Epson-EPL-N2750.xml usr/share/foomatic/db/source/printer/Epson-EPL-N2750PS.xml +usr/share/foomatic/db/source/printer/Epson-EPL-N3000.xml +usr/share/foomatic/db/source/printer/Epson-EPL-N7000.xml +usr/share/foomatic/db/source/printer/Epson-EP_302.xml +usr/share/foomatic/db/source/printer/Epson-EP_4004.xml +usr/share/foomatic/db/source/printer/Epson-EP_702A.xml +usr/share/foomatic/db/source/printer/Epson-EP_703A.xml +usr/share/foomatic/db/source/printer/Epson-EP_704A.xml +usr/share/foomatic/db/source/printer/Epson-EP_774A.xml +usr/share/foomatic/db/source/printer/Epson-EP_802A.xml +usr/share/foomatic/db/source/printer/Epson-EP_803A.xml +usr/share/foomatic/db/source/printer/Epson-EP_804A.xml +usr/share/foomatic/db/source/printer/Epson-EP_902A.xml +usr/share/foomatic/db/source/printer/Epson-EP_903A.xml +usr/share/foomatic/db/source/printer/Epson-EP_903F.xml +usr/share/foomatic/db/source/printer/Epson-EP_904A.xml +usr/share/foomatic/db/source/printer/Epson-EP_904F.xml usr/share/foomatic/db/source/printer/Epson-E_100.xml +usr/share/foomatic/db/source/printer/Epson-K100_Series.xml +usr/share/foomatic/db/source/printer/Epson-K200_Series.xml +usr/share/foomatic/db/source/printer/Epson-K300_Series.xml usr/share/foomatic/db/source/printer/Epson-L-1000.xml +usr/share/foomatic/db/source/printer/Epson-L110_Series.xml +usr/share/foomatic/db/source/printer/Epson-L210_Series.xml +usr/share/foomatic/db/source/printer/Epson-L300_Series.xml +usr/share/foomatic/db/source/printer/Epson-L350_Series.xml +usr/share/foomatic/db/source/printer/Epson-L355_Series.xml +usr/share/foomatic/db/source/printer/Epson-L550_Series.xml +usr/share/foomatic/db/source/printer/Epson-L555_Series.xml usr/share/foomatic/db/source/printer/Epson-LP-1800.xml usr/share/foomatic/db/source/printer/Epson-LP-1900.xml usr/share/foomatic/db/source/printer/Epson-LP-2000.xml @@ -2781,27 +4319,46 @@ usr/share/foomatic/db/source/printer/Epson-LP-8000C.xml usr/share/foomatic/db/source/printer/Epson-LP-8100.xml usr/share/foomatic/db/source/printer/Epson-LP-8200C.xml usr/share/foomatic/db/source/printer/Epson-LP-8300C.xml +usr/share/foomatic/db/source/printer/Epson-LP-8300CPD.xml usr/share/foomatic/db/source/printer/Epson-LP-8300F.xml usr/share/foomatic/db/source/printer/Epson-LP-8400F.xml usr/share/foomatic/db/source/printer/Epson-LP-8500C.xml +usr/share/foomatic/db/source/printer/Epson-LP-8500CPD.xml usr/share/foomatic/db/source/printer/Epson-LP-8600.xml usr/share/foomatic/db/source/printer/Epson-LP-8600F.xml usr/share/foomatic/db/source/printer/Epson-LP-8700.xml usr/share/foomatic/db/source/printer/Epson-LP-8800C.xml +usr/share/foomatic/db/source/printer/Epson-LP-8800CPS.xml usr/share/foomatic/db/source/printer/Epson-LP-8900.xml usr/share/foomatic/db/source/printer/Epson-LP-9000B.xml usr/share/foomatic/db/source/printer/Epson-LP-9000C.xml usr/share/foomatic/db/source/printer/Epson-LP-9100.xml +usr/share/foomatic/db/source/printer/Epson-LP-9100PS3.xml usr/share/foomatic/db/source/printer/Epson-LP-9200B.xml usr/share/foomatic/db/source/printer/Epson-LP-9200C.xml usr/share/foomatic/db/source/printer/Epson-LP-9300.xml usr/share/foomatic/db/source/printer/Epson-LP-9400.xml usr/share/foomatic/db/source/printer/Epson-LP-9500C.xml +usr/share/foomatic/db/source/printer/Epson-LP-9500CPS.xml usr/share/foomatic/db/source/printer/Epson-LP-9600.xml usr/share/foomatic/db/source/printer/Epson-LP-9600S.xml +usr/share/foomatic/db/source/printer/Epson-LP-9600SPD.xml usr/share/foomatic/db/source/printer/Epson-LP-9800C.xml +usr/share/foomatic/db/source/printer/Epson-LP-M5000.xml +usr/share/foomatic/db/source/printer/Epson-LP-M5300.xml +usr/share/foomatic/db/source/printer/Epson-LP-M6000.xml +usr/share/foomatic/db/source/printer/Epson-LP-S210.xml +usr/share/foomatic/db/source/printer/Epson-LP-S300.xml +usr/share/foomatic/db/source/printer/Epson-LP-S3000.xml +usr/share/foomatic/db/source/printer/Epson-LP-S310.xml +usr/share/foomatic/db/source/printer/Epson-LP-S3200.xml +usr/share/foomatic/db/source/printer/Epson-LP-S3500.xml +usr/share/foomatic/db/source/printer/Epson-LP-S4000.xml +usr/share/foomatic/db/source/printer/Epson-LP-S4200.xml usr/share/foomatic/db/source/printer/Epson-LP-S4500.xml usr/share/foomatic/db/source/printer/Epson-LP-S6500.xml +usr/share/foomatic/db/source/printer/Epson-LP-S7500.xml +usr/share/foomatic/db/source/printer/Epson-LP-S8100.xml usr/share/foomatic/db/source/printer/Epson-LP-xx00.xml usr/share/foomatic/db/source/printer/Epson-LP_8000.xml usr/share/foomatic/db/source/printer/Epson-LQ-24.xml @@ -2810,17 +4367,77 @@ usr/share/foomatic/db/source/printer/Epson-LQ-500.xml usr/share/foomatic/db/source/printer/Epson-LQ-570plus.xml usr/share/foomatic/db/source/printer/Epson-LQ-850.xml usr/share/foomatic/db/source/printer/Epson-LX-1050.xml +usr/share/foomatic/db/source/printer/Epson-LX-300plus.xml +usr/share/foomatic/db/source/printer/Epson-M100_Series.xml +usr/share/foomatic/db/source/printer/Epson-M105_Series.xml +usr/share/foomatic/db/source/printer/Epson-M200_Series.xml +usr/share/foomatic/db/source/printer/Epson-M205_Series.xml usr/share/foomatic/db/source/printer/Epson-MC_10000.xml usr/share/foomatic/db/source/printer/Epson-MC_2000.xml usr/share/foomatic/db/source/printer/Epson-MC_5000.xml usr/share/foomatic/db/source/printer/Epson-MC_7000.xml usr/share/foomatic/db/source/printer/Epson-MC_9000.xml +usr/share/foomatic/db/source/printer/Epson-ME-100_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME-10_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME-301_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME-303_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME-400_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_10_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_200.xml +usr/share/foomatic/db/source/printer/Epson-ME_320_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_32_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_330_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_33_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_340_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_520_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_530_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_560W_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_570_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_620F_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_82WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_85ND_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_900WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_940FW_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_960FWD_Series.xml +usr/share/foomatic/db/source/printer/Epson-ME_OFFICE_650FN.xml +usr/share/foomatic/db/source/printer/Epson-ME_Office_510.xml +usr/share/foomatic/db/source/printer/Epson-ME_Office_600F.xml +usr/share/foomatic/db/source/printer/Epson-ME_Office_700FW.xml usr/share/foomatic/db/source/printer/Epson-MJ_5100C.xml usr/share/foomatic/db/source/printer/Epson-MJ_520C.xml usr/share/foomatic/db/source/printer/Epson-MJ_6000C.xml usr/share/foomatic/db/source/printer/Epson-MJ_8000C.xml usr/share/foomatic/db/source/printer/Epson-MJ_930C.xml usr/share/foomatic/db/source/printer/Epson-MachJet.xml +usr/share/foomatic/db/source/printer/Epson-N10_N11_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX125_NX127_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX130_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX130_TX130_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX230_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX230_TX230_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX330_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX420_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX430_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX430_TX435_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX530_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX620_Series.xml +usr/share/foomatic/db/source/printer/Epson-NX635_Series.xml +usr/share/foomatic/db/source/printer/Epson-PM-A750.xml +usr/share/foomatic/db/source/printer/Epson-PM-A820.xml +usr/share/foomatic/db/source/printer/Epson-PM-A840.xml +usr/share/foomatic/db/source/printer/Epson-PM-A840S.xml +usr/share/foomatic/db/source/printer/Epson-PM-A890.xml +usr/share/foomatic/db/source/printer/Epson-PM-A920.xml +usr/share/foomatic/db/source/printer/Epson-PM-A940.xml +usr/share/foomatic/db/source/printer/Epson-PM-A950.xml +usr/share/foomatic/db/source/printer/Epson-PM-A970.xml +usr/share/foomatic/db/source/printer/Epson-PM-D600.xml +usr/share/foomatic/db/source/printer/Epson-PM-D800.xml +usr/share/foomatic/db/source/printer/Epson-PM-D870.xml +usr/share/foomatic/db/source/printer/Epson-PM-G4500.xml +usr/share/foomatic/db/source/printer/Epson-PM-G850.xml +usr/share/foomatic/db/source/printer/Epson-PM-T960.xml +usr/share/foomatic/db/source/printer/Epson-PM-T990.xml usr/share/foomatic/db/source/printer/Epson-PM_10000.xml usr/share/foomatic/db/source/printer/Epson-PM_2000C.xml usr/share/foomatic/db/source/printer/Epson-PM_2200C.xml @@ -2858,18 +4475,95 @@ usr/share/foomatic/db/source/printer/Epson-PM_G700.xml usr/share/foomatic/db/source/printer/Epson-PM_G720.xml usr/share/foomatic/db/source/printer/Epson-PM_G800.xml usr/share/foomatic/db/source/printer/Epson-PM_G820.xml +usr/share/foomatic/db/source/printer/Epson-PX-045A_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-046A_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-105F_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-205_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-436A_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-501A.xml +usr/share/foomatic/db/source/printer/Epson-PX-505F_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-535F_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-5600.xml +usr/share/foomatic/db/source/printer/Epson-PX-601F.xml +usr/share/foomatic/db/source/printer/Epson-PX-605F_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-673F.xml +usr/share/foomatic/db/source/printer/Epson-PX-675F_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-A620.xml +usr/share/foomatic/db/source/printer/Epson-PX-A640.xml +usr/share/foomatic/db/source/printer/Epson-PX-A650.xml +usr/share/foomatic/db/source/printer/Epson-PX-A720.xml +usr/share/foomatic/db/source/printer/Epson-PX-A740.xml +usr/share/foomatic/db/source/printer/Epson-PX-FA700.xml +usr/share/foomatic/db/source/printer/Epson-PX-G5300.xml +usr/share/foomatic/db/source/printer/Epson-PX-K150_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX-K701.xml +usr/share/foomatic/db/source/printer/Epson-PX-K751F.xml +usr/share/foomatic/db/source/printer/Epson-PX660_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX720WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX730_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX820FWD_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX830_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX_1200.xml +usr/share/foomatic/db/source/printer/Epson-PX_1600F.xml +usr/share/foomatic/db/source/printer/Epson-PX_1700F.xml +usr/share/foomatic/db/source/printer/Epson-PX_203.xml +usr/share/foomatic/db/source/printer/Epson-PX_204.xml +usr/share/foomatic/db/source/printer/Epson-PX_402A.xml +usr/share/foomatic/db/source/printer/Epson-PX_403A.xml +usr/share/foomatic/db/source/printer/Epson-PX_404A.xml +usr/share/foomatic/db/source/printer/Epson-PX_405A_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX_434A.xml +usr/share/foomatic/db/source/printer/Epson-PX_435A_Series.xml +usr/share/foomatic/db/source/printer/Epson-PX_502A.xml +usr/share/foomatic/db/source/printer/Epson-PX_503A.xml +usr/share/foomatic/db/source/printer/Epson-PX_504A.xml usr/share/foomatic/db/source/printer/Epson-PX_5500.xml +usr/share/foomatic/db/source/printer/Epson-PX_5V.xml +usr/share/foomatic/db/source/printer/Epson-PX_602F.xml +usr/share/foomatic/db/source/printer/Epson-PX_603F.xml usr/share/foomatic/db/source/printer/Epson-PX_7000.xml +usr/share/foomatic/db/source/printer/Epson-PX_7V.xml usr/share/foomatic/db/source/printer/Epson-PX_9000.xml usr/share/foomatic/db/source/printer/Epson-PX_A650.xml +usr/share/foomatic/db/source/printer/Epson-PX_B700.xml +usr/share/foomatic/db/source/printer/Epson-PX_B750F.xml usr/share/foomatic/db/source/printer/Epson-PX_G5000.xml usr/share/foomatic/db/source/printer/Epson-PX_G900.xml usr/share/foomatic/db/source/printer/Epson-PX_G920.xml +usr/share/foomatic/db/source/printer/Epson-PX_K100.xml usr/share/foomatic/db/source/printer/Epson-PX_V500.xml usr/share/foomatic/db/source/printer/Epson-PX_V600.xml usr/share/foomatic/db/source/printer/Epson-PictureMate.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_500.xml usr/share/foomatic/db/source/printer/Epson-PictureMate_Deluxe.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_Express.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_200.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_210.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_215.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_225.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_235.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_240.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_245.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_250.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_260.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_270.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_280.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_290.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_300.xml +usr/share/foomatic/db/source/printer/Epson-PictureMate_PM_310.xml +usr/share/foomatic/db/source/printer/Epson-S22_Series.xml usr/share/foomatic/db/source/printer/Epson-SQ_1170.xml +usr/share/foomatic/db/source/printer/Epson-SX125_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX130_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX218_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX230_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX235_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX420W_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX430_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX440_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX525WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX535WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-SX620FW_Series.xml usr/share/foomatic/db/source/printer/Epson-Stylus.xml usr/share/foomatic/db/source/printer/Epson-Stylus_800.xml usr/share/foomatic/db/source/printer/Epson-Stylus_C20.xml @@ -2911,6 +4605,8 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_C85.xml usr/share/foomatic/db/source/printer/Epson-Stylus_C86.xml usr/share/foomatic/db/source/printer/Epson-Stylus_C88.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX1500.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX2800.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX2900.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3100.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3200.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3500.xml @@ -2920,26 +4616,35 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_CX3700.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3800.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3805.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX3810.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX3900.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4100.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4200.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4500.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4600.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4700.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX4800.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX4900.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX5000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5100.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5200.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5300.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5400.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5700.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX5800.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX5900.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX6000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX6300.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX6400.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX6500.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX6600.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX7300.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX7400.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX7700.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX7800.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX8300.xml usr/share/foomatic/db/source/printer/Epson-Stylus_CX8400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX9300F.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_CX9400Fax.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Color.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Color_1160.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Color_1500.xml @@ -2976,15 +4681,43 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_D68.xml usr/share/foomatic/db/source/printer/Epson-Stylus_D88.xml usr/share/foomatic/db/source/printer/Epson-Stylus_DX3800.xml usr/share/foomatic/db/source/printer/Epson-Stylus_DX3850.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_DX4000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_DX4200.xml usr/share/foomatic/db/source/printer/Epson-Stylus_DX4250.xml usr/share/foomatic/db/source/printer/Epson-Stylus_DX4800.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_DX5000.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_DX7400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_DX8400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_DX9400F.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX110.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX115.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX200.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX210.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX215.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX300.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX410.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX415.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_NX510.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_BX300F.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_BX310FN.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_BX600FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_BX610FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_BX925FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX300F.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX510FN.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX515FN.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX600FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX610FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Office_TX620FW.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1200.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1270.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1280.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1290.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1290S.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_1410.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_2000P.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_2100.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_2200.xml @@ -3010,15 +4743,34 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_950.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_960.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_EX.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_EX3.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_P50.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_PX650.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_PX700W.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_PX710W.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_PX800FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_PX810FW.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R1800.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R1900.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R200.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R2000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R210.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R220.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R240.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R2400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R250.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R260.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R265.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R270.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R2880.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R300.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R3000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R310.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R320.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R340.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R350.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R360.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R380.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R390.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_R800.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX400.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX420.xml @@ -3026,10 +4778,30 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX425.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX430.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX500.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX510.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX520.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX530.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX560.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX580.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX585.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX590.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX595.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX600.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX610.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX620.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX630.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX640.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX650.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX680.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX685.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX690.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_RX700.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_T50.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_T60.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_TX650.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_TX700W.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_TX710W.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_TX800FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_Photo_TX810FW.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_10000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_5000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_5500.xml @@ -3040,8 +4812,155 @@ usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_9000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_9500.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_9600.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Pro_XL.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_S21.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX110.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX115.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX200.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX210.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX410.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX510W.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX600FW.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_SX610FW.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Scan_2000.xml usr/share/foomatic/db/source/printer/Epson-Stylus_Scan_2500.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_T21.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_T24.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_T27.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX110.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX111.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX112.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX113.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX115.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX117.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX119.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX200.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX210.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX400.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX410.xml +usr/share/foomatic/db/source/printer/Epson-Stylus_TX550W.xml +usr/share/foomatic/db/source/printer/Epson-T12_T22_N11_Series.xml +usr/share/foomatic/db/source/printer/Epson-T13_T22E_Series.xml +usr/share/foomatic/db/source/printer/Epson-T22_Series.xml +usr/share/foomatic/db/source/printer/Epson-T25_Series.xml +usr/share/foomatic/db/source/printer/Epson-T42WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX120_NX120_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX120_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX121_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX125_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX130_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX133_TX135_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX220_NX220_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX220_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX230_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX235_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX320F_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX320_WorkForce320_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX420W_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX420_NX420_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX430_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX525FW_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX560WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX620FWD_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX720WD_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX720_Artisan720_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX730_Series.xml +usr/share/foomatic/db/source/printer/Epson-TX820_Artisan830_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-2010_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-2510_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-2520_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-2530_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-2540_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-3010_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-3520_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-3530_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-3540_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-7010.xml +usr/share/foomatic/db/source/printer/Epson-WF-7011.xml +usr/share/foomatic/db/source/printer/Epson-WF-7012.xml +usr/share/foomatic/db/source/printer/Epson-WF-7015.xml +usr/share/foomatic/db/source/printer/Epson-WF-7018.xml +usr/share/foomatic/db/source/printer/Epson-WF-7510.xml +usr/share/foomatic/db/source/printer/Epson-WF-7511.xml +usr/share/foomatic/db/source/printer/Epson-WF-7515.xml +usr/share/foomatic/db/source/printer/Epson-WF-7520.xml +usr/share/foomatic/db/source/printer/Epson-WF-7521.xml +usr/share/foomatic/db/source/printer/Epson-WF-7525.xml +usr/share/foomatic/db/source/printer/Epson-WF-M1030_Series.xml +usr/share/foomatic/db/source/printer/Epson-WF-M1560_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-4010.xml +usr/share/foomatic/db/source/printer/Epson-WP-4011.xml +usr/share/foomatic/db/source/printer/Epson-WP-4015.xml +usr/share/foomatic/db/source/printer/Epson-WP-4020.xml +usr/share/foomatic/db/source/printer/Epson-WP-4023.xml +usr/share/foomatic/db/source/printer/Epson-WP-4025.xml +usr/share/foomatic/db/source/printer/Epson-WP-4090.xml +usr/share/foomatic/db/source/printer/Epson-WP-4091.xml +usr/share/foomatic/db/source/printer/Epson-WP-4092.xml +usr/share/foomatic/db/source/printer/Epson-WP-4095.xml +usr/share/foomatic/db/source/printer/Epson-WP-4511.xml +usr/share/foomatic/db/source/printer/Epson-WP-4515.xml +usr/share/foomatic/db/source/printer/Epson-WP-4520.xml +usr/share/foomatic/db/source/printer/Epson-WP-4521.xml +usr/share/foomatic/db/source/printer/Epson-WP-4525.xml +usr/share/foomatic/db/source/printer/Epson-WP-4530.xml +usr/share/foomatic/db/source/printer/Epson-WP-4531.xml +usr/share/foomatic/db/source/printer/Epson-WP-4533.xml +usr/share/foomatic/db/source/printer/Epson-WP-4535.xml +usr/share/foomatic/db/source/printer/Epson-WP-4540.xml +usr/share/foomatic/db/source/printer/Epson-WP-4545.xml +usr/share/foomatic/db/source/printer/Epson-WP-4590.xml +usr/share/foomatic/db/source/printer/Epson-WP-4592.xml +usr/share/foomatic/db/source/printer/Epson-WP-4595.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4011_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4015_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4095_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4521_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4525_Series.xml +usr/share/foomatic/db/source/printer/Epson-WP-M4595_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_310.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_320_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_435_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_500.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_520_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_545_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_600.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_60_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_610.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_620_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_630_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_645_Series.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_840.xml +usr/share/foomatic/db/source/printer/Epson-WorkForce_845_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-100_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-102_103_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-200_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-201_204_208_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-202_203_206_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-205_207_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-211_214_216_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-212_213_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-215_217_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-300_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-302_303_305_306_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-30_33_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-310_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-312_313_315_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-400_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-402_403_405_406_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-410_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-412_413_415_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-510_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-600_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-610_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-700_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-710_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-750_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-800_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-810_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-850_Series.xml +usr/share/foomatic/db/source/printer/Epson-XP-950_Series.xml +usr/share/foomatic/db/source/printer/Fuji_Xerox-DocuPrint_CM205.xml usr/share/foomatic/db/source/printer/Fujifilm-Printpix-CX-400.xml usr/share/foomatic/db/source/printer/Fujifilm-Printpix-CX-550.xml usr/share/foomatic/db/source/printer/Fujitsu-1200.xml @@ -3056,14 +4975,20 @@ usr/share/foomatic/db/source/printer/Fujitsu-PrintPartner_8000.xml usr/share/foomatic/db/source/printer/Generic-ESC_P_Dot_Matrix_Printer.xml usr/share/foomatic/db/source/printer/Generic-GDI_Printer.xml usr/share/foomatic/db/source/printer/Generic-IBM-Compatible_Dot_Matrix_Printer.xml +usr/share/foomatic/db/source/printer/Generic-OAKT_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_3_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_4_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_5_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_5c_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_5e_Printer.xml usr/share/foomatic/db/source/printer/Generic-PCL_6_PCL_XL_Printer.xml +usr/share/foomatic/db/source/printer/Generic-PostScript_Level_1_Printer.xml usr/share/foomatic/db/source/printer/Generic-PostScript_Printer.xml usr/share/foomatic/db/source/printer/Generic-ZjStream_Printer.xml +usr/share/foomatic/db/source/printer/Genicom-LN45.xml +usr/share/foomatic/db/source/printer/Genicom-ML450.xml +usr/share/foomatic/db/source/printer/Genicom-microLaser_12.xml +usr/share/foomatic/db/source/printer/Genicom-microLaser_210.xml usr/share/foomatic/db/source/printer/Gestetner-10512.xml usr/share/foomatic/db/source/printer/Gestetner-2212.xml usr/share/foomatic/db/source/printer/Gestetner-2712.xml @@ -3087,7 +5012,12 @@ usr/share/foomatic/db/source/printer/Gestetner-C7528n.xml usr/share/foomatic/db/source/printer/Gestetner-C7531dn.xml usr/share/foomatic/db/source/printer/Gestetner-C7535n.xml usr/share/foomatic/db/source/printer/Gestetner-C7640nD.xml +usr/share/foomatic/db/source/printer/Gestetner-C8140ND.xml +usr/share/foomatic/db/source/printer/Gestetner-C8150ND.xml usr/share/foomatic/db/source/printer/Gestetner-CS555.xml +usr/share/foomatic/db/source/printer/Gestetner-DSc1030.xml +usr/share/foomatic/db/source/printer/Gestetner-DSc1045.xml +usr/share/foomatic/db/source/printer/Gestetner-DSc1060.xml usr/share/foomatic/db/source/printer/Gestetner-DSc224.xml usr/share/foomatic/db/source/printer/Gestetner-DSc232.xml usr/share/foomatic/db/source/printer/Gestetner-DSc328.xml @@ -3122,10 +5052,19 @@ usr/share/foomatic/db/source/printer/Gestetner-DSm730.xml usr/share/foomatic/db/source/printer/Gestetner-DSm735_735G.xml usr/share/foomatic/db/source/printer/Gestetner-DSm745_745G.xml usr/share/foomatic/db/source/printer/Gestetner-F9199_9199nf.xml +usr/share/foomatic/db/source/printer/Gestetner-GWD2004.xml +usr/share/foomatic/db/source/printer/Gestetner-GWD2006.xml +usr/share/foomatic/db/source/printer/Gestetner-GWD3006.xml +usr/share/foomatic/db/source/printer/Gestetner-GWD5100.xml +usr/share/foomatic/db/source/printer/Gestetner-GWD7140.xml usr/share/foomatic/db/source/printer/Gestetner-MP1100_DSm7110.xml usr/share/foomatic/db/source/printer/Gestetner-MP1350_DSm7135.xml usr/share/foomatic/db/source/printer/Gestetner-MP1600_DSm716.xml usr/share/foomatic/db/source/printer/Gestetner-MP2000_DSm721d.xml +usr/share/foomatic/db/source/printer/Gestetner-MP2352_DSm923.xml +usr/share/foomatic/db/source/printer/Gestetner-MP2500_DSm625.xml +usr/share/foomatic/db/source/printer/Gestetner-MP2852_DSm928.xml +usr/share/foomatic/db/source/printer/Gestetner-MP3352_DSm933.xml usr/share/foomatic/db/source/printer/Gestetner-MP3500_DSm735e.xml usr/share/foomatic/db/source/printer/Gestetner-MP4500_DSm745e.xml usr/share/foomatic/db/source/printer/Gestetner-MP5500_DSm755.xml @@ -3138,11 +5077,79 @@ usr/share/foomatic/db/source/printer/Gestetner-MPC3000_DSc530.xml usr/share/foomatic/db/source/printer/Gestetner-MPC3500_DSc535.xml usr/share/foomatic/db/source/printer/Gestetner-MPC4500_DSc545.xml usr/share/foomatic/db/source/printer/Gestetner-MP_161_DSm416.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_171.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_2001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_2501.xml usr/share/foomatic/db/source/printer/Gestetner-MP_2510_DSm725e.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_2550.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_2550B.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_2851.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_301.xml usr/share/foomatic/db/source/printer/Gestetner-MP_3010_DSm730e.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_3350.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_3350B.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_3351.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_4000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_4000B.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_4001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_4002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_5000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_5000B.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_5001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_5002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_6000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_6001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_6002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_7000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_7001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_7502.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_8000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_8001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_9001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_9002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C2050.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C2051.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C2550.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C2551.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C2800.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C300.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3001.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3003.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C300SR.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C305.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3300.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3501.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3502.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C3503.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C400.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C400SR.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4501.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4501A.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4502.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4502A.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C4503.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5501.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5501A.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5502.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5502A.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C5503.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C6000.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C6003.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C6501.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C6502.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C7500.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C7501.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_C8002.xml +usr/share/foomatic/db/source/printer/Gestetner-MP_CW2200.xml usr/share/foomatic/db/source/printer/Gestetner-P7026.xml usr/share/foomatic/db/source/printer/Gestetner-P7026n.xml +usr/share/foomatic/db/source/printer/Gestetner-P7031n.xml +usr/share/foomatic/db/source/printer/Gestetner-P7031nL.xml usr/share/foomatic/db/source/printer/Gestetner-P7032.xml +usr/share/foomatic/db/source/printer/Gestetner-P7035n.xml usr/share/foomatic/db/source/printer/Gestetner-P7126.xml usr/share/foomatic/db/source/printer/Gestetner-P7126n.xml usr/share/foomatic/db/source/printer/Gestetner-P7132n.xml @@ -3156,6 +5163,20 @@ usr/share/foomatic/db/source/printer/Gestetner-P7527n.xml usr/share/foomatic/db/source/printer/Gestetner-P7535n.xml usr/share/foomatic/db/source/printer/Gestetner-P7575.xml usr/share/foomatic/db/source/printer/Gestetner-P7675.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_906EX.xml +usr/share/foomatic/db/source/printer/Gestetner-Pro_907EX.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_4210N.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_6330N.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_8200DN.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_C320DN.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_C420DN.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_C430DN.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_C431DN.xml +usr/share/foomatic/db/source/printer/Gestetner-SP_W2470.xml usr/share/foomatic/db/source/printer/HP-2000C.xml usr/share/foomatic/db/source/printer/HP-2500C.xml usr/share/foomatic/db/source/printer/HP-2500CM.xml @@ -3174,14 +5195,21 @@ usr/share/foomatic/db/source/printer/HP-Business_Inkjet_2300.xml usr/share/foomatic/db/source/printer/HP-Business_Inkjet_2600.xml usr/share/foomatic/db/source/printer/HP-Business_Inkjet_2800.xml usr/share/foomatic/db/source/printer/HP-Business_Inkjet_3000.xml +usr/share/foomatic/db/source/printer/HP-CM8050_Color_MFP.xml +usr/share/foomatic/db/source/printer/HP-CM8050_MFP_with_Edgeline.xml +usr/share/foomatic/db/source/printer/HP-CM8060_Color_MFP.xml +usr/share/foomatic/db/source/printer/HP-CM8060_MFP_with_Edgeline.xml +usr/share/foomatic/db/source/printer/HP-CP3525n.xml usr/share/foomatic/db/source/printer/HP-Color_Inkjet_Printer_CP1160.xml usr/share/foomatic/db/source/printer/HP-Color_Inkjet_Printer_CP1700.xml +usr/share/foomatic/db/source/printer/HP-Color_LaserJet.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_1500.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_1600.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2500.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2550.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2600n.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2605.xml +usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2605dn.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2700.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_2800.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_3000.xml @@ -3203,19 +5231,26 @@ usr/share/foomatic/db/source/printer/HP-Color_LaserJet_5500.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_5550.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_5M.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_8500.xml -usr/share/foomatic/db/source/printer/HP-Color_LaserJet_8550GN.xml +usr/share/foomatic/db/source/printer/HP-Color_LaserJet_8550.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_9500.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_9500_MFP.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CM1015.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CM1017.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CM4730_MFP.xml +usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CP1215.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CP3505.xml usr/share/foomatic/db/source/printer/HP-Color_LaserJet_CP4005.xml usr/share/foomatic/db/source/printer/HP-DesignJet_100.xml usr/share/foomatic/db/source/printer/HP-DesignJet_100plus.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_1050C.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_1055CM.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_110.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_120.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_130.xml usr/share/foomatic/db/source/printer/HP-DesignJet_230.xml usr/share/foomatic/db/source/printer/HP-DesignJet_2500CP.xml usr/share/foomatic/db/source/printer/HP-DesignJet_250C.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_30.xml usr/share/foomatic/db/source/printer/HP-DesignJet_3500CP.xml usr/share/foomatic/db/source/printer/HP-DesignJet_350C.xml usr/share/foomatic/db/source/printer/HP-DesignJet_430.xml @@ -3224,14 +5259,18 @@ usr/share/foomatic/db/source/printer/HP-DesignJet_455CA.xml usr/share/foomatic/db/source/printer/HP-DesignJet_488CA.xml usr/share/foomatic/db/source/printer/HP-DesignJet_500.xml usr/share/foomatic/db/source/printer/HP-DesignJet_5000.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_5000PS.xml usr/share/foomatic/db/source/printer/HP-DesignJet_500ps.xml usr/share/foomatic/db/source/printer/HP-DesignJet_5500.xml usr/share/foomatic/db/source/printer/HP-DesignJet_5500ps.xml usr/share/foomatic/db/source/printer/HP-DesignJet_650C.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_70.xml usr/share/foomatic/db/source/printer/HP-DesignJet_700.xml usr/share/foomatic/db/source/printer/HP-DesignJet_750.xml usr/share/foomatic/db/source/printer/HP-DesignJet_750C_Plus.xml usr/share/foomatic/db/source/printer/HP-DesignJet_800.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_800PS.xml +usr/share/foomatic/db/source/printer/HP-DesignJet_90.xml usr/share/foomatic/db/source/printer/HP-DesignJet_ColorPro_CAD.xml usr/share/foomatic/db/source/printer/HP-DeskJet.xml usr/share/foomatic/db/source/printer/HP-DeskJet_1000C.xml @@ -3281,6 +5320,7 @@ usr/share/foomatic/db/source/printer/HP-DeskJet_5150.xml usr/share/foomatic/db/source/printer/HP-DeskJet_5158.xml usr/share/foomatic/db/source/printer/HP-DeskJet_5160.xml usr/share/foomatic/db/source/printer/HP-DeskJet_520.xml +usr/share/foomatic/db/source/printer/HP-DeskJet_540.xml usr/share/foomatic/db/source/printer/HP-DeskJet_540C.xml usr/share/foomatic/db/source/printer/HP-DeskJet_5440.xml usr/share/foomatic/db/source/printer/HP-DeskJet_550C.xml @@ -3390,6 +5430,8 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_1015.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1018.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1020.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1022.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_1022n.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_1022nw.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1100.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1100A.xml usr/share/foomatic/db/source/printer/HP-LaserJet_1150.xml @@ -3403,6 +5445,7 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_2100.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2100M.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2200.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2300.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_2300L.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2410.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2420.xml usr/share/foomatic/db/source/printer/HP-LaserJet_2430.xml @@ -3437,6 +5480,7 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_4.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4000.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4050.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4100.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_4100_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4200.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4240.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4250.xml @@ -3446,6 +5490,7 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_4350.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4L.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4M.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4ML.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_4MP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4P.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4Si.xml usr/share/foomatic/db/source/printer/HP-LaserJet_4V.xml @@ -3461,6 +5506,7 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_5M.xml usr/share/foomatic/db/source/printer/HP-LaserJet_5MP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_5P.xml usr/share/foomatic/db/source/printer/HP-LaserJet_5Si.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_5Si_Mopier.xml usr/share/foomatic/db/source/printer/HP-LaserJet_6.xml usr/share/foomatic/db/source/printer/HP-LaserJet_6L.xml usr/share/foomatic/db/source/printer/HP-LaserJet_6MP.xml @@ -3477,16 +5523,41 @@ usr/share/foomatic/db/source/printer/HP-LaserJet_9050_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_9055_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_9065_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M1005_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_M1120_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_M1319_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_M1522n_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_M1522nf_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_M2727.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M3027_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M3035_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M4345_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M5025_MFP.xml usr/share/foomatic/db/source/printer/HP-LaserJet_M5035_MFP.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1005.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1006.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1007.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1008.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1505.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P1505n.xml usr/share/foomatic/db/source/printer/HP-LaserJet_P2010.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2014.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2014n.xml usr/share/foomatic/db/source/printer/HP-LaserJet_P2015.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2035.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2035n.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2055d.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P2055dn.xml usr/share/foomatic/db/source/printer/HP-LaserJet_P3004.xml usr/share/foomatic/db/source/printer/HP-LaserJet_P3005.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P4014.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_P4015.xml usr/share/foomatic/db/source/printer/HP-LaserJet_Plus.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_Pro_CP1025nw.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_Pro_P1102.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_Pro_P1102w.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_Pro_P1566.xml +usr/share/foomatic/db/source/printer/HP-LaserJet_Pro_P1606dn.xml +usr/share/foomatic/db/source/printer/HP-Laserjet_P1020.xml usr/share/foomatic/db/source/printer/HP-Mopier_240.xml usr/share/foomatic/db/source/printer/HP-Mopier_320.xml usr/share/foomatic/db/source/printer/HP-OfficeJet.xml @@ -3539,9 +5610,12 @@ usr/share/foomatic/db/source/printer/HP-OfficeJet_D155.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_G55.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_G85.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_G95.xml +usr/share/foomatic/db/source/printer/HP-OfficeJet_J3600.xml +usr/share/foomatic/db/source/printer/HP-OfficeJet_J5500.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_J5700.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_K60.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_K60xi.xml +usr/share/foomatic/db/source/printer/HP-OfficeJet_K7100.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_K80.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_K80xi.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_LX.xml @@ -3552,6 +5626,7 @@ usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K5300.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K5400.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K550.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K850.xml +usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K8600.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_L7300.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_L7500.xml usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_L7600.xml @@ -3639,15 +5714,22 @@ usr/share/foomatic/db/source/printer/HP-PhotoSmart_A820.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C3100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C4100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C4200.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_C4380.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C5100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C5200.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C6100.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_C6200.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_C7100.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_C7200.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_C8100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_D5060.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_D5100.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_D5300.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_D6100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7100.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7200.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7300.xml +usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7400.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_P100.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_P1000.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_P1100.xml @@ -3658,6 +5740,9 @@ usr/share/foomatic/db/source/printer/HP-PhotoSmart_P130.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_P1315.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_P230.xml usr/share/foomatic/db/source/printer/HP-PhotoSmart_Pro_B8300.xml +usr/share/foomatic/db/source/printer/HP-Photosmart_C309g.xml +usr/share/foomatic/db/source/printer/HP-Photosmart_C6380.xml +usr/share/foomatic/db/source/printer/HP-Photosmart_D5460.xml usr/share/foomatic/db/source/printer/HP-ThinkJet.xml usr/share/foomatic/db/source/printer/HP-e-printer_e20.xml usr/share/foomatic/db/source/printer/Heidelberg-Digimaster_9110.xml @@ -3670,9 +5755,23 @@ usr/share/foomatic/db/source/printer/IBM-4303_Network_Color_Printer.xml usr/share/foomatic/db/source/printer/IBM-4312.xml usr/share/foomatic/db/source/printer/IBM-Execjet_4072.xml usr/share/foomatic/db/source/printer/IBM-Infoprint_12.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1226tn.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1422.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1532_Express.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1540_MFP.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1560_MFP.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1570_MFP.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1572_MFP.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1580_MFP.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1585n.xml +usr/share/foomatic/db/source/printer/IBM-Infoprint_1650_MFP.xml usr/share/foomatic/db/source/printer/IBM-Page_Printer_3112.xml usr/share/foomatic/db/source/printer/IBM-ProPrinterII.xml usr/share/foomatic/db/source/printer/Imagen-ImPress.xml +usr/share/foomatic/db/source/printer/Imagistics-im8530.xml +usr/share/foomatic/db/source/printer/InfoPrint-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/InfoPrint-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/InfoPrint-Pro_907EX.xml usr/share/foomatic/db/source/printer/Infotec-4353_MF.xml usr/share/foomatic/db/source/printer/Infotec-4452_MF.xml usr/share/foomatic/db/source/printer/Infotec-4651_MF.xml @@ -3735,6 +5834,7 @@ usr/share/foomatic/db/source/printer/Infotec-IS_2265.xml usr/share/foomatic/db/source/printer/Infotec-IS_2275.xml usr/share/foomatic/db/source/printer/Infotec-IS_2316.xml usr/share/foomatic/db/source/printer/Infotec-IS_2320.xml +usr/share/foomatic/db/source/printer/Infotec-IS_2325.xml usr/share/foomatic/db/source/printer/Infotec-IS_2416.xml usr/share/foomatic/db/source/printer/Infotec-IS_2425.xml usr/share/foomatic/db/source/printer/Infotec-IS_2430.xml @@ -3743,6 +5843,85 @@ usr/share/foomatic/db/source/printer/Infotec-IS_2445.xml usr/share/foomatic/db/source/printer/Infotec-IS_3090.xml usr/share/foomatic/db/source/printer/Infotec-IS_3110.xml usr/share/foomatic/db/source/printer/Infotec-IS_3135.xml +usr/share/foomatic/db/source/printer/Infotec-MP_171.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_201.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2352.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2550.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2550B.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2851.xml +usr/share/foomatic/db/source/printer/Infotec-MP_2852.xml +usr/share/foomatic/db/source/printer/Infotec-MP_301.xml +usr/share/foomatic/db/source/printer/Infotec-MP_3350.xml +usr/share/foomatic/db/source/printer/Infotec-MP_3350B.xml +usr/share/foomatic/db/source/printer/Infotec-MP_3351.xml +usr/share/foomatic/db/source/printer/Infotec-MP_3352.xml +usr/share/foomatic/db/source/printer/Infotec-MP_4000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_4000B.xml +usr/share/foomatic/db/source/printer/Infotec-MP_4001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_4002.xml +usr/share/foomatic/db/source/printer/Infotec-MP_5000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_5000B.xml +usr/share/foomatic/db/source/printer/Infotec-MP_5001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_5002.xml +usr/share/foomatic/db/source/printer/Infotec-MP_6000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_6001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_6002.xml +usr/share/foomatic/db/source/printer/Infotec-MP_7000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_7001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_7502.xml +usr/share/foomatic/db/source/printer/Infotec-MP_8000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_8001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_9001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_9002.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C2050.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C2051.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C2550.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C2551.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C2800.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C300.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3001.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3002.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3003.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C300SR.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C305.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3300.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3502.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C3503.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C400.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C400SR.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4501A.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4502.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4502A.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C4503.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5501A.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5502.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5502A.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C5503.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C6000.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C6003.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C6501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C6502.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C7500.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C7501.xml +usr/share/foomatic/db/source/printer/Infotec-MP_C8002.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_906EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_907EX.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_C5100S.xml +usr/share/foomatic/db/source/printer/Infotec-Pro_C5110S.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-PagePro_1300W.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-PagePro_1350W.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-PagePro_1400W.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_1050.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_1050P.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_1050e.xml @@ -3764,15 +5943,47 @@ usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_C450.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_C450P.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_C451.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-bizhub_C550.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_1600W.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_1680MF.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_1690MF.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2300W.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2300_DL.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2400W.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2430_DL.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2480_MF.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2490_MF.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_2530_DL.xml +usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_4690MF.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_5430_DL.xml usr/share/foomatic/db/source/printer/KONICA_MINOLTA-magicolor_5440_DL.xml usr/share/foomatic/db/source/printer/Kodak-DigiSource_9110.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_3.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_3250.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_5250.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_5500.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_6150.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_7.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_7250.xml +usr/share/foomatic/db/source/printer/Kodak-ESP_9.xml +usr/share/foomatic/db/source/printer/Kodak-EasyShare_5100.xml +usr/share/foomatic/db/source/printer/Kodak-EasyShare_5300.xml +usr/share/foomatic/db/source/printer/Kodak-EasyShare_5500.xml usr/share/foomatic/db/source/printer/Kodak-IS_70_CPII.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-1650.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-1815.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-2050.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-2550.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-C2525E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-C3225E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-C3232E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS-C4035E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_250ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_300ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_3050ci.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_3550ci.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_400ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-CS_500ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-Ci-1100.xml usr/share/foomatic/db/source/printer/Kyocera-F-1000.xml usr/share/foomatic/db/source/printer/Kyocera-F-1010.xml usr/share/foomatic/db/source/printer/Kyocera-F-1200.xml @@ -3793,7 +6004,11 @@ usr/share/foomatic/db/source/printer/Kyocera-FS-1000.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1000plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1010.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1016MFP.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1018MFP.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1020D.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1030D.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1050.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1118MFP.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1200.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1500.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1550.xml @@ -3802,10 +6017,15 @@ usr/share/foomatic/db/source/printer/Kyocera-FS-1600.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1600plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1700.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1700plus.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1714M.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1750.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1800.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1800plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-1900.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-1920.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-2000D.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-2100D.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-2100DN.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3400.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3400plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3500.xml @@ -3813,38 +6033,106 @@ usr/share/foomatic/db/source/printer/Kyocera-FS-3600.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3600plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3700.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3700plus.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-3718M.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3750.xml usr/share/foomatic/db/source/printer/Kyocera-FS-3800.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-3820N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-3830N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-3900DN.xml usr/share/foomatic/db/source/printer/Kyocera-FS-400.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-4000DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-4100DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-4200DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-4300DN.xml usr/share/foomatic/db/source/printer/Kyocera-FS-5500.xml usr/share/foomatic/db/source/printer/Kyocera-FS-5800C.xml usr/share/foomatic/db/source/printer/Kyocera-FS-5900C.xml usr/share/foomatic/db/source/printer/Kyocera-FS-600.xml usr/share/foomatic/db/source/printer/Kyocera-FS-600_KPDL-2.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6020.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6026.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6300.xml usr/share/foomatic/db/source/printer/Kyocera-FS-6500.xml usr/share/foomatic/db/source/printer/Kyocera-FS-6500plus.xml usr/share/foomatic/db/source/printer/Kyocera-FS-6700.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6750.xml usr/share/foomatic/db/source/printer/Kyocera-FS-680.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6900.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-6950DN.xml usr/share/foomatic/db/source/printer/Kyocera-FS-7000.xml usr/share/foomatic/db/source/printer/Kyocera-FS-7000plus.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-7028M.xml usr/share/foomatic/db/source/printer/Kyocera-FS-800.xml usr/share/foomatic/db/source/printer/Kyocera-FS-8000C.xml usr/share/foomatic/db/source/printer/Kyocera-FS-850.xml usr/share/foomatic/db/source/printer/Kyocera-FS-9000.xml usr/share/foomatic/db/source/printer/Kyocera-FS-9100DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-9120DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-9130DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-920.xml usr/share/foomatic/db/source/printer/Kyocera-FS-9500DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-9520DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-9530DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5015N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5016N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5020N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5025N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5030N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5100DN_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5200DN_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5300DN_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5350DN_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C5400DN_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C8008N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C8026N.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C8100DN.xml +usr/share/foomatic/db/source/printer/Kyocera-FS-C8100DNplus_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-1510.xml usr/share/foomatic/db/source/printer/Kyocera-KM-1530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-1635.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-1650.xml usr/share/foomatic/db/source/printer/Kyocera-KM-1810.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-1815.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-1820.xml usr/share/foomatic/db/source/printer/Kyocera-KM-2030.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-2035.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-2050.xml usr/share/foomatic/db/source/printer/Kyocera-KM-2530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-2550.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-3035.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-3050.xml usr/share/foomatic/db/source/printer/Kyocera-KM-3530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-4030.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-4035.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-4050.xml usr/share/foomatic/db/source/printer/Kyocera-KM-4230.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-4230_5230.xml usr/share/foomatic/db/source/printer/Kyocera-KM-4530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-5035.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-5050.xml usr/share/foomatic/db/source/printer/Kyocera-KM-5230.xml usr/share/foomatic/db/source/printer/Kyocera-KM-5530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-6030.xml usr/share/foomatic/db/source/printer/Kyocera-KM-6230.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-6330.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-7530.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-8030.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C2520.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C2525E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C2630.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C3225.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C3225E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C3232.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C3232E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C4035E_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C830.xml +usr/share/foomatic/db/source/printer/Kyocera-KM-C850.xml usr/share/foomatic/db/source/printer/Kyocera-P-2000.xml usr/share/foomatic/db/source/printer/Kyocera-P-2002.xml +usr/share/foomatic/db/source/printer/Kyocera-TASKalfa_250ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-TASKalfa_300ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-TASKalfa_400ci_KPDL.xml +usr/share/foomatic/db/source/printer/Kyocera-TASKalfa_500ci_KPDL.xml usr/share/foomatic/db/source/printer/Lanier-2132.xml usr/share/foomatic/db/source/printer/Lanier-2138.xml usr/share/foomatic/db/source/printer/Lanier-2145.xml @@ -3890,6 +6178,12 @@ usr/share/foomatic/db/source/printer/Lanier-LD245.xml usr/share/foomatic/db/source/printer/Lanier-LD328c.xml usr/share/foomatic/db/source/printer/Lanier-LD335c.xml usr/share/foomatic/db/source/printer/Lanier-LD345c.xml +usr/share/foomatic/db/source/printer/Lanier-LD_130C.xml +usr/share/foomatic/db/source/printer/Lanier-LD_130CSR.xml +usr/share/foomatic/db/source/printer/Lanier-LD_140C.xml +usr/share/foomatic/db/source/printer/Lanier-LD_140CSR.xml +usr/share/foomatic/db/source/printer/Lanier-LD_620C.xml +usr/share/foomatic/db/source/printer/Lanier-LD_625C.xml usr/share/foomatic/db/source/printer/Lanier-LF510_515e.xml usr/share/foomatic/db/source/printer/Lanier-LP025N_LP026N.xml usr/share/foomatic/db/source/printer/Lanier-LP025_LP026.xml @@ -3897,41 +6191,155 @@ usr/share/foomatic/db/source/printer/Lanier-LP031c.xml usr/share/foomatic/db/source/printer/Lanier-LP032.xml usr/share/foomatic/db/source/printer/Lanier-LP116c.xml usr/share/foomatic/db/source/printer/Lanier-LP122c_LP121c.xml +usr/share/foomatic/db/source/printer/Lanier-LP124w.xml usr/share/foomatic/db/source/printer/Lanier-LP125cx_LP126cn.xml usr/share/foomatic/db/source/printer/Lanier-LP127n_LP128n.xml usr/share/foomatic/db/source/printer/Lanier-LP128.xml +usr/share/foomatic/db/source/printer/Lanier-LP131n.xml +usr/share/foomatic/db/source/printer/Lanier-LP131nL.xml usr/share/foomatic/db/source/printer/Lanier-LP135n.xml +usr/share/foomatic/db/source/printer/Lanier-LP136n.xml +usr/share/foomatic/db/source/printer/Lanier-LP137CN.xml usr/share/foomatic/db/source/printer/Lanier-LP138c.xml +usr/share/foomatic/db/source/printer/Lanier-LP142CN.xml usr/share/foomatic/db/source/printer/Lanier-LP145n_SP_8100DN.xml +usr/share/foomatic/db/source/printer/Lanier-LP150dn_SP8200DN.xml usr/share/foomatic/db/source/printer/Lanier-LP175_LP175hdn.xml usr/share/foomatic/db/source/printer/Lanier-LP222cn_LP221c.xml usr/share/foomatic/db/source/printer/Lanier-LP226c_SP_C410.xml usr/share/foomatic/db/source/printer/Lanier-LP231c_SP_C411.xml +usr/share/foomatic/db/source/printer/Lanier-LP235N.xml usr/share/foomatic/db/source/printer/Lanier-LP235c.xml +usr/share/foomatic/db/source/printer/Lanier-LP331cn_SP_C420.xml usr/share/foomatic/db/source/printer/Lanier-LP332c.xml usr/share/foomatic/db/source/printer/Lanier-LP335c.xml +usr/share/foomatic/db/source/printer/Lanier-LP37N.xml usr/share/foomatic/db/source/printer/Lanier-LP440c_SP_C811DN.xml +usr/share/foomatic/db/source/printer/Lanier-LP540C_SPC820DN.xml +usr/share/foomatic/db/source/printer/Lanier-LP550C_SPC821DN.xml usr/share/foomatic/db/source/printer/Lanier-LP_020c.xml usr/share/foomatic/db/source/printer/Lanier-LP_036c.xml +usr/share/foomatic/db/source/printer/Lanier-LW324.xml +usr/share/foomatic/db/source/printer/Lanier-LW326.xml +usr/share/foomatic/db/source/printer/Lanier-LW426.xml +usr/share/foomatic/db/source/printer/Lanier-LW5100.xml +usr/share/foomatic/db/source/printer/Lanier-LW7140.xml +usr/share/foomatic/db/source/printer/Lanier-MP2500_LD125.xml usr/share/foomatic/db/source/printer/Lanier-MPC1500_LD215c.xml +usr/share/foomatic/db/source/printer/Lanier-MPC4501A_LD645CA.xml +usr/share/foomatic/db/source/printer/Lanier-MPC5501A_LD655CA.xml usr/share/foomatic/db/source/printer/Lanier-MP_1100_LD1100.xml usr/share/foomatic/db/source/printer/Lanier-MP_1350_LD1135.xml usr/share/foomatic/db/source/printer/Lanier-MP_1600_LD316.xml usr/share/foomatic/db/source/printer/Lanier-MP_161_LD016.xml +usr/share/foomatic/db/source/printer/Lanier-MP_171_LD_117.xml usr/share/foomatic/db/source/printer/Lanier-MP_2000_LD320d.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2001.xml +usr/share/foomatic/db/source/printer/Lanier-MP_201_LD_220.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2352.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2501.xml usr/share/foomatic/db/source/printer/Lanier-MP_2510_LD325.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2550B_LD425B.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2550_LD425.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2851_LD528.xml +usr/share/foomatic/db/source/printer/Lanier-MP_2852.xml +usr/share/foomatic/db/source/printer/Lanier-MP_301.xml usr/share/foomatic/db/source/printer/Lanier-MP_3010_LD330.xml +usr/share/foomatic/db/source/printer/Lanier-MP_3350B_LD433B.xml +usr/share/foomatic/db/source/printer/Lanier-MP_3350_LD433.xml +usr/share/foomatic/db/source/printer/Lanier-MP_3351_LD533.xml +usr/share/foomatic/db/source/printer/Lanier-MP_3352.xml usr/share/foomatic/db/source/printer/Lanier-MP_3500_LD335.xml +usr/share/foomatic/db/source/printer/Lanier-MP_4000B_LD040B.xml +usr/share/foomatic/db/source/printer/Lanier-MP_4000_LD040.xml +usr/share/foomatic/db/source/printer/Lanier-MP_4001_LD140.xml +usr/share/foomatic/db/source/printer/Lanier-MP_4002.xml usr/share/foomatic/db/source/printer/Lanier-MP_4500_LD345.xml +usr/share/foomatic/db/source/printer/Lanier-MP_5000B_LD050B.xml +usr/share/foomatic/db/source/printer/Lanier-MP_5000_LD050.xml +usr/share/foomatic/db/source/printer/Lanier-MP_5001_LD150.xml +usr/share/foomatic/db/source/printer/Lanier-MP_5002.xml usr/share/foomatic/db/source/printer/Lanier-MP_5500_LD255.xml +usr/share/foomatic/db/source/printer/Lanier-MP_6000_LD260.xml +usr/share/foomatic/db/source/printer/Lanier-MP_6001_LD360.xml +usr/share/foomatic/db/source/printer/Lanier-MP_6002.xml usr/share/foomatic/db/source/printer/Lanier-MP_6500_LD265.xml +usr/share/foomatic/db/source/printer/Lanier-MP_7000_LD270.xml +usr/share/foomatic/db/source/printer/Lanier-MP_7001_LD370.xml usr/share/foomatic/db/source/printer/Lanier-MP_7500_LD275.xml +usr/share/foomatic/db/source/printer/Lanier-MP_7502.xml +usr/share/foomatic/db/source/printer/Lanier-MP_8000_LD280.xml +usr/share/foomatic/db/source/printer/Lanier-MP_8001_LD380.xml usr/share/foomatic/db/source/printer/Lanier-MP_9000_LD190.xml +usr/share/foomatic/db/source/printer/Lanier-MP_9001_LD390.xml +usr/share/foomatic/db/source/printer/Lanier-MP_9002.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C2050_LD520C.xml usr/share/foomatic/db/source/printer/Lanier-MP_C2500_LD425c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C2550_LD525C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C2800_LD528C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C300.xml usr/share/foomatic/db/source/printer/Lanier-MP_C3000_LD430c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3001_LD630C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3002.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3003.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C300SR.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C305.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3300_LD533C.xml usr/share/foomatic/db/source/printer/Lanier-MP_C3500_LD435c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3501_LD635C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3502.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C3503.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C400.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C4000_LD540C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C400SR.xml usr/share/foomatic/db/source/printer/Lanier-MP_C4500_LD445c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C4501_LD645C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C4502.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C4502A.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C4503.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C5000_LD550C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C5501_LD655C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C5502.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C5502A.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C5503.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C6000_LD260c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C6003.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C6501_LD365C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C6502.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C7500_LD275c.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C7501_LD375C.xml +usr/share/foomatic/db/source/printer/Lanier-MP_C8002.xml +usr/share/foomatic/db/source/printer/Lanier-MP_CW2200.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_906EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_907EX.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_C5100S.xml +usr/share/foomatic/db/source/printer/Lanier-Pro_C5110S.xml +usr/share/foomatic/db/source/printer/Lanier-SG3100SNw.xml +usr/share/foomatic/db/source/printer/Lanier-SG3110SFNw.xml +usr/share/foomatic/db/source/printer/Lanier-SP_4100N.xml +usr/share/foomatic/db/source/printer/Lanier-SP_4100NL.xml +usr/share/foomatic/db/source/printer/Lanier-SP_4110N.xml +usr/share/foomatic/db/source/printer/Lanier-SP_4210N.xml +usr/share/foomatic/db/source/printer/Lanier-SP_4310N.xml +usr/share/foomatic/db/source/printer/Lanier-SP_5200DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_5200S.xml +usr/share/foomatic/db/source/printer/Lanier-SP_5210DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_5210SF.xml +usr/share/foomatic/db/source/printer/Lanier-SP_5210SR.xml +usr/share/foomatic/db/source/printer/Lanier-SP_6330N.xml +usr/share/foomatic/db/source/printer/Lanier-SP_8300DN.xml usr/share/foomatic/db/source/printer/Lanier-SP_9100_LP275.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C320DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C400DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C430DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C431DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C730DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C830DN.xml +usr/share/foomatic/db/source/printer/Lanier-SP_C831DN.xml usr/share/foomatic/db/source/printer/LaserMaster-LM_1000.xml usr/share/foomatic/db/source/printer/Lexmark-1000.xml usr/share/foomatic/db/source/printer/Lexmark-1020.xml @@ -3946,9 +6354,78 @@ usr/share/foomatic/db/source/printer/Lexmark-4039_10plus.xml usr/share/foomatic/db/source/printer/Lexmark-4076.xml usr/share/foomatic/db/source/printer/Lexmark-5000.xml usr/share/foomatic/db/source/printer/Lexmark-5700.xml +usr/share/foomatic/db/source/printer/Lexmark-6500e.xml usr/share/foomatic/db/source/printer/Lexmark-7000.xml usr/share/foomatic/db/source/printer/Lexmark-7200.xml +usr/share/foomatic/db/source/printer/Lexmark-C500.xml +usr/share/foomatic/db/source/printer/Lexmark-C500n.xml +usr/share/foomatic/db/source/printer/Lexmark-C510.xml +usr/share/foomatic/db/source/printer/Lexmark-C510b.xml +usr/share/foomatic/db/source/printer/Lexmark-C520.xml +usr/share/foomatic/db/source/printer/Lexmark-C522.xml +usr/share/foomatic/db/source/printer/Lexmark-C524.xml +usr/share/foomatic/db/source/printer/Lexmark-C530dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C532dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C532n.xml +usr/share/foomatic/db/source/printer/Lexmark-C534dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C534dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-C534n.xml +usr/share/foomatic/db/source/printer/Lexmark-C540.xml +usr/share/foomatic/db/source/printer/Lexmark-C543.xml +usr/share/foomatic/db/source/printer/Lexmark-C544.xml +usr/share/foomatic/db/source/printer/Lexmark-C546.xml +usr/share/foomatic/db/source/printer/Lexmark-C720n.xml +usr/share/foomatic/db/source/printer/Lexmark-C734.xml +usr/share/foomatic/db/source/printer/Lexmark-C736.xml +usr/share/foomatic/db/source/printer/Lexmark-C750.xml +usr/share/foomatic/db/source/printer/Lexmark-C752.xml +usr/share/foomatic/db/source/printer/Lexmark-C752b.xml +usr/share/foomatic/db/source/printer/Lexmark-C762.xml +usr/share/foomatic/db/source/printer/Lexmark-C770dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-C770n.xml +usr/share/foomatic/db/source/printer/Lexmark-C772dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C772n.xml +usr/share/foomatic/db/source/printer/Lexmark-C780.xml +usr/share/foomatic/db/source/printer/Lexmark-C780dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C780dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-C780n.xml +usr/share/foomatic/db/source/printer/Lexmark-C782.xml +usr/share/foomatic/db/source/printer/Lexmark-C782dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C782dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-C782n.xml +usr/share/foomatic/db/source/printer/Lexmark-C790.xml +usr/share/foomatic/db/source/printer/Lexmark-C792.xml +usr/share/foomatic/db/source/printer/Lexmark-C910.xml +usr/share/foomatic/db/source/printer/Lexmark-C912.xml +usr/share/foomatic/db/source/printer/Lexmark-C920.xml +usr/share/foomatic/db/source/printer/Lexmark-C920n.xml +usr/share/foomatic/db/source/printer/Lexmark-C925.xml +usr/share/foomatic/db/source/printer/Lexmark-C930.xml +usr/share/foomatic/db/source/printer/Lexmark-C935.xml +usr/share/foomatic/db/source/printer/Lexmark-C935dn.xml +usr/share/foomatic/db/source/printer/Lexmark-C935dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-C935hdn.xml +usr/share/foomatic/db/source/printer/Lexmark-C950.xml +usr/share/foomatic/db/source/printer/Lexmark-E120.xml +usr/share/foomatic/db/source/printer/Lexmark-E120n.xml usr/share/foomatic/db/source/printer/Lexmark-E210.xml +usr/share/foomatic/db/source/printer/Lexmark-E230.xml +usr/share/foomatic/db/source/printer/Lexmark-E238.xml +usr/share/foomatic/db/source/printer/Lexmark-E250d.xml +usr/share/foomatic/db/source/printer/Lexmark-E250dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E260.xml +usr/share/foomatic/db/source/printer/Lexmark-E260d.xml +usr/share/foomatic/db/source/printer/Lexmark-E260dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E320.xml +usr/share/foomatic/db/source/printer/Lexmark-E350d.xml +usr/share/foomatic/db/source/printer/Lexmark-E352dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E360d.xml +usr/share/foomatic/db/source/printer/Lexmark-E360dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E450dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E460dn.xml +usr/share/foomatic/db/source/printer/Lexmark-E460dw.xml +usr/share/foomatic/db/source/printer/Lexmark-E462dtn.xml +usr/share/foomatic/db/source/printer/Lexmark-EG460dn.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_C710.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_Color_1200.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_Color_1275.xml @@ -3972,15 +6449,65 @@ usr/share/foomatic/db/source/printer/Lexmark-Optra_T612.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_T614.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_T616.xml usr/share/foomatic/db/source/printer/Lexmark-Optra_W810.xml +usr/share/foomatic/db/source/printer/Lexmark-T430.xml +usr/share/foomatic/db/source/printer/Lexmark-T640.xml +usr/share/foomatic/db/source/printer/Lexmark-T642.xml +usr/share/foomatic/db/source/printer/Lexmark-T644.xml +usr/share/foomatic/db/source/printer/Lexmark-T650.xml +usr/share/foomatic/db/source/printer/Lexmark-T652.xml +usr/share/foomatic/db/source/printer/Lexmark-T654.xml +usr/share/foomatic/db/source/printer/Lexmark-T656.xml +usr/share/foomatic/db/source/printer/Lexmark-TG654.xml usr/share/foomatic/db/source/printer/Lexmark-Valuewriter_300.xml +usr/share/foomatic/db/source/printer/Lexmark-W812.xml +usr/share/foomatic/db/source/printer/Lexmark-W840.xml +usr/share/foomatic/db/source/printer/Lexmark-W850.xml usr/share/foomatic/db/source/printer/Lexmark-Winwriter_100.xml usr/share/foomatic/db/source/printer/Lexmark-Winwriter_150c.xml usr/share/foomatic/db/source/printer/Lexmark-Winwriter_200.xml usr/share/foomatic/db/source/printer/Lexmark-Winwriter_400.xml usr/share/foomatic/db/source/printer/Lexmark-X125.xml +usr/share/foomatic/db/source/printer/Lexmark-X203n.xml +usr/share/foomatic/db/source/printer/Lexmark-X204n.xml +usr/share/foomatic/db/source/printer/Lexmark-X264dn.xml +usr/share/foomatic/db/source/printer/Lexmark-X342n.xml +usr/share/foomatic/db/source/printer/Lexmark-X363dn.xml +usr/share/foomatic/db/source/printer/Lexmark-X364dn.xml +usr/share/foomatic/db/source/printer/Lexmark-X364dw.xml +usr/share/foomatic/db/source/printer/Lexmark-X463de.xml +usr/share/foomatic/db/source/printer/Lexmark-X464de.xml +usr/share/foomatic/db/source/printer/Lexmark-X466de.xml +usr/share/foomatic/db/source/printer/Lexmark-X466dte.xml +usr/share/foomatic/db/source/printer/Lexmark-X466dwe.xml +usr/share/foomatic/db/source/printer/Lexmark-X543.xml +usr/share/foomatic/db/source/printer/Lexmark-X544.xml +usr/share/foomatic/db/source/printer/Lexmark-X546.xml +usr/share/foomatic/db/source/printer/Lexmark-X548.xml +usr/share/foomatic/db/source/printer/Lexmark-X560n.xml +usr/share/foomatic/db/source/printer/Lexmark-X642e.xml +usr/share/foomatic/db/source/printer/Lexmark-X651de.xml +usr/share/foomatic/db/source/printer/Lexmark-X652de.xml +usr/share/foomatic/db/source/printer/Lexmark-X654de.xml +usr/share/foomatic/db/source/printer/Lexmark-X656de.xml +usr/share/foomatic/db/source/printer/Lexmark-X658de.xml usr/share/foomatic/db/source/printer/Lexmark-X73.xml +usr/share/foomatic/db/source/printer/Lexmark-X734de.xml +usr/share/foomatic/db/source/printer/Lexmark-X736de.xml +usr/share/foomatic/db/source/printer/Lexmark-X738de.xml usr/share/foomatic/db/source/printer/Lexmark-X74.xml usr/share/foomatic/db/source/printer/Lexmark-X75.xml +usr/share/foomatic/db/source/printer/Lexmark-X790.xml +usr/share/foomatic/db/source/printer/Lexmark-X792.xml +usr/share/foomatic/db/source/printer/Lexmark-X860de.xml +usr/share/foomatic/db/source/printer/Lexmark-X862de.xml +usr/share/foomatic/db/source/printer/Lexmark-X864de.xml +usr/share/foomatic/db/source/printer/Lexmark-X920.xml +usr/share/foomatic/db/source/printer/Lexmark-X925.xml +usr/share/foomatic/db/source/printer/Lexmark-X940e.xml +usr/share/foomatic/db/source/printer/Lexmark-X945e.xml +usr/share/foomatic/db/source/printer/Lexmark-X950.xml +usr/share/foomatic/db/source/printer/Lexmark-X952.xml +usr/share/foomatic/db/source/printer/Lexmark-X954.xml usr/share/foomatic/db/source/printer/Lexmark-Z11.xml usr/share/foomatic/db/source/printer/Lexmark-Z12.xml usr/share/foomatic/db/source/printer/Lexmark-Z13.xml @@ -4016,6 +6543,7 @@ usr/share/foomatic/db/source/printer/Minolta-magicolor_2300_DL.xml usr/share/foomatic/db/source/printer/Minolta-magicolor_2400W.xml usr/share/foomatic/db/source/printer/Minolta-magicolor_2430_DL.xml usr/share/foomatic/db/source/printer/Minolta-magicolor_3100.xml +usr/share/foomatic/db/source/printer/Minolta_QMS-PagePro_9100N.xml usr/share/foomatic/db/source/printer/Mitsubishi-CP50_Color_Printer.xml usr/share/foomatic/db/source/printer/NEC-MultiWriter.xml usr/share/foomatic/db/source/printer/NEC-P2X.xml @@ -4107,20 +6635,96 @@ usr/share/foomatic/db/source/printer/NRG-MP_1100.xml usr/share/foomatic/db/source/printer/NRG-MP_1350.xml usr/share/foomatic/db/source/printer/NRG-MP_1600.xml usr/share/foomatic/db/source/printer/NRG-MP_161.xml +usr/share/foomatic/db/source/printer/NRG-MP_171.xml usr/share/foomatic/db/source/printer/NRG-MP_2000.xml +usr/share/foomatic/db/source/printer/NRG-MP_2001.xml +usr/share/foomatic/db/source/printer/NRG-MP_201.xml +usr/share/foomatic/db/source/printer/NRG-MP_2352.xml +usr/share/foomatic/db/source/printer/NRG-MP_2500.xml +usr/share/foomatic/db/source/printer/NRG-MP_2501.xml usr/share/foomatic/db/source/printer/NRG-MP_2510.xml +usr/share/foomatic/db/source/printer/NRG-MP_2550.xml +usr/share/foomatic/db/source/printer/NRG-MP_2550B.xml +usr/share/foomatic/db/source/printer/NRG-MP_2851.xml +usr/share/foomatic/db/source/printer/NRG-MP_2852.xml +usr/share/foomatic/db/source/printer/NRG-MP_301.xml usr/share/foomatic/db/source/printer/NRG-MP_3010.xml +usr/share/foomatic/db/source/printer/NRG-MP_3350.xml +usr/share/foomatic/db/source/printer/NRG-MP_3350B.xml +usr/share/foomatic/db/source/printer/NRG-MP_3351.xml +usr/share/foomatic/db/source/printer/NRG-MP_3352.xml usr/share/foomatic/db/source/printer/NRG-MP_3500.xml +usr/share/foomatic/db/source/printer/NRG-MP_4000.xml +usr/share/foomatic/db/source/printer/NRG-MP_4000B.xml +usr/share/foomatic/db/source/printer/NRG-MP_4001.xml +usr/share/foomatic/db/source/printer/NRG-MP_4002.xml usr/share/foomatic/db/source/printer/NRG-MP_4500.xml +usr/share/foomatic/db/source/printer/NRG-MP_5000.xml +usr/share/foomatic/db/source/printer/NRG-MP_5000B.xml +usr/share/foomatic/db/source/printer/NRG-MP_5001.xml +usr/share/foomatic/db/source/printer/NRG-MP_5002.xml usr/share/foomatic/db/source/printer/NRG-MP_5500.xml +usr/share/foomatic/db/source/printer/NRG-MP_6000.xml +usr/share/foomatic/db/source/printer/NRG-MP_6001.xml +usr/share/foomatic/db/source/printer/NRG-MP_6002.xml usr/share/foomatic/db/source/printer/NRG-MP_6500.xml +usr/share/foomatic/db/source/printer/NRG-MP_7000.xml +usr/share/foomatic/db/source/printer/NRG-MP_7001.xml usr/share/foomatic/db/source/printer/NRG-MP_7500.xml +usr/share/foomatic/db/source/printer/NRG-MP_7502.xml +usr/share/foomatic/db/source/printer/NRG-MP_8000.xml +usr/share/foomatic/db/source/printer/NRG-MP_8001.xml usr/share/foomatic/db/source/printer/NRG-MP_9000.xml +usr/share/foomatic/db/source/printer/NRG-MP_9001.xml +usr/share/foomatic/db/source/printer/NRG-MP_9002.xml usr/share/foomatic/db/source/printer/NRG-MP_C1500sp.xml +usr/share/foomatic/db/source/printer/NRG-MP_C2050.xml +usr/share/foomatic/db/source/printer/NRG-MP_C2051.xml usr/share/foomatic/db/source/printer/NRG-MP_C2500.xml +usr/share/foomatic/db/source/printer/NRG-MP_C2550.xml +usr/share/foomatic/db/source/printer/NRG-MP_C2551.xml +usr/share/foomatic/db/source/printer/NRG-MP_C2800.xml +usr/share/foomatic/db/source/printer/NRG-MP_C300.xml usr/share/foomatic/db/source/printer/NRG-MP_C3000.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3001.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3002.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3003.xml +usr/share/foomatic/db/source/printer/NRG-MP_C300SR.xml +usr/share/foomatic/db/source/printer/NRG-MP_C305.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3300.xml usr/share/foomatic/db/source/printer/NRG-MP_C3500.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3501.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3502.xml +usr/share/foomatic/db/source/printer/NRG-MP_C3503.xml +usr/share/foomatic/db/source/printer/NRG-MP_C400.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4000.xml +usr/share/foomatic/db/source/printer/NRG-MP_C400SR.xml usr/share/foomatic/db/source/printer/NRG-MP_C4500.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4501.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4501A.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4502.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4502A.xml +usr/share/foomatic/db/source/printer/NRG-MP_C4503.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5000.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5501.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5501A.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5502.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5502A.xml +usr/share/foomatic/db/source/printer/NRG-MP_C5503.xml +usr/share/foomatic/db/source/printer/NRG-MP_C6000.xml +usr/share/foomatic/db/source/printer/NRG-MP_C6003.xml +usr/share/foomatic/db/source/printer/NRG-MP_C6501.xml +usr/share/foomatic/db/source/printer/NRG-MP_C6502.xml +usr/share/foomatic/db/source/printer/NRG-MP_C7500.xml +usr/share/foomatic/db/source/printer/NRG-MP_C7501.xml +usr/share/foomatic/db/source/printer/NRG-MP_C8002.xml +usr/share/foomatic/db/source/printer/NRG-MP_CW2200.xml +usr/share/foomatic/db/source/printer/NRG-MP_W2400.xml +usr/share/foomatic/db/source/printer/NRG-MP_W2401.xml +usr/share/foomatic/db/source/printer/NRG-MP_W3600.xml +usr/share/foomatic/db/source/printer/NRG-MP_W3601.xml +usr/share/foomatic/db/source/printer/NRG-MP_W5100.xml +usr/share/foomatic/db/source/printer/NRG-MP_W7140.xml usr/share/foomatic/db/source/printer/NRG-P7026.xml usr/share/foomatic/db/source/printer/NRG-P7026N.xml usr/share/foomatic/db/source/printer/NRG-P7032.xml @@ -4135,17 +6739,53 @@ usr/share/foomatic/db/source/printer/NRG-P7527.xml usr/share/foomatic/db/source/printer/NRG-P7527n.xml usr/share/foomatic/db/source/printer/NRG-P7535n.xml usr/share/foomatic/db/source/printer/NRG-P7575.xml +usr/share/foomatic/db/source/printer/NRG-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_906EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_907EX.xml +usr/share/foomatic/db/source/printer/NRG-Pro_C5100S.xml +usr/share/foomatic/db/source/printer/NRG-Pro_C5110S.xml +usr/share/foomatic/db/source/printer/NRG-SG3100SNw.xml +usr/share/foomatic/db/source/printer/NRG-SG3110SFNw.xml +usr/share/foomatic/db/source/printer/NRG-SP_4100N.xml +usr/share/foomatic/db/source/printer/NRG-SP_4100NL.xml +usr/share/foomatic/db/source/printer/NRG-SP_4110N.xml +usr/share/foomatic/db/source/printer/NRG-SP_4210N.xml +usr/share/foomatic/db/source/printer/NRG-SP_4310N.xml +usr/share/foomatic/db/source/printer/NRG-SP_5200DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_5200S.xml +usr/share/foomatic/db/source/printer/NRG-SP_5210DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_5210SF.xml +usr/share/foomatic/db/source/printer/NRG-SP_5210SR.xml +usr/share/foomatic/db/source/printer/NRG-SP_6330N.xml usr/share/foomatic/db/source/printer/NRG-SP_8100DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_8200DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_8300DN.xml usr/share/foomatic/db/source/printer/NRG-SP_9100DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C320DN.xml usr/share/foomatic/db/source/printer/NRG-SP_C410DN.xml usr/share/foomatic/db/source/printer/NRG-SP_C411DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C420DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C430DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C431DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C730DN.xml usr/share/foomatic/db/source/printer/NRG-SP_C811DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C820DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C821DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C830DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_C831DN.xml +usr/share/foomatic/db/source/printer/NRG-SP_W2470.xml usr/share/foomatic/db/source/printer/Oce-3145PS.xml usr/share/foomatic/db/source/printer/Oce-3155PS.xml usr/share/foomatic/db/source/printer/Oce-3165PS.xml usr/share/foomatic/db/source/printer/Oce-8445PS.xml usr/share/foomatic/db/source/printer/Oce-8465PS.xml usr/share/foomatic/db/source/printer/Oce-9050.xml +usr/share/foomatic/db/source/printer/Oce-9230.xml +usr/share/foomatic/db/source/printer/Oce-9245.xml +usr/share/foomatic/db/source/printer/Oce-9260.xml usr/share/foomatic/db/source/printer/Oce-PPC3073PS.xml usr/share/foomatic/db/source/printer/Oce-PPC3074PS.xml usr/share/foomatic/db/source/printer/Oce-PPC3093PS.xml @@ -4164,50 +6804,137 @@ usr/share/foomatic/db/source/printer/Oce-VarioPrint_2090PS.xml usr/share/foomatic/db/source/printer/Oce-VarioPrint_2100PS.xml usr/share/foomatic/db/source/printer/Oce-VarioPrint_2105PS.xml usr/share/foomatic/db/source/printer/Oce-VarioPrint_2110PS.xml -usr/share/foomatic/db/source/printer/Okidata-DP_5000.xml -usr/share/foomatic/db/source/printer/Okidata-ML_320.xml -usr/share/foomatic/db/source/printer/Okidata-ML_321.xml -usr/share/foomatic/db/source/printer/Okidata-ML_380.xml -usr/share/foomatic/db/source/printer/Okidata-Microline_182.xml -usr/share/foomatic/db/source/printer/Okidata-Microline_192plus.xml -usr/share/foomatic/db/source/printer/Okidata-Microline_600CL.xml -usr/share/foomatic/db/source/printer/Okidata-Microline_620CL.xml -usr/share/foomatic/db/source/printer/Okidata-Microline_IBM_compatible_9_pin.xml -usr/share/foomatic/db/source/printer/Okidata-OL400.xml -usr/share/foomatic/db/source/printer/Okidata-OL400e.xml -usr/share/foomatic/db/source/printer/Okidata-OL400ex.xml -usr/share/foomatic/db/source/printer/Okidata-OL400w.xml -usr/share/foomatic/db/source/printer/Okidata-OL410e.xml -usr/share/foomatic/db/source/printer/Okidata-OL600e.xml -usr/share/foomatic/db/source/printer/Okidata-OL610e_PS.xml -usr/share/foomatic/db/source/printer/Okidata-OL610e_S.xml -usr/share/foomatic/db/source/printer/Okidata-OL800.xml -usr/share/foomatic/db/source/printer/Okidata-OL810e_PS.xml -usr/share/foomatic/db/source/printer/Okidata-OL810ex.xml -usr/share/foomatic/db/source/printer/Okidata-OL820.xml -usr/share/foomatic/db/source/printer/Okidata-OL830Plus.xml -usr/share/foomatic/db/source/printer/Okidata-Okijet_2010.xml -usr/share/foomatic/db/source/printer/Okidata-Okijet_2500.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_10e.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_10ex.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_12i.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_14ex.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_20DXn.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_4w.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_4wplus.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_6e.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_6ex.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_6w.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_8c.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_8p.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_8w.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_8w_Lite.xml -usr/share/foomatic/db/source/printer/Okidata-Okipage_8z.xml -usr/share/foomatic/db/source/printer/Okidata-Super_6e.xml +usr/share/foomatic/db/source/printer/Oce-cm2510.xml +usr/share/foomatic/db/source/printer/Oce-cm2520.xml +usr/share/foomatic/db/source/printer/Oce-cm3521.xml +usr/share/foomatic/db/source/printer/Oce-cm4010.xml +usr/share/foomatic/db/source/printer/Oce-cm4520.xml +usr/share/foomatic/db/source/printer/Oce-cm4521.xml +usr/share/foomatic/db/source/printer/Oce-cm5520.xml +usr/share/foomatic/db/source/printer/Oce-cm6520.xml +usr/share/foomatic/db/source/printer/Oce-fx2080.xml +usr/share/foomatic/db/source/printer/Oce-fx3000.xml +usr/share/foomatic/db/source/printer/Oce-im2330.xml +usr/share/foomatic/db/source/printer/Oce-im2830.xml +usr/share/foomatic/db/source/printer/Oce-im3512.xml +usr/share/foomatic/db/source/printer/Oce-im3530.xml +usr/share/foomatic/db/source/printer/Oce-im4512.xml +usr/share/foomatic/db/source/printer/Oce-im4530.xml +usr/share/foomatic/db/source/printer/Oce-im5530.xml +usr/share/foomatic/db/source/printer/Oce-im6020.xml +usr/share/foomatic/db/source/printer/Oce-im6030.xml +usr/share/foomatic/db/source/printer/Oce-im7230.xml +usr/share/foomatic/db/source/printer/Oce-im7520.xml +usr/share/foomatic/db/source/printer/Oce-im8530.xml +usr/share/foomatic/db/source/printer/Oce-im9220.xml +usr/share/foomatic/db/source/printer/Oce-sx1480.xml +usr/share/foomatic/db/source/printer/Oce-sx2100.xml +usr/share/foomatic/db/source/printer/Oki-14i.xml +usr/share/foomatic/db/source/printer/Oki-B2200.xml +usr/share/foomatic/db/source/printer/Oki-B2400.xml +usr/share/foomatic/db/source/printer/Oki-B2540_MFP.xml +usr/share/foomatic/db/source/printer/Oki-B410.xml +usr/share/foomatic/db/source/printer/Oki-B410dn.xml +usr/share/foomatic/db/source/printer/Oki-B4200.xml +usr/share/foomatic/db/source/printer/Oki-B4250.xml +usr/share/foomatic/db/source/printer/Oki-B4300.xml +usr/share/foomatic/db/source/printer/Oki-B4350.xml +usr/share/foomatic/db/source/printer/Oki-B4400.xml +usr/share/foomatic/db/source/printer/Oki-B4545_MFP.xml +usr/share/foomatic/db/source/printer/Oki-B4600.xml +usr/share/foomatic/db/source/printer/Oki-B4600_PS.xml +usr/share/foomatic/db/source/printer/Oki-B6200.xml +usr/share/foomatic/db/source/printer/Oki-B6250.xml +usr/share/foomatic/db/source/printer/Oki-B6300.xml +usr/share/foomatic/db/source/printer/Oki-B6500.xml +usr/share/foomatic/db/source/printer/Oki-C110.xml +usr/share/foomatic/db/source/printer/Oki-C301dn.xml +usr/share/foomatic/db/source/printer/Oki-C3100.xml +usr/share/foomatic/db/source/printer/Oki-C310dn.xml +usr/share/foomatic/db/source/printer/Oki-C3200.xml +usr/share/foomatic/db/source/printer/Oki-C3300.xml +usr/share/foomatic/db/source/printer/Oki-C3400.xml +usr/share/foomatic/db/source/printer/Oki-C3530_MFP.xml +usr/share/foomatic/db/source/printer/Oki-C5100.xml +usr/share/foomatic/db/source/printer/Oki-C5200.xml +usr/share/foomatic/db/source/printer/Oki-C5300.xml +usr/share/foomatic/db/source/printer/Oki-C5400.xml +usr/share/foomatic/db/source/printer/Oki-C5450.xml +usr/share/foomatic/db/source/printer/Oki-C5500.xml +usr/share/foomatic/db/source/printer/Oki-C5540_MFP.xml +usr/share/foomatic/db/source/printer/Oki-C5550_MFP.xml +usr/share/foomatic/db/source/printer/Oki-C5600.xml +usr/share/foomatic/db/source/printer/Oki-C5650.xml +usr/share/foomatic/db/source/printer/Oki-C5700.xml +usr/share/foomatic/db/source/printer/Oki-C5750.xml +usr/share/foomatic/db/source/printer/Oki-C5800.xml +usr/share/foomatic/db/source/printer/Oki-C5900.xml +usr/share/foomatic/db/source/printer/Oki-C6000.xml +usr/share/foomatic/db/source/printer/Oki-C6050.xml +usr/share/foomatic/db/source/printer/Oki-C6100.xml +usr/share/foomatic/db/source/printer/Oki-C6150.xml +usr/share/foomatic/db/source/printer/Oki-C710.xml +usr/share/foomatic/db/source/printer/Oki-C7100.xml +usr/share/foomatic/db/source/printer/Oki-C7200.xml +usr/share/foomatic/db/source/printer/Oki-C7300.xml +usr/share/foomatic/db/source/printer/Oki-C7350.xml +usr/share/foomatic/db/source/printer/Oki-C7400.xml +usr/share/foomatic/db/source/printer/Oki-C7500.xml +usr/share/foomatic/db/source/printer/Oki-C7550.xml +usr/share/foomatic/db/source/printer/Oki-C8800.xml +usr/share/foomatic/db/source/printer/Oki-C9200.xml +usr/share/foomatic/db/source/printer/Oki-C9300.xml +usr/share/foomatic/db/source/printer/Oki-C9400.xml +usr/share/foomatic/db/source/printer/Oki-C9500.xml +usr/share/foomatic/db/source/printer/Oki-C9600.xml +usr/share/foomatic/db/source/printer/Oki-C9650.xml +usr/share/foomatic/db/source/printer/Oki-C9800.xml +usr/share/foomatic/db/source/printer/Oki-C9800_MFP.xml +usr/share/foomatic/db/source/printer/Oki-DP_5000.xml +usr/share/foomatic/db/source/printer/Oki-ML_320.xml +usr/share/foomatic/db/source/printer/Oki-ML_321.xml +usr/share/foomatic/db/source/printer/Oki-ML_380.xml +usr/share/foomatic/db/source/printer/Oki-Microline_182.xml +usr/share/foomatic/db/source/printer/Oki-Microline_192plus.xml +usr/share/foomatic/db/source/printer/Oki-Microline_600CL.xml +usr/share/foomatic/db/source/printer/Oki-Microline_620CL.xml +usr/share/foomatic/db/source/printer/Oki-Microline_IBM_compatible_9_pin.xml +usr/share/foomatic/db/source/printer/Oki-OL400.xml +usr/share/foomatic/db/source/printer/Oki-OL400e.xml +usr/share/foomatic/db/source/printer/Oki-OL400ex.xml +usr/share/foomatic/db/source/printer/Oki-OL400w.xml +usr/share/foomatic/db/source/printer/Oki-OL410e.xml +usr/share/foomatic/db/source/printer/Oki-OL600e.xml +usr/share/foomatic/db/source/printer/Oki-OL610e_PS.xml +usr/share/foomatic/db/source/printer/Oki-OL610e_S.xml +usr/share/foomatic/db/source/printer/Oki-OL800.xml +usr/share/foomatic/db/source/printer/Oki-OL810e_PS.xml +usr/share/foomatic/db/source/printer/Oki-OL810ex.xml +usr/share/foomatic/db/source/printer/Oki-OL820.xml +usr/share/foomatic/db/source/printer/Oki-OL830Plus.xml +usr/share/foomatic/db/source/printer/Oki-Okijet_2010.xml +usr/share/foomatic/db/source/printer/Oki-Okijet_2500.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_10e.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_10ex.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_12i.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_14ex.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_20DXn.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_4w.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_4wplus.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_6e.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_6ex.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_6w.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_8c.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_8p.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_8w.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_8w_Lite.xml +usr/share/foomatic/db/source/printer/Oki-Okipage_8z.xml +usr/share/foomatic/db/source/printer/Oki-Super_6e.xml usr/share/foomatic/db/source/printer/Olivetti-JP350S.xml usr/share/foomatic/db/source/printer/Olivetti-JP450.xml usr/share/foomatic/db/source/printer/Olivetti-JP470.xml usr/share/foomatic/db/source/printer/Olivetti-PG_306.xml +usr/share/foomatic/db/source/printer/Olivetti-d-Color_P160W.xml usr/share/foomatic/db/source/printer/Olympus-P-10.xml usr/share/foomatic/db/source/printer/Olympus-P-11.xml usr/share/foomatic/db/source/printer/Olympus-P-200.xml @@ -4219,6 +6946,22 @@ usr/share/foomatic/db/source/printer/Olympus-P-330NE.xml usr/share/foomatic/db/source/printer/Olympus-P-400.xml usr/share/foomatic/db/source/printer/Olympus-P-440.xml usr/share/foomatic/db/source/printer/PCPI-1030.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-180.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-2330.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-4510.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-4520.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-8016P.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-8020E.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-8045.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-8060.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C213.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C262.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C264.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C265.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C305.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C322.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C354.xml +usr/share/foomatic/db/source/printer/Panasonic-DP-C405.xml usr/share/foomatic/db/source/printer/Panasonic-KX-P1123.xml usr/share/foomatic/db/source/printer/Panasonic-KX-P1124.xml usr/share/foomatic/db/source/printer/Panasonic-KX-P1150.xml @@ -4252,6 +6995,8 @@ usr/share/foomatic/db/source/printer/Raven-LP-410.xml usr/share/foomatic/db/source/printer/Ricoh-4081.xml usr/share/foomatic/db/source/printer/Ricoh-4801.xml usr/share/foomatic/db/source/printer/Ricoh-6000.xml +usr/share/foomatic/db/source/printer/Ricoh-AficioSG3100SNw.xml +usr/share/foomatic/db/source/printer/Ricoh-AficioSG3110SFNw.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_1022.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_1027.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_1032.xml @@ -4326,48 +7071,207 @@ usr/share/foomatic/db/source/printer/Ricoh-Aficio_CL7100.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_CL7200.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_CL7300.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_Color5560.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_FX10.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_1100.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_1350.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_1600.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_161.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_171.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_201.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2352.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2500.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2510.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2550.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2550B.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2851.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_2852.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_301.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3010.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3350.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3350B.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3351.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3352.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_3500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_4000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_4000B.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_4001.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_4002.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_4500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_5000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_5000B.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_5001.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_5002.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_5500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_6000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_6001.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_6002.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_6500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_7000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_7001.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_7500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_7502.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_8000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_8001.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_9000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_9001.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_9002.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2050.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2051.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2550.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2551.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C2800.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C300.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3001.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3002.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C300SR.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C305.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3300.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3501.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C3502.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C400.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C400SR.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4501.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4501A.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4502.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C4502A.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C5000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C5501.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C5501A.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C5502.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C5502A.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C6000.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C6501.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C7500.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_C7501.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W2400.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W2401.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W3600.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W3601.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W5100.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_MP_W7140.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_1000S.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_1100S.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_4100N.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_4100NL.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_4110N.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_4210N.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_4310N.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_5200DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_5200S.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_5210DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_5210SF.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_5210SR.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_6330N.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_8100DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_8200DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_8300DN.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_9100DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C222SF.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C320DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C400DN.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C410DN.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C411DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C420DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C430DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C431DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C730DN.xml usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C811DN.xml -usr/share/foomatic/db/source/printer/Ricoh-Afico_FX10.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C820DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C821DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C830DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_C831DN.xml +usr/share/foomatic/db/source/printer/Ricoh-Aficio_SP_W2470.xml usr/share/foomatic/db/source/printer/Ricoh-ColorLaser_AP828.xml usr/share/foomatic/db/source/printer/Ricoh-DDP_70.xml usr/share/foomatic/db/source/printer/Ricoh-DDP_92.xml usr/share/foomatic/db/source/printer/Ricoh-EMP_156.xml usr/share/foomatic/db/source/printer/Ricoh-FAX5510L_5510NF.xml +usr/share/foomatic/db/source/printer/Ricoh-GX_3050N.xml +usr/share/foomatic/db/source/printer/Ricoh-GX_3050SFN.xml +usr/share/foomatic/db/source/printer/Ricoh-GX_5050N.xml +usr/share/foomatic/db/source/printer/Ricoh-GX_E3350N.xml +usr/share/foomatic/db/source/printer/Ricoh-GX_E5550N.xml usr/share/foomatic/db/source/printer/Ricoh-LASER_AP2600.xml usr/share/foomatic/db/source/printer/Ricoh-LASER_AP2600N.xml usr/share/foomatic/db/source/printer/Ricoh-LASER_AP2610.xml usr/share/foomatic/db/source/printer/Ricoh-LASER_AP2610N.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_2001.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_2501.xml usr/share/foomatic/db/source/printer/Ricoh-MP_C1500_615C.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C3003.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C3503.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C4503.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C5503.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C6003.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C6502.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_C8002.xml +usr/share/foomatic/db/source/printer/Ricoh-MP_CW2200.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_906EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_907EX.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_C5100S.xml +usr/share/foomatic/db/source/printer/Ricoh-Pro_C5110S.xml usr/share/foomatic/db/source/printer/Ricoh-RPDL_III_Laser_Printer.xml usr/share/foomatic/db/source/printer/Ricoh-RPDL_II_Laser_Printer.xml usr/share/foomatic/db/source/printer/Ricoh-RPDL_IV_Laser_Printer.xml usr/share/foomatic/db/source/printer/Ricoh-RPDL_I_Laser_Printer.xml usr/share/foomatic/db/source/printer/Samsung-CLP-300.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-310.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-315.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-325.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-350.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-365.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-410.xml usr/share/foomatic/db/source/printer/Samsung-CLP-500.xml usr/share/foomatic/db/source/printer/Samsung-CLP-510.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-550.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-550N.xml usr/share/foomatic/db/source/printer/Samsung-CLP-600.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-610.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-610ND.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-620.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-650.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-650N.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-660.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-660N.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-660ND.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-670.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-680.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-770.xml +usr/share/foomatic/db/source/printer/Samsung-CLP-775.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-2160.xml usr/share/foomatic/db/source/printer/Samsung-CLX-3160.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-3175.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-3185.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-3300.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-4190.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-6200.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-6220.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-6240.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-6250.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-6260.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-8380.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-8385.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-8385X.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-8540.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-8640_8650.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-9250_9350.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-9252_9352.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-92x1_93x1.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-981x.xml +usr/share/foomatic/db/source/printer/Samsung-CLX-982x.xml +usr/share/foomatic/db/source/printer/Samsung-M262x_282x.xml +usr/share/foomatic/db/source/printer/Samsung-M267x_287x.xml +usr/share/foomatic/db/source/printer/Samsung-M337x_387x_407x.xml usr/share/foomatic/db/source/printer/Samsung-ML-1000.xml usr/share/foomatic/db/source/printer/Samsung-ML-1010.xml usr/share/foomatic/db/source/printer/Samsung-ML-1020.xml @@ -4401,13 +7305,42 @@ usr/share/foomatic/db/source/printer/Samsung-ML-2250.xml usr/share/foomatic/db/source/printer/Samsung-ML-2550.xml usr/share/foomatic/db/source/printer/Samsung-ML-2551N.xml usr/share/foomatic/db/source/printer/Samsung-ML-2552W.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2570.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2571N.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2580.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2850.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2850D.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2851ND.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2853.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2855.xml +usr/share/foomatic/db/source/printer/Samsung-ML-2950.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3051N.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3051ND.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3470.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3470D.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3471ND.xml +usr/share/foomatic/db/source/printer/Samsung-ML-3475.xml +usr/share/foomatic/db/source/printer/Samsung-ML-371x.xml +usr/share/foomatic/db/source/printer/Samsung-ML-375x.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4050.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4050N.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4055.xml usr/share/foomatic/db/source/printer/Samsung-ML-4500.xml +usr/share/foomatic/db/source/printer/Samsung-ML-451x_501x.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4550.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4551N.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4551ND.xml +usr/share/foomatic/db/source/printer/Samsung-ML-4555.xml usr/share/foomatic/db/source/printer/Samsung-ML-4600.xml usr/share/foomatic/db/source/printer/Samsung-ML-5000a.xml usr/share/foomatic/db/source/printer/Samsung-ML-5050G.xml usr/share/foomatic/db/source/printer/Samsung-ML-5080.xml +usr/share/foomatic/db/source/printer/Samsung-ML-551x_651x.xml usr/share/foomatic/db/source/printer/Samsung-ML-6000.xml usr/share/foomatic/db/source/printer/Samsung-ML-6040.xml +usr/share/foomatic/db/source/printer/Samsung-ML-6060.xml +usr/share/foomatic/db/source/printer/Samsung-ML-6060N.xml +usr/share/foomatic/db/source/printer/Samsung-ML-6060S.xml usr/share/foomatic/db/source/printer/Samsung-ML-6100.xml usr/share/foomatic/db/source/printer/Samsung-ML-7000.xml usr/share/foomatic/db/source/printer/Samsung-ML-7000N.xml @@ -4417,11 +7350,39 @@ usr/share/foomatic/db/source/printer/Samsung-ML-7300.xml usr/share/foomatic/db/source/printer/Samsung-ML-7300N.xml usr/share/foomatic/db/source/printer/Samsung-ML-85.xml usr/share/foomatic/db/source/printer/Samsung-ML-85G.xml +usr/share/foomatic/db/source/printer/Samsung-ML-8850_8950.xml +usr/share/foomatic/db/source/printer/Samsung-ML-8x00.xml usr/share/foomatic/db/source/printer/Samsung-QL-5100A.xml usr/share/foomatic/db/source/printer/Samsung-QL-6050.xml usr/share/foomatic/db/source/printer/Samsung-QL-85G.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-470x.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-472x.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-483x_5x3x.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-4x24.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-4x25.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-4x26.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-4x28.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-5635.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-5835_5935.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-5835_5935X.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6545.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6545X.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-681x.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6x20.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6x22.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6x45.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6x55.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-6x55X.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-8030_8040.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-8123_8128.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-8230_8240.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-881x.xml +usr/share/foomatic/db/source/printer/Samsung-SCX-882x.xml usr/share/foomatic/db/source/printer/Samsung-SF_MSYS_MJ-4700_4800_4500C.xml usr/share/foomatic/db/source/printer/Samsung-SI-630A.xml +usr/share/foomatic/db/source/printer/Savin-2404WD.xml +usr/share/foomatic/db/source/printer/Savin-2404WDP.xml +usr/share/foomatic/db/source/printer/Savin-2406WD.xml usr/share/foomatic/db/source/printer/Savin-2522.xml usr/share/foomatic/db/source/printer/Savin-2527.xml usr/share/foomatic/db/source/printer/Savin-2532.xml @@ -4429,6 +7390,7 @@ usr/share/foomatic/db/source/printer/Savin-2535_2235.xml usr/share/foomatic/db/source/printer/Savin-2545_2245.xml usr/share/foomatic/db/source/printer/Savin-2560.xml usr/share/foomatic/db/source/printer/Savin-2575.xml +usr/share/foomatic/db/source/printer/Savin-3406WD.xml usr/share/foomatic/db/source/printer/Savin-3515.xml usr/share/foomatic/db/source/printer/Savin-40105.xml usr/share/foomatic/db/source/printer/Savin-4015.xml @@ -4444,6 +7406,9 @@ usr/share/foomatic/db/source/printer/Savin-4051.xml usr/share/foomatic/db/source/printer/Savin-4060.xml usr/share/foomatic/db/source/printer/Savin-4075.xml usr/share/foomatic/db/source/printer/Savin-4090.xml +usr/share/foomatic/db/source/printer/Savin-5100WD.xml +usr/share/foomatic/db/source/printer/Savin-7025.xml +usr/share/foomatic/db/source/printer/Savin-7140WD.xml usr/share/foomatic/db/source/printer/Savin-8016.xml usr/share/foomatic/db/source/printer/Savin-8020.xml usr/share/foomatic/db/source/printer/Savin-8020d.xml @@ -4456,14 +7421,35 @@ usr/share/foomatic/db/source/printer/Savin-8035e.xml usr/share/foomatic/db/source/printer/Savin-8045_8045g.xml usr/share/foomatic/db/source/printer/Savin-8045e.xml usr/share/foomatic/db/source/printer/Savin-8055.xml +usr/share/foomatic/db/source/printer/Savin-8060.xml usr/share/foomatic/db/source/printer/Savin-8065.xml +usr/share/foomatic/db/source/printer/Savin-8070.xml usr/share/foomatic/db/source/printer/Savin-8075.xml +usr/share/foomatic/db/source/printer/Savin-8080.xml usr/share/foomatic/db/source/printer/Savin-8090.xml usr/share/foomatic/db/source/printer/Savin-8110.xml usr/share/foomatic/db/source/printer/Savin-8135.xml usr/share/foomatic/db/source/printer/Savin-816.xml usr/share/foomatic/db/source/printer/Savin-9016.xml usr/share/foomatic/db/source/printer/Savin-9021d.xml +usr/share/foomatic/db/source/printer/Savin-9025.xml +usr/share/foomatic/db/source/printer/Savin-9025b.xml +usr/share/foomatic/db/source/printer/Savin-9033.xml +usr/share/foomatic/db/source/printer/Savin-9033b.xml +usr/share/foomatic/db/source/printer/Savin-9040.xml +usr/share/foomatic/db/source/printer/Savin-9040b.xml +usr/share/foomatic/db/source/printer/Savin-9050.xml +usr/share/foomatic/db/source/printer/Savin-9050b.xml +usr/share/foomatic/db/source/printer/Savin-9060.xml +usr/share/foomatic/db/source/printer/Savin-9070.xml +usr/share/foomatic/db/source/printer/Savin-9080.xml +usr/share/foomatic/db/source/printer/Savin-9090.xml +usr/share/foomatic/db/source/printer/Savin-917.xml +usr/share/foomatic/db/source/printer/Savin-920.xml +usr/share/foomatic/db/source/printer/Savin-9228.xml +usr/share/foomatic/db/source/printer/Savin-9233.xml +usr/share/foomatic/db/source/printer/Savin-9240.xml +usr/share/foomatic/db/source/printer/Savin-9250.xml usr/share/foomatic/db/source/printer/Savin-C2408.xml usr/share/foomatic/db/source/printer/Savin-C2410.xml usr/share/foomatic/db/source/printer/Savin-C2524.xml @@ -4471,18 +7457,37 @@ usr/share/foomatic/db/source/printer/Savin-C2525.xml usr/share/foomatic/db/source/printer/Savin-C2532.xml usr/share/foomatic/db/source/printer/Savin-C2820.xml usr/share/foomatic/db/source/printer/Savin-C2824.xml +usr/share/foomatic/db/source/printer/Savin-C2828.xml usr/share/foomatic/db/source/printer/Savin-C3030.xml usr/share/foomatic/db/source/printer/Savin-C3210.xml usr/share/foomatic/db/source/printer/Savin-C3210e.xml usr/share/foomatic/db/source/printer/Savin-C3224.xml +usr/share/foomatic/db/source/printer/Savin-C3333.xml usr/share/foomatic/db/source/printer/Savin-C3528.xml usr/share/foomatic/db/source/printer/Savin-C3535.xml usr/share/foomatic/db/source/printer/Savin-C3828.xml +usr/share/foomatic/db/source/printer/Savin-C4040.xml usr/share/foomatic/db/source/printer/Savin-C4535.xml usr/share/foomatic/db/source/printer/Savin-C4540.xml +usr/share/foomatic/db/source/printer/Savin-C5050.xml usr/share/foomatic/db/source/printer/Savin-C6045.xml +usr/share/foomatic/db/source/printer/Savin-C6055.xml +usr/share/foomatic/db/source/printer/Savin-C7570.xml +usr/share/foomatic/db/source/printer/Savin-C9020.xml +usr/share/foomatic/db/source/printer/Savin-C9025.xml +usr/share/foomatic/db/source/printer/Savin-C9065.xml +usr/share/foomatic/db/source/printer/Savin-C9075.xml +usr/share/foomatic/db/source/printer/Savin-C9120.xml +usr/share/foomatic/db/source/printer/Savin-C9125.xml +usr/share/foomatic/db/source/printer/Savin-C9130.xml +usr/share/foomatic/db/source/printer/Savin-C9135.xml +usr/share/foomatic/db/source/printer/Savin-C9145.xml +usr/share/foomatic/db/source/printer/Savin-C9145A.xml +usr/share/foomatic/db/source/printer/Savin-C9155.xml +usr/share/foomatic/db/source/printer/Savin-C9155A.xml usr/share/foomatic/db/source/printer/Savin-CLP1036.xml usr/share/foomatic/db/source/printer/Savin-CLP128.xml +usr/share/foomatic/db/source/printer/Savin-CLP131DN.xml usr/share/foomatic/db/source/printer/Savin-CLP135.xml usr/share/foomatic/db/source/printer/Savin-CLP1620.xml usr/share/foomatic/db/source/printer/Savin-CLP17.xml @@ -4493,27 +7498,88 @@ usr/share/foomatic/db/source/printer/Savin-CLP26DN.xml usr/share/foomatic/db/source/printer/Savin-CLP27DN.xml usr/share/foomatic/db/source/printer/Savin-CLP28.xml usr/share/foomatic/db/source/printer/Savin-CLP31DN.xml +usr/share/foomatic/db/source/printer/Savin-CLP340D.xml usr/share/foomatic/db/source/printer/Savin-CLP35.xml +usr/share/foomatic/db/source/printer/Savin-CLP350D.xml +usr/share/foomatic/db/source/printer/Savin-CLP37DN.xml +usr/share/foomatic/db/source/printer/Savin-CLP42DN.xml usr/share/foomatic/db/source/printer/Savin-CLP831.xml +usr/share/foomatic/db/source/printer/Savin-C_230.xml +usr/share/foomatic/db/source/printer/Savin-C_230SR.xml +usr/share/foomatic/db/source/printer/Savin-C_240.xml +usr/share/foomatic/db/source/printer/Savin-C_240SR.xml usr/share/foomatic/db/source/printer/Savin-FAX3799_3799nf.xml usr/share/foomatic/db/source/printer/Savin-MLP145.xml +usr/share/foomatic/db/source/printer/Savin-MLP150DN.xml usr/share/foomatic/db/source/printer/Savin-MLP175n.xml +usr/share/foomatic/db/source/printer/Savin-MLP235n.xml usr/share/foomatic/db/source/printer/Savin-MLP25.xml usr/share/foomatic/db/source/printer/Savin-MLP25n.xml usr/share/foomatic/db/source/printer/Savin-MLP26.xml usr/share/foomatic/db/source/printer/Savin-MLP26n.xml usr/share/foomatic/db/source/printer/Savin-MLP28.xml usr/share/foomatic/db/source/printer/Savin-MLP28n.xml +usr/share/foomatic/db/source/printer/Savin-MLP31n.xml +usr/share/foomatic/db/source/printer/Savin-MLP31nL.xml usr/share/foomatic/db/source/printer/Savin-MLP32.xml usr/share/foomatic/db/source/printer/Savin-MLP35n.xml +usr/share/foomatic/db/source/printer/Savin-MLP36n.xml +usr/share/foomatic/db/source/printer/Savin-MLP37N.xml usr/share/foomatic/db/source/printer/Savin-MLP45.xml usr/share/foomatic/db/source/printer/Savin-MLP75n.xml +usr/share/foomatic/db/source/printer/Savin-MP_2352.xml +usr/share/foomatic/db/source/printer/Savin-MP_2501.xml +usr/share/foomatic/db/source/printer/Savin-MP_2852.xml +usr/share/foomatic/db/source/printer/Savin-MP_301.xml +usr/share/foomatic/db/source/printer/Savin-MP_3352.xml +usr/share/foomatic/db/source/printer/Savin-MP_4002.xml +usr/share/foomatic/db/source/printer/Savin-MP_5002.xml +usr/share/foomatic/db/source/printer/Savin-MP_6002.xml +usr/share/foomatic/db/source/printer/Savin-MP_7502.xml +usr/share/foomatic/db/source/printer/Savin-MP_9002.xml +usr/share/foomatic/db/source/printer/Savin-MP_C3002.xml +usr/share/foomatic/db/source/printer/Savin-MP_C3003.xml +usr/share/foomatic/db/source/printer/Savin-MP_C305.xml +usr/share/foomatic/db/source/printer/Savin-MP_C3502.xml +usr/share/foomatic/db/source/printer/Savin-MP_C3503.xml +usr/share/foomatic/db/source/printer/Savin-MP_C4502.xml +usr/share/foomatic/db/source/printer/Savin-MP_C4502A.xml +usr/share/foomatic/db/source/printer/Savin-MP_C4503.xml +usr/share/foomatic/db/source/printer/Savin-MP_C5502.xml +usr/share/foomatic/db/source/printer/Savin-MP_C5502A.xml +usr/share/foomatic/db/source/printer/Savin-MP_C5503.xml +usr/share/foomatic/db/source/printer/Savin-MP_C6003.xml +usr/share/foomatic/db/source/printer/Savin-MP_C6502.xml +usr/share/foomatic/db/source/printer/Savin-MP_C8002.xml +usr/share/foomatic/db/source/printer/Savin-MP_CW2200.xml +usr/share/foomatic/db/source/printer/Savin-Pro_1106EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_1107EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_1356EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_1357EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_906EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_907EX.xml +usr/share/foomatic/db/source/printer/Savin-Pro_C5100S.xml +usr/share/foomatic/db/source/printer/Savin-Pro_C5110S.xml usr/share/foomatic/db/source/printer/Savin-SDC555.xml +usr/share/foomatic/db/source/printer/Savin-SG3100SNw.xml +usr/share/foomatic/db/source/printer/Savin-SG3110SFNw.xml usr/share/foomatic/db/source/printer/Savin-SGC_1506.xml usr/share/foomatic/db/source/printer/Savin-SLP26.xml usr/share/foomatic/db/source/printer/Savin-SLP26n.xml usr/share/foomatic/db/source/printer/Savin-SLP32.xml usr/share/foomatic/db/source/printer/Savin-SLP38c.xml +usr/share/foomatic/db/source/printer/Savin-SP_4310N.xml +usr/share/foomatic/db/source/printer/Savin-SP_5200DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_5200S.xml +usr/share/foomatic/db/source/printer/Savin-SP_5210DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_5210SF.xml +usr/share/foomatic/db/source/printer/Savin-SP_5210SR.xml +usr/share/foomatic/db/source/printer/Savin-SP_8300DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_C320DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_C400DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_C730DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_C830DN.xml +usr/share/foomatic/db/source/printer/Savin-SP_C831DN.xml usr/share/foomatic/db/source/printer/Seiko-SLP-100.xml usr/share/foomatic/db/source/printer/Seiko-SLP-200.xml usr/share/foomatic/db/source/printer/Seiko-SLP-240.xml @@ -4529,7 +7595,152 @@ usr/share/foomatic/db/source/printer/Sharp-AJ-1805.xml usr/share/foomatic/db/source/printer/Sharp-AJ-2000.xml usr/share/foomatic/db/source/printer/Sharp-AJ-2005.xml usr/share/foomatic/db/source/printer/Sharp-AJ-2100.xml +usr/share/foomatic/db/source/printer/Sharp-AR-155FG.xml +usr/share/foomatic/db/source/printer/Sharp-AR-155FG_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-160M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-160M_PS.xml usr/share/foomatic/db/source/printer/Sharp-AR-161.xml +usr/share/foomatic/db/source/printer/Sharp-AR-163FG.xml +usr/share/foomatic/db/source/printer/Sharp-AR-163FG_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-163G.xml +usr/share/foomatic/db/source/printer/Sharp-AR-163G_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-168D.xml +usr/share/foomatic/db/source/printer/Sharp-AR-168S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-200M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-200M_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-205FG.xml +usr/share/foomatic/db/source/printer/Sharp-AR-205FG_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-205G.xml +usr/share/foomatic/db/source/printer/Sharp-AR-205G_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-266FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-266FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-266S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-266S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-311S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-351S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-451S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-5220.xml +usr/share/foomatic/db/source/printer/Sharp-AR-555M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-555M_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-555S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-555S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-625M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-625M_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-625S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-625S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-705M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-705M_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-705S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-705S_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-BC260.xml +usr/share/foomatic/db/source/printer/Sharp-AR-BC320.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C170FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C170FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C170M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C172FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C172FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C172M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260F.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260P.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C260S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C261F.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C261FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C261FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C261M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C261S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C262FP.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C262FP_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C262M.xml +usr/share/foomatic/db/source/printer/Sharp-AR-C262S.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M150.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M150_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M155.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M155_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M160.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M160_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M161.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M161_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M162.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M162_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M165.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M165_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M205.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M205_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M206.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M206_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M207.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M207_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M236.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M236_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M237.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M237_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M276.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M276_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M277.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M277_PS.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M351N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M351U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M355N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M355U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M451N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M451U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M455N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M455U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M550N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M550U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M620N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M620U.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M700N.xml +usr/share/foomatic/db/source/printer/Sharp-AR-M700U.xml +usr/share/foomatic/db/source/printer/Sharp-ARP350.xml +usr/share/foomatic/db/source/printer/Sharp-ARP450.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300FG.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300FG_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300G.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300G_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2300N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700FG.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700FG_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700G.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700G_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-2700N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3500FN.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3500FN_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3500N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3500N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3501FN.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3501FN_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3501N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-3501N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4500FN.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4500FN_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4500N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4500N_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4501FN.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4501FN_PS.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4501N.xml +usr/share/foomatic/db/source/printer/Sharp-MX-4501N_PS.xml usr/share/foomatic/db/source/printer/SiPix-Pocket_Printer_A6.xml usr/share/foomatic/db/source/printer/Sony-IJP-V100.xml usr/share/foomatic/db/source/printer/Sony-UP-DP10.xml @@ -4544,49 +7755,96 @@ usr/share/foomatic/db/source/printer/Star-NL-10.xml usr/share/foomatic/db/source/printer/Star-NX-1001.xml usr/share/foomatic/db/source/printer/Star-StarJet_48.xml usr/share/foomatic/db/source/printer/Star-WinType_4000.xml +usr/share/foomatic/db/source/printer/Tally-LN45.xml +usr/share/foomatic/db/source/printer/Tally-ML450.xml usr/share/foomatic/db/source/printer/Tally-MT908.xml -usr/share/foomatic/db/source/printer/Tektronix-3693d_color_printer_8-bit_mode.xml -usr/share/foomatic/db/source/printer/Tektronix-4693d_color_printer_2-bit_mode.xml -usr/share/foomatic/db/source/printer/Tektronix-4693d_color_printer_4-bit_mode.xml +usr/share/foomatic/db/source/printer/Tektronix-4693d.xml usr/share/foomatic/db/source/printer/Tektronix-4695.xml usr/share/foomatic/db/source/printer/Tektronix-4696.xml usr/share/foomatic/db/source/printer/Tektronix-4697.xml usr/share/foomatic/db/source/printer/Tektronix-Phaser_350.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_750DP.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_750DX.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_750N.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_750P.xml usr/share/foomatic/db/source/printer/Tektronix-Phaser_780.xml usr/share/foomatic/db/source/printer/Tektronix-Phaser_850.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_850DP.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_850DX.xml +usr/share/foomatic/db/source/printer/Tektronix-Phaser_850N.xml usr/share/foomatic/db/source/printer/Tektronix-Phaser_IISX.xml usr/share/foomatic/db/source/printer/Tektronix-Phaser_PX.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_PowerPro_12.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_Pro_600.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_Pro_8.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_Pro_E.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_XL_Basic.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_XL_PS17.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_XL_PS35.xml +usr/share/foomatic/db/source/printer/Texas_Instruments-microLaser_XL_Turbo.xml usr/share/foomatic/db/source/printer/Toshiba-DP2570.xml -usr/share/foomatic/db/source/printer/Toshiba-GL_1010.xml -usr/share/foomatic/db/source/printer/Toshiba-GL_1020.xml +usr/share/foomatic/db/source/printer/Toshiba-GL-1010.xml +usr/share/foomatic/db/source/printer/Toshiba-GL-1020.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_1101.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_1351.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_162.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_162d.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_165.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_167.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_200L.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_202L.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_203l.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_205.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_220cp.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_230.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_232.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_233.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_237.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_2500c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_280.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_281c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_282.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_283.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_2830c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_350.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_3500c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_3510c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_3511.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_351c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_352.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_353.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_3530c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_450.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_4500c.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_450s.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_4511.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_451c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_452.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_4520c.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_453.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_500p.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_500s.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_520.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_523.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_523t.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_5500c.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_600.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_603.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_603t.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_720.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_723.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_723t.xml usr/share/foomatic/db/source/printer/Toshiba-e-Studio_850.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_853.xml +usr/share/foomatic/db/source/printer/Toshiba-e-Studio_901.xml +usr/share/foomatic/db/source/printer/Xante-Accel-a-Writer_4G.xml +usr/share/foomatic/db/source/printer/Xante-FilmMaker_4.xml +usr/share/foomatic/db/source/printer/Xante-PlateMaker_4.xml usr/share/foomatic/db/source/printer/Xerox-2700_XES.xml usr/share/foomatic/db/source/printer/Xerox-3700_XES.xml usr/share/foomatic/db/source/printer/Xerox-4045_XES.xml usr/share/foomatic/db/source/printer/Xerox-Able_1406.xml +usr/share/foomatic/db/source/printer/Xerox-DocuColor_2006.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_4508.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_C11.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_C20.xml @@ -4596,9 +7854,15 @@ usr/share/foomatic/db/source/printer/Xerox-DocuPrint_C8.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_M750.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_M760.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N17.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N2125.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N24.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N32.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N3225.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N40.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N4025.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N4512.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N4512PS.xml +usr/share/foomatic/db/source/printer/Xerox-DocuPrint_N4525.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_P12.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_P1202.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_P8.xml @@ -4607,16 +7871,147 @@ usr/share/foomatic/db/source/printer/Xerox-DocuPrint_XJ6C.xml usr/share/foomatic/db/source/printer/Xerox-DocuPrint_XJ8C.xml usr/share/foomatic/db/source/printer/Xerox-Document_Centre_400.xml usr/share/foomatic/db/source/printer/Xerox-Document_Homecentre.xml -usr/share/foomatic/db/source/printer/Xerox-Phaser-6110.xml -usr/share/foomatic/db/source/printer/Xerox-Phaser-6115MFP.xml +usr/share/foomatic/db/source/printer/Xerox-FaxCenter_2121.xml +usr/share/foomatic/db/source/printer/Xerox-FaxCentre_2218.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_1235.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_2135.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3110.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3124.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3150.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3160N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3200MFP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3400.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3450.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_3500.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4400B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4400DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4400DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4400N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4500B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4500DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4500DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4500N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4510.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4510B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4510DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4510DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_4510N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_5500N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6100.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6110.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6115MFP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6120.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6121MFP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6125.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6130.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6130N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6180.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6180DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6180MFP-D.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6200B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6200DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6200DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6200N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6250B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6250DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6250DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6250DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6250N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6300DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6300N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6350DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6350DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6350DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6360.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6360DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_6360DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7300B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7300DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7300DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7300DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7300N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400DXF.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7400N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7700DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7700DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7700GX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7750B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7750DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7750DXF.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7750GX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7760.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7760DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7760DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_7760GX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_790.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8200B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8200DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8200DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8200N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8400B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8400BD.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8400DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8400DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8400N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8500DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8500N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8550DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8550DT.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8550DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8560.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8560DN.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_860B.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_860DP.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_860DX.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_860N.xml +usr/share/foomatic/db/source/printer/Xerox-Phaser_8860.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_24.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_385.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_4118.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_450cp.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_470cx.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_6015.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7228.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7232.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7242.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7328.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7335.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_7345.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_C2424.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_M118.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_M20.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_M24.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_PE120.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_Pro_128.xml +usr/share/foomatic/db/source/printer/Xerox-WorkCentre_Pro_133.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_XD120f.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_XE80.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_XE90fx.xml usr/share/foomatic/db/source/printer/Xerox-WorkCentre_XK35c.xml -#usr/share/foomatic/templates -usr/share/foomatic/templates/pjl_enum_choice.xml -usr/share/foomatic/templates/pjl_enum_option.xml -usr/share/foomatic/templates/pjl_num_option.xml +#usr/share/foomatic/xmlschema +usr/share/foomatic/xmlschema/driver.xsd +usr/share/foomatic/xmlschema/option.xsd +usr/share/foomatic/xmlschema/printer.xsd +usr/share/foomatic/xmlschema/types.xsd +#usr/share/man/man1/foomatic-combo-xml.1 +#usr/share/man/man1/foomatic-compiledb.1 +#usr/share/man/man1/foomatic-configure.1 +#usr/share/man/man1/foomatic-perl-data.1 +#usr/share/man/man1/foomatic-ppd-options.1 +#usr/share/man/man1/foomatic-ppdfile.1 +#usr/share/man/man1/foomatic-printjob.1 +#usr/share/man/man1/foomatic-rip.1 +#usr/share/man/man8/foomatic-addpjloptions.8 +#usr/share/man/man8/foomatic-getpjloptions.8 +#usr/share/man/man8/foomatic-kitload.8 +#usr/share/man/man8/foomatic-preferred-driver.8 +var/cache/foomatic diff --git a/config/rootfiles/packages/git b/config/rootfiles/packages/git index ada23da..5584c25 100644 --- a/config/rootfiles/packages/git +++ b/config/rootfiles/packages/git @@ -24,25 +24,6 @@ usr/lib/perl5/site_perl/5.12.3/Git/I18N.pm #usr/lib/perl5/site_perl/5.12.3/Git/SVN/Utils.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Git #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Git/.packlist -usr/lib/python2.7/site-packages/git_remote_helpers -#usr/lib/python2.7/site-packages/git_remote_helpers-0.1.0-py2.7.egg-info -usr/lib/python2.7/site-packages/git_remote_helpers/__init__.py -usr/lib/python2.7/site-packages/git_remote_helpers/__init__.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git -usr/lib/python2.7/site-packages/git_remote_helpers/git/__init__.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/__init__.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git/exporter.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/exporter.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git/git.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/git.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git/importer.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/importer.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git/non_local.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/non_local.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/git/repo.py -usr/lib/python2.7/site-packages/git_remote_helpers/git/repo.pyc -usr/lib/python2.7/site-packages/git_remote_helpers/util.py -usr/lib/python2.7/site-packages/git_remote_helpers/util.pyc usr/libexec/git-core usr/libexec/git-core/git usr/libexec/git-core/git-add @@ -59,6 +40,8 @@ usr/libexec/git-core/git-branch usr/libexec/git-core/git-bundle usr/libexec/git-core/git-cat-file usr/libexec/git-core/git-check-attr +usr/libexec/git-core/git-check-ignore +usr/libexec/git-core/git-check-mailmap usr/libexec/git-core/git-check-ref-format usr/libexec/git-core/git-checkout usr/libexec/git-core/git-checkout-index @@ -100,8 +83,8 @@ usr/libexec/git-core/git-fsck-objects usr/libexec/git-core/git-gc usr/libexec/git-core/git-get-tar-commit-id usr/libexec/git-core/git-grep -usr/libexec/git-core/git-gui -usr/libexec/git-core/git-gui--askpass +#usr/libexec/git-core/git-gui +#usr/libexec/git-core/git-gui--askpass usr/libexec/git-core/git-hash-object usr/libexec/git-core/git-help usr/libexec/git-core/git-http-backend @@ -164,8 +147,7 @@ usr/libexec/git-core/git-remote-ftp usr/libexec/git-core/git-remote-ftps usr/libexec/git-core/git-remote-http usr/libexec/git-core/git-remote-https -usr/libexec/git-core/git-remote-testgit -#usr/libexec/git-core/git-remote-testsvn +usr/libexec/git-core/git-remote-testsvn usr/libexec/git-core/git-repack usr/libexec/git-core/git-replace usr/libexec/git-core/git-repo-config @@ -213,11 +195,13 @@ usr/libexec/git-core/mergetools usr/libexec/git-core/mergetools/araxis usr/libexec/git-core/mergetools/bc3 usr/libexec/git-core/mergetools/codecompare -usr/libexec/git-core/mergetools/defaults usr/libexec/git-core/mergetools/deltawalker +usr/libexec/git-core/mergetools/diffmerge usr/libexec/git-core/mergetools/diffuse usr/libexec/git-core/mergetools/ecmerge usr/libexec/git-core/mergetools/emerge +usr/libexec/git-core/mergetools/gvimdiff +usr/libexec/git-core/mergetools/gvimdiff2 usr/libexec/git-core/mergetools/kdiff3 usr/libexec/git-core/mergetools/kompare usr/libexec/git-core/mergetools/meld @@ -225,7 +209,8 @@ usr/libexec/git-core/mergetools/opendiff usr/libexec/git-core/mergetools/p4merge usr/libexec/git-core/mergetools/tkdiff usr/libexec/git-core/mergetools/tortoisemerge -usr/libexec/git-core/mergetools/vim +usr/libexec/git-core/mergetools/vimdiff +usr/libexec/git-core/mergetools/vimdiff2 usr/libexec/git-core/mergetools/xxdiff usr/share/git-core usr/share/git-core/templates @@ -237,6 +222,7 @@ usr/share/git-core/templates/hooks/commit-msg.sample usr/share/git-core/templates/hooks/post-update.sample usr/share/git-core/templates/hooks/pre-applypatch.sample usr/share/git-core/templates/hooks/pre-commit.sample +usr/share/git-core/templates/hooks/pre-push.sample usr/share/git-core/templates/hooks/pre-rebase.sample usr/share/git-core/templates/hooks/prepare-commit-msg.sample usr/share/git-core/templates/hooks/update.sample @@ -319,6 +305,7 @@ usr/share/git-core/templates/info/exclude #usr/share/gitweb/static/gitweb.js #usr/share/locale/da/LC_MESSAGES/git.mo #usr/share/locale/de/LC_MESSAGES/git.mo +#usr/share/locale/fr/LC_MESSAGES/git.mo #usr/share/locale/is/LC_MESSAGES/git.mo #usr/share/locale/it/LC_MESSAGES/git.mo #usr/share/locale/nl/LC_MESSAGES/git.mo diff --git a/config/rootfiles/packages/gutenprint b/config/rootfiles/packages/gutenprint index a65efb4..3671a78 100644 --- a/config/rootfiles/packages/gutenprint +++ b/config/rootfiles/packages/gutenprint @@ -37,7 +37,7 @@ usr/lib/gutenprint/5.2/modules #usr/lib/libgutenprint.la usr/lib/libgutenprint.so usr/lib/libgutenprint.so.2 -usr/lib/libgutenprint.so.2.0.6 +usr/lib/libgutenprint.so.2.1.0 #usr/lib/pkgconfig/gutenprint.pc usr/sbin/cups-genppd.5.2 usr/sbin/cups-genppdupdate @@ -77,6 +77,7 @@ usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_blacktrans-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_bluedensity-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_borderless.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_brightness-1.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_cdallowothermedia.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_cdinnerradius.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_cdxadjustment-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_cdyadjustment-1.xml @@ -163,10 +164,14 @@ usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablemagentabalance.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablemagentadensity.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablemagentagamma.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enableorangedensity.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablepagedrytime.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablepaperthickness.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enableplatengap.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enableprintmethod.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablereddensity.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablescandrytime.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablescanmindrytime.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablesubchannelcutoff.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enablevacuumintensity.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enableyellowbalance.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_enableyellowdensity.xml @@ -212,6 +217,8 @@ usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-3.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-4.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-5.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-6.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-7.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inklimit-8.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inkset.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inktype.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_inputslot.xml @@ -234,6 +241,7 @@ usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_magentadensity-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_magentagamma-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_mediatype.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_orangedensity-1.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_pagedrytime-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_paperthickness-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_platengap-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_printingdirection.xml @@ -241,6 +249,9 @@ usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_printmethod-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_quality.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_reddensity-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_resolution.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_scandrytime-1.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_scanmindrytime-1.xml +usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_subchannelcutoff-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_usegloss.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_vacuumintensity-1.xml usr/share/foomatic/db/source/opt/gutenprint-ijs.5.2-stp_weave.xml @@ -274,6 +285,7 @@ usr/share/gutenprint/5.2/xml/escp2/inks/f360_photo7_japan.xml usr/share/gutenprint/5.2/xml/escp2/inks/f360_ultrachrome.xml usr/share/gutenprint/5.2/xml/escp2/inks/f360_ultrachrome_k3.xml usr/share/gutenprint/5.2/xml/escp2/inks/f360_ultrachrome_k3v.xml +usr/share/gutenprint/5.2/xml/escp2/inks/f360_ultrachrome_k3v_2.xml usr/share/gutenprint/5.2/xml/escp2/inks/nx100.xml usr/share/gutenprint/5.2/xml/escp2/inks/photo_gen0.xml usr/share/gutenprint/5.2/xml/escp2/inks/photo_gen1.xml @@ -289,6 +301,9 @@ usr/share/gutenprint/5.2/xml/escp2/inks/pro_gen2.xml usr/share/gutenprint/5.2/xml/escp2/inks/pro_pigment.xml usr/share/gutenprint/5.2/xml/escp2/inks/pro_ultrachrome.xml usr/share/gutenprint/5.2/xml/escp2/inks/pro_ultrachrome_k3.xml +usr/share/gutenprint/5.2/xml/escp2/inks/pro_ultrachrome_k34.xml +usr/share/gutenprint/5.2/xml/escp2/inks/pro_ultrachrome_k3v.xml +usr/share/gutenprint/5.2/xml/escp2/inks/pro_ultrachrome_k3v4.xml usr/share/gutenprint/5.2/xml/escp2/inks/standard.xml usr/share/gutenprint/5.2/xml/escp2/inks/standard_gen0.xml usr/share/gutenprint/5.2/xml/escp2/inks/ultrachrome.xml @@ -303,6 +318,8 @@ usr/share/gutenprint/5.2/xml/escp2/inputslots/cd_cutter_roll_feed.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/cd_roll_feed.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/cutter_roll_feed.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/default.xml +usr/share/gutenprint/5.2/xml/escp2/inputslots/pro3880.xml +usr/share/gutenprint/5.2/xml/escp2/inputslots/pro_cutter_roll_feed.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/pro_roll_feed.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/r1800.xml usr/share/gutenprint/5.2/xml/escp2/inputslots/r2400.xml @@ -340,11 +357,13 @@ usr/share/gutenprint/5.2/xml/escp2/media/photo_gen4.xml usr/share/gutenprint/5.2/xml/escp2/media/photo_pigment.xml usr/share/gutenprint/5.2/xml/escp2/media/picturemate_4.xml usr/share/gutenprint/5.2/xml/escp2/media/picturemate_6.xml +usr/share/gutenprint/5.2/xml/escp2/media/pro3880_ultrachrome_k3v.xml usr/share/gutenprint/5.2/xml/escp2/media/pro_gen1.xml usr/share/gutenprint/5.2/xml/escp2/media/pro_gen2.xml usr/share/gutenprint/5.2/xml/escp2/media/pro_pigment.xml usr/share/gutenprint/5.2/xml/escp2/media/pro_ultrachrome.xml usr/share/gutenprint/5.2/xml/escp2/media/pro_ultrachrome_k3.xml +usr/share/gutenprint/5.2/xml/escp2/media/pro_ultrachrome_k3v.xml usr/share/gutenprint/5.2/xml/escp2/media/r800.xml usr/share/gutenprint/5.2/xml/escp2/media/standard.xml usr/share/gutenprint/5.2/xml/escp2/media/standard_gen0.xml @@ -358,7 +377,24 @@ usr/share/gutenprint/5.2/xml/escp2/model/model_0.xml usr/share/gutenprint/5.2/xml/escp2/model/model_1.xml usr/share/gutenprint/5.2/xml/escp2/model/model_10.xml usr/share/gutenprint/5.2/xml/escp2/model/model_100.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_101.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_102.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_103.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_104.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_105.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_106.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_107.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_108.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_109.xml usr/share/gutenprint/5.2/xml/escp2/model/model_11.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_110.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_111.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_112.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_113.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_114.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_115.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_116.xml +usr/share/gutenprint/5.2/xml/escp2/model/model_117.xml usr/share/gutenprint/5.2/xml/escp2/model/model_12.xml usr/share/gutenprint/5.2/xml/escp2/model/model_13.xml usr/share/gutenprint/5.2/xml/escp2/model/model_14.xml @@ -458,6 +494,7 @@ usr/share/gutenprint/5.2/xml/escp2/model/model_99.xml #usr/share/gutenprint/5.2/xml/escp2/qualitypresets usr/share/gutenprint/5.2/xml/escp2/qualitypresets/p1_5.xml usr/share/gutenprint/5.2/xml/escp2/qualitypresets/picturemate.xml +usr/share/gutenprint/5.2/xml/escp2/qualitypresets/prox900.xml usr/share/gutenprint/5.2/xml/escp2/qualitypresets/standard.xml usr/share/gutenprint/5.2/xml/escp2/qualitypresets/v2880.xml usr/share/gutenprint/5.2/xml/escp2/qualitypresets/wf40.xml @@ -508,16 +545,20 @@ usr/share/gutenprint/samples/testpattern.sample #usr/share/locale/cs/gutenprint_cs.po #usr/share/locale/da/LC_MESSAGES/gutenprint.mo #usr/share/locale/da/gutenprint_da.po -usr/share/locale/de/LC_MESSAGES/gutenprint.mo -usr/share/locale/de/gutenprint_de.po +#usr/share/locale/de/LC_MESSAGES/gutenprint.mo +#usr/share/locale/de/gutenprint_de.po #usr/share/locale/el/LC_MESSAGES/gutenprint.mo #usr/share/locale/el/gutenprint_el.po #usr/share/locale/en_GB/LC_MESSAGES/gutenprint.mo #usr/share/locale/en_GB/gutenprint_en_GB.po #usr/share/locale/es/LC_MESSAGES/gutenprint.mo #usr/share/locale/es/gutenprint_es.po +#usr/share/locale/fi/LC_MESSAGES/gutenprint.mo +#usr/share/locale/fi/gutenprint_fi.po #usr/share/locale/fr/LC_MESSAGES/gutenprint.mo #usr/share/locale/fr/gutenprint_fr.po +#usr/share/locale/gl/LC_MESSAGES/gutenprint.mo +#usr/share/locale/gl/gutenprint_gl.po #usr/share/locale/hu/LC_MESSAGES/gutenprint.mo #usr/share/locale/hu/gutenprint_hu.po #usr/share/locale/it/LC_MESSAGES/gutenprint.mo @@ -536,12 +577,18 @@ usr/share/locale/de/gutenprint_de.po #usr/share/locale/ru/gutenprint_ru.po #usr/share/locale/sk/LC_MESSAGES/gutenprint.mo #usr/share/locale/sk/gutenprint_sk.po +#usr/share/locale/sl/LC_MESSAGES/gutenprint.mo +#usr/share/locale/sl/gutenprint_sl.po #usr/share/locale/sv/LC_MESSAGES/gutenprint.mo #usr/share/locale/sv/gutenprint_sv.po +#usr/share/locale/uk/LC_MESSAGES/gutenprint.mo +#usr/share/locale/uk/gutenprint_uk.po +#usr/share/locale/zh_CN/LC_MESSAGES/gutenprint.mo +#usr/share/locale/zh_CN/gutenprint_zh_CN.po #usr/share/locale/zh_TW/LC_MESSAGES/gutenprint.mo #usr/share/locale/zh_TW/gutenprint_zh_TW.po #usr/share/man/man1/escputil.1 #usr/share/man/man8/cups-calibrate.8 #usr/share/man/man8/cups-genppd.8 #usr/share/man/man8/cups-genppdupdate.8 -var/ipfire/cups/command.types \ No newline at end of file +var/ipfire/cups/command.types diff --git a/config/rootfiles/packages/iotop b/config/rootfiles/packages/iotop new file mode 100644 index 0000000..5ebe221 --- /dev/null +++ b/config/rootfiles/packages/iotop @@ -0,0 +1,20 @@ +usr/lib/python2.7/site-packages/iotop +#usr/lib/python2.7/site-packages/iotop-0.6-py2.7.egg-info +#usr/lib/python2.7/site-packages/iotop/__init__.py +#usr/lib/python2.7/site-packages/iotop/__init__.pyc +#usr/lib/python2.7/site-packages/iotop/data.py +#usr/lib/python2.7/site-packages/iotop/data.pyc +#usr/lib/python2.7/site-packages/iotop/genetlink.py +#usr/lib/python2.7/site-packages/iotop/genetlink.pyc +#usr/lib/python2.7/site-packages/iotop/ioprio.py +#usr/lib/python2.7/site-packages/iotop/ioprio.pyc +#usr/lib/python2.7/site-packages/iotop/netlink.py +#usr/lib/python2.7/site-packages/iotop/netlink.pyc +#usr/lib/python2.7/site-packages/iotop/ui.py +#usr/lib/python2.7/site-packages/iotop/ui.pyc +#usr/lib/python2.7/site-packages/iotop/version.py +#usr/lib/python2.7/site-packages/iotop/version.pyc +#usr/lib/python2.7/site-packages/iotop/vmstat.py +#usr/lib/python2.7/site-packages/iotop/vmstat.pyc +usr/sbin/iotop +#usr/share/man/man8/iotop.8 diff --git a/config/rootfiles/packages/linux-pae b/config/rootfiles/packages/linux-pae index 1e65746..b1973b9 100644 --- a/config/rootfiles/packages/linux-pae +++ b/config/rootfiles/packages/linux-pae @@ -3,39 +3,36 @@ boot/System.map-ipfire-pae boot/config-KVER-ipfire-pae boot/vmlinuz-KVER-ipfire-pae boot/vmlinuz-ipfire-pae +#lib/modules lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/build #lib/modules/KVER-ipfire-pae/kernel #lib/modules/KVER-ipfire-pae/kernel/arch #lib/modules/KVER-ipfire-pae/kernel/arch/x86 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/aes-i586.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/aesni-intel.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/crc32c-intel.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/salsa20-i586.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/crc32-pclmul.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/glue_helper.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/serpent-sse2-i586.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/twofish-i586.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/apm.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/mcheck -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/microcode.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/msr.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/test_nx.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm-amd.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm-intel.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/scx200 -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/scx200/scx200.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/iris +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/iris/iris.ko #lib/modules/KVER-ipfire-pae/kernel/crypto -#lib/modules/KVER-ipfire-pae/kernel/crypto/aes_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/af_alg.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/algif_hash.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/algif_skcipher.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/ansi_cprng.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/anubis.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/asymmetric_keys +#lib/modules/KVER-ipfire-pae/kernel/crypto/asymmetric_keys/asymmetric_keys.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/asymmetric_keys/public_key.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/asymmetric_keys/rsa.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/asymmetric_keys/x509_key_parser.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx/async_memcpy.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx/async_pq.ko @@ -47,27 +44,22 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/authencesn.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish_common.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/camellia.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/cast5.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/cast6.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/cbc.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/camellia_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/cast5_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/cast6_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/cast_common.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/ccm.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/crc32c.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/cryptd.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/crypto_user.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/ctr.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/cmac.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/crypto_null.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/deflate.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/des_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/ecb.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/fcrypt.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/gcm.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/gf128mul.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/ghash-generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/khazad.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/lrw.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/lzo.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/md4.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/md5.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/michael_mic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/pcbc.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/pcrypt.ko @@ -77,11 +69,10 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/rmd320.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/salsa20_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/seed.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/seqiv.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/serpent.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/serpent_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/sha1_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/sha256_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/tcrypt.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/tea.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/tgr192.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/twofish_common.ko @@ -90,32 +81,21 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/wp512.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/xcbc.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/xor.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/xts.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/zlib.ko #lib/modules/KVER-ipfire-pae/kernel/drivers #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/ac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_i2c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_ipmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_pad.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/battery.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/button.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/container.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/custom_method.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/ec_sys.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/fan.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/pci_slot.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/processor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/sbs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/sbshc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/thermal.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/video.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/acard-ahci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ahci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ahci_platform.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ata_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ata_piix.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/libahci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/libata.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_acpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_ali.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_amd.ko @@ -127,7 +107,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cmd64x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cs5520.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cs5530.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cs5535.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cs5536.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_cypress.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_efar.ko @@ -153,6 +132,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pdc2027x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pdc202xx_old.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_piccolo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_platform.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_radisys.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_rdc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_rz1000.ko @@ -165,6 +145,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_triflex.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_via.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pdc_adma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_highbank.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_inic162x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_mv.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_nv.ko @@ -186,7 +167,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/fore_200e.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/he.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/horizon.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/atm/idt77105.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/idt77252.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/iphase.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/lanai.ko @@ -198,59 +178,45 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/base #lib/modules/KVER-ipfire-pae/kernel/drivers/base/regmap #lib/modules/KVER-ipfire-pae/kernel/drivers/base/regmap/regmap-i2c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/bcma -#lib/modules/KVER-ipfire-pae/kernel/drivers/bcma/bcma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block #lib/modules/KVER-ipfire-pae/kernel/drivers/block/DAC960.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/block/aoe -#lib/modules/KVER-ipfire-pae/kernel/drivers/block/aoe/aoe.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/cciss.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/cpqarray.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/cryptoloop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/floppy.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/block/nbd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/block/osdblk.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/block/rbd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/mtip32xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/mtip32xx/mtip32xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/nvme.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/rsxx +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/rsxx/rsxx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/sx8.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/umem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/virtio_blk.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/xen-blkback +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/xen-blkback/xen-blkback.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/xen-blkfront.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/ath3k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bcm203x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bfusb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bluecard_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bpa10x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bt3c_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btmrvl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btmrvl_sdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btsdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btuart_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btusb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btwilink.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/dtl1_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/hci_uart.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/hci_vhci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cdrom -#lib/modules/KVER-ipfire-pae/kernel/drivers/cdrom/cdrom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/agpgart.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/ali-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/amd-k7-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/amd64-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/ati-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/efficeon-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/intel-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/intel-gtt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/nvidia-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/sis-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/sworks-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/via-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hangcheck-timer.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/amd-rng.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/atmel-rng.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/exynos-rng.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/geode-rng.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/intel-rng.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/rng-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/timeriomem-rng.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/via-rng.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/virtio-rng.ko @@ -265,39 +231,17 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/char/mwave #lib/modules/KVER-ipfire-pae/kernel/drivers/char/mwave/mwave.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/nsc_gpio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/nvram.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/pc8736x_gpio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia/synclink_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/ppdev.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/scx200_gpio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/char/sonypi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/toshiba.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource #lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource/cs5535-clockevt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource/scx200_hrt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/connector -#lib/modules/KVER-ipfire-pae/kernel/drivers/connector/cn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/acpi-cpufreq.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq-nforce2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_conservative.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_ondemand.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_powersave.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_userspace.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/e_powersaver.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/gx-suspmod.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/longhaul.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/longrun.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/mperf.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/p4-clockmod.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/pcc-cpufreq.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k6.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k7.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k8.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-centrino.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-ich.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-lib.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-smi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_stats.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/geode-aes.ko.off #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/padlock-aes.ko @@ -305,50 +249,66 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/dca #lib/modules/KVER-ipfire-pae/kernel/drivers/dca/dca.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma -#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/dmatest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/intel_mid_dma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/dw_dmac.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/ioat #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/ioat/ioatdma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/pch_dma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/timb_dma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/e752x_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/edac_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/edac_mce_amd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i3000_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i3200_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i5000_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i5100_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i5400_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i7300_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i7core_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/i82975x_edac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/mce_amd_inj.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/edac/x38_edac.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-net.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-ohci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-sbp2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firmware -#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/dmi-sysfs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/dcdbas.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/dell_rbu.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/edd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/iscsi_ibft.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/sigma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpio -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-adp5588.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-cs5535.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-generic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-it8761e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-janz-ttl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max7300.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max730x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max732x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-mcp23s08.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-ml-ioh.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pca953x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pcf857x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pch.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-rdc321x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-ich.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-sch.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-vx855.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-ts5500.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-viperboard.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/ast +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/ast/ast.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/cirrus +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/cirrus/cirrus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm_kms_helper.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm_usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/gma500 +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/gma500/gma500_gfx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i2c +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i2c/ch7006.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i2c/sil164.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i2c/tda998x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i810 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i810/i810.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i915 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i915/i915.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mga #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mgag200 +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mgag200/mgag200.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/nouveau #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/nouveau/nouveau.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/qxl +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/qxl/qxl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/r128 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/r128/r128.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/radeon @@ -361,70 +321,49 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/tdfx/tdfx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/ttm #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/ttm/ttm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/udl +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/udl/udl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/via #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/via/via.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/vmwgfx #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/stub -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/stub/poulsbo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-apple.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-axff.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-belkin.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-cherry.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-chicony.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-dr.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-elecom.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ezkey.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-gaff.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-aureal.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-gyration.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-holtekff.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-kensington.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-keytouch.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-kye.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-lenovo-tpkbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-logitech-dj.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-logitech.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-magicmouse.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-monterey.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-multitouch.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ntrig.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ortek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-petalynx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-picolcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-pl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-primax.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-prodikeys.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-quanta.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-arvo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-isku.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-kone.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-konepure.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-lua.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-savu.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-saitek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-samsung.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sjoy.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sensor-hub.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-speedlink.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sunplus.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-tmff.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-thingm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-tivo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-topseed.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-twinhan.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-uclogic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-wacom.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-waltop.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-wiimote.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-zpff.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-zydacron.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/usbhid -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/usbhid/usbhid.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hv -#lib/modules/KVER-ipfire-pae/kernel/drivers/hv/hv_utils.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hv/hv_vmbus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/i2c-hid +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/i2c-hid/i2c-hid.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hsi +#lib/modules/KVER-ipfire-pae/kernel/drivers/hsi/clients +#lib/modules/KVER-ipfire-pae/kernel/drivers/hsi/clients/hsi_char.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hsi/hsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/abituguru.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/abituguru3.ko @@ -439,10 +378,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm9240.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ads1015.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7410.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7411.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7462.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7470.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7x10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/amc6821.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/applesmc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/asb100.ko @@ -454,7 +395,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ds1621.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ds620.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc1403.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc2103.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc6w201.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f71805f.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f71882fg.ko @@ -464,14 +404,14 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/g760a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gl518sm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hih6130.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hwmon-vid.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hwmon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/i5k_amb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ibmaem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ina209.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ina2xx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/it87.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/jc42.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/k10temp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/k8temp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lineage-pem.ko @@ -487,6 +427,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm90.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm92.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95234.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95241.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95245.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4151.ko @@ -496,9 +437,13 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max16065.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max1619.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max197.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6639.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6642.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6697.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/mcp3021.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/nct6775.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ntc_thermistor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pc87360.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pc87427.ko @@ -506,7 +451,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/adm1275.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/lm25066.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ltc2978.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max16064.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max34440.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max8688.ko @@ -514,14 +458,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/pmbus_core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ucd9000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ucd9200.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/zl6100.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch5627.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch5636.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch56xx-common.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sht15.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sht21.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sis5595.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smm665.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47b397.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47m1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47m192.ko @@ -553,20 +495,17 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd756.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-cbus-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-platform.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-eg20t.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-i801.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-intel-mid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-isch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-ismt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-nforce2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-ocores.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-parport-light.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-parport.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-pca-isa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-pca-platform.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-piix4.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-scmi.ko @@ -574,67 +513,55 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis5595.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis630.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis96x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-stub.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-taos-evm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-tiny-usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-via.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-xiic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-viperboard.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/scx200_acb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-dev.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-mux.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-smbus.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/gpio-i2cmux.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/pca9541.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/pca954x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ieee802154 -#lib/modules/KVER-ipfire-pae/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/common +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/common/hid-sensors +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/common/hid-sensors/hid-sensor-iio-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/common/hid-sensors/hid-sensor-trigger.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/industrialio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/iio/kfifo_buf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/ff-memless.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/input-polldev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/adp5588-keys.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/adp5589-keys.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/gpio_keys.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/gpio_keys_polled.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lkkbd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lm8323.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/matrix_keypad.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/max7359_keypad.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/mcs_touchkey.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/mpr121_touchkey.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/newtonkbd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/opencores-kbd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/qt1070.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/qt2160.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/stowaway.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/sunkbd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/tca6416-keypad.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lm8333.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/matrix-keymap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ad714x-i2c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ad714x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/apanel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/bma150.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/atlas_btns.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcf8574_keypad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcspkr.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/retu-pwrbutton.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/rotary_encoder.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/xen-kbdfront.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/uinput.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/appletouch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/bcm5974.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/cyapa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/psmouse.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/sermouse.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/synaptics_i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/synaptics_usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/mouse/vsxxxaa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio #lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/altera_ps2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/arc_ps2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/serio_raw.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/sparse-keymap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/act2000 -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/act2000/act2000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capidrv.ko @@ -648,14 +575,10 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/gigaset/usb_gigaset.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/avm_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/b1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/b1dma.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/b1isa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/b1pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/c4.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/t1isa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/avm/t1pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon/diva_idi.ko @@ -675,77 +598,68 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/speedfax.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/w6692.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/avma1_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/elsa_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hfc_usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hisax.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hisax_isac.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/hisax_st5481.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/sedlbauer_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/teles_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hysdn #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hysdn/hysdn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/i4l #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/i4l/isdn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/i4l/isdnhdlc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/icn -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/icn/icn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/l1oip.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/mISDN_core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/mISDN_dsp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/pcbit -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/pcbit/pcbit.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/sc -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/sc/sc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/dell-led.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-blinkm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-clevo-mail.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lm3533.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lm355x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lm3642.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp3944.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5521.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5562.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp55xx-common.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lt3593.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-net48xx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-net5501.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca9532.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-ot200.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca9633.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-ss4200.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-wrap.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-default-on.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-gpio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-heartbeat.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-timer.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/lguest -#lib/modules/KVER-ipfire-pae/kernel/drivers/lguest/lg.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-tca6507.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-camera.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-default-on.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-oneshot.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-timer.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/trigger/ledtrig-transient.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/bcache +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/bcache/bcache.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-bio-prison.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-cache-cleaner.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-cache-mq.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-cache.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-crypt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-delay.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-flakey.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-log-userspace.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-log.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-mirror.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-multipath.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-queue-length.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-raid.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-region-hash.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-round-robin.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-service-time.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-snapshot.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-thin-pool.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-zero.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-verity.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/faulty.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/linear.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/md-mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/multipath.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/persistent-data #lib/modules/KVER-ipfire-pae/kernel/drivers/md/persistent-data/dm-persistent-data.ko @@ -755,31 +669,272 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid456.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda18271.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda827x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/xc4000.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb/dvb-core -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/b2c2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/b2c2/b2c2-flexcop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/btcx-risc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/cx2341x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/cypress_firmware.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/saa7146 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/saa7146/saa7146.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/saa7146/saa7146_vv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/siano +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/siano/smsdvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/siano/smsmdtv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tveeprom.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-core +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/a8293.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/af9013.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/af9033.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/atbm8830.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/au8522_common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/au8522_decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/au8522_dig.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/bcm3510.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx22700.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx22702.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx24110.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx24113.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx24116.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cx24123.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/cxd2820r.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib0070.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib0090.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib3000mb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib3000mc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib7000m.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib7000p.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dib8000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dibx000_common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/drxd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/drxk.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ds3000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/dvb-pll.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ec100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/isl6405.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/isl6421.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/isl6423.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/it913x-fe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/itd1000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ix2505v.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/l64781.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lg2160.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lgdt3305.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lgdt330x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lgs8gxx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lnbp21.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/lnbp22.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/m88dc2800.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/m88ds3103.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/m88rs2000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/mb86a16.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/mb86a20s.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/mt312.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/mt352.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/nxt200x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/nxt6000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/or51132.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/or51211.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/rtl2830.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/rtl2832.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/s5h1409.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/s5h1411.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/s5h1420.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/s921.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/si21xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/sp8870.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/sp887x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stb0899.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stb6000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stb6100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv0288.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv0297.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv0299.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv0367.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv0900.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv090x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv6110.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/stv6110x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda10021.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda10023.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda10048.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda1004x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda10071.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda10086.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda18271c2dd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda665x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda8083.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda8261.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tda826x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ts2020.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/tua6100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ves1820.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/ves1x93.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/zl10036.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/zl10039.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb-frontends/zl10353.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/firewire +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/firewire/firedtv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/adv7170.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/adv7175.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/adv7180.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/bt819.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/bt856.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/bt866.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/cs5345.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/cs53l32a.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/cx25840 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/cx25840/cx25840.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/ir-kbd-i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/ks0127.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/m52790.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/msp3400.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/mt9v011.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/ov7670.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa6588.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa7110.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa7115.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa7127.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa717x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/saa7185.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/imx074.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/mt9m001.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/mt9m111.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/mt9t031.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/mt9t112.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/mt9v022.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov2640.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov5642.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov6650.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov772x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov9640.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/ov9740.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/rj54n1cb0c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/soc_camera/tw9910.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tda7432.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tda9840.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tea6415c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tea6420.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tvaudio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/tvp5150.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/upd64031a.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/upd64083.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/vp27smpx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/vpx3220.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/wm8739.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/i2c/wm8775.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/b2c2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/b2c2/b2c2-flexcop-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx/bt878.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx/bttv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx/dst.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx/dst_ca.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/bt8xx/dvb-bt8xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx18 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx18/cx18-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx18/cx18.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx23885 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx23885/altera-ci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx23885/cx23885.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx25821 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx25821/cx25821-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx25821/cx25821.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx88-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx88-blackbird.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx88-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx88-vp3054-i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx8800.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx8802.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/cx88/cx88xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ddbridge +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ddbridge/ddbridge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/dm1105 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/dm1105/dm1105.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ivtv +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ivtv/ivtv-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ivtv/ivtv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ivtv/ivtvfb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/mantis +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/mantis/hopper.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/mantis/mantis.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/mantis/mantis_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/meye +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/meye/meye.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ngene +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ngene/ngene.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/pluto2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/pluto2/pluto2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/pt1 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/pt1/earth-pt1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134/saa6752hs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134/saa7134-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134/saa7134-empress.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7134/saa7134.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7146 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7146/hexium_gemini.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7146/hexium_orion.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7146/mxb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7164 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/saa7164/saa7164.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/budget-av.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/budget-ci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/budget-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/budget-patch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/budget.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/dvb-ttpci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/ttpci/ttpci-eeprom.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran/videocodec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran/zr36016.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran/zr36050.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran/zr36060.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/pci/zoran/zr36067.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/m2m-deinterlace.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/marvell-ccic +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/marvell-ccic/cafe_ccic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/sh_veu.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera/sh_mobile_ceu_camera.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera/sh_mobile_csi2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera/soc_camera.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera/soc_camera_platform.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/soc_camera/soc_mediabus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/platform/timblogiw.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ati_remote.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ene_ir.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/fintek-cir.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/gpio-ir-recv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/iguanair.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/imon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-jvc-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-lirc-codec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-mce_kbd-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-nec-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-rc5-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-rc5-sz-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-rc6-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-sanyo-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ir-sony-decoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ite-cir.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-anysee.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-asus-ps3-100.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko @@ -803,6 +958,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dvbsky.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko @@ -819,13 +975,18 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-it913x-v1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-it913x-v2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-pc150u.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-lirc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-lme2510.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-medion-x10-digitainer.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-medion-x10-or2x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko @@ -849,6 +1010,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pv951.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-reddo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-streamzap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko @@ -858,6 +1020,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand-02.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-trekstor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko @@ -868,12 +1031,203 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-winfast.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/mceusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/nuvoton-cir.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/rc-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/ir-kbd-i2c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/rc-loopback.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/redrat3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/streamzap.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/ttusbir.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/winbond-cir.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/e4000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/fc0011.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/fc0012.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/fc0013.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/fc2580.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/max2165.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mc44s803.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mt2060.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mt2063.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mt20xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mt2131.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mt2266.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mxl5005s.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/mxl5007t.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/qt1010.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/r820t.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda18212.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda18218.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda18271.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda827x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda8290.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tda9887.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tua9001.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tuner-simple.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tuner-types.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/tuner_it913x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/xc4000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/tuners/xc5000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/au0828 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/au0828/au0828.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/b2c2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/b2c2/b2c2-flexcop-usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cpia2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cpia2/cpia2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cx231xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cx231xx/cx231xx-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cx231xx/cx231xx-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/cx231xx/cx231xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9015.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9035.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-anysee.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-au6610.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-az6007.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ce6230.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-dvbsky.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-ec168.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-gl861.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-it913x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-lmedm04.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-mxl111sf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-rtl28xxu.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-a800.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005-remote.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-af9005.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-az6027.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-cinergyT2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-cxusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dib0700.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-digitv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtt200u.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dtv5100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-dw2102.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-friio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-gp8psk.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-m920x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-nova-t-usb2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-opera.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-pctv452e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-ttusb2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-umt-010.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp702x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb-vp7045.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/dvb-usb/dvb-usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/em28xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/em28xx/em28xx-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/em28xx/em28xx-rc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/em28xx/em28xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gl860 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gl860/gspca_gl860.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_benq.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_conex.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_cpia1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_etoms.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_finepix.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_jeilinj.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_jl2005bcd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_kinect.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_konica.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_main.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_mars.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_mr97310a.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_nw80x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_ov519.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_ov534.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_ov534_9.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_pac207.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_pac7302.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_pac7311.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_se401.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sn9c2028.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sn9c20x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sonixb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sonixj.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca1528.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca500.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca501.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca505.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca506.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca508.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_spca561.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sq905.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sq905c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sq930x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_stk014.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_stv0680.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_sunplus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_t613.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_topro.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_tv8532.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_vc032x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_vicam.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_xirlink_cit.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/gspca_zc3xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/m5602 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/m5602/gspca_m5602.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/stv06xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/gspca/stv06xx/gspca_stv06xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/hdpvr +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/hdpvr/hdpvr.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/pvrusb2 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/pvrusb2/pvrusb2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/pwc +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/pwc/pwc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/s2255 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/s2255/s2255drv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/siano +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/siano/smsusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/sn9c102 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/sn9c102/sn9c102.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/stk1160 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/stk1160/stk1160.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/stkwebcam +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/stkwebcam/stkwebcam.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tlg2300 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tlg2300/poseidon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tm6000 +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tm6000/tm6000-alsa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tm6000/tm6000-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/tm6000/tm6000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/ttusb-budget +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/ttusb-dec +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/ttusb-dec/ttusb_dec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/ttusb-dec/ttusbdecfe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/usbvision +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/usbvision/usbvision.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/uvc +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/uvc/uvcvideo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/zr364xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/usb/zr364xx/zr364xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/tuner.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/v4l2-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/v4l2-int-device.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/v4l2-mem2mem.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf-dma-contig.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf-dma-sg.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf-dvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf-vmalloc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf2-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf2-dma-contig.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf2-memops.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/v4l2-core/videodev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/core #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/core/memstick.ko @@ -881,6 +1235,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/jmb38x_ms.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/r592.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/rtsx_pci_ms.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/tifm_ms.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/message #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion @@ -890,38 +1245,35 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptsas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptscsih.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptspi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_block.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_bus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_config.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_proc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/message/i2o/i2o_scsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/cs5535-mfd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/janz-cmodio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/lm3533-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/lm3533-ctrlbank.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/lpc_ich.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/lpc_sch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/mfd-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/rdc321x-southbridge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/retu-mfd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/rtsx_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/timberdale.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps6105x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps65010.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps6507x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/viperboard.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/vx855.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wl1273-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm8400-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/apds9802als.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/apds990x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bh1770glc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bh1780gli.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bmp085.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port/c2port-duramar2150.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port/core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/altera-stapl +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/altera-stapl/altera-stapl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bmp085-i2c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cb710 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cb710/cb710.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cs5535-mfgpt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/dummy-irq.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/at24.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/eeprom.ko @@ -929,76 +1281,48 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/max6875.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/enclosure.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/fsa9480.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/hmc6352.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/hpilo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ibmasm +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ibmasm/ibmasm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ics932s401.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/isl29003.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/isl29020.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/iwmc3200top -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/mei +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/mei/mei-me.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/mei/mei.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/pch_phub.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st/st_drv.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tifm_7xx1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tifm_core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tsl2550.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/vmw_balloon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/vmw_vmci +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/vmw_vmci/vmw_vmci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card/mmc_block.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card/mmc_test.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card/sdio_uart.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/core #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/core/mmc_core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/cb710-mmc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/rtsx_pci_sdmmc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-acpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pxav2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pxav3.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdricoh_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/tifm_sd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/ushc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/via-sdmmc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/vub300.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/wbsd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ar7part.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/chips -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/chips/chipreg.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/lpddr -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/lpddr/lpddr_cmds.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/lpddr/qinfo_probe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/maps -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/maps/physmap.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtd_blkdevs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdblock.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/nand -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/nand/nand_ecc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/sm_ftl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_nandecctest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_torturetest.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ubi -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ubi/ubi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net #lib/modules/KVER-ipfire-pae/kernel/drivers/net/bonding #lib/modules/KVER-ipfire-pae/kernel/drivers/net/bonding/bonding.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/eql.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c501.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c509.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c515.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c574_cs.ko @@ -1006,24 +1330,13 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c59x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/typhoon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/3c503.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/8390.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/8390p.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ac3200.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/axnet_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/e2100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/es3210.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/hp-plus.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/hp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/lne390.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne2k-pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne3210.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/pcnet_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-mca.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-ultra.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-ultra32.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/wd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/adaptec #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/adaptec/starfire.ko @@ -1031,12 +1344,13 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/alteon/acenic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/amd8111e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/depca.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/lance.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/ni65.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/nmclan_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/pcnet32.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/alx +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/alx/alx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1c #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1e @@ -1054,6 +1368,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade/bna #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cadence +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cadence/at91_ether.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cadence/macb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/calxeda +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/calxeda/xgmac.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko @@ -1069,7 +1388,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco/enic #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco/enic/enic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/ewrk3.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko @@ -1079,8 +1397,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/de600.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/de620.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/dl2k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/sundance.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dnet.ko @@ -1090,22 +1406,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/ethoc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fealnx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/at1700.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/eth16i.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/hp #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/hp/hp100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c505.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c507.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c523.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c527.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/82596.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/eepro.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/eexpress.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/lp486e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/ni52.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/znet.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/icplus #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/icplus/ipg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel @@ -1126,6 +1429,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/jme.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/mvmdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/skge.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/sky2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox @@ -1140,7 +1444,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom/myri10ge #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/ibmlana.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/natsemi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/ns83820.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion @@ -1152,9 +1455,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi/pch_gbe #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines/hamachi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines/yellowfin.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/netxen #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko @@ -1170,8 +1470,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/8139too.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/atp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/r8169.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/seeq -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/seeq/seeq8005.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sfc #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sfc/sfc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/silan @@ -1199,41 +1497,30 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via/via-rhine.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/wiznet +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/wiznet/w5100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/wiznet/w5300.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/xircom #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ifb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/ali-ircc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/donauboe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/nsc-ircc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/smsc-ircc2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/stir4200.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/via-ircc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/vlsi_ir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/w83977af_ir.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/macvlan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/macvtap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/mdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/netconsole.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/amd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/at803x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/bcm87xx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/broadcom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/cicada.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/davicom.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/dp83640.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/et1011c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/icplus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/lxt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/marvell.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/mdio-bitbang.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/mdio-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/micrel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/national.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/qsemi.ko @@ -1251,17 +1538,17 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pppoe.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pppox.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pptp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sb1000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip #lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip/slhc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip/slip.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/sungem_phy.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/tun.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/ax88179_178a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/catc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_eem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_mbim.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_ncm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_subset.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cx82310_eth.ko @@ -1269,6 +1556,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/gl620a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/hso.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/ipheth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/kalmia.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/kaweth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/lg-vl600.ko @@ -1276,6 +1564,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/net1080.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/pegasus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/qmi_wwan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/r8152.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/rndis_host.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/rtl8150.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/sierra_net.ko @@ -1287,45 +1577,135 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/virtio_net.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/vmxnet3 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/vmxnet3/vmxnet3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/c101.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/cosa.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/dlci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/dscc4.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/farsync.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc_cisco.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc_fr.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc_ppp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc_raw.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hdlc_raw_eth.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/hostess_sv11.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/lmc -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/lmc/lmc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/n2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/pc300too.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/pci200syn.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/sbni.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/sdla.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/sealevel.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/wanxl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/z85230.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/vxlan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/adm8211.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/airo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/airo_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ar5523 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ar5523/ar5523.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath5k +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/carl9170 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/carl9170/carl9170.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/wil6210 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/wil6210/wil6210.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel_pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43/b43.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43legacy +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43legacy/b43legacy.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/brcm80211 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/brcm80211/brcmfmac +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/brcm80211/brcmutil +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ray_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/libipw.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlegacy +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlegacy/iwl3945.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlegacy/iwl4965.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlegacy/iwlegacy.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/dvm +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/mvm +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/mvm/iwlmvm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/usb8xxx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mac80211_hwsim.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex/mwifiex.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex/mwifiex_pcie.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex/mwifiex_sdio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex/mwifiex_usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwl8k.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2800pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00mmio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt61pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8180 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8187 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8188ee +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8188ee/rtl8188ee.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192c +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192ce +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192ce.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192cu +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192cu/rtl8192cu.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192de +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192de/rtl8192de.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192se +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8192se/rtl8192se.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8723ae +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtl8723ae/rtl8723ae.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtlwifi/rtlwifi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl1251 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl1251/wl1251.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl1251/wl1251_sdio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl12xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl12xx/wl12xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl18xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wl18xx/wl18xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wlcore +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wlcore/wlcore.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl3501_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1211rw +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netback #lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netback/xen-netback.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netfront.ko @@ -1336,7 +1716,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/parport/parport_pc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/parport/parport_serial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pci -#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/pci-stub.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/hotplug +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/hotplug/acpiphp_ibm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/pcie +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/pcie/aer +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/pcie/aer/aer_inject.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/pci/xen-pcifront.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/i82092.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/i82365.ko @@ -1350,25 +1735,30 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/acer-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/acerhdf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/amilo-rfkill.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus-laptop.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus_acpi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus-nb-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/chromeos_laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/classmate-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/compal-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-wmi-aio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/eeepc-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/eeepc-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/fujitsu-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hdaps.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hp-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hp_accel.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/ibm_rtl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/ideapad-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_ips.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_menlow.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_oaktrail.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/msi-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/msi-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/mxm-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/panasonic-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/pvpanic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/samsung-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/samsung-q10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/sony-laptop.ko @@ -1378,14 +1768,13 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/toshiba_acpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/toshiba_bluetooth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/wmi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/xo15-ebook.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/power +#lib/modules/KVER-ipfire-pae/kernel/drivers/power/generic-adc-battery.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pps #lib/modules/KVER-ipfire-pae/kernel/drivers/pps/pps_core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ptp #lib/modules/KVER-ipfire-pae/kernel/drivers/ptp/ptp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator -#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator/fixed.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator/gpio-regulator.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ptp/ptp_pch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-bq32k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-bq4802.ko @@ -1396,18 +1785,19 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1553.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1672.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds2404.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds3232.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-em3027.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-hid-sensor-time.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-isl12022.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-isl1208.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m41t80.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t35.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t59.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t86.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-max6900.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-msm6242.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8523.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8563.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8583.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rp5c01.ko @@ -1415,7 +1805,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rv3029c2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rx8025.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rx8581.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-s35390a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-stk17ta8.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-v3020.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-x1205.ko @@ -1426,8 +1815,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/53c700.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/BusLogic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/NCR53c406a.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/NCR_D700.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/NCR_Q720_mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/a100u2w.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/aacraid #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/aacraid/aacraid.ko @@ -1452,6 +1839,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2i #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2i/bnx2i.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/csiostor +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/csiostor/csiostor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb3i #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko @@ -1460,7 +1849,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/libcxgbi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/dc395x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler/scsi_dh.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko @@ -1472,7 +1860,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fcoe #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fcoe/fcoe.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fcoe/libfcoe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fd_mcs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fdomain.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fnic #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/fnic/fnic.ko @@ -1481,7 +1868,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/gdth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/hpsa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/hptiop.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ibmmca.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/imm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/in2000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/initio.ko @@ -1506,6 +1892,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/megaraid/megaraid_sas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mpt2sas #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mpt2sas/mpt2sas.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mpt3sas +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mpt3sas/mpt3sas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvsas #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvsas/mvsas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvumi.ko @@ -1513,6 +1901,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd/libosd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osst.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pas16.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/aha152x_cs.ko @@ -1521,7 +1910,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/qlogic_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001 -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001/pm8001.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001/pm80xx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pmcraid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ppa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qla1280.ko @@ -1532,18 +1921,15 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qlogicfas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qlogicfas408.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/raid_class.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_mod.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_tgt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_fc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_iscsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_sas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_spi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_wait_scan.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sd_mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ses.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sim710.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/st.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/stex.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sym53c416.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/sym53c8xx_2 @@ -1551,55 +1937,51 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/t128.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/tmscsim.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/u14-34f.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ufs +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ufs/ufshcd-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ufs/ufshcd-pltfrm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ufs/ufshcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ultrastor.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/virtio_scsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/vmw_pvscsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/wd7000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ssb #lib/modules/KVER-ipfire-pae/kernel/drivers/ssb/ssb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/echo +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/echo/echo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/et131x #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/et131x/et131x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_mouse.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_netvsc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_storvsc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/mei -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/mei/mei.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/phison -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/phison/phison.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/slicoss #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/slicoss/slicoss.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/usbip-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/usbip-host.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/thermal +#lib/modules/KVER-ipfire-pae/kernel/drivers/thermal/intel_powerclamp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/tty -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/ipwireless -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/ipwireless/ipwireless.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/cyclades.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/n_hdlc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/n_r3964.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/rocket.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_accent.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_boca.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_exar_st16c554.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_fourport.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_hub6.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/altera_jtaguart.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/altera_uart.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/mfd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/pch_uart.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/serial_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/timbuart.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/uartlite.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/xilinx_uartps.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250 +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250/8250_dw.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/arc_uart.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/jsm +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/jsm/jsm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/rp2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/sccnxp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/synclink.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/synclink_gt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/synclinkmp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_aec.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_cif.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_netx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pci_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pdrv.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pdrv_genirq.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_sercos3.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm @@ -1608,44 +1990,47 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm/ueagle-atm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm/usbatm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/chipidea +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/chipidea/ci13xxx_msm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/chipidea/ci13xxx_pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/chipidea/ci_hdrc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/cdc-acm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/cdc-wdm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/usblp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/usbtmc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-exynos.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-omap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/hwa-hc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/isp116x-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/r8a66597-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/ssb-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/whci #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/xhci-hcd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/image +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/image/mdc800.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/image/microtek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/cypress_cy7c63.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/adutux.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/emi26.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/ezusb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/ftdi-elan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/iowarrior.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/isight_firmware.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/sisusbvga #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usb3503.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usblcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usbled.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usbsevseg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/uss720.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/yurex.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg/gpio_vbus.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg/nop-usb-xceiv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/mon +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/mon/usbmon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/aircable.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ark3116.ko @@ -1654,11 +2039,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/cp210x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/cypress_m8.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/digi_acceleport.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/f81232.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ftdi_sio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/funsoft.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/garmin_gps.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/hp4x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/io_edgeport.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/io_ti.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ipaq.ko @@ -1666,31 +2049,27 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ir-usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/iuu_phoenix.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/kl5kusb105.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/mct_u232.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/mos7720.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/mos7840.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/moto_modem.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/opticon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/option.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/oti6858.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/pl2303.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/qcaux.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/qcserial.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/quatech2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/siemens_mpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/sierra.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/spcp8x5.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ssu100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/symbolserial.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ti_usb_3410_5052.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/usb_wwan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/usbserial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/visor.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/vivopay-serial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/whiteheat.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/zte_ev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/uas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-alauda.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-cypress.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-datafab.ko @@ -1704,7 +2083,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-sddr09.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-sddr55.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-usbat.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/usb-storage.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/wusbcore #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/wusbcore/wusb-cbaf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/wusbcore/wusb-wa.ko @@ -1721,53 +2099,37 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/whci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/vhost #lib/modules/KVER-ipfire-pae/kernel/drivers/vhost/vhost_net.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/vhost/vringh.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/arcfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/arkfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/aty128fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/atyfb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/radeonfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/adp8860_bl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/adp8870_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/apple_bl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/cr_bllcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/generic_bl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/kb3886_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/pcf50633-backlight.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/platform_lcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/cirrusfb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/console +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/console/mdacon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/cyber2000fb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/display -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/display/display.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/fb_ddc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/fb_sys_fops.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/geode #lib/modules/KVER-ipfire-pae/kernel/drivers/video/geode/gx1fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/geode/gxfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/geode/lxfb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/i810 -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/i810/i810fb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/hgafb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/i740fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/kyro #lib/modules/KVER-ipfire-pae/kernel/drivers/video/kyro/kyrofb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/macmodes.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/g450_pll.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/i2c-matroxfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_DAC1064.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_Ti3026.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_accel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_base.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_crtc2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_g450.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_maven.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/matrox/matroxfb_misc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/metronomefb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/neofb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/nvidia -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/nvidia/nvidiafb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/output.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/pm2fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/pm3fb.ko @@ -1776,22 +2138,18 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/video/s3fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/savage #lib/modules/KVER-ipfire-pae/kernel/drivers/video/savage/savagefb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/sis -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/sis/sisfb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/sm501fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/smscufx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sstfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/svgalib.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/syscopyarea.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sysfillrect.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sysimgblt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/tdfxfb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/tmiofb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/tridentfb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/uvesafb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/udlfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/vermilion #lib/modules/KVER-ipfire-pae/kernel/drivers/video/vermilion/crvml.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/vermilion/vmlfb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/vga16fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/vgastate.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/via #lib/modules/KVER-ipfire-pae/kernel/drivers/video/via/viafb.ko @@ -1800,32 +2158,28 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_balloon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_mmio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds1wm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds2482.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds2490.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/matrox_w1.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/w1-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_bq27000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2413.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2423.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2431.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2433.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2760.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2781.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds28e04.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_smem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_therm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/wire.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/acquirewdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/advantechwdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/alim1535_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/alim7101_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/cpu5wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/eurotechwdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/f71808e_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/geodewdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/hpwdt.ko @@ -1833,105 +2187,157 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/iTCO_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/ib700wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/ibmasr.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/ie6xx_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/it8712f_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/it87_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/machzwd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/nv_tco.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pc87413_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc60xxwdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc7240_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc8360.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc_epx_c3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/retu_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sc1200wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sc520_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sch311x_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/scx200_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/smsc37b787_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/softdog.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sp5100_tco.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/via_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83627hf_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83697hf_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83697ug_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83877f_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83977f_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wafer5823wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wdt_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/xen_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/tmem.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-acpi-processor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-evtchn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-gntalloc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-gntdev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-pciback #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-pciback/xen-pciback.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-privcmd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xenfs #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xenfs/xenfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs -#lib/modules/KVER-ipfire-pae/kernel/fs/autofs4 -#lib/modules/KVER-ipfire-pae/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/btrfs +#lib/modules/KVER-ipfire-pae/kernel/fs/btrfs/btrfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/cachefiles #lib/modules/KVER-ipfire-pae/kernel/fs/cachefiles/cachefiles.ko #lib/modules/KVER-ipfire-pae/kernel/fs/cifs #lib/modules/KVER-ipfire-pae/kernel/fs/cifs/cifs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/ecryptfs -#lib/modules/KVER-ipfire-pae/kernel/fs/ecryptfs/ecryptfs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/exportfs -#lib/modules/KVER-ipfire-pae/kernel/fs/exportfs/exportfs.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/configfs +#lib/modules/KVER-ipfire-pae/kernel/fs/configfs/configfs.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/dlm +#lib/modules/KVER-ipfire-pae/kernel/fs/dlm/dlm.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/efivarfs +#lib/modules/KVER-ipfire-pae/kernel/fs/efivarfs/efivarfs.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/exofs +#lib/modules/KVER-ipfire-pae/kernel/fs/exofs/libore.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fat #lib/modules/KVER-ipfire-pae/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/fat/msdos.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fat/vfat.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fscache #lib/modules/KVER-ipfire-pae/kernel/fs/fscache/fscache.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fuse #lib/modules/KVER-ipfire-pae/kernel/fs/fuse/cuse.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fuse/fuse.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/isofs -#lib/modules/KVER-ipfire-pae/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/jffs2 -#lib/modules/KVER-ipfire-pae/kernel/fs/jffs2/jffs2.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/jfs -#lib/modules/KVER-ipfire-pae/kernel/fs/jfs/jfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/lockd #lib/modules/KVER-ipfire-pae/kernel/fs/lockd/lockd.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfs +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/blocklayout +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/blocklayout/blocklayoutdriver.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfs_layout_nfsv41_files.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfsv2.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfsv3.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfsv4.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/objlayout +#lib/modules/KVER-ipfire-pae/kernel/fs/nfs/objlayout/objlayoutdriver.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfs_common #lib/modules/KVER-ipfire-pae/kernel/fs/nfs_common/nfs_acl.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfsd #lib/modules/KVER-ipfire-pae/kernel/fs/nfsd/nfsd.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/quota -#lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_tree.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_v1.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_v2.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-celtic.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-centeuro.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-croatian.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-cyrillic.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-gaelic.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-greek.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-iceland.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-inuit.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-roman.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-romanian.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/mac-turkish.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp1250.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp1251.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp1255.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp737.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp775.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp850.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp852.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp855.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp857.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp860.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp861.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp862.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp863.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp864.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp865.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp866.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp869.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp874.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp932.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp936.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp949.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_cp950.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_euc-jp.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-1.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-13.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-14.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-15.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-2.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-3.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-4.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-5.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-6.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-7.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_iso8859-9.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_koi8-r.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_koi8-ru.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_koi8-u.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/nls/nls_utf8.ko #lib/modules/KVER-ipfire-pae/kernel/fs/reiserfs #lib/modules/KVER-ipfire-pae/kernel/fs/reiserfs/reiserfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/udf #lib/modules/KVER-ipfire-pae/kernel/fs/udf/udf.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/ufs -#lib/modules/KVER-ipfire-pae/kernel/fs/ufs/ufs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/xfs #lib/modules/KVER-ipfire-pae/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire-pae/kernel/kernel +#lib/modules/KVER-ipfire-pae/kernel/kernel/trace +#lib/modules/KVER-ipfire-pae/kernel/kernel/trace/ring_buffer_benchmark.ko #lib/modules/KVER-ipfire-pae/kernel/lib +#lib/modules/KVER-ipfire-pae/kernel/lib/asn1_decoder.ko #lib/modules/KVER-ipfire-pae/kernel/lib/cordic.ko -#lib/modules/KVER-ipfire-pae/kernel/lib/crc-ccitt.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc-itu-t.ko -#lib/modules/KVER-ipfire-pae/kernel/lib/crc-t10dif.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc7.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc8.ko #lib/modules/KVER-ipfire-pae/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/mpi +#lib/modules/KVER-ipfire-pae/kernel/lib/mpi/mpi.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/oid_registry.ko #lib/modules/KVER-ipfire-pae/kernel/lib/raid6 #lib/modules/KVER-ipfire-pae/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/rbtree_test.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_bm.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_fsm.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/zlib_deflate +#lib/modules/KVER-ipfire-pae/kernel/lib/zlib_deflate/zlib_deflate.ko #lib/modules/KVER-ipfire-pae/kernel/net #lib/modules/KVER-ipfire-pae/kernel/net/802 #lib/modules/KVER-ipfire-pae/kernel/net/802/garp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/802/p8022.ko -#lib/modules/KVER-ipfire-pae/kernel/net/802/psnap.ko -#lib/modules/KVER-ipfire-pae/kernel/net/802/stp.ko #lib/modules/KVER-ipfire-pae/kernel/net/8021q #lib/modules/KVER-ipfire-pae/kernel/net/8021q/8021q.ko #lib/modules/KVER-ipfire-pae/kernel/net/atm @@ -1952,7 +2358,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/rfcomm #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/rfcomm/rfcomm.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge -#lib/modules/KVER-ipfire-pae/kernel/net/bridge/bridge.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_802_3.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_among.ko @@ -1970,64 +2375,45 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_redirect.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_snat.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_stp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_ulog.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebt_vlan.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_broute.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_filter.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_nat.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtables.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ceph -#lib/modules/KVER-ipfire-pae/kernel/net/ceph/libceph.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154 -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/6lowpan.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/ieee802154.ko +#lib/modules/KVER-ipfire-pae/kernel/net/core +#lib/modules/KVER-ipfire-pae/kernel/net/core/netprio_cgroup.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ah4.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/esp4.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/gre.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/inet_diag.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ip_tunnel.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ip_vti.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ipcomp.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ipip.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/arp_tables.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/arpt_mangle.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ip_queue.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ip_tables.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_LOG.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_REJECT.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ULOG.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ecn.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_rpfilter.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/iptable_filter.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/iptable_mangle.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/iptable_nat.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/iptable_raw.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/iptable_security.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_ipv4.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_sip.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_bic.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_cubic.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_diag.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_highspeed.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_htcp.ko @@ -2040,17 +2426,21 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_westwood.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tcp_yeah.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/udp_diag.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/xfrm4_mode_beet.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/xfrm4_mode_transport.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/xfrm4_mode_tunnel.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/xfrm4_tunnel.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ah6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ip6_gre.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ip6_tunnel.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ipcomp6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/mip6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6_queue.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_MASQUERADE.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_NPT.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_REJECT.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_ah.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_eui64.ko @@ -2058,12 +2448,14 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_hbh.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_rpfilter.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6t_rt.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_filter.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_nat.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_raw.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_security.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_nat_ipv6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/sit.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/tunnel6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/xfrm6_mode_beet.ko @@ -2071,28 +2463,31 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/xfrm6_mode_transport.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/xfrm6_mode_tunnel.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/KVER-ipfire-pae/kernel/net/irda -#lib/modules/KVER-ipfire-pae/kernel/net/irda/ircomm -#lib/modules/KVER-ipfire-pae/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/KVER-ipfire-pae/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/KVER-ipfire-pae/kernel/net/irda/irda.ko -#lib/modules/KVER-ipfire-pae/kernel/net/irda/irlan -#lib/modules/KVER-ipfire-pae/kernel/net/irda/irlan/irlan.ko -#lib/modules/KVER-ipfire-pae/kernel/net/irda/irnet -#lib/modules/KVER-ipfire-pae/kernel/net/irda/irnet/irnet.ko #lib/modules/KVER-ipfire-pae/kernel/net/key #lib/modules/KVER-ipfire-pae/kernel/net/key/af_key.ko #lib/modules/KVER-ipfire-pae/kernel/net/l2tp #lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_core.ko #lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_eth.ko #lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ip6.ko #lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_netlink.ko #lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ppp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/llc -#lib/modules/KVER-ipfire-pae/kernel/net/llc/llc.ko #lib/modules/KVER-ipfire-pae/kernel/net/mac80211 #lib/modules/KVER-ipfire-pae/kernel/net/mac80211/mac80211.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_bitmap_ip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_bitmap_ipmac.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_bitmap_port.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_ip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_ipport.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_ipportip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_ipportnet.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_net.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_netiface.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_hash_netport.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipset/ip_set_list_set.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs_dh.ko @@ -2107,7 +2502,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs_sh.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs_wlc.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs_wrr.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_amanda.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_broadcast.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_ftp.ko @@ -2124,33 +2518,51 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_sip.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_snmp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_nat_tftp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_tproxy_core.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_acct.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_cthelper.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_cttimeout.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_log.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_queue.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/x_tables.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_AUDIT.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CHECKSUM.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CONNSECMARK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CT.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_DSCP.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_HMARK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_IDLETIMER.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_IMQ.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_LOG.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NETMAP.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NFLOG.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NOTRACK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_REDIRECT.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_SECMARK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TCPMSS.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TCPOPTSTRIP.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TEE.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TPROXY.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TRACE.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_bpf.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_cluster.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_comment.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connlabel.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connlimit.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connmark.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_conntrack.ko @@ -2158,18 +2570,20 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_dccp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_devgroup.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_ecn.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_esp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_hashlimit.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_helper.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_hl.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_iprange.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_ipvs.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_layer7.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_length.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_limit.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_mac.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_mark.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_nat.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_nfacct.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_osf.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_owner.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_physdev.ko @@ -2180,20 +2594,21 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_realm.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_recent.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_set.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_socket.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_state.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_statistic.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_string.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_tcpmss.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_tcpudp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_time.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netlink +#lib/modules/KVER-ipfire-pae/kernel/net/netlink/netlink_diag.ko +#lib/modules/KVER-ipfire-pae/kernel/net/openvswitch +#lib/modules/KVER-ipfire-pae/kernel/net/openvswitch/openvswitch.ko #lib/modules/KVER-ipfire-pae/kernel/net/rfkill -#lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill-regulator.ko +#lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill.ko -#lib/modules/KVER-ipfire-pae/kernel/net/rxrpc -#lib/modules/KVER-ipfire-pae/kernel/net/rxrpc/af-rxrpc.ko -#lib/modules/KVER-ipfire-pae/kernel/net/rxrpc/rxkad.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_csum.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_gact.ko @@ -2205,6 +2620,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_simple.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_skbedit.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_cgroup.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_flow.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_fw.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_route.ko @@ -2213,6 +2629,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_tcindex.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_u32.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/em_ipset.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/em_meta.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/em_nbyte.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/em_text.ko @@ -2220,8 +2637,10 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_atm.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_cbq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_codel.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_drr.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_fq_codel.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_gred.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_hfsc.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_htb.ko @@ -2229,6 +2648,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_mqprio.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_multiq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_plug.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_prio.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_qfq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_red.ko @@ -2236,11 +2656,18 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_sfq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_tbf.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sctp +#lib/modules/KVER-ipfire-pae/kernel/net/sctp/sctp.ko #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-pae/kernel/net/unix +#lib/modules/KVER-ipfire-pae/kernel/net/unix/unix_diag.ko +#lib/modules/KVER-ipfire-pae/kernel/net/vmw_vsock +#lib/modules/KVER-ipfire-pae/kernel/net/vmw_vsock/vmw_vsock_vmci_transport.ko +#lib/modules/KVER-ipfire-pae/kernel/net/vmw_vsock/vsock.ko #lib/modules/KVER-ipfire-pae/kernel/net/wireless #lib/modules/KVER-ipfire-pae/kernel/net/wireless/cfg80211.ko #lib/modules/KVER-ipfire-pae/kernel/net/wireless/lib80211.ko @@ -2249,7 +2676,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/wireless/lib80211_crypt_wep.ko #lib/modules/KVER-ipfire-pae/kernel/net/xfrm #lib/modules/KVER-ipfire-pae/kernel/net/xfrm/xfrm_ipcomp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/xfrm/xfrm_user.ko #lib/modules/KVER-ipfire-pae/kernel/sound #lib/modules/KVER-ipfire-pae/kernel/sound/ac97_bus.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core @@ -2283,6 +2709,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4 #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4/snd-opl4-lib.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4/snd-opl4-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/pcsp +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/pcsp/snd-pcsp.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-aloop.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-dummy.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-mtpav.ko @@ -2295,12 +2723,10 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/firewire #lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-firewire-lib.ko #lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-firewire-speakers.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-isight.ko #lib/modules/KVER-ipfire-pae/kernel/sound/i2c #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4113.ko #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4114.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4117.ko #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4xxx-adda.ko #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-pt2258.ko #lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-tea575x-tuner.ko @@ -2350,6 +2776,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-adlib.ko #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-als100.ko #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-azt2320.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-cmi8328.ko #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-cmi8330.ko #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-es18xx.ko #lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-opl3sa2.ko @@ -2370,8 +2797,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8810.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8820.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8830.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/pci/aw2 -#lib/modules/KVER-ipfire-pae/kernel/sound/pci/aw2/snd-aw2.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/ca0106 #lib/modules/KVER-ipfire-pae/kernel/sound/pci/ca0106/snd-ca0106.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs46xx @@ -2459,7 +2884,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-maestro3.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-rme32.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-rme96.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-sis7019.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-sonicvibes.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-via82xx-modem.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-via82xx.ko @@ -2469,11 +2893,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/pci/vx222/snd-vx222.ko #lib/modules/KVER-ipfire-pae/kernel/sound/pci/ymfpci #lib/modules/KVER-ipfire-pae/kernel/sound/pci/ymfpci/snd-ymfpci.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia -#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/pdaudiocf -#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko -#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/vx -#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/vx/snd-vxpocket.ko #lib/modules/KVER-ipfire-pae/kernel/sound/soundcore.ko #lib/modules/KVER-ipfire-pae/kernel/sound/synth #lib/modules/KVER-ipfire-pae/kernel/sound/synth/emux @@ -2494,17 +2913,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/modules.alias #lib/modules/KVER-ipfire-pae/modules.alias.bin #lib/modules/KVER-ipfire-pae/modules.builtin -#lib/modules/KVER-ipfire-pae/modules.ccwmap +#lib/modules/KVER-ipfire-pae/modules.builtin.bin #lib/modules/KVER-ipfire-pae/modules.dep #lib/modules/KVER-ipfire-pae/modules.dep.bin -#lib/modules/KVER-ipfire-pae/modules.ieee1394map -#lib/modules/KVER-ipfire-pae/modules.inputmap -#lib/modules/KVER-ipfire-pae/modules.isapnpmap -#lib/modules/KVER-ipfire-pae/modules.ofmap +#lib/modules/KVER-ipfire-pae/modules.devname #lib/modules/KVER-ipfire-pae/modules.order -#lib/modules/KVER-ipfire-pae/modules.pcimap -#lib/modules/KVER-ipfire-pae/modules.seriomap +#lib/modules/KVER-ipfire-pae/modules.softdep #lib/modules/KVER-ipfire-pae/modules.symbols #lib/modules/KVER-ipfire-pae/modules.symbols.bin -#lib/modules/KVER-ipfire-pae/modules.usbmap #lib/modules/KVER-ipfire-pae/source diff --git a/config/rootfiles/packages/linux-xen b/config/rootfiles/packages/linux-xen deleted file mode 100644 index 9d0f46c..0000000 --- a/config/rootfiles/packages/linux-xen +++ /dev/null @@ -1,1946 +0,0 @@ -boot/System.map-2.6.32.61-ipfire-xen -boot/System.map-ipfire-xen -boot/config-2.6.32.61-ipfire-xen -boot/vmlinuz-2.6.32.61-ipfire-xen -boot/vmlinuz-ipfire-xen -#lib/firmware/bnx2x-e1-5.0.21.0.fw -#lib/firmware/bnx2x-e1h-5.0.21.0.fw -#lib/modules -lib/modules/2.6.32.61-ipfire-xen -#lib/modules/2.6.32.61-ipfire-xen/build -#lib/modules/2.6.32.61-ipfire-xen/kernel -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86 -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/crypto -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/crypto/aes-i586.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/crypto/crc32c-intel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/crypto/salsa20-i586.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/crypto/twofish-i586.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/kernel -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/kernel/microcode.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/kernel/msr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/arch/x86/kernel/scx200.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/aes_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/ansi_cprng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/anubis.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/arc4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx/async_memcpy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx/async_pq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx/async_raid6_recov.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx/async_tx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/async_tx/async_xor.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/authenc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/blowfish.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/camellia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/cast5.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/cast6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/cbc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/ccm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/crc32c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/cryptd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/ctr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/cts.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/des_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/ecb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/fcrypt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/gcm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/gf128mul.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/ghash-generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/khazad.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/lrw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/lzo.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/md5.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/michael_mic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/pcbc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/rmd128.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/rmd160.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/rmd256.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/rmd320.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/salsa20_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/seed.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/seqiv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/serpent.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/sha1_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/sha256_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/sha512_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/tea.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/tgr192.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/twofish.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/twofish_common.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/vmac.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/wp512.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/xcbc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/xor.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/xts.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/crypto/zlib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/ac.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/acpi_pad.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/battery.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/button.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/container.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/fan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/pci_slot.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/power_meter.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/processor.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/sbs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/sbshc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/thermal.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/acpi/video.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/ahci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/ata_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/ata_piix.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/libata.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_acpi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_ali.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_amd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_artop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_atiixp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_atp867x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cmd640.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cmd64x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cs5520.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cs5530.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cs5535.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cs5536.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_cypress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_efar.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_hpt366.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_hpt37x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_hpt3x2n.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_hpt3x3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_it8213.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_it821x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_jmicron.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_marvell.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_mpiix.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_netcell.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_ninja32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_ns87410.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_ns87415.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_oldpiix.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_opti.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_optidma.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_pcmcia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_pdc2027x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_pdc202xx_old.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_radisys.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_rdc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_rz1000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_sc1200.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_sch.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_serverworks.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_sil680.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_sis.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_sl82c105.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_triflex.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pata_via.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/pdc_adma.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_inic162x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_mv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_nv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_promise.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_qstor.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_sil.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_sil24.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_sis.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_svw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_sx4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_uli.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_via.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ata/sata_vsc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/ambassador.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/atmtcp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/eni.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/firestream.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/fore_200e.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/he.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/horizon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/idt77105.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/idt77252.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/iphase.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/lanai.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/nicstar.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/solos-pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/suni.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/uPD98402.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/atm/zatm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/DAC960.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/aoe -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/aoe/aoe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/cciss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/cpqarray.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/cryptoloop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/floppy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/nbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/osdblk.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/block/sx8.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/bcm203x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/bfusb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/bluecard_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/bpa10x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/bt3c_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/btmrvl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/btmrvl_sdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/btsdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/btuart_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/btusb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/dtl1_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/hci_uart.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/bluetooth/hci_vhci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/agpgart.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/ali-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/amd-k7-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/amd64-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/ati-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/efficeon-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/intel-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/nvidia-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/sis-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/sworks-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/agp/via-agp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/cs5535_gpio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hangcheck-timer.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/amd-rng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/geode-rng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/intel-rng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/rng-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/timeriomem-rng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/hw_random/via-rng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/i8k.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi/ipmi_devintf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi/ipmi_msghandler.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi/ipmi_poweroff.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi/ipmi_si.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ipmi/ipmi_watchdog.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/lp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/nozomi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/nsc_gpio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/nvram.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/pc8736x_gpio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/pcmcia -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/pcmcia/synclink_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/ppdev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/scx200_gpio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/char/toshiba.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/clocksource -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/clocksource/scx200_hrt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/connector -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/connector/cn.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/crypto -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/crypto/geode-aes.ko.off -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/crypto/hifn_795x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/crypto/padlock-aes.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/crypto/padlock-sha.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dca -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dca/dca.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dma -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dma/dmatest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dma/ioat -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/dma/ioat/ioatdma.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firewire -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firewire/firewire-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firewire/firewire-net.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firewire/firewire-ohci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firewire/firewire-sbp2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firmware -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/firmware/iscsi_ibft.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/drm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/drm_kms_helper.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i810 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i810/i810.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i830 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i830/i830.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i915 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/i915/i915.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/mga -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/mga/mga.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/r128 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/r128/r128.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/radeon -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/radeon/radeon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/savage -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/savage/savage.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/sis -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/sis/sis.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/tdfx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/tdfx/tdfx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/ttm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/ttm/ttm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/via -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/gpu/drm/via/via.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-apple.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-belkin.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-cherry.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-chicony.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-cypress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-drff.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-ezkey.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-gaff.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-gyration.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-kensington.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-kye.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-logitech.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-monterey.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-ntrig.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-petalynx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-pl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-samsung.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-sjoy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-sony.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-sunplus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-tmff.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-topseed.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-twinhan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-wacom.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/hid-zpff.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/usbhid -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hid/usbhid/usbhid.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/abituguru.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/abituguru3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ad7414.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ad7418.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm1021.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm1025.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm1026.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm1029.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm1031.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adm9240.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ads7828.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adt7462.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adt7470.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adt7473.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/adt7475.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/applesmc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/asb100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/asus_atk0110.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/atxp1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/coretemp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/dme1737.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ds1621.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/f71805f.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/f71882fg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/f75375s.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/fschmd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/g760a.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/gl518sm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/hdaps.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/hp_accel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/hwmon-vid.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/hwmon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/i5k_amb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ibmaem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ibmpex.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/it87.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/k8temp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lis3lv02d.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm63.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm75.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm77.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm78.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm80.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm83.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm85.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm87.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm90.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm92.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm93.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/lm95241.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ltc4215.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/ltc4245.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/max1619.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/max6650.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/pc87360.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/pc87427.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/pcf8591.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/sis5595.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/smsc47b397.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/smsc47m1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/smsc47m192.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/thmc50.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/tmp401.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/tmp421.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/via686a.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/vt1211.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/vt8231.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83627ehf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83627hf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83781d.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83791d.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83792d.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83793.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83l785ts.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/w83l786ng.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/wm831x-hwmon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/hwmon/wm8350-hwmon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/algos -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-bit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-pca.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1535.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1563.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali15x3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd8111.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-i801.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-isch.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-ocores.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport-light.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-pca-platform.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-piix4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-scmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-simtec.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis5595.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis630.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis96x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-stub.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-tiny-usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-via.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/i2c-voodoo3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/busses/scx200_acb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/chips -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/chips/ds1682.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/chips/tsl2550.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/i2c-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/i2c/i2c-dev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ieee802154 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ieee802154/fakehard.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/ff-memless.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/input-polldev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/adp5588-keys.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/lkkbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/lm8323.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/max7359_keypad.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/newtonkbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/opencores-kbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/stowaway.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/sunkbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/keyboard/xtkbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/apanel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/ati_remote.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/cm109.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/pcspkr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/powermate.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/winbond-cir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/wm831x-on.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/input/misc/yealink.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/capi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/capi/capi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/capi/capidrv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/capi/kernelcapi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/divert -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/divert/dss1_divert.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/gigaset -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/gigaset/bas_gigaset.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/gigaset/gigaset.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/gigaset/ser_gigaset.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/gigaset/usb_gigaset.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/avm_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1dma.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/c4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/avm/t1pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_idi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divacapi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divadidd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/avma1_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/elsa_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hfc_usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hisax.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hisax_isac.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/hisax_st5481.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/sedlbauer_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hisax/teles_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hysdn -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/hysdn/hysdn.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/i4l -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/i4l/isdn.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/isdn/i4l/isdnhdlc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/led-class.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-alix2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-bd2802.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-clevo-mail.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-lp3944.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-net48xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-pca9532.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-wm831x-status.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-wm8350.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/leds-wrap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/ledtrig-default-on.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/ledtrig-heartbeat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/leds/ledtrig-timer.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-crypt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-delay.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-log-userspace.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-log.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-mirror.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-mod.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-multipath.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-queue-length.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-region-hash.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-round-robin.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-service-time.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-snapshot.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/dm-zero.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/linear.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/md-mod.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/multipath.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/raid0.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/raid1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/raid10.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/raid456.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/md/raid6_pq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/dvb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/dvb/dvb-core -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/dvb/dvb-core/dvb-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/video -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/video/v4l1-compat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/media/video/videodev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/core -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/core/memstick.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/core/mspro_block.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/host -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/host/jmb38x_ms.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/memstick/host/tifm_ms.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptbase.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptctl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptfc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptsas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptscsih.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/message/fusion/mptspi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/ab3100-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/ab3100-otp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/mfd-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/pcf50633-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/sm501.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/wm831x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/wm8350-i2c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/wm8350.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mfd/wm8400-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/c2port -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/c2port/c2port-duramar2150.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/c2port/core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/cb710 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/cb710/cb710.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/eeprom -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/eeprom/at24.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/eeprom/eeprom.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/eeprom/eeprom_93cx6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/eeprom/max6875.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/enclosure.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/hpilo.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/ics932s401.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/isl29003.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/tifm_7xx1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/misc/tifm_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/card -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/card/mmc_block.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/card/mmc_test.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/card/sdio_uart.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/core -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/core/mmc_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/cb710-mmc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/ricoh_mmc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/sdhci-pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/sdhci-pltfm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/sdhci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/sdricoh_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/tifm_sd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/via-sdmmc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mmc/host/wbsd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/ar7part.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/chips -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/chips/chipreg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/lpddr -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/lpddr/lpddr_cmds.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/lpddr/qinfo_probe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/maps -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/maps/physmap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/mtd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/mtd_blkdevs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/mtdblock.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/mtdchar.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/mtdconcat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/tests/mtd_torturetest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/ubi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/mtd/ubi/ubi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/3c59x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/8139cp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/8139too.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/8390.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/acenic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/amd8111e.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atl1c -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atl1c/atl1c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atl1e -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atl1e/atl1e.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atlx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atlx/atl1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atlx/atl2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/atp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/b44.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/benet -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/benet/be2net.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/bnx2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/bnx2x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/bonding -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/bonding/bonding.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/bsd_comp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/cassini.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/chelsio -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/chelsio/cxgb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/cnic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/cxgb3 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/cxgb3/cxgb3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/de600.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/de620.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/dl2k.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/dnet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/dummy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/e100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/e1000 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/e1000/e1000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/e1000e -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/e1000e/e1000e.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/enic -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/enic/enic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/epic100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/eql.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ethoc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/fealnx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/forcedeth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/hamachi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/hp100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ifb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/igb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/igb/igb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/igbvf -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/igbvf/igbvf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/imq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ipg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/ali-ircc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/donauboe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/nsc-ircc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/smsc-ircc2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/stir4200.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/via-ircc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/vlsi_ir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/irda/w83977af_ir.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ixgb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ixgb/ixgb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ixgbe -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ixgbe/ixgbe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/jme.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ks8842.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ks8851_mll.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/macvlan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/mdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/mii.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/mlx4 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/mlx4/mlx4_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/mlx4/mlx4_en.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/myri10ge -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/myri10ge/myri10ge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/natsemi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ne2k-pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/netxen -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/netxen/netxen_nic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/niu.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ns83820.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/3c574_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/3c589_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/axnet_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/fmvj18x_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/nmclan_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/pcnet_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/smc91c92_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcmcia/xirc2ps_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pcnet32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/broadcom.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/cicada.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/davicom.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/et1011c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/icplus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/lxt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/marvell.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/mdio-bitbang.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/national.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/qsemi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/realtek.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/smsc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/ste10Xp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/phy/vitesse.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ppp_async.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ppp_deflate.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ppp_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ppp_mppe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/ppp_synctty.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pppoe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pppol2tp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/pppox.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/qla3xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/qlge -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/qlge/qlge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/r6040.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/r8169.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/s2io.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sb1000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sc92031.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sis190.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sis900.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/skge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sky2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/slhc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/slip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/smsc9420.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/starfire.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sundance.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sungem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sungem_phy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/sunhme.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tehuti.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tg3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tlan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/de2104x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/de4x5.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/dmfe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/tulip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/uli526x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/winbond-840.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tulip/xircom_cb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/tun.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/typhoon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/asix.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/catc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/cdc-phonet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/cdc_eem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/cdc_ether.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/cdc_subset.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/dm9601.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/gl620a.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/hso.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/int51x1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/kaweth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/mcs7830.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/net1080.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/pegasus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/plusb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/rndis_host.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/rtl8150.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/smsc95xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/usbnet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/usb/zaurus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/veth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/via-rhine.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/via-velocity.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/vxge -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/vxge/vxge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wimax -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wimax/i2400m -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/adm8211.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/airo.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/airo_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/at76c50x-usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ath.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/atmel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/atmel_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/atmel_pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/b43 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/b43/b43.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/b43legacy -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/b43legacy/b43legacy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/hostap -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ipw2x00 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/libipw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwlwifi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_sdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas/usb8xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas_tf -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/mwl8k.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/p54 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/p54/p54common.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/p54/p54pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/p54/p54usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/prism54 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/prism54/prism54.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/ray_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rndis_wlan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt61pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt73usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rtl818x -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8180.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8187.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/wl12xx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/wl3501_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/zd1201.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/zd1211rw -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/net/yellowfin.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/parport -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/parport/parport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/parport/parport_ax88796.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/parport/parport_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/parport/parport_pc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pci -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pci/pci-stub.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/i82092.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/pcmcia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/pcmcia_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/pd6729.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/rsrc_nonstatic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pcmcia/yenta_socket.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/acer-wmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/asus-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/asus_acpi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/compal-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/dell-wmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/fujitsu-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/hp-wmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/intel_menlow.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/msi-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/panasonic-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/sony-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/tc1100-wmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/thinkpad_acpi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/topstar-laptop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/toshiba_acpi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/platform/x86/wmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/bq27x00_battery.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/ds2782_battery.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/max17040_battery.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/pcf50633-charger.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/wm831x_power.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/power/wm8350_power.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pps -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/pps/pps_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ab3100.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-bq4802.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-cmos.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1286.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1307.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1374.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1511.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1553.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1672.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-ds1742.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-fm3130.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-isl1208.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-m41t80.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-m48t35.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-m48t59.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-m48t86.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-max6900.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-pcf50633.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-pcf8563.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-pcf8583.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-rs5c372.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-rx8025.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-rx8581.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-s35390a.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-stk17ta8.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-test.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-v3020.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-wm831x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-wm8350.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/rtc/rtc-x1205.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/3w-9xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/3w-xxxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/BusLogic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/a100u2w.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aacraid -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aacraid/aacraid.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/advansys.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aic7xxx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic79xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic7xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aic94xx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/aic94xx/aic94xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/arcmsr -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/arcmsr/arcmsr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/atp870u.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/be2iscsi -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/be2iscsi/be2iscsi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/bfa -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/bfa/bfa.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/bnx2i -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/bnx2i/bnx2i.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/ch.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/cxgb3i -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/cxgb3i/cxgb3i.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/dc395x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/dmx3191d.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/dpt_i2o.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/eata.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fcoe -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fcoe/fcoe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fcoe/libfcoe.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fdomain.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fnic -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/fnic/fnic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/gdth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/hptiop.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/imm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/initio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/ipr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/ips.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/iscsi_tcp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libfc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libfc/libfc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libiscsi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libiscsi_tcp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libsas -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/libsas/libsas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/lpfc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/lpfc/lpfc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/megaraid -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/megaraid.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mbox.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_sas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/mvsas -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/mvsas/mvsas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/nsp32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/osd -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/osd/libosd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/osd/osd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia/aha152x_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia/fdomain_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia/nsp_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia/qlogic_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/pmcraid.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/ppa.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qla1280.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qla2xxx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qla2xxx/qla2xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qla4xxx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qla4xxx/qla4xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/qlogicfas408.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_mod.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_transport_fc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_transport_iscsi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_transport_sas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_transport_spi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/scsi_wait_scan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/sd_mod.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/ses.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/sg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/sr_mod.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/stex.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/scsi/tmscsim.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/serial -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/serial/jsm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/serial/jsm/jsm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/serial/serial_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ssb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/ssb/ssb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/staging -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/staging/et131x -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/staging/et131x/et131x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/staging/slicoss -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/staging/slicoss/slicoss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_aec.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_cif.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_pci_generic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_pdrv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_pdrv_genirq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_sercos3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uio/uio_smx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm/cxacru.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm/speedtch.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm/ueagle-atm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm/usbatm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/atm/xusbatm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/class -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/class/cdc-acm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/class/cdc-wdm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/class/usblp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/class/usbtmc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/core -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/core/usbcore.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/ehci-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/hwa-hc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/isp116x-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/ohci-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/r8a66597-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/u132-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/uhci-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/whci -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/host/xhci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/berry_charge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/cypress_cy7c63.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/cytherm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/emi26.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/emi62.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/ftdi-elan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/iowarrior.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/isight_firmware.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/sisusbvga -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/usblcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/usbled.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/usbsevseg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/uss720.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/misc/vstusb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/otg -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/otg/nop-usb-xceiv.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/aircable.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/ark3116.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/belkin_sa.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/ch341.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/cp210x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/cypress_m8.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/digi_acceleport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/empeg.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/ftdi_sio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/garmin_gps.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/hp4x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/io_edgeport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/ipw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/iuu_phoenix.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/keyspan_pda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/mct_u232.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/mos7720.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/mos7840.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/moto_modem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/opticon.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/option.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/oti6858.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/pl2303.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/safe_serial.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/siemens_mpi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/sierra.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/spcp8x5.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/symbolserial.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/ti_usb_3410_5052.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/usbserial.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/serial/whiteheat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-alauda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-cypress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-freecom.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-isd200.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-jumpshot.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-karma.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-onetouch.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-sddr09.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-sddr55.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/ums-usbat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/storage/usb-storage.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/wusbcore -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-cbaf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-wa.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/usb/wusbcore/wusbcore.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/hwa-rc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480/dfu -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480/i1480-est.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/umc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/uwb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/whc-rc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/whci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/wlp -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/uwb/wlp/wlp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/arkfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/aty -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/aty/aty128fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/aty/atyfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/aty/radeonfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/cr_bllcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/generic_bl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/kb3886_bl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/lcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/mbp_nvidia_bl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/platform_lcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/backlight/wm831x_bl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/broadsheetfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/cirrusfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/cyber2000fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/display -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/display/display.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/fb_ddc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/fb_sys_fops.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/geode -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/geode/gx1fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/geode/gxfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/geode/lxfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/i810 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/i810/i810fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/kyro -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/kyro/kyrofb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/macmodes.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/g450_pll.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/i2c-matroxfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_DAC1064.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_Ti3026.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_accel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_base.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_crtc2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_g450.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_maven.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/matrox/matroxfb_misc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/mb862xx -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/mb862xx/mb862xxfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/metronomefb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/neofb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/nvidia -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/nvidia/nvidiafb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/output.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/pm2fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/pm3fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/riva -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/riva/rivafb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/s3fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/savage -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/savage/savagefb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sis -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sis/sisfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sm501fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sstfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/svgalib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/syscopyarea.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sysfillrect.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/sysimgblt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/tdfxfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/tmiofb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/tridentfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/uvesafb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/vermilion -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/vermilion/crvml.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/vermilion/vmlfb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/vgastate.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/via -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/via/viafb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/video/vt8623fb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/masters -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/masters/ds2482.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/masters/ds2490.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/masters/matrox_w1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_bq27000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2431.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2433.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2760.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_smem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/slaves/w1_therm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/w1/wire.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/acquirewdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/advantechwdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/alim1535_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/alim7101_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/cpu5wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/eurotechwdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/hpwdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/i6300esb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/iTCO_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/ib700wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/ibmasr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/it8712f_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/it87_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/machzwd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/pc87413_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/pcwd_pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/pcwd_usb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sbc60xxwdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sbc7240_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sbc8360.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sbc_epx_c3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sc1200wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sc520_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/sch311x_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/scx200_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/smsc37b787_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/softdog.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/w83627hf_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/w83697hf_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/w83697ug_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/w83877f_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/w83977f_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/wafer5823wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/wdt_pci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/wm831x_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/watchdog/wm8350_wdt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/blktap2 -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/blktap2/blktap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/scsiback -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/scsiback/xen-scsibk.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/scsifront -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/scsifront/xenscsi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/usbback -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/usbback/usbbk.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/usbfront -#lib/modules/2.6.32.61-ipfire-xen/kernel/drivers/xen/usbfront/xen-hcd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/autofs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/autofs/autofs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/autofs4 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/autofs4/autofs4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/cifs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/cifs/cifs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ecryptfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ecryptfs/ecryptfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/exportfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/exportfs/exportfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext2 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext2/ext2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext3 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext3/ext3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext4 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ext4/ext4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fat -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fat/fat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fat/vfat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fuse -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fuse/cuse.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/fuse/fuse.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/isofs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/isofs/isofs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jbd -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jbd/jbd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jbd2 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jbd2/jbd2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jffs2 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jffs2/jffs2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/jfs/jfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/lockd -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/lockd/lockd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/mbcache.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfs/nfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfs_common -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfs_common/nfs_acl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfsd -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/nfsd/nfsd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/quota -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/quota/quota_tree.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/quota/quota_v1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/quota/quota_v2.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/reiser4 -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/reiser4/reiser4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/reiserfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/reiserfs/reiserfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/smbfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/smbfs/smbfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/udf -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/udf/udf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ufs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/ufs/xfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/xfs -#lib/modules/2.6.32.61-ipfire-xen/kernel/fs/xfs/xfs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/crc-ccitt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/crc-itu-t.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/crc-t10dif.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/crc16.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/crc7.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/libcrc32c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/lzo -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/lzo/lzo_compress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/lzo/lzo_decompress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/ts_bm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/ts_fsm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/lib/ts_kmp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/802 -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/802/garp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/802/p8022.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/802/psnap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/802/stp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/8021q -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/8021q/8021q.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/atm -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/atm/atm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/atm/br2684.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/atm/clip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/atm/pppoatm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/bluetooth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/bnep -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/bnep/bnep.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/cmtp -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/cmtp/cmtp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/hidp -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/hidp/hidp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/l2cap.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/rfcomm -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/rfcomm/rfcomm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bluetooth/sco.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/bridge.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_802_3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_among.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_arp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_arpreply.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_dnat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_limit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_log.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark_m.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_nflog.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_pkttype.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_redirect.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_snat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_stp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_ulog.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebt_vlan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebtable_broute.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebtable_filter.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebtable_nat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/bridge/netfilter/ebtables.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ieee802154 -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ieee802154/af_802154.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ieee802154/nl802154.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ieee802154/wpan-class.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4 -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/ah4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/esp4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/inet_diag.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/ip_gre.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/ipcomp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/ipip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/arp_tables.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/arpt_mangle.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ip_queue.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ip_tables.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_LOG.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REJECT.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ULOG.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_addrtype.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ecn.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipp2p.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/iptable_filter.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/iptable_mangle.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/iptable_nat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/iptable_raw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_ftp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_irc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_sip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_tftp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_bic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_cubic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_diag.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_highspeed.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_htcp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_hybla.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_illinois.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_lp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_scalable.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_vegas.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_veno.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_westwood.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tcp_yeah.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/tunnel4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv4/xfrm4_tunnel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6 -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/ah6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/esp6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/ip6_tunnel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/ipcomp6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/ipv6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/mip6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6_queue.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_LOG.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_REJECT.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ah.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_eui64.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_frag.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_hbh.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_mh.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_rt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_filter.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_mangle.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_raw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/sit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/tunnel6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/xfrm6_mode_beet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/xfrm6_mode_ro.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/xfrm6_mode_transport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/xfrm6_mode_tunnel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/ircomm -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/irda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/irlan -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/irlan/irlan.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/irnet -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/irda/irnet/irnet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/key -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/key/af_key.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/llc -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/llc/llc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/mac80211 -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/mac80211/mac80211.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/ipvs -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/ipvs/ip_vs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_amanda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_ftp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_h323.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_irc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_netbios_ns.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_netlink.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_pptp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_dccp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_gre.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_sctp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_udplite.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_sane.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_sip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_conntrack_tftp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nf_tproxy_core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nfnetlink.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nfnetlink_log.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/nfnetlink_queue.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/x_tables.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_CLASSIFY.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_CONNMARK.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_DSCP.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_HL.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_IMQ.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_LED.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_MARK.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_NFLOG.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_NOTRACK.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_RATEEST.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_TCPMSS.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_TCPOPTSTRIP.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_TPROXY.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_TRACE.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_cluster.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_comment.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_connbytes.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_connlimit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_connmark.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_conntrack.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_dccp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_dscp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_esp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_hashlimit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_helper.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_hl.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_iprange.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_layer7.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_length.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_limit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_mac.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_mark.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_multiport.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_osf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_owner.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_physdev.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_pkttype.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_policy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_quota.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_rateest.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_realm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_recent.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_sctp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_socket.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_state.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_statistic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_string.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_tcpmss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_tcpudp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_time.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/netfilter/xt_u32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/phonet -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/phonet/phonet.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/phonet/pn_pep.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rds -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rds/rds.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rds/rds_tcp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rfkill -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rfkill/rfkill.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rxrpc -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rxrpc/af-rxrpc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/rxrpc/rxkad.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_gact.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_ipt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_mirred.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_nat.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_pedit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_police.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/act_skbedit.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_basic.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_flow.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_fw.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_route.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_rsvp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_rsvp6.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_tcindex.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/cls_u32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/em_cmp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/em_meta.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/em_nbyte.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/em_text.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/em_u32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_atm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_cbq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_drr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_dsmark.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_gred.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_hfsc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_htb.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_ingress.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_multiq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_netem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_prio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_red.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_sfq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_tbf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sched/sch_teql.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sunrpc -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sunrpc/auth_gss -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/sunrpc/sunrpc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wimax -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wimax/wimax.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless/cfg80211.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless/lib80211.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless/lib80211_crypt_ccmp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless/lib80211_crypt_tkip.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/wireless/lib80211_crypt_wep.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/xfrm -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/xfrm/xfrm_ipcomp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/net/xfrm/xfrm_user.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/ac97_bus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/oss -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/oss/snd-mixer-oss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/oss/snd-pcm-oss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/oss -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/oss/snd-seq-oss.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-device.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-dummy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-emul.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-event.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-midi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq-virmidi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/seq/snd-seq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd-hwdep.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd-page-alloc.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd-pcm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd-rawmidi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd-timer.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/core/snd.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/mpu401 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/opl3 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-synth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-dummy.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-mtpav.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-mts64.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-portman2x4.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-serial-u16550.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/snd-virmidi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/vx -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/drivers/vx/snd-vx-lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/other -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/other/snd-ak4114.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/other/snd-ak4117.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/other/snd-ak4xxx-adda.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/other/snd-pt2258.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/snd-cs8427.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/i2c/snd-i2c.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/isa -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/isa/sb -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/isa/sb/snd-sb-common.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/isa/sb/snd-sb16-dsp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ac97 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ac97/snd-ac97-codec.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ali5451 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ali5451/snd-ali5451.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/au88x0 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/au88x0/snd-au8810.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/au88x0/snd-au8820.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/au88x0/snd-au8830.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ca0106 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ca0106/snd-ca0106.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/cs46xx -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/cs46xx/snd-cs46xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/cs5535audio -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ctxfi -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ctxfi/snd-ctxfi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla20.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla24.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-echo3g.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina20.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina24.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigo.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodj.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodjx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoiox.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla20.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla24.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-mia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/echoaudio/snd-mona.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/emu10k1 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-analog.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-atihdmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-conexant.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-idt.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-intelhdmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-nvhdmi.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-realtek.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-si3054.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-via.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/hda/snd-hda-intel.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ice1712 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1712.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1724.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/korg1212 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/korg1212/snd-korg1212.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/lx6464es -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/lx6464es/snd-lx6464es.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/mixart -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/mixart/snd-mixart.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/nm256 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/nm256/snd-nm256.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/oxygen -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/oxygen/snd-hifier.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen-lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/oxygen/snd-virtuoso.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/pcxhr -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/pcxhr/snd-pcxhr.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/riptide -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/riptide/snd-riptide.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/rme9652 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/rme9652/snd-hdsp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/rme9652/snd-hdspm.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/rme9652/snd-rme9652.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-ad1889.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-als300.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-als4000.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-atiixp-modem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-atiixp.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-bt87x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-cmipci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-cs4281.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-cs5530.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-ens1370.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-ens1371.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-es1938.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-es1968.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-fm801.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-intel8x0.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-intel8x0m.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-maestro3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-rme32.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-rme96.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-sis7019.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-sonicvibes.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-via82xx-modem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/snd-via82xx.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/trident -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/trident/snd-trident.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/vx222 -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/vx222/snd-vx222.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ymfpci -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pci/ymfpci/snd-ymfpci.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pcmcia -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pcmcia/pdaudiocf -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pcmcia/vx -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/pcmcia/vx/snd-vxpocket.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ad73311.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4535.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4642.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-cs4270.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-l3.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-max9877.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-pcm3008.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-spdif.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ssm2602.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda134x.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda1380.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm-hubs.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8350.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8400.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8510.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8523.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8580.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8728.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8731.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8750.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8753.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8776.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8900.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8903.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8940.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8960.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8961.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8971.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8974.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8988.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8990.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8993.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm9081.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soc/snd-soc-core.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/soundcore.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/synth -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/synth/emux -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/synth/emux/snd-emux-synth.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/synth/snd-util-mem.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/caiaq -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/caiaq/snd-usb-caiaq.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/snd-usb-audio.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/snd-usb-lib.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/usx2y -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-us122l.ko -#lib/modules/2.6.32.61-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-usx2y.ko -#lib/modules/2.6.32.61-ipfire-xen/modules.alias -#lib/modules/2.6.32.61-ipfire-xen/modules.alias.bin -#lib/modules/2.6.32.61-ipfire-xen/modules.ccwmap -#lib/modules/2.6.32.61-ipfire-xen/modules.dep -#lib/modules/2.6.32.61-ipfire-xen/modules.dep.bin -#lib/modules/2.6.32.61-ipfire-xen/modules.ieee1394map -#lib/modules/2.6.32.61-ipfire-xen/modules.inputmap -#lib/modules/2.6.32.61-ipfire-xen/modules.isapnpmap -#lib/modules/2.6.32.61-ipfire-xen/modules.ofmap -#lib/modules/2.6.32.61-ipfire-xen/modules.order -#lib/modules/2.6.32.61-ipfire-xen/modules.pcimap -#lib/modules/2.6.32.61-ipfire-xen/modules.seriomap -#lib/modules/2.6.32.61-ipfire-xen/modules.symbols -#lib/modules/2.6.32.61-ipfire-xen/modules.symbols.bin -#lib/modules/2.6.32.61-ipfire-xen/modules.usbmap -#lib/modules/2.6.32.61-ipfire-xen/source diff --git a/config/rootfiles/packages/mysql b/config/rootfiles/packages/mysql index d214c08..b03ee11 100644 --- a/config/rootfiles/packages/mysql +++ b/config/rootfiles/packages/mysql @@ -66,7 +66,6 @@ usr/bin/mysql usr/bin/mysql_client_test usr/bin/mysql_config usr/bin/mysql_convert_table_format -usr/bin/mysql_create_system_tables usr/bin/mysql_explain_log usr/bin/mysql_find_rows usr/bin/mysql_fix_extensions @@ -101,11 +100,13 @@ usr/bin/replace usr/bin/resolve_stack_dump usr/bin/resolveip #usr/include/mysql +#usr/include/mysql/decimal.h #usr/include/mysql/errmsg.h #usr/include/mysql/keycache.h #usr/include/mysql/m_ctype.h #usr/include/mysql/m_string.h #usr/include/mysql/my_alloc.h +#usr/include/mysql/my_attribute.h #usr/include/mysql/my_config.h #usr/include/mysql/my_dbug.h #usr/include/mysql/my_dir.h @@ -115,7 +116,6 @@ usr/bin/resolveip #usr/include/mysql/my_net.h #usr/include/mysql/my_no_pthread.h #usr/include/mysql/my_pthread.h -#usr/include/mysql/my_semaphore.h #usr/include/mysql/my_sys.h #usr/include/mysql/my_xml.h #usr/include/mysql/mysql.h @@ -132,7 +132,6 @@ usr/bin/resolveip #usr/include/mysql/sslopt-longopts.h #usr/include/mysql/sslopt-vars.h #usr/include/mysql/typelib.h -#usr/info/mysql.info #usr/lib/libmysqlclient.so #usr/lib/libmysqlclient.so.15 #usr/lib/libmysqlclient.so.15.0.0 @@ -157,39 +156,60 @@ usr/bin/resolveip #usr/lib/mysql/libmystrings.a #usr/lib/mysql/libmysys.a #usr/lib/mysql/libvio.a -#usr/man/man1/msql2mysql.1 -#usr/man/man1/myisam_ftdump.1 -#usr/man/man1/myisamchk.1 -#usr/man/man1/myisamlog.1 -#usr/man/man1/myisampack.1 -#usr/man/man1/mysql.1 -#usr/man/man1/mysql.server.1 -#usr/man/man1/mysql_config.1 -#usr/man/man1/mysql_explain_log.1 -#usr/man/man1/mysql_fix_privilege_tables.1 -#usr/man/man1/mysql_upgrade.1 -#usr/man/man1/mysql_zap.1 -#usr/man/man1/mysqlaccess.1 -#usr/man/man1/mysqladmin.1 -#usr/man/man1/mysqlbinlog.1 -#usr/man/man1/mysqlcheck.1 -#usr/man/man1/mysqld.1 -#usr/man/man1/mysqld_multi.1 -#usr/man/man1/mysqld_safe.1 -#usr/man/man1/mysqldump.1 -#usr/man/man1/mysqlhotcopy.1 -#usr/man/man1/mysqlimport.1 -#usr/man/man1/mysqlman.1 -#usr/man/man1/mysqlmanager.1 -#usr/man/man1/mysqlshow.1 -#usr/man/man1/perror.1 -#usr/man/man1/replace.1 -#usr/man/man1/safe_mysqld.1 usr/sbin/mysqld usr/sbin/mysqlmanager -#usr/share/mysql +#usr/share/info/mysql.info +#usr/share/man/man1/comp_err.1 +#usr/share/man/man1/innochecksum.1 +#usr/share/man/man1/msql2mysql.1 +#usr/share/man/man1/my_print_defaults.1 +#usr/share/man/man1/myisam_ftdump.1 +#usr/share/man/man1/myisamchk.1 +#usr/share/man/man1/myisamlog.1 +#usr/share/man/man1/myisampack.1 +#usr/share/man/man1/mysql-stress-test.pl.1 +#usr/share/man/man1/mysql-test-run.pl.1 +#usr/share/man/man1/mysql.1 +#usr/share/man/man1/mysql.server.1 +#usr/share/man/man1/mysql_client_test.1 +#usr/share/man/man1/mysql_config.1 +#usr/share/man/man1/mysql_convert_table_format.1 +#usr/share/man/man1/mysql_explain_log.1 +#usr/share/man/man1/mysql_find_rows.1 +#usr/share/man/man1/mysql_fix_extensions.1 +#usr/share/man/man1/mysql_fix_privilege_tables.1 +#usr/share/man/man1/mysql_install_db.1 +#usr/share/man/man1/mysql_secure_installation.1 +#usr/share/man/man1/mysql_setpermission.1 +#usr/share/man/man1/mysql_tableinfo.1 +#usr/share/man/man1/mysql_tzinfo_to_sql.1 +#usr/share/man/man1/mysql_upgrade.1 +#usr/share/man/man1/mysql_waitpid.1 +#usr/share/man/man1/mysql_zap.1 +#usr/share/man/man1/mysqlaccess.1 +#usr/share/man/man1/mysqladmin.1 +#usr/share/man/man1/mysqlbinlog.1 +#usr/share/man/man1/mysqlbug.1 +#usr/share/man/man1/mysqlcheck.1 +#usr/share/man/man1/mysqld_multi.1 +#usr/share/man/man1/mysqld_safe.1 +#usr/share/man/man1/mysqldump.1 +#usr/share/man/man1/mysqldumpslow.1 +#usr/share/man/man1/mysqlhotcopy.1 +#usr/share/man/man1/mysqlimport.1 +#usr/share/man/man1/mysqlman.1 +#usr/share/man/man1/mysqlshow.1 +#usr/share/man/man1/mysqltest.1 +#usr/share/man/man1/perror.1 +#usr/share/man/man1/replace.1 +#usr/share/man/man1/resolve_stack_dump.1 +#usr/share/man/man1/resolveip.1 +#usr/share/man/man1/safe_mysqld.1 +#usr/share/man/man8/mysqld.8 +#usr/share/man/man8/mysqlmanager.8 +usr/share/mysql #usr/share/mysql/binary-configure -usr/share/mysql/charsets +#usr/share/mysql/charsets #usr/share/mysql/charsets/Index.xml #usr/share/mysql/charsets/README #usr/share/mysql/charsets/armscii8.xml @@ -223,15 +243,15 @@ usr/share/mysql/charsets #usr/share/mysql/dutch #usr/share/mysql/dutch/errmsg.sys #usr/share/mysql/english -usr/share/mysql/english/errmsg.sys -usr/share/mysql/errmsg.txt +#usr/share/mysql/english/errmsg.sys +#usr/share/mysql/errmsg.txt #usr/share/mysql/estonian #usr/share/mysql/estonian/errmsg.sys #usr/share/mysql/fill_help_tables.sql #usr/share/mysql/french #usr/share/mysql/french/errmsg.sys #usr/share/mysql/german -usr/share/mysql/german/errmsg.sys +#usr/share/mysql/german/errmsg.sys #usr/share/mysql/greek #usr/share/mysql/greek/errmsg.sys #usr/share/mysql/hungarian @@ -252,6 +272,10 @@ usr/share/mysql/german/errmsg.sys #usr/share/mysql/mysql-log-rotate #usr/share/mysql/mysql.server #usr/share/mysql/mysql_fix_privilege_tables.sql +#usr/share/mysql/mysql_system_tables.sql +#usr/share/mysql/mysql_system_tables_data.sql +#usr/share/mysql/mysql_test_data_timezone.sql +#usr/share/mysql/mysqld_multi.server #usr/share/mysql/ndb-config-2-node.ini #usr/share/mysql/norwegian #usr/share/mysql/norwegian-ny diff --git a/config/rootfiles/packages/nfs b/config/rootfiles/packages/nfs index 6fa115a..666512b 100644 --- a/config/rootfiles/packages/nfs +++ b/config/rootfiles/packages/nfs @@ -1,4 +1,3 @@ -etc/rc.d/init.d/nfs-server sbin/mount.nfs sbin/mount.nfs4 sbin/osd_login @@ -37,6 +36,7 @@ usr/sbin/start-statd #usr/share/man/man3/nfs4_uid_to_name.3 #usr/share/man/man5/exports.5 #usr/share/man/man5/idmapd.conf.5 +#usr/share/man/man5/nfs.5 #usr/share/man/man7/nfsd.7 #usr/share/man/man8/exportfs.8 #usr/share/man/man8/idmapd.8 @@ -64,4 +64,5 @@ var/lib/nfs/sm #var/lib/nfs/sm.bak var/lib/nfs/state var/lib/nfs/xtab +etc/rc.d/init.d/nfs-server var/ipfire/nfs/nfs-server diff --git a/config/rootfiles/packages/sslh b/config/rootfiles/packages/sslh index c52d156..2c67aad 100644 --- a/config/rootfiles/packages/sslh +++ b/config/rootfiles/packages/sslh @@ -1,4 +1,2 @@ -usr/local/sbin/sslh -#usr/local/share/man/man8/sslh.8.gz etc/rc.d/init.d/sslh -#usr/local/bin/sslh +usr/sbin/sslh diff --git a/config/rpi-firmware/config.txt b/config/rpi-firmware/config.txt index 266cfb4..37b1b2d 100644 --- a/config/rpi-firmware/config.txt +++ b/config/rpi-firmware/config.txt @@ -7,7 +7,6 @@ ############################################################################### # # GPU Memory Settings (16,32,64 ... ) -# 16MB has a issue at reboot so we use 32MB memory split ############################################################################### gpu_mem=16
diff --git a/config/u-boot/boot.scr b/config/u-boot/boot.scr index aad40ae..8caeb40 100755 Binary files a/config/u-boot/boot.scr and b/config/u-boot/boot.scr differ diff --git a/config/u-boot/boot.script b/config/u-boot/boot.script index 0f71815..4c9df1f 100755 --- a/config/u-boot/boot.script +++ b/config/u-boot/boot.script @@ -1,4 +1,5 @@ -fatload mmc 0:1 0x80000000 uImage-ipfire-omap -fatload mmc 0:1 0x81600000 uInit-ipfire-omap +fatload mmc 0:1 0x82000000 zImage-ipfire-multi +fatload mmc 0:1 0x83600000 uInit-ipfire-multi +fatload mmc 0:1 ${ftdaddr} omap4-${board_name}.dtb setenv bootargs vram=32M console=tty1 rootwait smsc95xx.macaddr=$usbethaddr root=/dev/mmcblk0p3 ro -bootm 0x80000000 0x81600000 +bootz 0x82000000 0x83600000 ${ftdaddr} diff --git a/config/udev/blacklist b/config/udev/blacklist deleted file mode 100644 index 6b76366..0000000 --- a/config/udev/blacklist +++ /dev/null @@ -1,6 +0,0 @@ -blacklist crc_ccitt -blacklist slhc - -# Intel MEI controllers -# makes some systems hang on reboot -blacklist mei diff --git a/config/udev/blacklist.conf b/config/udev/blacklist.conf new file mode 100644 index 0000000..6b76366 --- /dev/null +++ b/config/udev/blacklist.conf @@ -0,0 +1,6 @@ +blacklist crc_ccitt +blacklist slhc + +# Intel MEI controllers +# makes some systems hang on reboot +blacklist mei diff --git a/config/udev/udev.conf b/config/udev/udev.conf new file mode 100644 index 0000000..31bb662 --- /dev/null +++ b/config/udev/udev.conf @@ -0,0 +1,4 @@ +# The initial syslog(3) priority: "err", "info", "debug" or its +# numerical equivalent. For runtime debugging, the daemons internal +# state can be changed with: "udevadm control --log-priority=<value>". +udev_log="err" diff --git a/config/vdr/etc/setup.conf b/config/vdr/etc/setup.conf index a14aff9..749ad03 100644 --- a/config/vdr/etc/setup.conf +++ b/config/vdr/etc/setup.conf @@ -50,7 +50,6 @@ OSDWidth = 624 PauseLifetime = 1 PausePriority = 10 PrimaryDVB = 1 -PrimaryLimit = 0 RecordingDirs = 1 ResumeID = 0 SetSystemTime = 0 @@ -82,5 +81,4 @@ streamdev-server.MaxClients = 5 streamdev-server.ServerPort = 2004 streamdev-server.StartHTTPServer = 1 streamdev-server.StartServer = 1 -streamdev-server.SuspendMode = 1 streamdev-server.VTPBindIP = 0.0.0.0 diff --git a/config/vim/vimrc b/config/vim/vimrc new file mode 100644 index 0000000..18c1481 --- /dev/null +++ b/config/vim/vimrc @@ -0,0 +1,42 @@ +if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" + set fileencodings=ucs-bom,utf-8,latin1 +endif + +set nocompatible +set bs=indent,eol,start " allow backspacing over everything in insert mode +set viminfo='20,"50 " read/write a .viminfo file, don't store more + " than 50 lines of registers +set history=50 " keep 50 lines of command line history +set ruler " show the cursor position all the time + +" Only do this part when compiled with support for autocommands +if has("autocmd") + augroup ipfire + autocmd! + + " In text files, always limit the width of text to 78 characters + " autocmd BufRead *.txt set tw=78 + + " When editing a file, always jump to the last cursor position + autocmd BufReadPost * + \ if line("'"") > 0 && line ("'"") <= line("$") | + \ exe "normal! g'"" | + \ endif + + " don't write swapfile on most commonly used directories for NFS mounts or USB sticks + autocmd BufNewFile,BufReadPre /media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp + + " start with spec file template + autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec + + augroup END +endif + +syntax on +if (&term == "iterm") || (&term == "putty") + set background=dark +endif + +" Don't wake up system with blinking cursor: +" http://www.linuxpowertop.org/known.php +let &guicursor = &guicursor . ",a:blinkon0" diff --git a/config/w_scan/w_scan_start b/config/w_scan/w_scan_start index 05d9a78..c424f5f 100755 --- a/config/w_scan/w_scan_start +++ b/config/w_scan/w_scan_start @@ -109,26 +109,26 @@ clear rm -rf /tmp/channels.conf if [[ "$W_SCAN_TYPE" == *DVB-T* ]]; then echo ":->W-SCAN DVB-T $(date +%Y%m%d%H%M)" >>/tmp/channels.conf - $WSCAN -f t -c $W_SCAN_COUNTRY -C UTF-8 -o 7 >>/tmp/channels.conf + $WSCAN -f t -c $W_SCAN_COUNTRY -C UTF-8 -o 2 >>/tmp/channels.conf fi if [[ "$W_SCAN_TYPE" == *DVB-C* ]]; then echo ":->W-SCAN DVB-C $(date +%Y%m%d%H%M)" >>/tmp/channels.conf - $WSCAN -f c -c $W_SCAN_COUNTRY -C UTF-8 -o 7 >>/tmp/channels.conf + $WSCAN -f c -c $W_SCAN_COUNTRY -C UTF-8 -o 2 >>/tmp/channels.conf fi if [[ "$W_SCAN_TYPE" == *DVB-S* ]]; then for SATELLITE in $W_SCAN_SATELLITE; do echo ":->W-SCAN DVB-S $SATELLITE $(date +%Y%m%d%H%M)" >>/tmp/channels.conf - $WSCAN -f s -s $SATELLITE -C UTF-8 -o 7 >>/tmp/channels.conf + $WSCAN -f s -s $SATELLITE -C UTF-8 -o 2 >>/tmp/channels.conf done fi if [[ "$W_SCAN_TYPE" == *ATSC-T* ]]; then echo ":->W-SCAN ATSC-T $(date +%Y%m%d%H%M)" >>/tmp/channels.conf - $WSCAN -f a -A 1 -c $W_SCAN_COUNTRY -C UTF-8 -o 7 >>/tmp/channels.conf + $WSCAN -f a -A 1 -c $W_SCAN_COUNTRY -C UTF-8 -o 2 >>/tmp/channels.conf fi if [[ "$W_SCAN_TYPE" == *ATSC-C* ]]; then echo ":->W-SCAN ATSC-C $(date +%Y%m%d%H%M)" >>/tmp/channels.conf - $WSCAN -f a -A 2 -c $W_SCAN_COUNTRY -C UTF-8 -o 7 >>/tmp/channels.conf + $WSCAN -f a -A 2 -c $W_SCAN_COUNTRY -C UTF-8 -o 2 >>/tmp/channels.conf fi
# Save result to current dir. diff --git a/config/xen-image/README b/config/xen-image/README index 49c1192..3813572 100644 --- a/config/xen-image/README +++ b/config/xen-image/README @@ -1,7 +1,9 @@ -Howto install Ipfire as a paravirtualized DomU: +How to install Ipfire as a Xen DomU: + +- run xen-image-maker.sh to download and build the xen-images. + you need to be root because the skript do some loop mounts. + The script need wget and gpg for download and decode ipfire packages.
-- download image -- extract the downloaded file, be careful, you need at least 2gb - edit the file ipfire.cfg - start ipfire: "xm create ipfire.cfg" - if you get no errormessage go to console: "xm console ipfire-xen" @@ -16,8 +18,3 @@ other usefull commands from the Dom0: - shutdown the fire: "xm shutdown ipfire-xen" - reset the fire: "xm destroy ipfire-xen" - look what is going on: "xm top" or "xm list" - -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -+ This is image is build with the normal build environment + -+ and not full tested yet + -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/config/xen-image/ipfire.cfg b/config/xen-image/ipfire.cfg index eeb35c9..594c82a 100644 --- a/config/xen-image/ipfire.cfg +++ b/config/xen-image/ipfire.cfg @@ -1,6 +1,6 @@ bootloader = '/usr/bin/pygrub'
-memory = 128 +memory = 256 name = "ipfire-xen"
acpi=1 diff --git a/config/xen-image/xen-image-maker.sh b/config/xen-image/xen-image-maker.sh new file mode 100644 index 0000000..4a7c7f2 --- /dev/null +++ b/config/xen-image/xen-image-maker.sh @@ -0,0 +1,196 @@ +#/bin/bash +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 Arne Fitzenreiter arne_f@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +SNAME=xxxSNAMExxx +VERSION=xxxVERSIONxxx +CORE=xxxCORExxx + +KERN_TYPE=pae +KVER=xxxKVERxxx +KERN_PACK=xxxKERN_PACKxxx +KRNDOWN=http://mirror0.ipfire.org/pakfire2/$VERSION/paks + +############################################################################### +# If you really want to use outdated legacy kernel uncomment this lines. ##### +# Not recommended!!! ########################################################## +###################### +#KERN_TYPE=xen +#KVER=2.6.32.61 +#KERN_PACK=27 +#KRNDOWN=http://mirror0.ipfire.org/pakfire2/2.13/paks +############################################################################### + +SIZEboot=30 +SIZEswap=512 +SIZEroot=512 +SIZEvar=950 +# ct'server does not support ext4 so change this to ext3. +FSTYPE=ext4 + +############################################################################## + +SOURCEISO=$SNAME-$VERSION.i586-full-core$CORE.iso +HTTPDIR=http://download.ipfire.org/releases/ipfire-2.x/$VERSION-core$CORE + +TMPDIR=./ipfire-tmp +ISODIR=$TMPDIR/iso +MNThdd=$TMPDIR/harddisk + +IMGboot=./$SNAME-boot.img +IMGswap=./$SNAME-swap.img +IMGroot=./$SNAME-root.img +IMGvar=./$SNAME-var.img + +KERNEL=linux-$KERN_TYPE-$KVER-$KERN_PACK.ipfire + +rm -rf $TMPDIR && mkdir -p $MNThdd && mkdir -p $ISODIR +echo -------------------------------------------------------- +echo - Download $SOURCEISO ... +echo -------------------------------------------------------- +wget $HTTPDIR/$SOURCEISO -O $TMPDIR/$SOURCEISO +mount -o loop $TMPDIR/$SOURCEISO $ISODIR + +echo -------------------------------------------------------- +echo - Download $KERNEL ... +echo -------------------------------------------------------- +wget $KRNDOWN/$KERNEL -O $TMPDIR/$KERNEL.gpg +gpg -d $TMPDIR/$KERNEL.gpg > $TMPDIR/$KERNEL + +echo -------------------------------------------------------- +echo - Create Images ... +echo -------------------------------------------------------- + +#Create bootimage +dd bs=1M if=/dev/zero of=$IMGboot count=$SIZEboot +mkfs.ext2 -F $IMGboot + +#Create swapimage +dd bs=1M if=/dev/zero of=$IMGswap count=$SIZEswap +mkswap $IMGswap + +#Create rootimage +dd bs=1M if=/dev/zero of=$IMGroot count=$SIZEroot +mkfs.$FSTYPE -F $IMGroot + +#Create varimage +dd bs=1M if=/dev/zero of=$IMGvar count=$SIZEvar +mkfs.$FSTYPE -F $IMGvar + +echo -------------------------------------------------------- +echo - Intall IPFire to the Images ... +echo -------------------------------------------------------- + +# Mount Images +mount -o loop $IMGroot $MNThdd +mkdir $MNThdd/boot +mkdir $MNThdd/var +mkdir $MNThdd/var/log +mount -o loop $IMGboot $MNThdd/boot +mount -o loop $IMGvar $MNThdd/var + +# Install IPFire without kernel modules +tar -C $MNThdd/ -xvf $ISODIR/$SNAME-$VERSION.tlz --lzma \ + --exclude=lib/modules* --exclude=boot* + +#Install Kernel +tar -C $MNThdd/opt/pakfire/tmp -xvf $TMPDIR/$KERNEL +chroot $MNThdd /opt/pakfire/tmp/install.sh +rm -rf $MNThdd/opt/pakfire/tmp/* + +#Create grub menuentry for pygrub +mkdir $MNThdd/boot/grub +echo "timeout 10" > $MNThdd/boot/grub/grub.conf +echo "default 0" >> $MNThdd/boot/grub/grub.conf +echo "title IPFire ($KERN_TYPE-kernel)" >> $MNThdd/boot/grub/grub.conf +echo " kernel /vmlinuz-$KVER-ipfire-xen root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ + >> $MNThdd/boot/grub/grub.conf +echo " initrd /ipfirerd-$KVER-$KERN_TYPE.img" >> $MNThdd/boot/grub/grub.conf +echo "# savedefault 0" >> $MNThdd/boot/grub/grub.conf + +ln -s grub.conf $MNThdd/boot/grub/menu.lst + +#create the meta-info of linux-kernel package +echo "" > $MNThdd/opt/pakfire/db/meta/linux-$KERN_TYPE +echo "Name: linux-$KERN_TYPE" >> $MNThdd/opt/pakfire/db/meta/linux-$KERN_TYPE +echo "ProgVersion: $KVER" >> $MNThdd/opt/pakfire/db/meta/linux-$KERN_TYPE +echo "Release: $KERN_PACK" >> $MNThdd/opt/pakfire/db/meta/linux-$KERN_TYPE +echo "" >> $MNThdd/opt/pakfire/db/meta/linux-$KERN_TYPE +echo "" > $MNThdd/opt/pakfire/db/installed/linux-$KERN_TYPE +echo "Name: linux-$KERN_TYPE" >> $MNThdd/opt/pakfire/db/installed/linux-$KERN_TYPE +echo "ProgVersion: $KVER" >> $MNThdd/opt/pakfire/db/installed/linux-$KERN_TYPE +echo "Release: $KERN_PACK" >> $MNThdd/opt/pakfire/db/installed/linux-$KERN_TYPE +echo "" >> $MNThdd/opt/pakfire/db/installed/linux-$KERN_TYPE + +#Set default configuration +echo "LANGUAGE=en" >> $MNThdd/var/ipfire/main/settings +echo "HOSTNAME=$SNAME" >> $MNThdd/var/ipfire/main/settings +echo "THEME=ipfire" >> $MNThdd/var/ipfire/main/settings +touch $MNThdd/lib/modules/$KVER-ipfire-$KERN_TYPE/modules.dep +mkdir $MNThdd/proc +mount --bind /proc $MNThdd/proc +mount --bind /dev $MNThdd/dev +mount --bind /sys $MNThdd/sys +chroot $MNThdd /usr/bin/perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" +sed -i -e "s|DEVICE1|/dev/xvda1|g" $MNThdd/etc/fstab +sed -i -e "s|DEVICE2|/dev/xvda2|g" $MNThdd/etc/fstab +sed -i -e "s|DEVICE3|/dev/xvda3|g" $MNThdd/etc/fstab +sed -i -e "s|DEVICE4|/dev/xvda4|g" $MNThdd/etc/fstab + +sed -i -e "s|FSTYPE|$FSTYPE|g" $MNThdd/etc/fstab + +#Remove root / fstab check +rm -rf $MNThdd/etc/rc.d/rcsysinit.d/S19checkfstab +#Remove console init +rm -rf $MNThdd/etc/rc.d/rcsysinit.d/S70console + +#Add xvc0 to securetty +echo xvc0 >> $MNThdd/etc/securetty + +#Add getty for xvc0 +echo "#Enable login for XEN" >> $MNThdd/etc/inittab +echo "8:2345:respawn:/sbin/agetty xvc0 9600" >> $MNThdd/etc/inittab + +#Disable some initskripts +echo "#!/bin/sh" > $MNThdd/etc/rc.d/init.d/setclock +echo "#!/bin/sh" > $MNThdd/etc/rc.d/init.d/keymap + +#Remove autoload of acpi modules +sed -i -e "s|^ac|#ac|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^battery|#battery|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^button|#button|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^fan|#fan|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^processor|#processor|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^thermal|#thermal|g" $MNThdd/etc/sysconfig/modules +sed -i -e "s|^video|#video|g" $MNThdd/etc/sysconfig/modules + +# Unmount +umount $MNThdd/proc +umount $MNThdd/dev +umount $MNThdd/sys +umount $MNThdd/var +umount $MNThdd/boot +umount $MNThdd + +umount $ISODIR +rm -rf ./ipfire-tmp +echo -------------------------------------------------------- +echo - Done. +echo -------------------------------------------------------- diff --git a/doc/language_issues.de b/doc/language_issues.de index 07d7c7c..4add394 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -11,11 +11,15 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route +WARNING: translation string unused: addon WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password WARNING: translation string unused: advproxy LDAP auth @@ -38,6 +42,11 @@ WARNING: translation string unused: advproxy errmsg password incorrect WARNING: translation string unused: advproxy no cre groups WARNING: translation string unused: advproxy ssadvanced proxy WARNING: translation string unused: advproxy update notification +WARNING: translation string unused: age second +WARNING: translation string unused: age seconds +WARNING: translation string unused: age shour +WARNING: translation string unused: age sminute +WARNING: translation string unused: age ssecond WARNING: translation string unused: alcatelusb help WARNING: translation string unused: alcatelusb upload WARNING: translation string unused: all interfaces @@ -45,6 +54,7 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: apply WARNING: translation string unused: archive not exist @@ -68,6 +78,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: ccd err iroute WARNING: translation string unused: ccd err netadr @@ -109,6 +120,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -119,16 +135,25 @@ WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: driver +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -146,10 +171,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -158,6 +191,10 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forward firewall +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -166,6 +203,36 @@ WARNING: translation string unused: from email pw WARNING: translation string unused: from email server WARNING: translation string unused: from email user WARNING: translation string unused: from warn email bad +WARNING: translation string unused: fwdfw MODE1 +WARNING: translation string unused: fwdfw MODE2 +WARNING: translation string unused: fwdfw addrule +WARNING: translation string unused: fwdfw err prot_port1 +WARNING: translation string unused: fwdfw final_rule +WARNING: translation string unused: fwdfw from +WARNING: translation string unused: fwdfw ipsec network +WARNING: translation string unused: fwdfw man port +WARNING: translation string unused: fwdfw natport used +WARNING: translation string unused: fwdfw p2p txt +WARNING: translation string unused: fwdfw rule action +WARNING: translation string unused: fwdfw rules +WARNING: translation string unused: fwdfw std network +WARNING: translation string unused: fwdfw till +WARNING: translation string unused: fwdfw time +WARNING: translation string unused: fwdfw xt access +WARNING: translation string unused: fwhost attention +WARNING: translation string unused: fwhost blue +WARNING: translation string unused: fwhost changeremark +WARNING: translation string unused: fwhost err addrgrp +WARNING: translation string unused: fwhost err hostorip +WARNING: translation string unused: fwhost err mac +WARNING: translation string unused: fwhost green +WARNING: translation string unused: fwhost hosts +WARNING: translation string unused: fwhost ipadr +WARNING: translation string unused: fwhost ipsec host +WARNING: translation string unused: fwhost orange +WARNING: translation string unused: fwhost reread +WARNING: translation string unused: fwhost reset +WARNING: translation string unused: fwhost wo subnet WARNING: translation string unused: gen static key WARNING: translation string unused: generate WARNING: translation string unused: genkey @@ -182,6 +249,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -191,6 +262,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -220,6 +292,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -245,6 +318,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -261,6 +335,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -269,6 +344,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -286,6 +362,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: openvpn disabled WARNING: translation string unused: openvpn enabled WARNING: translation string unused: optional data @@ -296,7 +373,24 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: our donors WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -324,9 +418,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -337,8 +433,9 @@ WARNING: translation string unused: proxy no proxy extend WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk +WARNING: translation string unused: reboot ask WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice @@ -353,7 +450,9 @@ WARNING: translation string unused: router ip WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -364,20 +463,30 @@ WARNING: translation string unused: service updated WARNING: translation string unused: servicename WARNING: translation string unused: services settings WARNING: translation string unused: shaping list options -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -477,15 +586,18 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: addons +WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: bytes WARNING: untranslated string: community rules +WARNING: untranslated string: dead peer detection WARNING: untranslated string: emerging rules -WARNING: untranslated string: new -WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: fwhost err hostip WARNING: untranslated string: qos add subclass WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added diff --git a/doc/language_issues.en b/doc/language_issues.en index 7bdf4ca..416d9eb 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -39,6 +42,11 @@ WARNING: translation string unused: advproxy no cre groups WARNING: translation string unused: advproxy ssadvanced proxy WARNING: translation string unused: advproxy update information WARNING: translation string unused: advproxy update notification +WARNING: translation string unused: age second +WARNING: translation string unused: age seconds +WARNING: translation string unused: age shour +WARNING: translation string unused: age sminute +WARNING: translation string unused: age ssecond WARNING: translation string unused: alcatelusb help WARNING: translation string unused: alcatelusb upload WARNING: translation string unused: all interfaces @@ -46,6 +54,7 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply @@ -87,6 +96,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: ccd err iroute WARNING: translation string unused: ccd err netadr @@ -129,6 +139,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -141,17 +156,26 @@ WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -169,10 +193,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -181,6 +213,10 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forward firewall +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -189,6 +225,36 @@ WARNING: translation string unused: from email pw WARNING: translation string unused: from email server WARNING: translation string unused: from email user WARNING: translation string unused: from warn email bad +WARNING: translation string unused: fwdfw MODE1 +WARNING: translation string unused: fwdfw MODE2 +WARNING: translation string unused: fwdfw addrule +WARNING: translation string unused: fwdfw err prot_port1 +WARNING: translation string unused: fwdfw final_rule +WARNING: translation string unused: fwdfw from +WARNING: translation string unused: fwdfw ipsec network +WARNING: translation string unused: fwdfw man port +WARNING: translation string unused: fwdfw natport used +WARNING: translation string unused: fwdfw p2p txt +WARNING: translation string unused: fwdfw rule action +WARNING: translation string unused: fwdfw rules +WARNING: translation string unused: fwdfw std network +WARNING: translation string unused: fwdfw till +WARNING: translation string unused: fwdfw time +WARNING: translation string unused: fwdfw xt access +WARNING: translation string unused: fwhost attention +WARNING: translation string unused: fwhost blue +WARNING: translation string unused: fwhost changeremark +WARNING: translation string unused: fwhost err addrgrp +WARNING: translation string unused: fwhost err hostorip +WARNING: translation string unused: fwhost err mac +WARNING: translation string unused: fwhost green +WARNING: translation string unused: fwhost hosts +WARNING: translation string unused: fwhost ipadr +WARNING: translation string unused: fwhost ipsec host +WARNING: translation string unused: fwhost orange +WARNING: translation string unused: fwhost reread +WARNING: translation string unused: fwhost reset +WARNING: translation string unused: fwhost wo subnet WARNING: translation string unused: g.dtm WARNING: translation string unused: g.lite WARNING: translation string unused: gen static key @@ -207,6 +273,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -217,6 +287,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -246,6 +317,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -271,6 +343,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -287,6 +360,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -295,6 +369,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -313,6 +388,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: openvpn disabled WARNING: translation string unused: openvpn enabled WARNING: translation string unused: optional data @@ -323,7 +399,24 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: our donors WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -351,9 +444,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -365,8 +460,9 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice @@ -381,7 +477,9 @@ WARNING: translation string unused: router ip WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -395,20 +493,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -512,13 +620,14 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: bytes -WARNING: untranslated string: new -WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: fwhost err hostip WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed diff --git a/doc/language_issues.es b/doc/language_issues.es index f46723e..ab74343 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -46,6 +49,7 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply @@ -87,6 +91,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: cfg restart WARNING: translation string unused: check for net traffic update @@ -127,6 +132,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -139,17 +149,27 @@ WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -167,10 +187,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -179,6 +207,9 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -205,6 +236,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -215,6 +250,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -244,6 +280,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -269,6 +306,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -285,6 +323,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -293,6 +332,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -311,6 +351,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: optional data WARNING: translation string unused: optionsfw portlist hint WARNING: translation string unused: optionsfw warning @@ -318,8 +359,13 @@ WARNING: translation string unused: or WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname WARNING: translation string unused: outgoing firewall p2p description +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -347,9 +393,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -361,8 +409,9 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice @@ -377,7 +426,9 @@ WARNING: translation string unused: router ip WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -391,20 +442,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -497,22 +558,19 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Async logging enabled WARNING: untranslated string: Scan for Songs WARNING: untranslated string: Set time on boot +WARNING: untranslated string: addons WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: advproxy errmsg proxy ports equal WARNING: untranslated string: advproxy proxy port transparent -WARNING: untranslated string: age second -WARNING: untranslated string: age seconds -WARNING: untranslated string: age shour -WARNING: untranslated string: age sminute -WARNING: untranslated string: age ssecond WARNING: untranslated string: attention WARNING: untranslated string: bytes WARNING: untranslated string: ccd add @@ -550,7 +608,10 @@ WARNING: untranslated string: ccd none WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used +WARNING: untranslated string: dead peer detection +WARNING: untranslated string: default ip WARNING: untranslated string: deprecated fs warn +WARNING: untranslated string: dnat address WARNING: untranslated string: dnsforward WARNING: untranslated string: dnsforward add a new entry WARNING: untranslated string: dnsforward configuration @@ -558,7 +619,15 @@ WARNING: untranslated string: dnsforward edit an entry WARNING: untranslated string: dnsforward entries WARNING: untranslated string: dnsforward forward_server WARNING: untranslated string: dnsforward zone +WARNING: untranslated string: dpd delay +WARNING: untranslated string: dpd timeout +WARNING: untranslated string: drop action +WARNING: untranslated string: drop action1 +WARNING: untranslated string: drop action2 +WARNING: untranslated string: drop forward +WARNING: untranslated string: drop outgoing WARNING: untranslated string: emerging rules +WARNING: untranslated string: encryption WARNING: untranslated string: fireinfo ipfire version WARNING: untranslated string: fireinfo is disabled WARNING: untranslated string: fireinfo is enabled @@ -576,34 +645,170 @@ WARNING: untranslated string: fireinfo why descr2 WARNING: untranslated string: fireinfo why enable WARNING: untranslated string: fireinfo why read more WARNING: untranslated string: fireinfo your profile id +WARNING: untranslated string: firewall rules +WARNING: untranslated string: fw default drop +WARNING: untranslated string: fw settings +WARNING: untranslated string: fw settings color +WARNING: untranslated string: fw settings dropdown +WARNING: untranslated string: fw settings remark +WARNING: untranslated string: fw settings ruletable +WARNING: untranslated string: fwdfw ACCEPT +WARNING: untranslated string: fwdfw DROP +WARNING: untranslated string: fwdfw REJECT +WARNING: untranslated string: fwdfw action +WARNING: untranslated string: fwdfw additional +WARNING: untranslated string: fwdfw all icmp +WARNING: untranslated string: fwdfw change +WARNING: untranslated string: fwdfw copy +WARNING: untranslated string: fwdfw delete +WARNING: untranslated string: fwdfw dnat +WARNING: untranslated string: fwdfw dnat error +WARNING: untranslated string: fwdfw dnat porterr +WARNING: untranslated string: fwdfw dnat porterr2 +WARNING: untranslated string: fwdfw edit +WARNING: untranslated string: fwdfw err nosrc +WARNING: untranslated string: fwdfw err nosrcip +WARNING: untranslated string: fwdfw err notgt +WARNING: untranslated string: fwdfw err notgtip +WARNING: untranslated string: fwdfw err prot_port +WARNING: untranslated string: fwdfw err remark +WARNING: untranslated string: fwdfw err ruleexists +WARNING: untranslated string: fwdfw err same +WARNING: untranslated string: fwdfw err samesub +WARNING: untranslated string: fwdfw err src_addr +WARNING: untranslated string: fwdfw err tgt_addr +WARNING: untranslated string: fwdfw err tgt_grp +WARNING: untranslated string: fwdfw err tgt_mac +WARNING: untranslated string: fwdfw err tgt_port +WARNING: untranslated string: fwdfw err time +WARNING: untranslated string: fwdfw external port nat +WARNING: untranslated string: fwdfw hint ip1 +WARNING: untranslated string: fwdfw hint ip2 +WARNING: untranslated string: fwdfw iface +WARNING: untranslated string: fwdfw log +WARNING: untranslated string: fwdfw log rule +WARNING: untranslated string: fwdfw menu +WARNING: untranslated string: fwdfw movedown +WARNING: untranslated string: fwdfw moveup +WARNING: untranslated string: fwdfw newrule +WARNING: untranslated string: fwdfw pol allow +WARNING: untranslated string: fwdfw pol block +WARNING: untranslated string: fwdfw pol text +WARNING: untranslated string: fwdfw pol text1 +WARNING: untranslated string: fwdfw pol title +WARNING: untranslated string: fwdfw prot41 +WARNING: untranslated string: fwdfw prot41 short +WARNING: untranslated string: fwdfw red +WARNING: untranslated string: fwdfw reread +WARNING: untranslated string: fwdfw rule activate +WARNING: untranslated string: fwdfw rulepos +WARNING: untranslated string: fwdfw snat +WARNING: untranslated string: fwdfw source +WARNING: untranslated string: fwdfw sourceip +WARNING: untranslated string: fwdfw target +WARNING: untranslated string: fwdfw targetip +WARNING: untranslated string: fwdfw timeframe +WARNING: untranslated string: fwdfw toggle +WARNING: untranslated string: fwdfw togglelog +WARNING: untranslated string: fwdfw use nat +WARNING: untranslated string: fwdfw use srcport +WARNING: untranslated string: fwdfw use srv +WARNING: untranslated string: fwdfw useless rule +WARNING: untranslated string: fwdfw wd_fri +WARNING: untranslated string: fwdfw wd_mon +WARNING: untranslated string: fwdfw wd_sat +WARNING: untranslated string: fwdfw wd_sun +WARNING: untranslated string: fwdfw wd_thu +WARNING: untranslated string: fwdfw wd_tue +WARNING: untranslated string: fwdfw wd_wed +WARNING: untranslated string: fwhost addgrp +WARNING: untranslated string: fwhost addgrpname +WARNING: untranslated string: fwhost addhost +WARNING: untranslated string: fwhost addnet +WARNING: untranslated string: fwhost addservice +WARNING: untranslated string: fwhost addservicegrp +WARNING: untranslated string: fwhost any +WARNING: untranslated string: fwhost back +WARNING: untranslated string: fwhost ccdhost +WARNING: untranslated string: fwhost ccdnet +WARNING: untranslated string: fwhost change +WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust grp +WARNING: untranslated string: fwhost cust net +WARNING: untranslated string: fwhost cust service +WARNING: untranslated string: fwhost cust srvgrp +WARNING: untranslated string: fwhost deleted +WARNING: untranslated string: fwhost empty +WARNING: untranslated string: fwhost err addr +WARNING: untranslated string: fwhost err empty +WARNING: untranslated string: fwhost err emptytable +WARNING: untranslated string: fwhost err groupempty +WARNING: untranslated string: fwhost err grpexist +WARNING: untranslated string: fwhost err hostexist +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost err ip +WARNING: untranslated string: fwhost err ipcheck +WARNING: untranslated string: fwhost err ipmac +WARNING: untranslated string: fwhost err ipwithsub +WARNING: untranslated string: fwhost err isccdhost +WARNING: untranslated string: fwhost err isccdiphost +WARNING: untranslated string: fwhost err isccdipnet +WARNING: untranslated string: fwhost err isccdnet +WARNING: untranslated string: fwhost err isingrp +WARNING: untranslated string: fwhost err maxservicetcp +WARNING: untranslated string: fwhost err maxserviceudp +WARNING: untranslated string: fwhost err name +WARNING: untranslated string: fwhost err name1 +WARNING: untranslated string: fwhost err net +WARNING: untranslated string: fwhost err netexist +WARNING: untranslated string: fwhost err partofnet +WARNING: untranslated string: fwhost err port +WARNING: untranslated string: fwhost err remark +WARNING: untranslated string: fwhost err srv exists +WARNING: untranslated string: fwhost err srvexist +WARNING: untranslated string: fwhost err sub32 +WARNING: untranslated string: fwhost hint +WARNING: untranslated string: fwhost icmptype +WARNING: untranslated string: fwhost ip_mac +WARNING: untranslated string: fwhost ipsec net +WARNING: untranslated string: fwhost menu +WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgrp +WARNING: untranslated string: fwhost newhost +WARNING: untranslated string: fwhost newnet +WARNING: untranslated string: fwhost newservice +WARNING: untranslated string: fwhost newservicegrp +WARNING: untranslated string: fwhost ovpn_n2n +WARNING: untranslated string: fwhost port +WARNING: untranslated string: fwhost prot +WARNING: untranslated string: fwhost services +WARNING: untranslated string: fwhost srv_name +WARNING: untranslated string: fwhost stdnet +WARNING: untranslated string: fwhost type +WARNING: untranslated string: fwhost used +WARNING: untranslated string: fwhost welcome +WARNING: untranslated string: grouptype +WARNING: untranslated string: integrity +WARNING: untranslated string: invalid input for dpd delay +WARNING: untranslated string: invalid input for dpd timeout +WARNING: untranslated string: ipsec network WARNING: untranslated string: least preferred +WARNING: untranslated string: lifetime WARNING: untranslated string: minute WARNING: untranslated string: most preferred -WARNING: untranslated string: new +WARNING: untranslated string: notice WARNING: untranslated string: openvpn default WARNING: untranslated string: openvpn destination port used WARNING: untranslated string: openvpn fragment allowed with udp WARNING: untranslated string: openvpn mssfix allowed with udp +WARNING: untranslated string: openvpn network WARNING: untranslated string: openvpn prefix local subnet WARNING: untranslated string: openvpn prefix openvpn subnet WARNING: untranslated string: openvpn prefix remote subnet WARNING: untranslated string: openvpn subnet is used WARNING: untranslated string: other -WARNING: untranslated string: outgoing firewall add ip group -WARNING: untranslated string: outgoing firewall add mac group -WARNING: untranslated string: outgoing firewall edit ip group -WARNING: untranslated string: outgoing firewall edit mac group -WARNING: untranslated string: outgoing firewall group error -WARNING: untranslated string: outgoing firewall groups -WARNING: untranslated string: outgoing firewall ip groups -WARNING: untranslated string: outgoing firewall mac groups WARNING: untranslated string: outgoing firewall p2p allow WARNING: untranslated string: outgoing firewall p2p deny -WARNING: untranslated string: outgoing firewall p2p description 1 -WARNING: untranslated string: outgoing firewall p2p description 2 -WARNING: untranslated string: outgoing firewall p2p description 3 -WARNING: untranslated string: outgoing firewall reserved groupname -WARNING: untranslated string: outgoing firewall view group WARNING: untranslated string: ovpn errmsg green already pushed WARNING: untranslated string: ovpn errmsg invalid ip or mask WARNING: untranslated string: ovpn mtu-disc @@ -615,6 +820,8 @@ WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment WARNING: untranslated string: ovpn mtu-disc yes WARNING: untranslated string: ovpn routes push WARNING: untranslated string: ovpn routes push options +WARNING: untranslated string: p2p block +WARNING: untranslated string: p2p block save notice WARNING: untranslated string: pakfire ago WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily @@ -622,12 +829,16 @@ WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly WARNING: untranslated string: qos enter bandwidths +WARNING: untranslated string: red1 WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table WARNING: untranslated string: server restart +WARNING: untranslated string: snat new source ip address +WARNING: untranslated string: ssh WARNING: untranslated string: static routes +WARNING: untranslated string: support donation WARNING: untranslated string: system information WARNING: untranslated string: tor WARNING: untranslated string: tor accounting diff --git a/doc/language_issues.fr b/doc/language_issues.fr index 32aa9b5..ad06662 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -46,6 +49,7 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply @@ -87,6 +91,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: cfg restart WARNING: translation string unused: check for net traffic update @@ -127,6 +132,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -139,17 +149,27 @@ WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -167,10 +187,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -179,6 +207,9 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -205,6 +236,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -215,6 +250,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -244,6 +280,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -269,6 +306,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -285,6 +323,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -293,6 +332,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -311,6 +351,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: optional data WARNING: translation string unused: optionsfw portlist hint WARNING: translation string unused: optionsfw warning @@ -318,7 +359,24 @@ WARNING: translation string unused: or WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -346,9 +404,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -360,8 +420,9 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice @@ -376,7 +437,9 @@ WARNING: translation string unused: router ip WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -390,20 +453,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -498,20 +571,17 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: addons WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: advproxy errmsg proxy ports equal WARNING: untranslated string: advproxy proxy port transparent -WARNING: untranslated string: age second -WARNING: untranslated string: age seconds -WARNING: untranslated string: age shour -WARNING: untranslated string: age sminute -WARNING: untranslated string: age ssecond WARNING: untranslated string: attention WARNING: untranslated string: bytes WARNING: untranslated string: ccd add @@ -549,7 +619,10 @@ WARNING: untranslated string: ccd none WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used +WARNING: untranslated string: dead peer detection +WARNING: untranslated string: default ip WARNING: untranslated string: deprecated fs warn +WARNING: untranslated string: dnat address WARNING: untranslated string: dns address deleted txt WARNING: untranslated string: dnsforward WARNING: untranslated string: dnsforward add a new entry @@ -558,7 +631,15 @@ WARNING: untranslated string: dnsforward edit an entry WARNING: untranslated string: dnsforward entries WARNING: untranslated string: dnsforward forward_server WARNING: untranslated string: dnsforward zone +WARNING: untranslated string: dpd delay +WARNING: untranslated string: dpd timeout +WARNING: untranslated string: drop action +WARNING: untranslated string: drop action1 +WARNING: untranslated string: drop action2 +WARNING: untranslated string: drop forward +WARNING: untranslated string: drop outgoing WARNING: untranslated string: emerging rules +WARNING: untranslated string: encryption WARNING: untranslated string: fireinfo ipfire version WARNING: untranslated string: fireinfo is disabled WARNING: untranslated string: fireinfo is enabled @@ -576,22 +657,170 @@ WARNING: untranslated string: fireinfo why descr2 WARNING: untranslated string: fireinfo why enable WARNING: untranslated string: fireinfo why read more WARNING: untranslated string: fireinfo your profile id +WARNING: untranslated string: firewall rules +WARNING: untranslated string: fw default drop +WARNING: untranslated string: fw settings +WARNING: untranslated string: fw settings color +WARNING: untranslated string: fw settings dropdown +WARNING: untranslated string: fw settings remark +WARNING: untranslated string: fw settings ruletable +WARNING: untranslated string: fwdfw ACCEPT +WARNING: untranslated string: fwdfw DROP +WARNING: untranslated string: fwdfw REJECT +WARNING: untranslated string: fwdfw action +WARNING: untranslated string: fwdfw additional +WARNING: untranslated string: fwdfw all icmp +WARNING: untranslated string: fwdfw change +WARNING: untranslated string: fwdfw copy +WARNING: untranslated string: fwdfw delete +WARNING: untranslated string: fwdfw dnat +WARNING: untranslated string: fwdfw dnat error +WARNING: untranslated string: fwdfw dnat porterr +WARNING: untranslated string: fwdfw dnat porterr2 +WARNING: untranslated string: fwdfw edit +WARNING: untranslated string: fwdfw err nosrc +WARNING: untranslated string: fwdfw err nosrcip +WARNING: untranslated string: fwdfw err notgt +WARNING: untranslated string: fwdfw err notgtip +WARNING: untranslated string: fwdfw err prot_port +WARNING: untranslated string: fwdfw err remark +WARNING: untranslated string: fwdfw err ruleexists +WARNING: untranslated string: fwdfw err same +WARNING: untranslated string: fwdfw err samesub +WARNING: untranslated string: fwdfw err src_addr +WARNING: untranslated string: fwdfw err tgt_addr +WARNING: untranslated string: fwdfw err tgt_grp +WARNING: untranslated string: fwdfw err tgt_mac +WARNING: untranslated string: fwdfw err tgt_port +WARNING: untranslated string: fwdfw err time +WARNING: untranslated string: fwdfw external port nat +WARNING: untranslated string: fwdfw hint ip1 +WARNING: untranslated string: fwdfw hint ip2 +WARNING: untranslated string: fwdfw iface +WARNING: untranslated string: fwdfw log +WARNING: untranslated string: fwdfw log rule +WARNING: untranslated string: fwdfw menu +WARNING: untranslated string: fwdfw movedown +WARNING: untranslated string: fwdfw moveup +WARNING: untranslated string: fwdfw newrule +WARNING: untranslated string: fwdfw pol allow +WARNING: untranslated string: fwdfw pol block +WARNING: untranslated string: fwdfw pol text +WARNING: untranslated string: fwdfw pol text1 +WARNING: untranslated string: fwdfw pol title +WARNING: untranslated string: fwdfw prot41 +WARNING: untranslated string: fwdfw prot41 short +WARNING: untranslated string: fwdfw red +WARNING: untranslated string: fwdfw reread +WARNING: untranslated string: fwdfw rule activate +WARNING: untranslated string: fwdfw rulepos +WARNING: untranslated string: fwdfw snat +WARNING: untranslated string: fwdfw source +WARNING: untranslated string: fwdfw sourceip +WARNING: untranslated string: fwdfw target +WARNING: untranslated string: fwdfw targetip +WARNING: untranslated string: fwdfw timeframe +WARNING: untranslated string: fwdfw toggle +WARNING: untranslated string: fwdfw togglelog +WARNING: untranslated string: fwdfw use nat +WARNING: untranslated string: fwdfw use srcport +WARNING: untranslated string: fwdfw use srv +WARNING: untranslated string: fwdfw useless rule +WARNING: untranslated string: fwdfw wd_fri +WARNING: untranslated string: fwdfw wd_mon +WARNING: untranslated string: fwdfw wd_sat +WARNING: untranslated string: fwdfw wd_sun +WARNING: untranslated string: fwdfw wd_thu +WARNING: untranslated string: fwdfw wd_tue +WARNING: untranslated string: fwdfw wd_wed +WARNING: untranslated string: fwhost addgrp +WARNING: untranslated string: fwhost addgrpname +WARNING: untranslated string: fwhost addhost +WARNING: untranslated string: fwhost addnet +WARNING: untranslated string: fwhost addservice +WARNING: untranslated string: fwhost addservicegrp +WARNING: untranslated string: fwhost any +WARNING: untranslated string: fwhost back +WARNING: untranslated string: fwhost ccdhost +WARNING: untranslated string: fwhost ccdnet +WARNING: untranslated string: fwhost change +WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust grp +WARNING: untranslated string: fwhost cust net +WARNING: untranslated string: fwhost cust service +WARNING: untranslated string: fwhost cust srvgrp +WARNING: untranslated string: fwhost deleted +WARNING: untranslated string: fwhost empty +WARNING: untranslated string: fwhost err addr +WARNING: untranslated string: fwhost err empty +WARNING: untranslated string: fwhost err emptytable +WARNING: untranslated string: fwhost err groupempty +WARNING: untranslated string: fwhost err grpexist +WARNING: untranslated string: fwhost err hostexist +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost err ip +WARNING: untranslated string: fwhost err ipcheck +WARNING: untranslated string: fwhost err ipmac +WARNING: untranslated string: fwhost err ipwithsub +WARNING: untranslated string: fwhost err isccdhost +WARNING: untranslated string: fwhost err isccdiphost +WARNING: untranslated string: fwhost err isccdipnet +WARNING: untranslated string: fwhost err isccdnet +WARNING: untranslated string: fwhost err isingrp +WARNING: untranslated string: fwhost err maxservicetcp +WARNING: untranslated string: fwhost err maxserviceudp +WARNING: untranslated string: fwhost err name +WARNING: untranslated string: fwhost err name1 +WARNING: untranslated string: fwhost err net +WARNING: untranslated string: fwhost err netexist +WARNING: untranslated string: fwhost err partofnet +WARNING: untranslated string: fwhost err port +WARNING: untranslated string: fwhost err remark +WARNING: untranslated string: fwhost err srv exists +WARNING: untranslated string: fwhost err srvexist +WARNING: untranslated string: fwhost err sub32 +WARNING: untranslated string: fwhost hint +WARNING: untranslated string: fwhost icmptype +WARNING: untranslated string: fwhost ip_mac +WARNING: untranslated string: fwhost ipsec net +WARNING: untranslated string: fwhost menu +WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgrp +WARNING: untranslated string: fwhost newhost +WARNING: untranslated string: fwhost newnet +WARNING: untranslated string: fwhost newservice +WARNING: untranslated string: fwhost newservicegrp +WARNING: untranslated string: fwhost ovpn_n2n +WARNING: untranslated string: fwhost port +WARNING: untranslated string: fwhost prot +WARNING: untranslated string: fwhost services +WARNING: untranslated string: fwhost srv_name +WARNING: untranslated string: fwhost stdnet +WARNING: untranslated string: fwhost type +WARNING: untranslated string: fwhost used +WARNING: untranslated string: fwhost welcome +WARNING: untranslated string: grouptype +WARNING: untranslated string: integrity +WARNING: untranslated string: invalid input for dpd delay +WARNING: untranslated string: invalid input for dpd timeout +WARNING: untranslated string: ipsec network WARNING: untranslated string: least preferred +WARNING: untranslated string: lifetime WARNING: untranslated string: minute WARNING: untranslated string: most preferred -WARNING: untranslated string: new +WARNING: untranslated string: notice WARNING: untranslated string: ntp common settings WARNING: untranslated string: ntp sync WARNING: untranslated string: openvpn default WARNING: untranslated string: openvpn destination port used WARNING: untranslated string: openvpn fragment allowed with udp WARNING: untranslated string: openvpn mssfix allowed with udp +WARNING: untranslated string: openvpn network WARNING: untranslated string: openvpn prefix local subnet WARNING: untranslated string: openvpn prefix openvpn subnet WARNING: untranslated string: openvpn prefix remote subnet WARNING: untranslated string: openvpn subnet is used WARNING: untranslated string: other -WARNING: untranslated string: outgoing firewall reserved groupname WARNING: untranslated string: ovpn mtu-disc WARNING: untranslated string: ovpn mtu-disc and mtu not 1500 WARNING: untranslated string: ovpn mtu-disc maybe @@ -599,6 +828,8 @@ WARNING: untranslated string: ovpn mtu-disc no WARNING: untranslated string: ovpn mtu-disc off WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment WARNING: untranslated string: ovpn mtu-disc yes +WARNING: untranslated string: p2p block +WARNING: untranslated string: p2p block save notice WARNING: untranslated string: pakfire ago WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily @@ -606,13 +837,17 @@ WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly WARNING: untranslated string: qos enter bandwidths +WARNING: untranslated string: red1 WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table WARNING: untranslated string: server restart +WARNING: untranslated string: snat new source ip address WARNING: untranslated string: snort working +WARNING: untranslated string: ssh WARNING: untranslated string: static routes +WARNING: untranslated string: support donation WARNING: untranslated string: system information WARNING: untranslated string: tor WARNING: untranslated string: tor accounting diff --git a/doc/language_issues.nl b/doc/language_issues.nl index cdde0f3..6b5c2f4 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -46,6 +49,7 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply @@ -87,6 +91,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: ccd err iroute WARNING: translation string unused: ccd err netadr @@ -129,6 +134,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -141,17 +151,27 @@ WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -169,10 +189,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -181,6 +209,9 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -207,6 +238,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -217,6 +252,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -246,6 +282,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -271,6 +308,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -287,6 +325,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -295,6 +334,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -313,6 +353,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: openvpn disabled WARNING: translation string unused: openvpn enabled WARNING: translation string unused: optional data @@ -323,7 +364,24 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: our donors WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -351,9 +409,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -365,8 +425,9 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice @@ -381,7 +442,9 @@ WARNING: translation string unused: router ip WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -395,20 +458,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -501,20 +574,20 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: addons WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg proxy ports equal WARNING: untranslated string: advproxy proxy port transparent -WARNING: untranslated string: age second -WARNING: untranslated string: age seconds -WARNING: untranslated string: age shour -WARNING: untranslated string: age sminute -WARNING: untranslated string: age ssecond WARNING: untranslated string: bytes WARNING: untranslated string: ccd iroute2 +WARNING: untranslated string: dead peer detection +WARNING: untranslated string: default ip +WARNING: untranslated string: dnat address WARNING: untranslated string: dnsforward WARNING: untranslated string: dnsforward add a new entry WARNING: untranslated string: dnsforward configuration @@ -522,15 +595,177 @@ WARNING: untranslated string: dnsforward edit an entry WARNING: untranslated string: dnsforward entries WARNING: untranslated string: dnsforward forward_server WARNING: untranslated string: dnsforward zone +WARNING: untranslated string: dpd delay +WARNING: untranslated string: dpd timeout +WARNING: untranslated string: drop action +WARNING: untranslated string: drop action1 +WARNING: untranslated string: drop action2 +WARNING: untranslated string: drop forward +WARNING: untranslated string: drop outgoing +WARNING: untranslated string: encryption +WARNING: untranslated string: firewall rules +WARNING: untranslated string: fw default drop +WARNING: untranslated string: fw settings +WARNING: untranslated string: fw settings color +WARNING: untranslated string: fw settings dropdown +WARNING: untranslated string: fw settings remark +WARNING: untranslated string: fw settings ruletable +WARNING: untranslated string: fwdfw ACCEPT +WARNING: untranslated string: fwdfw DROP +WARNING: untranslated string: fwdfw REJECT +WARNING: untranslated string: fwdfw action +WARNING: untranslated string: fwdfw additional +WARNING: untranslated string: fwdfw all icmp +WARNING: untranslated string: fwdfw change +WARNING: untranslated string: fwdfw copy +WARNING: untranslated string: fwdfw delete +WARNING: untranslated string: fwdfw dnat +WARNING: untranslated string: fwdfw dnat error +WARNING: untranslated string: fwdfw dnat porterr +WARNING: untranslated string: fwdfw dnat porterr2 +WARNING: untranslated string: fwdfw edit +WARNING: untranslated string: fwdfw err nosrc +WARNING: untranslated string: fwdfw err nosrcip +WARNING: untranslated string: fwdfw err notgt +WARNING: untranslated string: fwdfw err notgtip +WARNING: untranslated string: fwdfw err prot_port +WARNING: untranslated string: fwdfw err remark +WARNING: untranslated string: fwdfw err ruleexists +WARNING: untranslated string: fwdfw err same +WARNING: untranslated string: fwdfw err samesub +WARNING: untranslated string: fwdfw err src_addr +WARNING: untranslated string: fwdfw err tgt_addr +WARNING: untranslated string: fwdfw err tgt_grp +WARNING: untranslated string: fwdfw err tgt_mac +WARNING: untranslated string: fwdfw err tgt_port +WARNING: untranslated string: fwdfw err time +WARNING: untranslated string: fwdfw external port nat +WARNING: untranslated string: fwdfw hint ip1 +WARNING: untranslated string: fwdfw hint ip2 +WARNING: untranslated string: fwdfw iface +WARNING: untranslated string: fwdfw log +WARNING: untranslated string: fwdfw log rule +WARNING: untranslated string: fwdfw menu +WARNING: untranslated string: fwdfw movedown +WARNING: untranslated string: fwdfw moveup +WARNING: untranslated string: fwdfw newrule +WARNING: untranslated string: fwdfw pol allow +WARNING: untranslated string: fwdfw pol block +WARNING: untranslated string: fwdfw pol text +WARNING: untranslated string: fwdfw pol text1 +WARNING: untranslated string: fwdfw pol title +WARNING: untranslated string: fwdfw prot41 +WARNING: untranslated string: fwdfw prot41 short +WARNING: untranslated string: fwdfw red +WARNING: untranslated string: fwdfw reread +WARNING: untranslated string: fwdfw rule activate +WARNING: untranslated string: fwdfw rulepos +WARNING: untranslated string: fwdfw snat +WARNING: untranslated string: fwdfw source +WARNING: untranslated string: fwdfw sourceip +WARNING: untranslated string: fwdfw target +WARNING: untranslated string: fwdfw targetip +WARNING: untranslated string: fwdfw timeframe +WARNING: untranslated string: fwdfw toggle +WARNING: untranslated string: fwdfw togglelog +WARNING: untranslated string: fwdfw use nat +WARNING: untranslated string: fwdfw use srcport +WARNING: untranslated string: fwdfw use srv +WARNING: untranslated string: fwdfw useless rule +WARNING: untranslated string: fwdfw wd_fri +WARNING: untranslated string: fwdfw wd_mon +WARNING: untranslated string: fwdfw wd_sat +WARNING: untranslated string: fwdfw wd_sun +WARNING: untranslated string: fwdfw wd_thu +WARNING: untranslated string: fwdfw wd_tue +WARNING: untranslated string: fwdfw wd_wed +WARNING: untranslated string: fwhost addgrp +WARNING: untranslated string: fwhost addgrpname +WARNING: untranslated string: fwhost addhost +WARNING: untranslated string: fwhost addnet +WARNING: untranslated string: fwhost addservice +WARNING: untranslated string: fwhost addservicegrp +WARNING: untranslated string: fwhost any +WARNING: untranslated string: fwhost back +WARNING: untranslated string: fwhost ccdhost +WARNING: untranslated string: fwhost ccdnet +WARNING: untranslated string: fwhost change +WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust grp +WARNING: untranslated string: fwhost cust net +WARNING: untranslated string: fwhost cust service +WARNING: untranslated string: fwhost cust srvgrp +WARNING: untranslated string: fwhost deleted +WARNING: untranslated string: fwhost empty +WARNING: untranslated string: fwhost err addr +WARNING: untranslated string: fwhost err empty +WARNING: untranslated string: fwhost err emptytable +WARNING: untranslated string: fwhost err groupempty +WARNING: untranslated string: fwhost err grpexist +WARNING: untranslated string: fwhost err hostexist +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost err ip +WARNING: untranslated string: fwhost err ipcheck +WARNING: untranslated string: fwhost err ipmac +WARNING: untranslated string: fwhost err ipwithsub +WARNING: untranslated string: fwhost err isccdhost +WARNING: untranslated string: fwhost err isccdiphost +WARNING: untranslated string: fwhost err isccdipnet +WARNING: untranslated string: fwhost err isccdnet +WARNING: untranslated string: fwhost err isingrp +WARNING: untranslated string: fwhost err maxservicetcp +WARNING: untranslated string: fwhost err maxserviceudp +WARNING: untranslated string: fwhost err name +WARNING: untranslated string: fwhost err name1 +WARNING: untranslated string: fwhost err net +WARNING: untranslated string: fwhost err netexist +WARNING: untranslated string: fwhost err partofnet +WARNING: untranslated string: fwhost err port +WARNING: untranslated string: fwhost err remark +WARNING: untranslated string: fwhost err srv exists +WARNING: untranslated string: fwhost err srvexist +WARNING: untranslated string: fwhost err sub32 +WARNING: untranslated string: fwhost hint +WARNING: untranslated string: fwhost icmptype +WARNING: untranslated string: fwhost ip_mac +WARNING: untranslated string: fwhost ipsec net +WARNING: untranslated string: fwhost menu +WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgrp +WARNING: untranslated string: fwhost newhost +WARNING: untranslated string: fwhost newnet +WARNING: untranslated string: fwhost newservice +WARNING: untranslated string: fwhost newservicegrp +WARNING: untranslated string: fwhost ovpn_n2n +WARNING: untranslated string: fwhost port +WARNING: untranslated string: fwhost prot +WARNING: untranslated string: fwhost services +WARNING: untranslated string: fwhost srv_name +WARNING: untranslated string: fwhost stdnet +WARNING: untranslated string: fwhost type +WARNING: untranslated string: fwhost used +WARNING: untranslated string: fwhost welcome +WARNING: untranslated string: grouptype +WARNING: untranslated string: integrity +WARNING: untranslated string: invalid input for dpd delay +WARNING: untranslated string: invalid input for dpd timeout +WARNING: untranslated string: ipsec network WARNING: untranslated string: least preferred +WARNING: untranslated string: lifetime WARNING: untranslated string: most preferred -WARNING: untranslated string: new -WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: notice +WARNING: untranslated string: openvpn network +WARNING: untranslated string: p2p block +WARNING: untranslated string: p2p block save notice WARNING: untranslated string: qos enter bandwidths +WARNING: untranslated string: red1 WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: snat new source ip address +WARNING: untranslated string: ssh +WARNING: untranslated string: support donation WARNING: untranslated string: tor WARNING: untranslated string: tor accounting WARNING: untranslated string: tor accounting bytes diff --git a/doc/language_issues.pl b/doc/language_issues.pl index f46723e..ab74343 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -46,6 +49,7 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply @@ -87,6 +91,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: cfg restart WARNING: translation string unused: check for net traffic update @@ -127,6 +132,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -139,17 +149,27 @@ WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -167,10 +187,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -179,6 +207,9 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -205,6 +236,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -215,6 +250,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -244,6 +280,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -269,6 +306,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -285,6 +323,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -293,6 +332,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -311,6 +351,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: optional data WARNING: translation string unused: optionsfw portlist hint WARNING: translation string unused: optionsfw warning @@ -318,8 +359,13 @@ WARNING: translation string unused: or WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname WARNING: translation string unused: outgoing firewall p2p description +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -347,9 +393,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -361,8 +409,9 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice @@ -377,7 +426,9 @@ WARNING: translation string unused: router ip WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -391,20 +442,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -497,22 +558,19 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Async logging enabled WARNING: untranslated string: Scan for Songs WARNING: untranslated string: Set time on boot +WARNING: untranslated string: addons WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: advproxy errmsg proxy ports equal WARNING: untranslated string: advproxy proxy port transparent -WARNING: untranslated string: age second -WARNING: untranslated string: age seconds -WARNING: untranslated string: age shour -WARNING: untranslated string: age sminute -WARNING: untranslated string: age ssecond WARNING: untranslated string: attention WARNING: untranslated string: bytes WARNING: untranslated string: ccd add @@ -550,7 +608,10 @@ WARNING: untranslated string: ccd none WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used +WARNING: untranslated string: dead peer detection +WARNING: untranslated string: default ip WARNING: untranslated string: deprecated fs warn +WARNING: untranslated string: dnat address WARNING: untranslated string: dnsforward WARNING: untranslated string: dnsforward add a new entry WARNING: untranslated string: dnsforward configuration @@ -558,7 +619,15 @@ WARNING: untranslated string: dnsforward edit an entry WARNING: untranslated string: dnsforward entries WARNING: untranslated string: dnsforward forward_server WARNING: untranslated string: dnsforward zone +WARNING: untranslated string: dpd delay +WARNING: untranslated string: dpd timeout +WARNING: untranslated string: drop action +WARNING: untranslated string: drop action1 +WARNING: untranslated string: drop action2 +WARNING: untranslated string: drop forward +WARNING: untranslated string: drop outgoing WARNING: untranslated string: emerging rules +WARNING: untranslated string: encryption WARNING: untranslated string: fireinfo ipfire version WARNING: untranslated string: fireinfo is disabled WARNING: untranslated string: fireinfo is enabled @@ -576,34 +645,170 @@ WARNING: untranslated string: fireinfo why descr2 WARNING: untranslated string: fireinfo why enable WARNING: untranslated string: fireinfo why read more WARNING: untranslated string: fireinfo your profile id +WARNING: untranslated string: firewall rules +WARNING: untranslated string: fw default drop +WARNING: untranslated string: fw settings +WARNING: untranslated string: fw settings color +WARNING: untranslated string: fw settings dropdown +WARNING: untranslated string: fw settings remark +WARNING: untranslated string: fw settings ruletable +WARNING: untranslated string: fwdfw ACCEPT +WARNING: untranslated string: fwdfw DROP +WARNING: untranslated string: fwdfw REJECT +WARNING: untranslated string: fwdfw action +WARNING: untranslated string: fwdfw additional +WARNING: untranslated string: fwdfw all icmp +WARNING: untranslated string: fwdfw change +WARNING: untranslated string: fwdfw copy +WARNING: untranslated string: fwdfw delete +WARNING: untranslated string: fwdfw dnat +WARNING: untranslated string: fwdfw dnat error +WARNING: untranslated string: fwdfw dnat porterr +WARNING: untranslated string: fwdfw dnat porterr2 +WARNING: untranslated string: fwdfw edit +WARNING: untranslated string: fwdfw err nosrc +WARNING: untranslated string: fwdfw err nosrcip +WARNING: untranslated string: fwdfw err notgt +WARNING: untranslated string: fwdfw err notgtip +WARNING: untranslated string: fwdfw err prot_port +WARNING: untranslated string: fwdfw err remark +WARNING: untranslated string: fwdfw err ruleexists +WARNING: untranslated string: fwdfw err same +WARNING: untranslated string: fwdfw err samesub +WARNING: untranslated string: fwdfw err src_addr +WARNING: untranslated string: fwdfw err tgt_addr +WARNING: untranslated string: fwdfw err tgt_grp +WARNING: untranslated string: fwdfw err tgt_mac +WARNING: untranslated string: fwdfw err tgt_port +WARNING: untranslated string: fwdfw err time +WARNING: untranslated string: fwdfw external port nat +WARNING: untranslated string: fwdfw hint ip1 +WARNING: untranslated string: fwdfw hint ip2 +WARNING: untranslated string: fwdfw iface +WARNING: untranslated string: fwdfw log +WARNING: untranslated string: fwdfw log rule +WARNING: untranslated string: fwdfw menu +WARNING: untranslated string: fwdfw movedown +WARNING: untranslated string: fwdfw moveup +WARNING: untranslated string: fwdfw newrule +WARNING: untranslated string: fwdfw pol allow +WARNING: untranslated string: fwdfw pol block +WARNING: untranslated string: fwdfw pol text +WARNING: untranslated string: fwdfw pol text1 +WARNING: untranslated string: fwdfw pol title +WARNING: untranslated string: fwdfw prot41 +WARNING: untranslated string: fwdfw prot41 short +WARNING: untranslated string: fwdfw red +WARNING: untranslated string: fwdfw reread +WARNING: untranslated string: fwdfw rule activate +WARNING: untranslated string: fwdfw rulepos +WARNING: untranslated string: fwdfw snat +WARNING: untranslated string: fwdfw source +WARNING: untranslated string: fwdfw sourceip +WARNING: untranslated string: fwdfw target +WARNING: untranslated string: fwdfw targetip +WARNING: untranslated string: fwdfw timeframe +WARNING: untranslated string: fwdfw toggle +WARNING: untranslated string: fwdfw togglelog +WARNING: untranslated string: fwdfw use nat +WARNING: untranslated string: fwdfw use srcport +WARNING: untranslated string: fwdfw use srv +WARNING: untranslated string: fwdfw useless rule +WARNING: untranslated string: fwdfw wd_fri +WARNING: untranslated string: fwdfw wd_mon +WARNING: untranslated string: fwdfw wd_sat +WARNING: untranslated string: fwdfw wd_sun +WARNING: untranslated string: fwdfw wd_thu +WARNING: untranslated string: fwdfw wd_tue +WARNING: untranslated string: fwdfw wd_wed +WARNING: untranslated string: fwhost addgrp +WARNING: untranslated string: fwhost addgrpname +WARNING: untranslated string: fwhost addhost +WARNING: untranslated string: fwhost addnet +WARNING: untranslated string: fwhost addservice +WARNING: untranslated string: fwhost addservicegrp +WARNING: untranslated string: fwhost any +WARNING: untranslated string: fwhost back +WARNING: untranslated string: fwhost ccdhost +WARNING: untranslated string: fwhost ccdnet +WARNING: untranslated string: fwhost change +WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust grp +WARNING: untranslated string: fwhost cust net +WARNING: untranslated string: fwhost cust service +WARNING: untranslated string: fwhost cust srvgrp +WARNING: untranslated string: fwhost deleted +WARNING: untranslated string: fwhost empty +WARNING: untranslated string: fwhost err addr +WARNING: untranslated string: fwhost err empty +WARNING: untranslated string: fwhost err emptytable +WARNING: untranslated string: fwhost err groupempty +WARNING: untranslated string: fwhost err grpexist +WARNING: untranslated string: fwhost err hostexist +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost err ip +WARNING: untranslated string: fwhost err ipcheck +WARNING: untranslated string: fwhost err ipmac +WARNING: untranslated string: fwhost err ipwithsub +WARNING: untranslated string: fwhost err isccdhost +WARNING: untranslated string: fwhost err isccdiphost +WARNING: untranslated string: fwhost err isccdipnet +WARNING: untranslated string: fwhost err isccdnet +WARNING: untranslated string: fwhost err isingrp +WARNING: untranslated string: fwhost err maxservicetcp +WARNING: untranslated string: fwhost err maxserviceudp +WARNING: untranslated string: fwhost err name +WARNING: untranslated string: fwhost err name1 +WARNING: untranslated string: fwhost err net +WARNING: untranslated string: fwhost err netexist +WARNING: untranslated string: fwhost err partofnet +WARNING: untranslated string: fwhost err port +WARNING: untranslated string: fwhost err remark +WARNING: untranslated string: fwhost err srv exists +WARNING: untranslated string: fwhost err srvexist +WARNING: untranslated string: fwhost err sub32 +WARNING: untranslated string: fwhost hint +WARNING: untranslated string: fwhost icmptype +WARNING: untranslated string: fwhost ip_mac +WARNING: untranslated string: fwhost ipsec net +WARNING: untranslated string: fwhost menu +WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgrp +WARNING: untranslated string: fwhost newhost +WARNING: untranslated string: fwhost newnet +WARNING: untranslated string: fwhost newservice +WARNING: untranslated string: fwhost newservicegrp +WARNING: untranslated string: fwhost ovpn_n2n +WARNING: untranslated string: fwhost port +WARNING: untranslated string: fwhost prot +WARNING: untranslated string: fwhost services +WARNING: untranslated string: fwhost srv_name +WARNING: untranslated string: fwhost stdnet +WARNING: untranslated string: fwhost type +WARNING: untranslated string: fwhost used +WARNING: untranslated string: fwhost welcome +WARNING: untranslated string: grouptype +WARNING: untranslated string: integrity +WARNING: untranslated string: invalid input for dpd delay +WARNING: untranslated string: invalid input for dpd timeout +WARNING: untranslated string: ipsec network WARNING: untranslated string: least preferred +WARNING: untranslated string: lifetime WARNING: untranslated string: minute WARNING: untranslated string: most preferred -WARNING: untranslated string: new +WARNING: untranslated string: notice WARNING: untranslated string: openvpn default WARNING: untranslated string: openvpn destination port used WARNING: untranslated string: openvpn fragment allowed with udp WARNING: untranslated string: openvpn mssfix allowed with udp +WARNING: untranslated string: openvpn network WARNING: untranslated string: openvpn prefix local subnet WARNING: untranslated string: openvpn prefix openvpn subnet WARNING: untranslated string: openvpn prefix remote subnet WARNING: untranslated string: openvpn subnet is used WARNING: untranslated string: other -WARNING: untranslated string: outgoing firewall add ip group -WARNING: untranslated string: outgoing firewall add mac group -WARNING: untranslated string: outgoing firewall edit ip group -WARNING: untranslated string: outgoing firewall edit mac group -WARNING: untranslated string: outgoing firewall group error -WARNING: untranslated string: outgoing firewall groups -WARNING: untranslated string: outgoing firewall ip groups -WARNING: untranslated string: outgoing firewall mac groups WARNING: untranslated string: outgoing firewall p2p allow WARNING: untranslated string: outgoing firewall p2p deny -WARNING: untranslated string: outgoing firewall p2p description 1 -WARNING: untranslated string: outgoing firewall p2p description 2 -WARNING: untranslated string: outgoing firewall p2p description 3 -WARNING: untranslated string: outgoing firewall reserved groupname -WARNING: untranslated string: outgoing firewall view group WARNING: untranslated string: ovpn errmsg green already pushed WARNING: untranslated string: ovpn errmsg invalid ip or mask WARNING: untranslated string: ovpn mtu-disc @@ -615,6 +820,8 @@ WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment WARNING: untranslated string: ovpn mtu-disc yes WARNING: untranslated string: ovpn routes push WARNING: untranslated string: ovpn routes push options +WARNING: untranslated string: p2p block +WARNING: untranslated string: p2p block save notice WARNING: untranslated string: pakfire ago WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily @@ -622,12 +829,16 @@ WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly WARNING: untranslated string: qos enter bandwidths +WARNING: untranslated string: red1 WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table WARNING: untranslated string: server restart +WARNING: untranslated string: snat new source ip address +WARNING: untranslated string: ssh WARNING: untranslated string: static routes +WARNING: untranslated string: support donation WARNING: untranslated string: system information WARNING: untranslated string: tor WARNING: untranslated string: tor accounting diff --git a/doc/language_issues.ru b/doc/language_issues.ru index a7d46db..b3adf1e 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -46,6 +49,7 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply @@ -87,6 +91,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: cfg restart WARNING: translation string unused: check for net traffic update @@ -126,6 +131,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -138,17 +148,27 @@ WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -166,16 +186,27 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: filename WARNING: translation string unused: firewall graphs WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload WARNING: translation string unused: from email adr @@ -200,6 +231,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -210,6 +245,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -239,6 +275,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -264,6 +301,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -279,6 +317,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -287,6 +326,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -305,6 +345,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: optional data WARNING: translation string unused: optionsfw portlist hint WARNING: translation string unused: optionsfw warning @@ -312,7 +353,24 @@ WARNING: translation string unused: or WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -340,9 +398,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -354,8 +414,9 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice @@ -370,7 +431,9 @@ WARNING: translation string unused: router ip WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -384,20 +447,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -489,21 +562,18 @@ WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Add a route WARNING: untranslated string: Edit an existing route WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: addons WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: advproxy errmsg proxy ports equal WARNING: untranslated string: advproxy proxy port transparent -WARNING: untranslated string: age second -WARNING: untranslated string: age seconds -WARNING: untranslated string: age shour -WARNING: untranslated string: age sminute -WARNING: untranslated string: age ssecond WARNING: untranslated string: attention WARNING: untranslated string: bytes WARNING: untranslated string: ccd add @@ -542,8 +612,11 @@ WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used WARNING: untranslated string: community rules +WARNING: untranslated string: dead peer detection +WARNING: untranslated string: default ip WARNING: untranslated string: deprecated fs warn WARNING: untranslated string: disk access per +WARNING: untranslated string: dnat address WARNING: untranslated string: dnsforward WARNING: untranslated string: dnsforward add a new entry WARNING: untranslated string: dnsforward configuration @@ -551,7 +624,15 @@ WARNING: untranslated string: dnsforward edit an entry WARNING: untranslated string: dnsforward entries WARNING: untranslated string: dnsforward forward_server WARNING: untranslated string: dnsforward zone +WARNING: untranslated string: dpd delay +WARNING: untranslated string: dpd timeout +WARNING: untranslated string: drop action +WARNING: untranslated string: drop action1 +WARNING: untranslated string: drop action2 +WARNING: untranslated string: drop forward +WARNING: untranslated string: drop outgoing WARNING: untranslated string: emerging rules +WARNING: untranslated string: encryption WARNING: untranslated string: extrahd because there is already a device mounted WARNING: untranslated string: extrahd cant umount WARNING: untranslated string: extrahd install or load driver @@ -559,21 +640,169 @@ WARNING: untranslated string: extrahd maybe the device is in use WARNING: untranslated string: extrahd to WARNING: untranslated string: extrahd to root WARNING: untranslated string: extrahd you cant mount +WARNING: untranslated string: firewall rules +WARNING: untranslated string: fw default drop +WARNING: untranslated string: fw settings +WARNING: untranslated string: fw settings color +WARNING: untranslated string: fw settings dropdown +WARNING: untranslated string: fw settings remark +WARNING: untranslated string: fw settings ruletable +WARNING: untranslated string: fwdfw ACCEPT +WARNING: untranslated string: fwdfw DROP +WARNING: untranslated string: fwdfw REJECT +WARNING: untranslated string: fwdfw action +WARNING: untranslated string: fwdfw additional +WARNING: untranslated string: fwdfw all icmp +WARNING: untranslated string: fwdfw change +WARNING: untranslated string: fwdfw copy +WARNING: untranslated string: fwdfw delete +WARNING: untranslated string: fwdfw dnat +WARNING: untranslated string: fwdfw dnat error +WARNING: untranslated string: fwdfw dnat porterr +WARNING: untranslated string: fwdfw dnat porterr2 +WARNING: untranslated string: fwdfw edit +WARNING: untranslated string: fwdfw err nosrc +WARNING: untranslated string: fwdfw err nosrcip +WARNING: untranslated string: fwdfw err notgt +WARNING: untranslated string: fwdfw err notgtip +WARNING: untranslated string: fwdfw err prot_port +WARNING: untranslated string: fwdfw err remark +WARNING: untranslated string: fwdfw err ruleexists +WARNING: untranslated string: fwdfw err same +WARNING: untranslated string: fwdfw err samesub +WARNING: untranslated string: fwdfw err src_addr +WARNING: untranslated string: fwdfw err tgt_addr +WARNING: untranslated string: fwdfw err tgt_grp +WARNING: untranslated string: fwdfw err tgt_mac +WARNING: untranslated string: fwdfw err tgt_port +WARNING: untranslated string: fwdfw err time +WARNING: untranslated string: fwdfw external port nat +WARNING: untranslated string: fwdfw hint ip1 +WARNING: untranslated string: fwdfw hint ip2 +WARNING: untranslated string: fwdfw iface +WARNING: untranslated string: fwdfw log +WARNING: untranslated string: fwdfw log rule +WARNING: untranslated string: fwdfw menu +WARNING: untranslated string: fwdfw movedown +WARNING: untranslated string: fwdfw moveup +WARNING: untranslated string: fwdfw newrule +WARNING: untranslated string: fwdfw pol allow +WARNING: untranslated string: fwdfw pol block +WARNING: untranslated string: fwdfw pol text +WARNING: untranslated string: fwdfw pol text1 +WARNING: untranslated string: fwdfw pol title +WARNING: untranslated string: fwdfw prot41 +WARNING: untranslated string: fwdfw prot41 short +WARNING: untranslated string: fwdfw red +WARNING: untranslated string: fwdfw reread +WARNING: untranslated string: fwdfw rule activate +WARNING: untranslated string: fwdfw rulepos +WARNING: untranslated string: fwdfw snat +WARNING: untranslated string: fwdfw source +WARNING: untranslated string: fwdfw sourceip +WARNING: untranslated string: fwdfw target +WARNING: untranslated string: fwdfw targetip +WARNING: untranslated string: fwdfw timeframe +WARNING: untranslated string: fwdfw toggle +WARNING: untranslated string: fwdfw togglelog +WARNING: untranslated string: fwdfw use nat +WARNING: untranslated string: fwdfw use srcport +WARNING: untranslated string: fwdfw use srv +WARNING: untranslated string: fwdfw useless rule +WARNING: untranslated string: fwdfw wd_fri +WARNING: untranslated string: fwdfw wd_mon +WARNING: untranslated string: fwdfw wd_sat +WARNING: untranslated string: fwdfw wd_sun +WARNING: untranslated string: fwdfw wd_thu +WARNING: untranslated string: fwdfw wd_tue +WARNING: untranslated string: fwdfw wd_wed +WARNING: untranslated string: fwhost addgrp +WARNING: untranslated string: fwhost addgrpname +WARNING: untranslated string: fwhost addhost +WARNING: untranslated string: fwhost addnet +WARNING: untranslated string: fwhost addservice +WARNING: untranslated string: fwhost addservicegrp +WARNING: untranslated string: fwhost any +WARNING: untranslated string: fwhost back +WARNING: untranslated string: fwhost ccdhost +WARNING: untranslated string: fwhost ccdnet +WARNING: untranslated string: fwhost change +WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust grp +WARNING: untranslated string: fwhost cust net +WARNING: untranslated string: fwhost cust service +WARNING: untranslated string: fwhost cust srvgrp +WARNING: untranslated string: fwhost deleted +WARNING: untranslated string: fwhost empty +WARNING: untranslated string: fwhost err addr +WARNING: untranslated string: fwhost err empty +WARNING: untranslated string: fwhost err emptytable +WARNING: untranslated string: fwhost err groupempty +WARNING: untranslated string: fwhost err grpexist +WARNING: untranslated string: fwhost err hostexist +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost err ip +WARNING: untranslated string: fwhost err ipcheck +WARNING: untranslated string: fwhost err ipmac +WARNING: untranslated string: fwhost err ipwithsub +WARNING: untranslated string: fwhost err isccdhost +WARNING: untranslated string: fwhost err isccdiphost +WARNING: untranslated string: fwhost err isccdipnet +WARNING: untranslated string: fwhost err isccdnet +WARNING: untranslated string: fwhost err isingrp +WARNING: untranslated string: fwhost err maxservicetcp +WARNING: untranslated string: fwhost err maxserviceudp +WARNING: untranslated string: fwhost err name +WARNING: untranslated string: fwhost err name1 +WARNING: untranslated string: fwhost err net +WARNING: untranslated string: fwhost err netexist +WARNING: untranslated string: fwhost err partofnet +WARNING: untranslated string: fwhost err port +WARNING: untranslated string: fwhost err remark +WARNING: untranslated string: fwhost err srv exists +WARNING: untranslated string: fwhost err srvexist +WARNING: untranslated string: fwhost err sub32 +WARNING: untranslated string: fwhost hint +WARNING: untranslated string: fwhost icmptype +WARNING: untranslated string: fwhost ip_mac +WARNING: untranslated string: fwhost ipsec net +WARNING: untranslated string: fwhost menu +WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgrp +WARNING: untranslated string: fwhost newhost +WARNING: untranslated string: fwhost newnet +WARNING: untranslated string: fwhost newservice +WARNING: untranslated string: fwhost newservicegrp +WARNING: untranslated string: fwhost ovpn_n2n +WARNING: untranslated string: fwhost port +WARNING: untranslated string: fwhost prot +WARNING: untranslated string: fwhost services +WARNING: untranslated string: fwhost srv_name +WARNING: untranslated string: fwhost stdnet +WARNING: untranslated string: fwhost type +WARNING: untranslated string: fwhost used +WARNING: untranslated string: fwhost welcome +WARNING: untranslated string: grouptype WARNING: untranslated string: incoming traffic in bytes per second +WARNING: untranslated string: integrity +WARNING: untranslated string: invalid input for dpd delay +WARNING: untranslated string: invalid input for dpd timeout +WARNING: untranslated string: ipsec network WARNING: untranslated string: least preferred +WARNING: untranslated string: lifetime WARNING: untranslated string: minute WARNING: untranslated string: most preferred -WARNING: untranslated string: new +WARNING: untranslated string: notice WARNING: untranslated string: openvpn default WARNING: untranslated string: openvpn destination port used WARNING: untranslated string: openvpn fragment allowed with udp WARNING: untranslated string: openvpn mssfix allowed with udp +WARNING: untranslated string: openvpn network WARNING: untranslated string: openvpn prefix local subnet WARNING: untranslated string: openvpn prefix openvpn subnet WARNING: untranslated string: openvpn prefix remote subnet WARNING: untranslated string: openvpn subnet is used WARNING: untranslated string: other -WARNING: untranslated string: outgoing firewall reserved groupname WARNING: untranslated string: outgoing traffic in bytes per second WARNING: untranslated string: ovpn mtu-disc WARNING: untranslated string: ovpn mtu-disc and mtu not 1500 @@ -582,18 +811,24 @@ WARNING: untranslated string: ovpn mtu-disc no WARNING: untranslated string: ovpn mtu-disc off WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment WARNING: untranslated string: ovpn mtu-disc yes +WARNING: untranslated string: p2p block +WARNING: untranslated string: p2p block save notice WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly WARNING: untranslated string: qos enter bandwidths +WARNING: untranslated string: red1 WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table WARNING: untranslated string: server restart +WARNING: untranslated string: snat new source ip address +WARNING: untranslated string: ssh WARNING: untranslated string: static routes +WARNING: untranslated string: support donation WARNING: untranslated string: tor WARNING: untranslated string: tor accounting WARNING: untranslated string: tor accounting bytes diff --git a/doc/language_issues.tr b/doc/language_issues.tr index d1d655a..7880240 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -11,10 +11,13 @@ WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv WARNING: translation string unused: TOS Bits WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule WARNING: translation string unused: add network WARNING: translation string unused: add new ovpn WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password @@ -39,6 +42,11 @@ WARNING: translation string unused: advproxy no cre groups WARNING: translation string unused: advproxy ssadvanced proxy WARNING: translation string unused: advproxy update information WARNING: translation string unused: advproxy update notification +WARNING: translation string unused: age second +WARNING: translation string unused: age seconds +WARNING: translation string unused: age shour +WARNING: translation string unused: age sminute +WARNING: translation string unused: age ssecond WARNING: translation string unused: alcatelusb help WARNING: translation string unused: alcatelusb upload WARNING: translation string unused: all interfaces @@ -46,6 +54,7 @@ WARNING: translation string unused: all updates installed WARNING: translation string unused: allmsg WARNING: translation string unused: alt information WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn WARNING: translation string unused: and WARNING: translation string unused: ansi t1.483 WARNING: translation string unused: apply @@ -87,6 +96,7 @@ WARNING: translation string unused: cache management WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess WARNING: translation string unused: capsinactive WARNING: translation string unused: ccd err iroute WARNING: translation string unused: ccd err netadr @@ -129,6 +139,11 @@ WARNING: translation string unused: debugme WARNING: translation string unused: deep scan directories WARNING: translation string unused: default networks WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps WARNING: translation string unused: dhcp base ip fixed lease WARNING: translation string unused: dhcp create fixed leases WARNING: translation string unused: dhcp fixed lease err1 @@ -141,17 +156,27 @@ WARNING: translation string unused: dial user password has been changed WARNING: translation string unused: dialup settings WARNING: translation string unused: disconnect WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary WARNING: translation string unused: dns server WARNING: translation string unused: do not log this port list WARNING: translation string unused: donation-link WARNING: translation string unused: done WARNING: translation string unused: driver +WARNING: translation string unused: drop output +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing WARNING: translation string unused: dynamic dns client WARNING: translation string unused: eciadsl help WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule WARNING: translation string unused: edit network WARNING: translation string unused: edit service WARNING: translation string unused: editor +WARNING: translation string unused: eg WARNING: translation string unused: email server can not be empty WARNING: translation string unused: enable javascript WARNING: translation string unused: enabled on @@ -169,10 +194,18 @@ WARNING: translation string unused: err rs 7 untartst WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife WARNING: translation string unused: expected WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd WARNING: translation string unused: extrahd unable to read WARNING: translation string unused: extrahd unable to write WARNING: translation string unused: filename @@ -181,6 +214,9 @@ WARNING: translation string unused: firewall log viewer WARNING: translation string unused: firmware WARNING: translation string unused: firmware upload WARNING: translation string unused: force update +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -207,6 +243,10 @@ WARNING: translation string unused: icmp selected but no type WARNING: translation string unused: icmp type WARNING: translation string unused: id WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -217,6 +257,7 @@ WARNING: translation string unused: install new update WARNING: translation string unused: installed WARNING: translation string unused: installed updates WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 WARNING: translation string unused: invalid cache size WARNING: translation string unused: invalid date entered WARNING: translation string unused: invalid downlink speed @@ -246,6 +287,7 @@ WARNING: translation string unused: local hard disk WARNING: translation string unused: localkeyfile WARNING: translation string unused: log enabled WARNING: translation string unused: log viewer +WARNING: translation string unused: logging WARNING: translation string unused: loosedirectorychecking WARNING: translation string unused: ls_dhcpd WARNING: translation string unused: ls_disk space @@ -271,6 +313,7 @@ WARNING: translation string unused: mbmon value WARNING: translation string unused: min size WARNING: translation string unused: missing dat WARNING: translation string unused: missing gz +WARNING: translation string unused: mode WARNING: translation string unused: modem on com1 WARNING: translation string unused: modem on com2 WARNING: translation string unused: modem on com3 @@ -287,6 +330,7 @@ WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net WARNING: translation string unused: net address WARNING: translation string unused: net config type WARNING: translation string unused: net config type help @@ -295,6 +339,7 @@ WARNING: translation string unused: network added WARNING: translation string unused: network configuration WARNING: translation string unused: network removed WARNING: translation string unused: network status information +WARNING: translation string unused: network time WARNING: translation string unused: network traffic graphs WARNING: translation string unused: network updated WARNING: translation string unused: networks settings @@ -313,6 +358,7 @@ WARNING: translation string unused: o-no WARNING: translation string unused: o-yes WARNING: translation string unused: online help en WARNING: translation string unused: only red +WARNING: translation string unused: open to all WARNING: translation string unused: openvpn disabled WARNING: translation string unused: openvpn enabled WARNING: translation string unused: optional data @@ -323,7 +369,24 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: our donors WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config @@ -351,9 +414,11 @@ WARNING: translation string unused: pakfire updates WARNING: translation string unused: password contains illegal characters WARNING: translation string unused: password crypting key WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group WARNING: translation string unused: phonebook entry WARNING: translation string unused: ping disabled WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration WARNING: translation string unused: ports WARNING: translation string unused: pots WARNING: translation string unused: pppoe @@ -365,8 +430,9 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: proxy port WARNING: translation string unused: psk WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask WARNING: translation string unused: reboot schedule -WARNING: translation string unused: rebooting +WARNING: translation string unused: reboot sure WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice @@ -381,7 +447,9 @@ WARNING: translation string unused: router ip WARNING: translation string unused: rules already up to date WARNING: translation string unused: safe removal of umounted device WARNING: translation string unused: save error +WARNING: translation string unused: select dest net WARNING: translation string unused: select media +WARNING: translation string unused: select source net WARNING: translation string unused: selecttraffic WARNING: translation string unused: send email notification WARNING: translation string unused: send test mail @@ -395,20 +463,30 @@ WARNING: translation string unused: shaping add options WARNING: translation string unused: shaping list options WARNING: translation string unused: show areas WARNING: translation string unused: show lines -WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure WARNING: translation string unused: shutdown2 -WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port overlaps WARNING: translation string unused: squid extension methods WARNING: translation string unused: squid extension methods invalid WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes WARNING: translation string unused: ssh access tip WARNING: translation string unused: ssh1 disabled WARNING: translation string unused: ssh1 enabled WARNING: translation string unused: ssh1 support WARNING: translation string unused: ssnetwork status WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding WARNING: translation string unused: ssproxy graphs WARNING: translation string unused: sssystem status WARNING: translation string unused: sstraffic graphs @@ -511,21 +589,188 @@ WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: xtaccess all error WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: addons WARNING: untranslated string: advproxy errmsg proxy ports equal WARNING: untranslated string: advproxy proxy port transparent WARNING: untranslated string: bytes +WARNING: untranslated string: dead peer detection +WARNING: untranslated string: default ip +WARNING: untranslated string: dnat address +WARNING: untranslated string: dpd delay +WARNING: untranslated string: dpd timeout +WARNING: untranslated string: drop action +WARNING: untranslated string: drop action1 +WARNING: untranslated string: drop action2 +WARNING: untranslated string: drop forward +WARNING: untranslated string: drop outgoing +WARNING: untranslated string: encryption +WARNING: untranslated string: firewall rules +WARNING: untranslated string: fw default drop +WARNING: untranslated string: fw settings +WARNING: untranslated string: fw settings color +WARNING: untranslated string: fw settings dropdown +WARNING: untranslated string: fw settings remark +WARNING: untranslated string: fw settings ruletable +WARNING: untranslated string: fwdfw ACCEPT +WARNING: untranslated string: fwdfw DROP +WARNING: untranslated string: fwdfw REJECT +WARNING: untranslated string: fwdfw action +WARNING: untranslated string: fwdfw additional +WARNING: untranslated string: fwdfw all icmp +WARNING: untranslated string: fwdfw change +WARNING: untranslated string: fwdfw copy +WARNING: untranslated string: fwdfw delete +WARNING: untranslated string: fwdfw dnat +WARNING: untranslated string: fwdfw dnat error +WARNING: untranslated string: fwdfw dnat porterr +WARNING: untranslated string: fwdfw dnat porterr2 +WARNING: untranslated string: fwdfw edit +WARNING: untranslated string: fwdfw err nosrc +WARNING: untranslated string: fwdfw err nosrcip +WARNING: untranslated string: fwdfw err notgt +WARNING: untranslated string: fwdfw err notgtip +WARNING: untranslated string: fwdfw err prot_port +WARNING: untranslated string: fwdfw err remark +WARNING: untranslated string: fwdfw err ruleexists +WARNING: untranslated string: fwdfw err same +WARNING: untranslated string: fwdfw err samesub +WARNING: untranslated string: fwdfw err src_addr +WARNING: untranslated string: fwdfw err tgt_addr +WARNING: untranslated string: fwdfw err tgt_grp +WARNING: untranslated string: fwdfw err tgt_mac +WARNING: untranslated string: fwdfw err tgt_port +WARNING: untranslated string: fwdfw err time +WARNING: untranslated string: fwdfw external port nat +WARNING: untranslated string: fwdfw hint ip1 +WARNING: untranslated string: fwdfw hint ip2 +WARNING: untranslated string: fwdfw iface +WARNING: untranslated string: fwdfw log +WARNING: untranslated string: fwdfw log rule +WARNING: untranslated string: fwdfw menu +WARNING: untranslated string: fwdfw movedown +WARNING: untranslated string: fwdfw moveup +WARNING: untranslated string: fwdfw newrule +WARNING: untranslated string: fwdfw pol allow +WARNING: untranslated string: fwdfw pol block +WARNING: untranslated string: fwdfw pol text +WARNING: untranslated string: fwdfw pol text1 +WARNING: untranslated string: fwdfw pol title +WARNING: untranslated string: fwdfw prot41 +WARNING: untranslated string: fwdfw prot41 short +WARNING: untranslated string: fwdfw red +WARNING: untranslated string: fwdfw reread +WARNING: untranslated string: fwdfw rule activate +WARNING: untranslated string: fwdfw rulepos +WARNING: untranslated string: fwdfw snat +WARNING: untranslated string: fwdfw source +WARNING: untranslated string: fwdfw sourceip +WARNING: untranslated string: fwdfw target +WARNING: untranslated string: fwdfw targetip +WARNING: untranslated string: fwdfw timeframe +WARNING: untranslated string: fwdfw toggle +WARNING: untranslated string: fwdfw togglelog +WARNING: untranslated string: fwdfw use nat +WARNING: untranslated string: fwdfw use srcport +WARNING: untranslated string: fwdfw use srv +WARNING: untranslated string: fwdfw useless rule +WARNING: untranslated string: fwdfw wd_fri +WARNING: untranslated string: fwdfw wd_mon +WARNING: untranslated string: fwdfw wd_sat +WARNING: untranslated string: fwdfw wd_sun +WARNING: untranslated string: fwdfw wd_thu +WARNING: untranslated string: fwdfw wd_tue +WARNING: untranslated string: fwdfw wd_wed +WARNING: untranslated string: fwhost addgrp +WARNING: untranslated string: fwhost addgrpname +WARNING: untranslated string: fwhost addhost +WARNING: untranslated string: fwhost addnet +WARNING: untranslated string: fwhost addservice +WARNING: untranslated string: fwhost addservicegrp +WARNING: untranslated string: fwhost any +WARNING: untranslated string: fwhost back +WARNING: untranslated string: fwhost ccdhost +WARNING: untranslated string: fwhost ccdnet +WARNING: untranslated string: fwhost change +WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust grp +WARNING: untranslated string: fwhost cust net +WARNING: untranslated string: fwhost cust service +WARNING: untranslated string: fwhost cust srvgrp +WARNING: untranslated string: fwhost deleted +WARNING: untranslated string: fwhost empty +WARNING: untranslated string: fwhost err addr +WARNING: untranslated string: fwhost err empty +WARNING: untranslated string: fwhost err emptytable +WARNING: untranslated string: fwhost err groupempty +WARNING: untranslated string: fwhost err grpexist +WARNING: untranslated string: fwhost err hostexist +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost err ip +WARNING: untranslated string: fwhost err ipcheck +WARNING: untranslated string: fwhost err ipmac +WARNING: untranslated string: fwhost err ipwithsub +WARNING: untranslated string: fwhost err isccdhost +WARNING: untranslated string: fwhost err isccdiphost +WARNING: untranslated string: fwhost err isccdipnet +WARNING: untranslated string: fwhost err isccdnet +WARNING: untranslated string: fwhost err isingrp +WARNING: untranslated string: fwhost err maxservicetcp +WARNING: untranslated string: fwhost err maxserviceudp +WARNING: untranslated string: fwhost err name +WARNING: untranslated string: fwhost err name1 +WARNING: untranslated string: fwhost err net +WARNING: untranslated string: fwhost err netexist +WARNING: untranslated string: fwhost err partofnet +WARNING: untranslated string: fwhost err port +WARNING: untranslated string: fwhost err remark +WARNING: untranslated string: fwhost err srv exists +WARNING: untranslated string: fwhost err srvexist +WARNING: untranslated string: fwhost err sub32 +WARNING: untranslated string: fwhost hint +WARNING: untranslated string: fwhost icmptype +WARNING: untranslated string: fwhost ip_mac +WARNING: untranslated string: fwhost ipsec net +WARNING: untranslated string: fwhost menu +WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgrp +WARNING: untranslated string: fwhost newhost +WARNING: untranslated string: fwhost newnet +WARNING: untranslated string: fwhost newservice +WARNING: untranslated string: fwhost newservicegrp +WARNING: untranslated string: fwhost ovpn_n2n +WARNING: untranslated string: fwhost port +WARNING: untranslated string: fwhost prot +WARNING: untranslated string: fwhost services +WARNING: untranslated string: fwhost srv_name +WARNING: untranslated string: fwhost stdnet +WARNING: untranslated string: fwhost type +WARNING: untranslated string: fwhost used +WARNING: untranslated string: fwhost welcome +WARNING: untranslated string: grouptype +WARNING: untranslated string: integrity +WARNING: untranslated string: invalid input for dpd delay +WARNING: untranslated string: invalid input for dpd timeout +WARNING: untranslated string: ipsec network WARNING: untranslated string: least preferred +WARNING: untranslated string: lifetime WARNING: untranslated string: most preferred -WARNING: untranslated string: new -WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: notice +WARNING: untranslated string: openvpn network +WARNING: untranslated string: p2p block +WARNING: untranslated string: p2p block save notice +WARNING: untranslated string: red1 WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: snat new source ip address +WARNING: untranslated string: ssh +WARNING: untranslated string: support donation WARNING: untranslated string: tor directory port WARNING: untranslated string: tor errmsg invalid directory port WARNING: untranslated string: urlfilter redirect template diff --git a/doc/language_missings b/doc/language_missings index 7c7b082..1164640 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -4,6 +4,7 @@ ############################################################################ # Checking cgi-bin translations for language: en # ############################################################################ +< addon < ccd maxclients ############################################################################ # Checking install/setup translations for language: fr # @@ -11,7 +12,7 @@ ############################################################################ # Checking cgi-bin translations for language: fr # ############################################################################ -< advproxy cache-digest +< addon < advproxy errmsg cache < advproxy errmsg invalid upstream proxy < advproxy errmsg proxy ports equal @@ -60,7 +61,9 @@ < ccd routes < ccd subnet < ccd used +< default ip < deprecated fs warn +< dnat address < dns address deleted txt < dnsforward < dnsforward add a new entry @@ -69,6 +72,14 @@ < dnsforward entries < dnsforward forward_server < dnsforward zone +< dpd delay +< dpd timeout +< drop action +< drop action1 +< drop action2 +< drop forward +< drop outgoing +< encryption < fireinfo ipfire version < fireinfo is disabled < fireinfo is enabled @@ -86,9 +97,188 @@ < fireinfo why enable < fireinfo why read more < fireinfo your profile id +< firewall rules +< forward firewall +< fw default drop +< fwdfw ACCEPT +< fwdfw action +< fwdfw additional +< fwdfw addrule +< fwdfw all icmp +< fwdfw change +< fwdfw copy +< fwdfw delete +< fwdfw dnat +< fwdfw dnat error +< fwdfw dnat porterr +< fwdfw dnat porterr2 +< fwdfw DROP +< fwdfw edit +< fwdfw err nosrc +< fwdfw err nosrcip +< fwdfw err notgt +< fwdfw err notgtip +< fwdfw err prot_port +< fwdfw err prot_port1 +< fwdfw err remark +< fwdfw err ruleexists +< fwdfw err same +< fwdfw err samesub +< fwdfw err src_addr +< fwdfw err tgt_addr +< fwdfw err tgt_grp +< fwdfw err tgt_mac +< fwdfw err tgt_port +< fwdfw err time +< fwdfw external port nat +< fwdfw final_rule +< fwdfw from +< fwdfw hint ip1 +< fwdfw hint ip2 +< fwdfw iface +< fwdfw ipsec network +< fwdfw log +< fwdfw log rule +< fwdfw man port +< fwdfw menu +< fwdfw MODE1 +< fwdfw MODE2 +< fwdfw movedown +< fwdfw moveup +< fwdfw natport used +< fwdfw newrule +< fwdfw p2p txt +< fwdfw pol allow +< fwdfw pol block +< fwdfw pol text +< fwdfw pol text1 +< fwdfw pol title +< fwdfw prot41 +< fwdfw prot41 short +< fwdfw red +< fwdfw REJECT +< fwdfw reread +< fwdfw rule action +< fwdfw rule activate +< fwdfw rulepos +< fwdfw rules +< fwdfw snat +< fwdfw source +< fwdfw sourceip +< fwdfw std network +< fwdfw target +< fwdfw targetip +< fwdfw till +< fwdfw time +< fwdfw timeframe +< fwdfw toggle +< fwdfw togglelog +< fwdfw useless rule +< fwdfw use nat +< fwdfw use srcport +< fwdfw use srv +< fwdfw wd_fri +< fwdfw wd_mon +< fwdfw wd_sat +< fwdfw wd_sun +< fwdfw wd_thu +< fwdfw wd_tue +< fwdfw wd_wed +< fwdfw xt access +< fwhost addgrp +< fwhost addgrpname +< fwhost addhost +< fwhost addnet +< fwhost addservice +< fwhost addservicegrp +< fwhost any +< fwhost attention +< fwhost back +< fwhost blue +< fwhost ccdhost +< fwhost ccdnet +< fwhost change +< fwhost changeremark +< fwhost cust addr +< fwhost cust grp +< fwhost cust net +< fwhost cust service +< fwhost cust srvgrp +< fwhost deleted +< fwhost empty +< fwhost err addr +< fwhost err addrgrp +< fwhost err empty +< fwhost err emptytable +< fwhost err groupempty +< fwhost err grpexist +< fwhost err hostexist +< fwhost err hostorip +< fwhost err ip +< fwhost err ipcheck +< fwhost err ipmac +< fwhost err ipwithsub +< fwhost err isccdhost +< fwhost err isccdiphost +< fwhost err isccdipnet +< fwhost err isccdnet +< fwhost err isingrp +< fwhost err mac +< fwhost err maxservicetcp +< fwhost err maxserviceudp +< fwhost err name +< fwhost err name1 +< fwhost err net +< fwhost err netexist +< fwhost err partofnet +< fwhost err port +< fwhost err remark +< fwhost err srvexist +< fwhost err srv exists +< fwhost err sub32 +< fwhost green +< fwhost hint +< fwhost hosts +< fwhost icmptype +< fwhost ipadr +< fwhost ip_mac +< fwhost ipsec host +< fwhost ipsec net +< fwhost menu +< fwhost netaddress +< fwhost newgrp +< fwhost newhost +< fwhost newnet +< fwhost newservice +< fwhost newservicegrp +< fwhost orange +< fwhost ovpn_n2n +< fwhost port +< fwhost prot +< fwhost reread +< fwhost reset +< fwhost services +< fwhost srv_name +< fwhost stdnet +< fwhost type +< fwhost used +< fwhost welcome +< fwhost wo subnet +< fw settings +< fw settings color +< fw settings dropdown +< fw settings remark +< fw settings ruletable +< grouptype +< integrity +< invalid input for dpd delay +< invalid input for dpd timeout +< ipsec network < least preferred +< lifetime < minute < most preferred +< notice < ntp common settings < ntp sync < openvpn default @@ -97,6 +287,7 @@ < openvpn enabled < openvpn fragment allowed with udp < openvpn mssfix allowed with udp +< openvpn network < openvpn prefix local subnet < openvpn prefix openvpn subnet < openvpn prefix remote subnet @@ -110,15 +301,21 @@ < ovpn mtu-disc off < ovpn mtu-disc with mssfix or fragment < ovpn mtu-disc yes +< p2p block +< p2p block save notice < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly < qos enter bandwidths +< red1 < server restart +< snat new source ip address < snort working +< ssh < static routes +< support donation < system information < tor < tor 0 = disabled @@ -240,7 +437,7 @@ ############################################################################ # Checking cgi-bin translations for language: es # ############################################################################ -< advproxy cache-digest +< addon < advproxy errmsg cache < advproxy errmsg invalid upstream proxy < advproxy errmsg proxy ports equal @@ -290,7 +487,9 @@ < ccd routes < ccd subnet < ccd used +< default ip < deprecated fs warn +< dnat address < dnsforward < dnsforward add a new entry < dnsforward configuration @@ -298,6 +497,14 @@ < dnsforward entries < dnsforward forward_server < dnsforward zone +< dpd delay +< dpd timeout +< drop action +< drop action1 +< drop action2 +< drop forward +< drop outgoing +< encryption < fireinfo ipfire version < fireinfo is disabled < fireinfo is enabled @@ -315,15 +522,195 @@ < fireinfo why enable < fireinfo why read more < fireinfo your profile id +< firewall rules +< forward firewall +< fw default drop +< fwdfw ACCEPT +< fwdfw action +< fwdfw additional +< fwdfw addrule +< fwdfw all icmp +< fwdfw change +< fwdfw copy +< fwdfw delete +< fwdfw dnat +< fwdfw dnat error +< fwdfw dnat porterr +< fwdfw dnat porterr2 +< fwdfw DROP +< fwdfw edit +< fwdfw err nosrc +< fwdfw err nosrcip +< fwdfw err notgt +< fwdfw err notgtip +< fwdfw err prot_port +< fwdfw err prot_port1 +< fwdfw err remark +< fwdfw err ruleexists +< fwdfw err same +< fwdfw err samesub +< fwdfw err src_addr +< fwdfw err tgt_addr +< fwdfw err tgt_grp +< fwdfw err tgt_mac +< fwdfw err tgt_port +< fwdfw err time +< fwdfw external port nat +< fwdfw final_rule +< fwdfw from +< fwdfw hint ip1 +< fwdfw hint ip2 +< fwdfw iface +< fwdfw ipsec network +< fwdfw log +< fwdfw log rule +< fwdfw man port +< fwdfw menu +< fwdfw MODE1 +< fwdfw MODE2 +< fwdfw movedown +< fwdfw moveup +< fwdfw natport used +< fwdfw newrule +< fwdfw p2p txt +< fwdfw pol allow +< fwdfw pol block +< fwdfw pol text +< fwdfw pol text1 +< fwdfw pol title +< fwdfw prot41 +< fwdfw prot41 short +< fwdfw red +< fwdfw REJECT +< fwdfw reread +< fwdfw rule action +< fwdfw rule activate +< fwdfw rulepos +< fwdfw rules +< fwdfw snat +< fwdfw source +< fwdfw sourceip +< fwdfw std network +< fwdfw target +< fwdfw targetip +< fwdfw till +< fwdfw time +< fwdfw timeframe +< fwdfw toggle +< fwdfw togglelog +< fwdfw useless rule +< fwdfw use nat +< fwdfw use srcport +< fwdfw use srv +< fwdfw wd_fri +< fwdfw wd_mon +< fwdfw wd_sat +< fwdfw wd_sun +< fwdfw wd_thu +< fwdfw wd_tue +< fwdfw wd_wed +< fwdfw xt access +< fwhost addgrp +< fwhost addgrpname +< fwhost addhost +< fwhost addnet +< fwhost addservice +< fwhost addservicegrp +< fwhost any +< fwhost attention +< fwhost back +< fwhost blue +< fwhost ccdhost +< fwhost ccdnet +< fwhost change +< fwhost changeremark +< fwhost cust addr +< fwhost cust grp +< fwhost cust net +< fwhost cust service +< fwhost cust srvgrp +< fwhost deleted +< fwhost empty +< fwhost err addr +< fwhost err addrgrp +< fwhost err empty +< fwhost err emptytable +< fwhost err groupempty +< fwhost err grpexist +< fwhost err hostexist +< fwhost err hostorip +< fwhost err ip +< fwhost err ipcheck +< fwhost err ipmac +< fwhost err ipwithsub +< fwhost err isccdhost +< fwhost err isccdiphost +< fwhost err isccdipnet +< fwhost err isccdnet +< fwhost err isingrp +< fwhost err mac +< fwhost err maxservicetcp +< fwhost err maxserviceudp +< fwhost err name +< fwhost err name1 +< fwhost err net +< fwhost err netexist +< fwhost err partofnet +< fwhost err port +< fwhost err remark +< fwhost err srvexist +< fwhost err srv exists +< fwhost err sub32 +< fwhost green +< fwhost hint +< fwhost hosts +< fwhost icmptype +< fwhost ipadr +< fwhost ip_mac +< fwhost ipsec host +< fwhost ipsec net +< fwhost menu +< fwhost netaddress +< fwhost newgrp +< fwhost newhost +< fwhost newnet +< fwhost newservice +< fwhost newservicegrp +< fwhost orange +< fwhost ovpn_n2n +< fwhost port +< fwhost prot +< fwhost reread +< fwhost reset +< fwhost services +< fwhost srv_name +< fwhost stdnet +< fwhost type +< fwhost used +< fwhost welcome +< fwhost wo subnet +< fw settings +< fw settings color +< fw settings dropdown +< fw settings remark +< fw settings ruletable +< grouptype +< integrity +< invalid input for dpd delay +< invalid input for dpd timeout +< ipsec network < least preferred +< lifetime < minute < most preferred +< notice < openvpn default < openvpn destination port used < openvpn disabled < openvpn enabled < openvpn fragment allowed with udp < openvpn mssfix allowed with udp +< openvpn network < openvpn prefix local subnet < openvpn prefix openvpn subnet < openvpn prefix remote subnet @@ -355,15 +742,21 @@ < ovpn mtu-disc yes < ovpn routes push < ovpn routes push options +< p2p block +< p2p block save notice < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly < qos enter bandwidths +< red1 < server restart < Set time on boot +< snat new source ip address +< ssh < static routes +< support donation < system information < tor < tor 0 = disabled @@ -462,7 +855,7 @@ ############################################################################ # Checking cgi-bin translations for language: pl # ############################################################################ -< advproxy cache-digest +< addon < advproxy errmsg cache < advproxy errmsg invalid upstream proxy < advproxy errmsg proxy ports equal @@ -511,7 +904,9 @@ < ccd routes < ccd subnet < ccd used +< default ip < deprecated fs warn +< dnat address < dnsforward < dnsforward add a new entry < dnsforward configuration @@ -519,6 +914,14 @@ < dnsforward entries < dnsforward forward_server < dnsforward zone +< dpd delay +< dpd timeout +< drop action +< drop action1 +< drop action2 +< drop forward +< drop outgoing +< encryption < extrahd because there is already a device mounted < extrahd cant umount < extrahd install or load driver @@ -528,15 +931,195 @@ < extrahd unable to read < extrahd unable to write < extrahd you cant mount +< firewall rules +< forward firewall +< fw default drop +< fwdfw ACCEPT +< fwdfw action +< fwdfw additional +< fwdfw addrule +< fwdfw all icmp +< fwdfw change +< fwdfw copy +< fwdfw delete +< fwdfw dnat +< fwdfw dnat error +< fwdfw dnat porterr +< fwdfw dnat porterr2 +< fwdfw DROP +< fwdfw edit +< fwdfw err nosrc +< fwdfw err nosrcip +< fwdfw err notgt +< fwdfw err notgtip +< fwdfw err prot_port +< fwdfw err prot_port1 +< fwdfw err remark +< fwdfw err ruleexists +< fwdfw err same +< fwdfw err samesub +< fwdfw err src_addr +< fwdfw err tgt_addr +< fwdfw err tgt_grp +< fwdfw err tgt_mac +< fwdfw err tgt_port +< fwdfw err time +< fwdfw external port nat +< fwdfw final_rule +< fwdfw from +< fwdfw hint ip1 +< fwdfw hint ip2 +< fwdfw iface +< fwdfw ipsec network +< fwdfw log +< fwdfw log rule +< fwdfw man port +< fwdfw menu +< fwdfw MODE1 +< fwdfw MODE2 +< fwdfw movedown +< fwdfw moveup +< fwdfw natport used +< fwdfw newrule +< fwdfw p2p txt +< fwdfw pol allow +< fwdfw pol block +< fwdfw pol text +< fwdfw pol text1 +< fwdfw pol title +< fwdfw prot41 +< fwdfw prot41 short +< fwdfw red +< fwdfw REJECT +< fwdfw reread +< fwdfw rule action +< fwdfw rule activate +< fwdfw rulepos +< fwdfw rules +< fwdfw snat +< fwdfw source +< fwdfw sourceip +< fwdfw std network +< fwdfw target +< fwdfw targetip +< fwdfw till +< fwdfw time +< fwdfw timeframe +< fwdfw toggle +< fwdfw togglelog +< fwdfw useless rule +< fwdfw use nat +< fwdfw use srcport +< fwdfw use srv +< fwdfw wd_fri +< fwdfw wd_mon +< fwdfw wd_sat +< fwdfw wd_sun +< fwdfw wd_thu +< fwdfw wd_tue +< fwdfw wd_wed +< fwdfw xt access +< fwhost addgrp +< fwhost addgrpname +< fwhost addhost +< fwhost addnet +< fwhost addservice +< fwhost addservicegrp +< fwhost any +< fwhost attention +< fwhost back +< fwhost blue +< fwhost ccdhost +< fwhost ccdnet +< fwhost change +< fwhost changeremark +< fwhost cust addr +< fwhost cust grp +< fwhost cust net +< fwhost cust service +< fwhost cust srvgrp +< fwhost deleted +< fwhost empty +< fwhost err addr +< fwhost err addrgrp +< fwhost err empty +< fwhost err emptytable +< fwhost err groupempty +< fwhost err grpexist +< fwhost err hostexist +< fwhost err hostorip +< fwhost err ip +< fwhost err ipcheck +< fwhost err ipmac +< fwhost err ipwithsub +< fwhost err isccdhost +< fwhost err isccdiphost +< fwhost err isccdipnet +< fwhost err isccdnet +< fwhost err isingrp +< fwhost err mac +< fwhost err maxservicetcp +< fwhost err maxserviceudp +< fwhost err name +< fwhost err name1 +< fwhost err net +< fwhost err netexist +< fwhost err partofnet +< fwhost err port +< fwhost err remark +< fwhost err srvexist +< fwhost err srv exists +< fwhost err sub32 +< fwhost green +< fwhost hint +< fwhost hosts +< fwhost icmptype +< fwhost ipadr +< fwhost ip_mac +< fwhost ipsec host +< fwhost ipsec net +< fwhost menu +< fwhost netaddress +< fwhost newgrp +< fwhost newhost +< fwhost newnet +< fwhost newservice +< fwhost newservicegrp +< fwhost orange +< fwhost ovpn_n2n +< fwhost port +< fwhost prot +< fwhost reread +< fwhost reset +< fwhost services +< fwhost srv_name +< fwhost stdnet +< fwhost type +< fwhost used +< fwhost welcome +< fwhost wo subnet +< fw settings +< fw settings color +< fw settings dropdown +< fw settings remark +< fw settings ruletable +< grouptype +< integrity +< invalid input for dpd delay +< invalid input for dpd timeout +< ipsec network < least preferred +< lifetime < minute < most preferred +< notice < openvpn default < openvpn destination port used < openvpn disabled < openvpn enabled < openvpn fragment allowed with udp < openvpn mssfix allowed with udp +< openvpn network < openvpn prefix local subnet < openvpn prefix openvpn subnet < openvpn prefix remote subnet @@ -554,14 +1137,20 @@ < ovpn mtu-disc yes < ovpn routes push < ovpn routes push options +< p2p block +< p2p block save notice < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly < qos enter bandwidths +< red1 < server restart +< snat new source ip address +< ssh < static routes +< support donation < tor < tor 0 = disabled < tor accounting @@ -660,7 +1249,7 @@ # Checking cgi-bin translations for language: ru # ############################################################################ < Add a route -< advproxy cache-digest +< addon < advproxy errmsg cache < advproxy errmsg invalid upstream proxy < advproxy errmsg proxy ports equal @@ -710,8 +1299,10 @@ < ccd subnet < ccd used < day-graph +< default ip < deprecated fs warn < disk access per +< dnat address < dnsforward < dnsforward add a new entry < dnsforward configuration @@ -719,7 +1310,15 @@ < dnsforward entries < dnsforward forward_server < dnsforward zone +< dpd delay +< dpd timeout +< drop action +< drop action1 +< drop action2 +< drop forward +< drop outgoing < Edit an existing route +< encryption < extrahd because there is already a device mounted < extrahd cant umount < extrahd install or load driver @@ -729,19 +1328,199 @@ < extrahd unable to read < extrahd unable to write < extrahd you cant mount +< firewall rules +< forward firewall < frequency +< fw default drop +< fwdfw ACCEPT +< fwdfw action +< fwdfw additional +< fwdfw addrule +< fwdfw all icmp +< fwdfw change +< fwdfw copy +< fwdfw delete +< fwdfw dnat +< fwdfw dnat error +< fwdfw dnat porterr +< fwdfw dnat porterr2 +< fwdfw DROP +< fwdfw edit +< fwdfw err nosrc +< fwdfw err nosrcip +< fwdfw err notgt +< fwdfw err notgtip +< fwdfw err prot_port +< fwdfw err prot_port1 +< fwdfw err remark +< fwdfw err ruleexists +< fwdfw err same +< fwdfw err samesub +< fwdfw err src_addr +< fwdfw err tgt_addr +< fwdfw err tgt_grp +< fwdfw err tgt_mac +< fwdfw err tgt_port +< fwdfw err time +< fwdfw external port nat +< fwdfw final_rule +< fwdfw from +< fwdfw hint ip1 +< fwdfw hint ip2 +< fwdfw iface +< fwdfw ipsec network +< fwdfw log +< fwdfw log rule +< fwdfw man port +< fwdfw menu +< fwdfw MODE1 +< fwdfw MODE2 +< fwdfw movedown +< fwdfw moveup +< fwdfw natport used +< fwdfw newrule +< fwdfw p2p txt +< fwdfw pol allow +< fwdfw pol block +< fwdfw pol text +< fwdfw pol text1 +< fwdfw pol title +< fwdfw prot41 +< fwdfw prot41 short +< fwdfw red +< fwdfw REJECT +< fwdfw reread +< fwdfw rule action +< fwdfw rule activate +< fwdfw rulepos +< fwdfw rules +< fwdfw snat +< fwdfw source +< fwdfw sourceip +< fwdfw std network +< fwdfw target +< fwdfw targetip +< fwdfw till +< fwdfw time +< fwdfw timeframe +< fwdfw toggle +< fwdfw togglelog +< fwdfw useless rule +< fwdfw use nat +< fwdfw use srcport +< fwdfw use srv +< fwdfw wd_fri +< fwdfw wd_mon +< fwdfw wd_sat +< fwdfw wd_sun +< fwdfw wd_thu +< fwdfw wd_tue +< fwdfw wd_wed +< fwdfw xt access +< fwhost addgrp +< fwhost addgrpname +< fwhost addhost +< fwhost addnet +< fwhost addservice +< fwhost addservicegrp +< fwhost any +< fwhost attention +< fwhost back +< fwhost blue +< fwhost ccdhost +< fwhost ccdnet +< fwhost change +< fwhost changeremark +< fwhost cust addr +< fwhost cust grp +< fwhost cust net +< fwhost cust service +< fwhost cust srvgrp +< fwhost deleted +< fwhost empty +< fwhost err addr +< fwhost err addrgrp +< fwhost err empty +< fwhost err emptytable +< fwhost err groupempty +< fwhost err grpexist +< fwhost err hostexist +< fwhost err hostorip +< fwhost err ip +< fwhost err ipcheck +< fwhost err ipmac +< fwhost err ipwithsub +< fwhost err isccdhost +< fwhost err isccdiphost +< fwhost err isccdipnet +< fwhost err isccdnet +< fwhost err isingrp +< fwhost err mac +< fwhost err maxservicetcp +< fwhost err maxserviceudp +< fwhost err name +< fwhost err name1 +< fwhost err net +< fwhost err netexist +< fwhost err partofnet +< fwhost err port +< fwhost err remark +< fwhost err srvexist +< fwhost err srv exists +< fwhost err sub32 +< fwhost green +< fwhost hint +< fwhost hosts +< fwhost icmptype +< fwhost ipadr +< fwhost ip_mac +< fwhost ipsec host +< fwhost ipsec net +< fwhost menu +< fwhost netaddress +< fwhost newgrp +< fwhost newhost +< fwhost newnet +< fwhost newservice +< fwhost newservicegrp +< fwhost orange +< fwhost ovpn_n2n +< fwhost port +< fwhost prot +< fwhost reread +< fwhost reset +< fwhost services +< fwhost srv_name +< fwhost stdnet +< fwhost type +< fwhost used +< fwhost welcome +< fwhost wo subnet +< fw settings +< fw settings color +< fw settings dropdown +< fw settings remark +< fw settings ruletable +< grouptype < hour-graph < incoming traffic in bytes per second +< integrity +< invalid input for dpd delay +< invalid input for dpd timeout +< ipsec network < least preferred +< lifetime < minute < month-graph < most preferred +< notice < openvpn default < openvpn destination port used < openvpn disabled < openvpn enabled < openvpn fragment allowed with udp < openvpn mssfix allowed with udp +< openvpn network < openvpn prefix local subnet < openvpn prefix openvpn subnet < openvpn prefix remote subnet @@ -756,14 +1535,20 @@ < ovpn mtu-disc off < ovpn mtu-disc with mssfix or fragment < ovpn mtu-disc yes +< p2p block +< p2p block save notice < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly < qos enter bandwidths +< red1 < server restart +< snat new source ip address +< ssh < static routes +< support donation < tor < tor 0 = disabled < tor accounting diff --git a/html/cgi-bin/aliases.cgi b/html/cgi-bin/aliases.cgi index 9043962..8d6b19d 100644 --- a/html/cgi-bin/aliases.cgi +++ b/html/cgi-bin/aliases.cgi @@ -285,12 +285,12 @@ print <<END <td><input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td> </tr> </table> +<br> <hr /> <table width='100%'> <tr> <td class='base' width='55%'><img src='/blob.gif' align='top' alt='*' /> $Lang::tr{'this field may be blank'}</td> - <td width='40%' align='center'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> - <td width='5%' align='right'> + <td width='40%' align='right'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> </td> </tr> </table> @@ -320,11 +320,11 @@ if ($netsettings{'SORT_ALIASES'} eq 'NAMERev') { # &Header::openbox('100%', 'left', $Lang::tr{'current aliases'}); print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td width='50%' align='center'><a href='$ENV{'SCRIPT_NAME'}?NAME'><b>$Lang::tr{'name'}</b></a> $sortarrow1</td> - <td width='45%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'alias ip'}</b></a> $sortarrow2</td> - <td width='5%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='50%' align='center'><a href='$ENV{'SCRIPT_NAME'}?NAME'><b>$Lang::tr{'name'}</b></a> $sortarrow1</th> + <th width='45%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'alias ip'}</b></a> $sortarrow2</th> + <th width='5%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -336,6 +336,7 @@ END #
my $key = 0; +my $col=""; foreach my $line (@current) { chomp($line); my @temp = split(/,/,$line); @@ -353,18 +354,21 @@ foreach my $line (@current) {
#Colorize each line if ($settings{'KEY1'} eq $key) { - print "<tr bgcolor='${Header::colouryellow}'>"; + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ($key % 2) { - print "<tr bgcolor='${Header::table2colour}'>"; + print "<tr>"; + $col="bgcolor='${Header::table2colour}'"; } else { - print "<tr bgcolor='${Header::table1colour}'>"; + print "<tr>"; + $col="bgcolor='${Header::table1colour}'"; }
print <<END -<td align='center'>$temp[2]</td> -<td align='center'>$temp[0]</td> +<td align='center' $col>$temp[2]</td> +<td align='center' $col>$temp[0]</td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> @@ -372,7 +376,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -380,7 +384,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> diff --git a/html/cgi-bin/backup.cgi b/html/cgi-bin/backup.cgi index 830775d..86e21cf 100644 --- a/html/cgi-bin/backup.cgi +++ b/html/cgi-bin/backup.cgi @@ -166,7 +166,7 @@ if ( -e "/var/tmp/backupiso/" ){ @backupisos = `cd /var/tmp/backupiso/ && ls *.iso 2>/dev/null`; }
-&Header::openbox('100%', 'center', $Lang::tr{'backup'}); +&Header::openbox('100%', 'center', );
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> @@ -233,7 +233,7 @@ END ############################################################################################################################ ############################################# Backups von Addons erstellen #################################################
-&Header::openbox('100%', 'center', 'addons'); +&Header::openbox('100%', 'center', $Lang::tr{'addons'});
my @addonincluds = `ls /var/ipfire/backup/addons/includes/ 2>/dev/null`; my @addons = `ls /var/ipfire/backup/addons/backup/ 2>/dev/null`; @@ -339,4 +339,4 @@ END ; &Header::closebox(); &Header::closebigbox(); -&Header::closepage(); \ No newline at end of file +&Header::closepage(); diff --git a/html/cgi-bin/connscheduler.cgi b/html/cgi-bin/connscheduler.cgi index b257adb..f4fc5ef 100644 --- a/html/cgi-bin/connscheduler.cgi +++ b/html/cgi-bin/connscheduler.cgi @@ -307,7 +307,7 @@ for ($minute = 0; $minute <= 55; $minute += 5)
print <<END </select></td></tr> -<tr><td colspan='2'><hr /></td></tr> +<tr><td colspan='2'><br><br></td></tr> <tr><td width='15%' class='base'>$Lang::tr{'ConnSched action'}</td><td> <input type='radio' value='CONNECT' name='ACTION_ACTION' $checked_connect /> <select name='ACTION_CONNECT'> <option value='reconnect' $selected{'reconnect'}>$Lang::tr{'ConnSched reconnect'}</option> @@ -335,7 +335,7 @@ for ($i = 1; $i <= $CONNSCHED::maxprofiles; $i++) } print <<END </select></td></tr> -<tr><td colspan='2'><hr /></td></tr> +<tr><td colspan='2'><br><br></td></tr> <tr><td width='15%' class='base'>$Lang::tr{'ConnSched days'}</td> <td><input type='radio' value='DAYS' name='ACTION_DAYSTYPE' $checked_days /> <select name='ACTION_DAYSTART'> END @@ -375,14 +375,15 @@ print <<END <input type='checkbox' name='Sat' $checked_sat />$Lang::tr{'saturday'}<br /> <input type='checkbox' name='Sun' $checked_sun />$Lang::tr{'sunday'} </td></tr> -<tr><td colspan='2'><hr /></td></tr> +<tr><td colspan='2'><br></td></tr> <tr><td width='15%' class='base'>$Lang::tr{'remark title'} <img src='/blob.gif' alt='*' /></td> <td><input type='text' name='ACTION_COMMENT' size='40' value='$comment' /></td></tr></table> -<hr /> +<br> +<hr> <table width='100%'><tr> <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> <td width='55%' class='base'>$Lang::tr{'this field may be blank'}</td> - <td width='40%' align='center'><input type='submit' name='SUBMIT' value='$buttontext' /> + <td width='40%' align='right'><input type='submit' name='SUBMIT' value='$buttontext' /> <input type='hidden' name='ACTION' value='$hiddenvalue' /></td> <input type='hidden' name='UPDATE_ID' value='$cgiparams{'ID'}' /></td> </tr></table> @@ -399,67 +400,67 @@ END
&Header::openbox('100%', 'left', $Lang::tr{'ConnSched scheduled actions'}); print <<END -<table width='100%' border='0' cellspacing='1' cellpadding='0'> +<table width='100%' cellspacing='1' cellpadding='0' class='tbl'> <tr> -<td align='center' width='10%'><b>$Lang::tr{'time'}</b></td> -<td width='15%'> </td> -<td align='center' width='60%'><b>$Lang::tr{'remark'}</b></td> -<td align='center' colspan='5' width='5%'><b>$Lang::tr{'action'}</b></td> +<th align='center' width='10%'><b>$Lang::tr{'time'}</b></th> +<th width='15%'> </th> +<th align='center' width='60%'><b>$Lang::tr{'remark'}</b></th> +<th align='center' colspan='5' width='5%'><b>$Lang::tr{'action'}</b></th> </tr> END ; - +my $col=""; for my $id ( 0 .. $#CONNSCHED::config ) { - my $trcolor; - if ( ($cgiparams{'ACTION'} eq 'edit') && ($id == $cgiparams{'ID'}) ) { - $trcolor = "<tr bgcolor='${Header::colouryellow}'>"; + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ( $id % 2 ) { - $trcolor = "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - $trcolor = "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; }
print <<END -$trcolor -<td align='center'>$CONNSCHED::config[$id]{'TIME'}</td> -<td>$Lang::tr{"ConnSched $CONNSCHED::config[$id]{'ACTION'}"} $CONNSCHED::config[$id]{'PROFILENR'}</td> -<td>$CONNSCHED::config[$id]{'COMMENT'}</td> -<td align='center'> +<td align='center' $col>$CONNSCHED::config[$id]{'TIME'}</td> +<td $col>$Lang::tr{"ConnSched $CONNSCHED::config[$id]{'ACTION'}"} $CONNSCHED::config[$id]{'PROFILENR'}</td> +<td $col>$CONNSCHED::config[$id]{'COMMENT'}</td> +<td align='center' $col> <form method='post' name='frm$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='toggle' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$CONNSCHED::config[$id]{'ACTIVE'}.gif' alt='$Lang::tr{'toggle enable disable'}' title='$Lang::tr{'toggle enable disable'}' /> <input type='hidden' name='ID' value='$id' /> </form> </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frm$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='edit' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> <input type='hidden' name='ID' value='$id' /> </form> </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frm$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='remove' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> <input type='hidden' name='ID' value='$id' /> </form> </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frm$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='up' /> <input type='image' name='$Lang::tr{'ConnSched up'}' src='/images/up.gif' alt='$Lang::tr{'ConnSched up'}' title='$Lang::tr{'ConnSched up'}' /> <input type='hidden' name='ID' value='$id' /> </form> </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frm$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='down' /> <input type='image' name='$Lang::tr{'ConnSched down'}' src='/images/down.gif' alt='$Lang::tr{'ConnSched down'}' title='$Lang::tr{'ConnSched down'}' /> @@ -467,9 +468,9 @@ $trcolor </form> </td> </tr> -$trcolor -<td> </td> -<td colspan='7'>$CONNSCHED::config[$id]{'DAYS'}$CONNSCHED::config[$id]{'WEEKDAYS_PR'} </td> +<tr> +<td $col> </td> +<td colspan='7' $col>$CONNSCHED::config[$id]{'DAYS'}$CONNSCHED::config[$id]{'WEEKDAYS_PR'} </td> </tr> END ; diff --git a/html/cgi-bin/country.cgi b/html/cgi-bin/country.cgi index 474d60c..476a680 100644 --- a/html/cgi-bin/country.cgi +++ b/html/cgi-bin/country.cgi @@ -40,14 +40,14 @@ require "${General::swroot}/header.pl"; &Header::openbigbox('100%', 'LEFT');
&Header::openbox('100%', 'LEFT', 'Flags & Country Codes:'); -print "<TABLE WIDTH='100%'>"; -print "<tr><td width='5%'><b>Flag</b></td>"; -print "<td width='5%'><b>Code</b></td>"; -print "<td width='40%'><b>Country</b></td>"; -print "<td><b> </b></td>"; -print "<td width='5%'><b>Flag</b></td>"; -print "<td width='5%'><b>Code</b></td>"; -print "<td width='40%'><b>Country</b></td></tr>"; +print "<TABLE WIDTH='100%' border='0' class='tbl'>"; +print "<tr><th width='5%'><b>Flag</b></th>"; +print "<th width='5%'><b>Code</b></th>"; +print "<th width='40%'><b>Country</b></th>"; +print "<th><b> </b></th>"; +print "<th width='5%'><b>Flag</b></th>"; +print "<th width='5%'><b>Code</b></th>"; +print "<th width='40%'><b>Country</b></th></tr>";
@flaglist = <$flagdir/*>;
@@ -57,35 +57,36 @@ foreach (@flaglist) { if (!-d) { push(@flaglistfiles,substr($_,rindex($_,"/")+1)); } } - +my $col=""; foreach $flag (@flaglistfiles) { $lines++; - - my $flagcode = uc(substr($flag, 0, 2)); - my $fcode = lc($flagcode); + + my $flagcode = uc(substr($flag, 0, 2)); + my $fcode = lc($flagcode); my $country = Locale::Country::code2country($fcode); - if($fcode eq 'eu') { $country = 'Europe'; } - if($fcode eq 'tp') { $country = 'East Timor'; } - if($fcode eq 'yu') { $country = 'Yugoslavia'; } - if ($lines % 2) { - print "<td><a name='$fcode'/><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$flagcode'</td>"; - print "<td>$flagcode</td>"; - print "<td>$country</td></tr>\n"; - } - else { + if($fcode eq 'eu') { $country = 'Europe'; } + if($fcode eq 'tp') { $country = 'East Timor'; } + if($fcode eq 'yu') { $country = 'Yugoslavia'; } + if ($lines % 2) { + print "<td $col><a name='$fcode'/><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$flagcode'</td>"; + print "<td $col>$flagcode</td>"; + print "<td $col>$country</td></tr>\n"; +} +else { $lines2++; if($lines2 % 2) { - print "<tr bgcolor='${Header::table1colour}'>"; + print "<tr>"; + $col="bgcolor='${Header::table2colour}'"; } else { - print "<tr bgcolor='${Header::table2colour}'>"; + print "<tr>"; + $col="bgcolor='${Header::table1colour}'"; + } + print "<td $col><a name='$fcode'/><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$flagcode'</td>"; + print "<td $col>$flagcode</td>"; + print "<td $col>$country</td>"; + print "<td $col> </td>"; } - print "<td><a name='$fcode'/><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$flagcode'</td>"; - print "<td>$flagcode</td>"; - print "<td>$country</td>"; - #print "<td><img src='/blob.gif' alt='*' /></td>"; - print "<td> </td>"; - } }
diff --git a/html/cgi-bin/credits.cgi b/html/cgi-bin/credits.cgi index d61019e..19fae9b 100644 --- a/html/cgi-bin/credits.cgi +++ b/html/cgi-bin/credits.cgi @@ -49,14 +49,14 @@ END ; &Header::closebox();
-&Header::openbox('100%', 'left', $Lang::tr{'credits'}); +&Header::openbox('100%', 'left',);
print <<END <br> <center> $Lang::tr{'visit us at'}: <b><a href='http://www.ipfire.org/' target="_blank">http://www.ipfire.org/</a></b> </center> -<br><hr><br> +<br><br>
<p><b>Development:</b><br />
@@ -68,6 +68,8 @@ Christian Schmidt (<a href='mailto:christian.schmidt\@ipfire.org'>christian.schmidt@ipfire.org</a>) - Vice Project Leader <br /> Stefan Schantl (<a href='mailto:stefan.schantl\@ipfire.org'>stefan.schantl@ipfire.org</a>)<br /> +Alexander Marx +(<a href='mailto:alexander.marx\@ipfire.org'>alexander.marx@ipfire.org</a>)<br /> Heiner Schmeling (<a href='mailto:heiner.schmeling\@ipfire.org'>heiner.schmeling@ipfire.org</a>)<br /> Ronald Wiesinger diff --git a/html/cgi-bin/ddns.cgi b/html/cgi-bin/ddns.cgi index 88847a0..4e51ab6 100644 --- a/html/cgi-bin/ddns.cgi +++ b/html/cgi-bin/ddns.cgi @@ -303,7 +303,7 @@ print <<END <tr> <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> <td width='70%' class='base'>$Lang::tr{'avoid dod'}</td> - <td width='30%' align='center' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> + <td width='30%' align='right' valign='top' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> </form> @@ -377,13 +377,14 @@ print <<END <td><input type='password' name='PASSWORD2' value='$settings{'PASSWORD2'}' /></td> </tr> </table> +<br> <hr /> <table width='100%'> <tr> <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> <td width='70%' class='base'>$ddnsprefix</td>
- <td width='30%' align='center' class='base'> + <td width='30%' align='right' class='base'> <input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /> <input type='submit' name='SUBMIT' value='$buttontext' /> </td> </tr> @@ -398,14 +399,14 @@ END # &Header::openbox('100%', 'left', $Lang::tr{'current hosts'}); print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td width='15%' align='center' class='boldbase'><b>$Lang::tr{'service'}</b></td> - <td width='25%' align='center' class='boldbase'><b>$Lang::tr{'hostname'}</b></td> - <td width='30%' align='center' class='boldbase'><b>$Lang::tr{'domain'}</b></td> - <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'proxy'}</b></td> - <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'wildcards'}</b></td> - <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='15%' align='center' class='boldbase'><b>$Lang::tr{'service'}</b></th> + <th width='25%' align='center' class='boldbase'><b>$Lang::tr{'hostname'}</b></th> + <th width='30%' align='center' class='boldbase'><b>$Lang::tr{'domain'}</b></th> + <th width='10%' align='center' class='boldbase'><b>$Lang::tr{'proxy'}</b></th> + <th width='10%' align='center' class='boldbase'><b>$Lang::tr{'wildcards'}</b></th> + <th width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -428,7 +429,7 @@ foreach my $line (@current) { $descproxy = $Lang::tr{'click to disable'}; } else { $gifproxy = 'off.gif'; - $descproxy = $Lang::tr{'click to enable'}; + $descproxy = $Lang::tr{'click to enable'}; }
my $gifwildcard=''; @@ -452,26 +453,30 @@ foreach my $line (@current) { $gif = 'off.gif'; $gdesc = $Lang::tr{'click to enable'}; } - + + my $col=""; #Colorize each line if ($settings{'KEY1'} eq $key) { - print "<tr bgcolor='${Header::colouryellow}'>"; + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ($key % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } - + #if a field is empty, replace it with a '---' to see colorized info! $temp[1] = '---' if (!$temp[1]); $temp[2] = '---' if (!$temp[2]);
print <<END -<td align='center'><a href='http://$temp[0]'>$temp[0]</a></td> -<td align='center'>$sync$temp[1]</td> -<td align='center'>$sync$temp[2]</td> +<td align='center' $col><a href='http://$temp[0]'>$temp[0]</a></td> +<td align='center' $col>$sync$temp[1]</td> +<td align='center' $col>$sync$temp[2]</td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gifproxy' alt='$descproxy' title='$descproxy' /> @@ -480,7 +485,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gifwildcard' alt='$descwildcard' title='$descwildcard' /> @@ -489,7 +494,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> @@ -498,7 +503,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -506,7 +511,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> @@ -538,7 +543,7 @@ print <<END <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td> <td class='base'>$Lang::tr{'remove'}</td> <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <td align='center' width='30%'><input type='submit' name='ACTION' value='$Lang::tr{'instant update'}' /></td> + <td align='right' width='30%'><input type='submit' name='ACTION' value='$Lang::tr{'instant update'}' /></td> </form> </tr> </table> diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi index cde6065..9a7d983 100644 --- a/html/cgi-bin/dhcp.cgi +++ b/html/cgi-bin/dhcp.cgi @@ -590,8 +590,7 @@ print <<END <tr> <td class='base' width='25%'><img src='/blob.gif' align='top' alt='*' /> $Lang::tr{'this field may be blank'}</td> <td class='base' width='30%'>$warnNTPmessage</td> - <td width='40%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> - <td width='5%' align='right'> </td> + <td width='40%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> </form> @@ -651,7 +650,7 @@ print <<END <table width='100%'> <tr> <td class='base' width='50%'><img src='/blob.gif' align='top' alt='*' /> $Lang::tr{'dhcp advopt scope help'}</td> - <td width='50%' align='center'> + <td width='50%' align='right'> <input type='hidden' name='ACTION' value='$Lang::tr{'add'}1' /> <input type='submit' name='SUBMIT' value='$buttontext' /> <input type='submit' name='SUBMIT' value='$Lang::tr{'dhcp advopt help'}' /> @@ -851,7 +850,7 @@ print <<END <table width='100%'> <tr> <td class='base' width='50%'><img src='/blob.gif' align='top' alt='*' /> $Lang::tr{'this field may be blank'}</td> - <td width='50%' align='center'> + <td width='50%' align='right'> <input type='hidden' name='ACTION' value='$Lang::tr{'add'}2' /> <input type='submit' name='SUBMIT' value='$buttontext' /> <input type='hidden' name='KEY2' value='$dhcpsettings{'KEY2'}' /></td> @@ -864,15 +863,15 @@ END
print <<END <hr /> -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?FETHER'><b>$Lang::tr{'mac address'}</b></a></td> - <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?FIPADDR'><b>$Lang::tr{'ip address'}</b></a></td> - <td width='15%' align='center'><b>$Lang::tr{'remark'}</b></td> - <td width='15%' class='boldbase' align='center'><b>next-server</b></td> - <td width='15%' class='boldbase' align='center'><b>filename</b></td> - <td width='15%' class='boldbase' align='center'><b>root path</b></td> - <td colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?FETHER'><b>$Lang::tr{'mac address'}</b></a></th> + <th width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?FIPADDR'><b>$Lang::tr{'ip address'}</b></a></th> + <th width='15%' align='center'><b>$Lang::tr{'remark'}</b></th> + <th width='15%' class='boldbase' align='center'><b>next-server</b></th> + <th width='15%' class='boldbase' align='center'><b>filename</b></th> + <th width='15%' class='boldbase' align='center'><b>root path</b></th> + <th colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -904,6 +903,7 @@ foreach my $line (@current2) { }
$key = 0; +my $col=""; foreach my $line (@current2) { my $gif = ''; my $gdesc = ''; @@ -919,11 +919,14 @@ foreach my $line (@current2) { }
if ($dhcpsettings{'KEY2'} eq $key) { - print "<tr bgcolor='${Header::colouryellow}'>"; + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ($key % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } my $TAG0 = ''; my $TAG1 = ''; @@ -943,14 +946,14 @@ foreach my $line (@current2) { }
print <<END -<td align='center'>$TAG2$temp[0]$TAG3</td> -<td align='center' $TAG4>$TAG0$temp[1]$TAG1</td> -<td align='center'>$temp[6] </td> -<td align='center'>$temp[3] </td> -<td align='center'>$temp[4] </td> -<td align='center'>$temp[5] </td> - -<td align='center'> +<td align='center' $col>$TAG2$temp[0]$TAG3</td> +<td align='center' $col $TAG4>$TAG0$temp[1]$TAG1</td> +<td align='center' $col>$temp[6] </td> +<td align='center' $col>$temp[3] </td> +<td align='center' $col>$temp[4] </td> +<td align='center' $col>$temp[5] </td> + +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}2' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> @@ -958,7 +961,7 @@ foreach my $line (@current2) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}2' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -966,7 +969,7 @@ foreach my $line (@current2) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}2' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> diff --git a/html/cgi-bin/dmzholes.cgi b/html/cgi-bin/dmzholes.cgi deleted file mode 100644 index 5c16f00..0000000 --- a/html/cgi-bin/dmzholes.cgi +++ /dev/null @@ -1,446 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -use strict; - -# enable only the following on debugging purpose -#use warnings; -#use CGI::Carp 'fatalsToBrowser'; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -#workaround to suppress a warning when a variable is used only once -my @dummy = ( ${Header::table2colour}, ${Header::colouryellow} ); -undef (@dummy); - -my %cgiparams=(); -my %checked=(); -my %selected=(); -my %netsettings=(); -my $errormessage = ''; -my $filename = "${General::swroot}/dmzholes/config"; - -&General::readhash("${General::swroot}/ethernet/settings", %netsettings); - -&Header::showhttpheaders(); - -$cgiparams{'ENABLED'} = 'off'; -$cgiparams{'REMARK'} = ''; -$cgiparams{'ACTION'} = ''; -$cgiparams{'SRC_IP'} = ''; -$cgiparams{'DEST_IP'} =''; -$cgiparams{'DEST_PORT'} = ''; -&Header::getcgihash(%cgiparams); - -open(FILE, $filename) or die 'Unable to open config file.'; -my @current = <FILE>; -close(FILE); - -if ($cgiparams{'ACTION'} eq $Lang::tr{'add'}) -{ - unless($cgiparams{'PROTOCOL'} =~ /^(tcp|udp)$/) { $errormessage = $Lang::tr{'invalid input'}; } - unless(&General::validipormask($cgiparams{'SRC_IP'})) { $errormessage = $Lang::tr{'source ip bad'}; } - unless($errormessage){$errormessage = &General::validportrange($cgiparams{'DEST_PORT'},'dst');} - unless(&General::validipormask($cgiparams{'DEST_IP'})) { $errormessage = $Lang::tr{'destination ip bad'}; } - unless ($errormessage) { - $errormessage = &validNet($cgiparams{'SRC_NET'},$cgiparams{'DEST_NET'}); } - # Darren Critchley - Remove commas from remarks - $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'}); - - unless ($errormessage) - { - if($cgiparams{'EDITING'} eq 'no') { - open(FILE,">>$filename") or die 'Unable to open config file.'; - flock FILE, 2; - print FILE "$cgiparams{'PROTOCOL'},"; # [0] - print FILE "$cgiparams{'SRC_IP'},"; # [1] - print FILE "$cgiparams{'DEST_IP'},"; # [2] - print FILE "$cgiparams{'DEST_PORT'},"; # [3] - print FILE "$cgiparams{'ENABLED'},"; # [4] - print FILE "$cgiparams{'SRC_NET'},"; # [5] - print FILE "$cgiparams{'DEST_NET'},"; # [6] - print FILE "$cgiparams{'REMARK'}\n"; # [7] - } else { - open(FILE,">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - my $id = 0; - foreach my $line (@current) - { - $id++; - if ($cgiparams{'EDITING'} eq $id) { - print FILE "$cgiparams{'PROTOCOL'},"; # [0] - print FILE "$cgiparams{'SRC_IP'},"; # [1] - print FILE "$cgiparams{'DEST_IP'},"; # [2] - print FILE "$cgiparams{'DEST_PORT'},"; # [3] - print FILE "$cgiparams{'ENABLED'},"; # [4] - print FILE "$cgiparams{'SRC_NET'},"; # [5] - print FILE "$cgiparams{'DEST_NET'},"; # [6] - print FILE "$cgiparams{'REMARK'}\n"; # [7] - } else { print FILE "$line"; } - } - } - close(FILE); - undef %cgiparams; - &General::log($Lang::tr{'dmz pinhole rule added'}); - system('/usr/local/bin/setdmzholes'); - } -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) -{ - my $id = 0; - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) - { - $id++; - unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; } - } - close(FILE); - system('/usr/local/bin/setdmzholes'); - &General::log($Lang::tr{'dmz pinhole rule removed'}); -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'toggle enable disable'}) -{ - my $id = 0; - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) - { - $id++; - unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; } - else - { - chomp($line); - my @temp = split(/,/,$line); - print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$cgiparams{'ENABLE'},$temp[5],$temp[6],$temp[7]\n"; - } - } - close(FILE); - system('/usr/local/bin/setdmzholes'); -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) -{ - my $id = 0; - foreach my $line (@current) - { - $id++; - if ($cgiparams{'ID'} eq $id) - { - chomp($line); - my @temp = split(/,/,$line); - $cgiparams{'PROTOCOL'} = $temp[0]; - $cgiparams{'SRC_IP'} = $temp[1]; - $cgiparams{'DEST_IP'} = $temp[2]; - $cgiparams{'DEST_PORT'} = $temp[3]; - $cgiparams{'ENABLED'} = $temp[4]; - $cgiparams{'SRC_NET'} = $temp[5]; - $cgiparams{'DEST_NET'} = $temp[6]; - $cgiparams{'REMARK'} = $temp[7]; - } - } -} - -if ($cgiparams{'ACTION'} eq '') -{ - $cgiparams{'PROTOCOL'} = 'tcp'; - $cgiparams{'ENABLED'} = 'on'; - $cgiparams{'SRC_NET'} = 'orange'; - $cgiparams{'DEST_NET'} = 'blue'; -} - -$selected{'PROTOCOL'}{'udp'} = ''; -$selected{'PROTOCOL'}{'tcp'} = ''; -$selected{'PROTOCOL'}{$cgiparams{'PROTOCOL'}} = "selected='selected'"; - -$selected{'SRC_NET'}{'orange'} = ''; -$selected{'SRC_NET'}{'blue'} = ''; -$selected{'SRC_NET'}{$cgiparams{'SRC_NET'}} = "selected='selected'"; - -$selected{'DEST_NET'}{'blue'} = ''; -$selected{'DEST_NET'}{'green'} = ''; -$selected{'DEST_NET'}{$cgiparams{'DEST_NET'}} = "selected='selected'"; - -$checked{'ENABLED'}{'off'} = ''; -$checked{'ENABLED'}{'on'} = ''; -$checked{'ENABLED'}{$cgiparams{'ENABLED'}} = "checked='checked'"; - -&Header::openpage($Lang::tr{'dmz pinhole configuration'}, 1, ''); - -&Header::openbigbox('100%', 'left', '', $errormessage); - -if ($errormessage) { - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<class name='base'>$errormessage\n"; - print " </class>\n"; - &Header::closebox(); -} - -print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n"; - -my $buttonText = $Lang::tr{'add'}; -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) { - &Header::openbox('100%', 'left', $Lang::tr{'edit a rule'}); - $buttonText = $Lang::tr{'update'}; -} else { - &Header::openbox('100%', 'left', $Lang::tr{'add a new rule'}); -} -print <<END -<table width='100%'> -<tr> -<td> - <select name='PROTOCOL'> - <option value='udp' $selected{'PROTOCOL'}{'udp'}>UDP</option> - <option value='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</option> - </select> -</td> -<td> - $Lang::tr{'source net'}:</td> -<td> - <select name='SRC_NET'> -END -; - if (&haveOrangeNet()) { - print "<option value='orange' $selected{'SRC_NET'}{'orange'}>$Lang::tr{'orange'}</option>"; - } - if (&haveBlueNet()) { - print "<option value='blue' $selected{'SRC_NET'}{'blue'}>$Lang::tr{'blue'}</option>"; - } -print <<END - </select> -</td> -<td class='base'>$Lang::tr{'source ip or net'}:</td> -<td><input type='text' name='SRC_IP' value='$cgiparams{'SRC_IP'}' size='15' /></td> -</tr> -<tr> -<td> - </td> -<td> - $Lang::tr{'destination net'}:</td> -<td> - <select name='DEST_NET'> -END -; - if (&haveOrangeNet() && &haveBlueNet()) { - print "<option value='blue' $selected{'DEST_NET'}{'blue'}>$Lang::tr{'blue'}</option>"; - } - -print <<END - <option value='green' $selected{'DEST_NET'}{'green'}>$Lang::tr{'green'}</option> - </select> -</td> -<td class='base'> - $Lang::tr{'destination ip or net'}:</td> -<td> - <input type='text' name='DEST_IP' value='$cgiparams{'DEST_IP'}' size='15' /> -</td> -<td class='base'> - $Lang::tr{'destination port'}: - <input type='text' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' size='5' /> -</td> -</tr> -</table> -<table width='100%'> - <tr> - <td colspan='3' width='50%' class='base'> - <font class='boldbase'>$Lang::tr{'remark title'} <img src='/blob.gif' alt='*' /></font> - <input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /> - </td> - </tr> - <tr> - <td class='base' width='50%'> - <img src='/blob.gif' alt ='*' align='top' /> - <font class='base'>$Lang::tr{'this field may be blank'}</font> - </td> - <td class='base' width='25%' align='center'>$Lang::tr{'enabled'}<input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td> - <td width='25%' align='center'> - <input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /> - <input type='submit' name='SUBMIT' value='$buttonText' /> - </td> - </tr> -</table> -END -; -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) { - print "<input type='hidden' name='EDITING' value='$cgiparams{'ID'}' />\n"; -} else { - print "<input type='hidden' name='EDITING' value='no' />\n"; -} -&Header::closebox(); -print "</form>\n"; - -&Header::openbox('100%', 'left', $Lang::tr{'current rules'}); -print <<END -<table width='100%'> -<tr> -<td width='7%' class='boldbase' align='center'><b>$Lang::tr{'proto'}</b></td> -<td width='3%' class='boldbase' align='center'><b>$Lang::tr{'net'}</b></td> -<td width='25%' class='boldbase' align='center'><b>$Lang::tr{'source'}</b></td> -<td width='2%' class='boldbase' align='center'> </td> -<td width='3%' class='boldbase' align='center'><b>$Lang::tr{'net'}</b></td> -<td width='25%' class='boldbase' align='center'><b>$Lang::tr{'destination'}</b></td> -<td width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> -<td width='1%' class='boldbase' align='center'> </td> -<td width='4%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td> -END -; - -# Achim Weber: if i add a new rule, this rule is not displayed?!? -# we re-read always config. -# If something has happeened re-read config -#if($cgiparams{'ACTION'} ne '') -#{ - open(FILE, $filename) or die 'Unable to open config file.'; - @current = <FILE>; - close(FILE); -#} -my $id = 0; -foreach my $line (@current) -{ - my $protocol=''; - my $gif=''; - my $toggle=''; - my $gdesc=''; - $id++; - chomp($line); - my @temp = split(/,/,$line); - if ($temp[0] eq 'udp') { $protocol = 'UDP'; } else { $protocol = 'TCP' } - - my $srcnetcolor = ($temp[5] eq 'blue')? ${Header::colourblue} : ${Header::colourorange}; - my $destnetcolor = ($temp[6] eq 'blue')? ${Header::colourblue} : ${Header::colourgreen}; - - if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'ID'} eq $id) { - print "<tr bgcolor='${Header::colouryellow}'>\n"; } - elsif ($id % 2) { - print "<tr bgcolor='${Header::table1colour}'>\n"; } - else { - print "<tr bgcolor='${Header::table2colour}'>\n"; } - if ($temp[4] eq 'on') { $gif='on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};} - else { $gif = 'off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'}; } - - # Darren Critchley - Get Port Service Name if we can - code borrowed from firewalllog.dat - my $dstprt =$temp[3]; - $_=$temp[3]; - if (/^\d+$/) { - my $servi = uc(getservbyport($temp[3], lc($temp[0]))); - if ($servi ne '' && $temp[3] < 1024) { - $dstprt = "$dstprt($servi)"; } - } - # Darren Critchley - If the line is too long, wrap the port numbers - my $dstaddr = "$temp[2] : $dstprt"; - if (length($dstaddr) > 26) { - $dstaddr = "$temp[2] :<br /> $dstprt"; - } -print <<END -<td align='center'>$protocol</td> -<td bgcolor='$srcnetcolor'></td> -<td align='center'>$temp[1]</td> -<td align='center'><img src='/images/forward.gif' /></td> -<td bgcolor='$destnetcolor'></td> -<td align='center'>$dstaddr</td> -<td align='center'>$temp[7]</td> - -<td align='center'> -<form method='post' name='frma$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ENABLE' value='$toggle' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> -</form> -</td> - -<td align='center'> -<form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> -</form> -</td> - -<td align='center'> -<form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> -</form> -</td> - -</tr> -END - ; -} -print "</table>\n"; - -# If the fixed lease file contains entries, print Key to action icons -if ( ! -z "$filename") { -print <<END -<table> -<tr> - <td class='boldbase'> <b>$Lang::tr{'legend'}:</b></td> - <td> <img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td> - <td class='base'>$Lang::tr{'click to disable'}</td> - <td> <img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td> - <td class='base'>$Lang::tr{'click to enable'}</td> - <td> <img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td> - <td class='base'>$Lang::tr{'edit'}</td> - <td> <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td> - <td class='base'>$Lang::tr{'remove'}</td> -</tr> -</table> -END -; -} - -&Header::closebox(); - -&Header::closebigbox(); - -&Header::closepage(); - -sub validNet -{ - my $srcNet = $_[0]; - my $destNet = $_[1]; - - if ($srcNet eq $destNet) { - return $Lang::tr{'dmzpinholes for same net not necessary'}; } - unless ($srcNet =~ /^(blue|orange)$/) { - return $Lang::tr{'select source net'}; } - unless ($destNet =~ /^(blue|green)$/) { - return $Lang::tr{'select dest net'}; } - - return ''; -} - -sub haveOrangeNet -{ - if ($netsettings{'CONFIG_TYPE'} == 2) {return 1;} - if ($netsettings{'CONFIG_TYPE'} == 4) {return 1;} - return 0; -} - -sub haveBlueNet -{ - if ($netsettings{'CONFIG_TYPE'} == 3) {return 1;} - if ($netsettings{'CONFIG_TYPE'} == 4) {return 1;} - return 0; -} diff --git a/html/cgi-bin/dnsforward.cgi b/html/cgi-bin/dnsforward.cgi index 15d430c..5f051d2 100644 --- a/html/cgi-bin/dnsforward.cgi +++ b/html/cgi-bin/dnsforward.cgi @@ -224,13 +224,13 @@ print <<END <td><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='40' maxlength='50' /></td> </tr> </table> - +<br> <hr>
<table width='100%'> <tr> <td class='base' width='55%'><img src='/blob.gif' alt ='*' align='top' /> <font class='base'>$Lang::tr{'this field may be blank'}</font></td> - <td width='40%' align='center'> + <td width='40%' align='right'> <input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /> <input type='submit' name='SUBMIT' value='$buttontext' /> </td> @@ -252,12 +252,12 @@ print "</form>\n"; # &Header::openbox('100%', 'left', $Lang::tr{'dnsforward entries'}); print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td width='35%' class='boldbase' align='center'><b>$Lang::tr{'dnsforward zone'}</b></td> - <td width='30%' class='boldbase' align='center'><b>$Lang::tr{'dnsforward forward_server'}</b></td> - <td width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> - <td width='5%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='35%' class='boldbase' align='center'><b>$Lang::tr{'dnsforward zone'}</b></th> + <th width='30%' class='boldbase' align='center'><b>$Lang::tr{'dnsforward forward_server'}</b></th> + <th width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></th> + <th width='5%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -274,6 +274,7 @@ if($cgiparams{'ACTION'} ne '' or $changed ne 'no') # Re-read entries and highlight selected item for editing. # my $id = 0; +my $col=""; foreach my $line (@current) { $id++; @@ -285,11 +286,14 @@ foreach my $line (@current) my $toggle = ''; if($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'ID'} eq $id) { - print "<tr bgcolor='${Header::colouryellow}'>\n"; } + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ($id % 2) { - print "<tr bgcolor='$color{'color22'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; }
if ($temp[0] eq 'on') { $gif='on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};} else { $gif='off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'}; } @@ -298,10 +302,10 @@ foreach my $line (@current) # Display edit page. # print <<END - <td align='center'>$temp[1]</td> - <td align='center'>$temp[2]</td> - <td align='center'>$temp[3]</td> - <td align='center'> + <td align='center' $col>$temp[1]</td> + <td align='center' $col>$temp[2]</td> + <td align='center' $col>$temp[3]</td> + <td align='center' $col> <form method='post' name='frma$id' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' title='$gdesc' alt='$gdesc' /> <input type='hidden' name='ID' value='$id' /> @@ -309,14 +313,14 @@ print <<END <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> </form> </td> - <td align='center'> + <td align='center' $col> <form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' title='$Lang::tr{'edit'}' alt='$Lang::tr{'edit'}' /> <input type='hidden' name='ID' value='$id' /> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> </form> </td> - <td align='center'> + <td align='center' $col> <form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}' /> <input type='hidden' name='ID' value='$id' /> diff --git a/html/cgi-bin/extrahd.cgi b/html/cgi-bin/extrahd.cgi index 86b0de5..0bff591 100644 --- a/html/cgi-bin/extrahd.cgi +++ b/html/cgi-bin/extrahd.cgi @@ -127,7 +127,6 @@ if ($errormessage) { ############################################################################################################################ ############################################################################################################################
-&Header::openbox('100%', 'center', $Lang::tr{'extrahd'}); open( FILE, "< $devicefile" ) or die "Unable to read $devicefile"; @devices = <FILE>; close FILE; @@ -162,9 +161,6 @@ END </table> END ; - -&Header::closebox(); - &Header::openbox('100%', 'center', $Lang::tr{'extrahd detected drives'}); print <<END <table border='0' width='600' cellspacing="0"> diff --git a/html/cgi-bin/firewall.cgi b/html/cgi-bin/firewall.cgi new file mode 100644 index 0000000..7ffe59c --- /dev/null +++ b/html/cgi-bin/firewall.cgi @@ -0,0 +1,2835 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +use strict; +use Sort::Naturally; +no warnings 'uninitialized'; +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; +require "${General::swroot}/firewall/bin/firewall-lib.pl"; + +unless (-d "${General::swroot}/firewall") { system("mkdir ${General::swroot}/firewall"); } +unless (-e "${General::swroot}/firewall/settings") { system("touch ${General::swroot}/firewall/settings"); } +unless (-e "${General::swroot}/firewall/config") { system("touch ${General::swroot}/firewall/config"); } +unless (-e "${General::swroot}/firewall/input") { system("touch ${General::swroot}/firewall/input"); } +unless (-e "${General::swroot}/firewall/outgoing") { system("touch ${General::swroot}/firewall/outgoing"); } + +my %fwdfwsettings=(); +my %selected=() ; +my %defaultNetworks=(); +my %netsettings=(); +my %customhost=(); +my %customgrp=(); +my %customnetworks=(); +my %customservice=(); +my %customservicegrp=(); +my %ccdnet=(); +my %customnetwork=(); +my %ccdhost=(); +my %configfwdfw=(); +my %configinputfw=(); +my %configoutgoingfw=(); +my %ipsecconf=(); +my %color=(); +my %mainsettings=(); +my %checked=(); +my %icmptypes=(); +my %ovpnsettings=(); +my %ipsecsettings=(); +my %aliases=(); +my %optionsfw=(); +my %ifaces=(); + +my @PROTOCOLS = ("TCP", "UDP", "ICMP", "IGMP", "AH", "ESP", "GRE","IPv6","IPIP"); + +my $color; +my $confignet = "${General::swroot}/fwhosts/customnetworks"; +my $confighost = "${General::swroot}/fwhosts/customhosts"; +my $configgrp = "${General::swroot}/fwhosts/customgroups"; +my $configsrv = "${General::swroot}/fwhosts/customservices"; +my $configsrvgrp = "${General::swroot}/fwhosts/customservicegrp"; +my $configccdnet = "${General::swroot}/ovpn/ccd.conf"; +my $configccdhost = "${General::swroot}/ovpn/ovpnconfig"; +my $configipsec = "${General::swroot}/vpn/config"; +my $configipsecrw = "${General::swroot}/vpn/settings"; +my $configfwdfw = "${General::swroot}/firewall/config"; +my $configinput = "${General::swroot}/firewall/input"; +my $configoutgoing = "${General::swroot}/firewall/outgoing"; +my $configovpn = "${General::swroot}/ovpn/settings"; +my $fwoptions = "${General::swroot}/optionsfw/settings"; +my $ifacesettings = "${General::swroot}/ethernet/settings"; +my $errormessage=''; +my $hint=''; +my $ipgrp="${General::swroot}/outgoing/groups"; +my $tdcolor=''; +my $checkorange=''; +my @protocols; +&General::readhash("${General::swroot}/firewall/settings", %fwdfwsettings); +&General::readhash("${General::swroot}/main/settings", %mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); +&General::readhash($fwoptions, %optionsfw); +&General::readhash($ifacesettings, %ifaces); +&General::readhash("$configovpn", %ovpnsettings); +&General::readhash("$configipsecrw", %ipsecsettings); +&General::readhasharray("$configipsec", %ipsecconf); +&Header::showhttpheaders(); +&Header::getcgihash(%fwdfwsettings); +&Header::openpage($Lang::tr{'fwdfw menu'}, 1, ''); +&Header::openbigbox('100%', 'center',$errormessage); +#### JAVA SCRIPT #### +print<<END; +<script> + var PROTOCOLS_WITH_PORTS = ["TCP", "UDP"]; + + var update_protocol = function() { + var protocol = $("#protocol").val(); + + if (protocol === undefined) + return; + + // Check if a template is/should be used. + if (protocol === "template") { + $("#PROTOCOL_TEMPLATE").show(); + } else { + $("#PROTOCOL_TEMPLATE").hide(); + } + + // Check if we are dealing with a protocol, that knows ports. + if ($.inArray(protocol, PROTOCOLS_WITH_PORTS) >= 0) { + $("#PROTOCOL_PORTS").show(); + } else { + $("#PROTOCOL_PORTS").hide(); + } + + // Handle ICMP. + if (protocol === "ICMP") { + $("#PROTOCOL_ICMP_TYPES").show(); + } else { + $("#PROTOCOL_ICMP_TYPES").hide(); + } + }; + + $(document).ready(function() { + $("#protocol").change(update_protocol); + update_protocol(); + + // When nat not used, hide it + if (! $("#USE_NAT").attr("checked")) { + $(".NAT").hide(); + } + + // Show NAT area when "use nat" checkbox is clicked + $("#USE_NAT").change(function() { + $(".NAT").toggle(); + }); + + // Time constraints + if(!$("#USE_TIME_CONSTRAINTS").attr("checked")) { + $("#TIME_CONSTRAINTS").hide(); + } + $("#USE_TIME_CONSTRAINTS").change(function() { + $("#TIME_CONSTRAINTS").toggle(); + }); + + // Automatically select radio buttons when corresponding + // dropdown menu changes. + $("select").change(function() { + var id = $(this).attr("name"); + $('#' + id).prop("checked", true); + }); + }); +</script> +END + +#### ACTION ##### + +if ($fwdfwsettings{'ACTION'} eq 'saverule') +{ + &General::readhasharray("$configfwdfw", %configfwdfw); + &General::readhasharray("$configinput", %configinputfw); + &General::readhasharray("$configoutgoing", %configoutgoingfw); + #Set Variables according to the JQuery code in protocol section + if ($fwdfwsettings{'PROT'} eq 'TCP' || $fwdfwsettings{'PROT'} eq 'UDP') + { + if ($fwdfwsettings{'SRC_PORT'} ne '') + { + $fwdfwsettings{'USE_SRC_PORT'} = 'ON'; + } + if ($fwdfwsettings{'TGT_PORT'} ne '') + { + $fwdfwsettings{'USESRV'} = 'ON'; + $fwdfwsettings{'grp3'} = 'TGT_PORT'; + } + } + if ($fwdfwsettings{'PROT'} eq 'template') + { + $fwdfwsettings{'USESRV'} = 'ON'; + } + $errormessage=&checksource; + if(!$errormessage){&checktarget;} + if(!$errormessage){&checkrule;} + #check if manual ip (source) is orange network + if ($fwdfwsettings{'grp1'} eq 'src_addr'){ + my ($sip,$scidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp1'}}); + if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){ + $checkorange='on'; + } + } + #check useless rules + if( ($fwdfwsettings{$fwdfwsettings{'grp1'}} eq 'ORANGE' || $checkorange eq 'on') && $fwdfwsettings{'grp2'} eq 'ipfire'){ + $errormessage.=$Lang::tr{'fwdfw useless rule'}."<br>"; + } + #check if we try to break rules + if( $fwdfwsettings{'grp1'} eq 'ipfire_src' && $fwdfwsettings{'grp2'} eq 'ipfire'){ + $errormessage=$Lang::tr{'fwdfw err same'}; + } + #INPUT part + if($fwdfwsettings{'grp2'} eq 'ipfire' && $fwdfwsettings{$fwdfwsettings{'grp1'}} ne 'ORANGE'){ + $fwdfwsettings{'config'}=$configinput; + $fwdfwsettings{'chain'} = 'INPUTFW'; + my $maxkey=&General::findhasharraykey(%configinputfw); + #check if we have an identical rule already + if($fwdfwsettings{'oldrulenumber'} eq $fwdfwsettings{'rulepos'}){ + foreach my $key (sort keys %configinputfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configinputfw{$key}[0],$configinputfw{$key}[2],$configinputfw{$key}[3],$configinputfw{$key}[4],$configinputfw{$key}[5],$configinputfw{$key}[6],$configinputfw{$key}[7],$configinputfw{$key}[8],$configinputfw{$key}[9],$configinputfw{$key}[10],$configinputfw{$key}[11],$configinputfw{$key}[12],$configinputfw{$key}[13],$configinputfw{$key}[14],$configinputfw{$key}[15],$configinputfw{$key}[17],$configinputfw{$key}[18],$configinputfw{$key}[19],$configinputfw{$key}[20],$configinputfw{$key}[21],$configinputfw{$key}[22],$configinputfw{$key}[23],$configinputfw{$key}[24],$configinputfw{$key}[25],$configinputfw{$key}[26],$configinputfw{$key}[27],$configinputfw{$key}[28],$configinputfw{$key}[29],$configinputfw{$key}[30],$configinputfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + if ($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on'){ + $errormessage=''; + }elsif($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){ + $errormessage=$Lang::tr{'fwdfw err remark'}."<br>"; + } + if ($fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'}){ + $fwdfwsettings{'nosave'} = 'on'; + } + } + } + } + #check Rulepos on new Rule + if($fwdfwsettings{'rulepos'} > 0 && !$fwdfwsettings{'oldrulenumber'}){ + $fwdfwsettings{'oldrulenumber'}=$maxkey; + foreach my $key (sort keys %configinputfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configinputfw{$key}[0],$configinputfw{$key}[2],$configinputfw{$key}[3],$configinputfw{$key}[4],$configinputfw{$key}[5],$configinputfw{$key}[6],$configinputfw{$key}[7],$configinputfw{$key}[8],$configinputfw{$key}[9],$configinputfw{$key}[10],$configinputfw{$key}[11],$configinputfw{$key}[12],$configinputfw{$key}[13],$configinputfw{$key}[14],$configinputfw{$key}[15],$configinputfw{$key}[17],$configinputfw{$key}[18],$configinputfw{$key}[19],$configinputfw{$key}[20],$configinputfw{$key}[21],$configinputfw{$key}[22],$configinputfw{$key}[23],$configinputfw{$key}[24],$configinputfw{$key}[25],$configinputfw{$key}[26],$configinputfw{$key}[27],$configinputfw{$key}[28],$configinputfw{$key}[29],$configinputfw{$key}[30],$configinputfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + } + } + } + #check if we just close a rule + if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'}) { + if($fwdfwsettings{'nosave'} eq 'on' && $fwdfwsettings{'updatefwrule'} eq 'on'){ + $errormessage=''; + $fwdfwsettings{'nosave2'} = 'on'; + } + } + if (!$errormessage){ + if($fwdfwsettings{'nosave2'} ne 'on'){ + &saverule(%configinputfw,$configinput); + } + } + }elsif($fwdfwsettings{'grp1'} eq 'ipfire_src' ){ + # OUTGOING PART + $fwdfwsettings{'config'}=$configoutgoing; + $fwdfwsettings{'chain'} = 'OUTGOINGFW'; + my $maxkey=&General::findhasharraykey(%configoutgoingfw); + if($fwdfwsettings{'oldrulenumber'} eq $fwdfwsettings{'rulepos'}){ + foreach my $key (sort keys %configoutgoingfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configoutgoingfw{$key}[0],$configoutgoingfw{$key}[2],$configoutgoingfw{$key}[3],$configoutgoingfw{$key}[4],$configoutgoingfw{$key}[5],$configoutgoingfw{$key}[6],$configoutgoingfw{$key}[7],$configoutgoingfw{$key}[8],$configoutgoingfw{$key}[9],$configoutgoingfw{$key}[10],$configoutgoingfw{$key}[11],$configoutgoingfw{$key}[12],$configoutgoingfw{$key}[13],$configoutgoingfw{$key}[14],$configoutgoingfw{$key}[15],$configoutgoingfw{$key}[17],$configoutgoingfw{$key}[18],$configoutgoingfw{$key}[19],$configoutgoingfw{$key}[20],$configoutgoingfw{$key}[21],$configoutgoingfw{$key}[22],$configoutgoingfw{$key}[23],$configoutgoingfw{$key}[24],$configoutgoingfw{$key}[25],$configoutgoingfw{$key}[26],$configoutgoingfw{$key}[27],$configoutgoingfw{$key}[28],$configoutgoingfw{$key}[29],$configoutgoingfw{$key}[30],$configoutgoingfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + if ($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on'){ + $errormessage=''; + }elsif($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){ + $errormessage=$Lang::tr{'fwdfw err remark'}."<br>"; + } + if ($fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'}){ + $fwdfwsettings{'nosave'} = 'on'; + } + } + } + } + #check Rulepos on new Rule + if($fwdfwsettings{'rulepos'} > 0 && !$fwdfwsettings{'oldrulenumber'}){ + print"CHECK OUTGOING DOPPELTE REGEL<br>"; + $fwdfwsettings{'oldrulenumber'}=$maxkey; + foreach my $key (sort keys %configoutgoingfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configoutgoingfw{$key}[0],$configoutgoingfw{$key}[2],$configoutgoingfw{$key}[3],$configoutgoingfw{$key}[4],$configoutgoingfw{$key}[5],$configoutgoingfw{$key}[6],$configoutgoingfw{$key}[7],$configoutgoingfw{$key}[8],$configoutgoingfw{$key}[9],$configoutgoingfw{$key}[10],$configoutgoingfw{$key}[11],$configoutgoingfw{$key}[12],$configoutgoingfw{$key}[13],$configoutgoingfw{$key}[14],$configoutgoingfw{$key}[15],$configoutgoingfw{$key}[17],$configoutgoingfw{$key}[18],$configoutgoingfw{$key}[19],$configoutgoingfw{$key}[20],$configoutgoingfw{$key}[21],$configoutgoingfw{$key}[22],$configoutgoingfw{$key}[23],$configoutgoingfw{$key}[24],$configoutgoingfw{$key}[25],$configoutgoingfw{$key}[26],$configoutgoingfw{$key}[27],$configoutgoingfw{$key}[28],$configoutgoingfw{$key}[29],$configoutgoingfw{$key}[30],$configoutgoingfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + } + } + } + #check if we just close a rule + if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'}) { + if($fwdfwsettings{'nosave'} eq 'on' && $fwdfwsettings{'updatefwrule'} eq 'on'){ + $fwdfwsettings{'nosave2'} = 'on'; + $errormessage=''; + } + } + #increase counters + if (!$errormessage){ + if ($fwdfwsettings{'nosave2'} ne 'on'){ + &saverule(%configoutgoingfw,$configoutgoing); + } + } + }else{ + #FORWARD PART + $fwdfwsettings{'config'}=$configfwdfw; + $fwdfwsettings{'chain'} = 'FORWARDFW'; + my $maxkey=&General::findhasharraykey(%configfwdfw); + if($fwdfwsettings{'oldrulenumber'} eq $fwdfwsettings{'rulepos'}){ + #check if we have an identical rule already + foreach my $key (sort keys %configfwdfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configfwdfw{$key}[0],$configfwdfw{$key}[2],$configfwdfw{$key}[3],$configfwdfw{$key}[4],$configfwdfw{$key}[5],$configfwdfw{$key}[6],$configfwdfw{$key}[7],$configfwdfw{$key}[8],$configfwdfw{$key}[9],$configfwdfw{$key}[10],$configfwdfw{$key}[11],$configfwdfw{$key}[12],$configfwdfw{$key}[13],$configfwdfw{$key}[14],$configfwdfw{$key}[15],$configfwdfw{$key}[18],$configfwdfw{$key}[19],$configfwdfw{$key}[20],$configfwdfw{$key}[21],$configfwdfw{$key}[22],$configfwdfw{$key}[23],$configfwdfw{$key}[24],$configfwdfw{$key}[25],$configfwdfw{$key}[26],$configfwdfw{$key}[27],$configfwdfw{$key}[28],$configfwdfw{$key}[29],$configfwdfw{$key}[30],$configfwdfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + if ($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' ){ + $errormessage=''; + }elsif($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){ + $errormessage=$Lang::tr{'fwdfw err remark'}."<br>"; + } + if ($fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'}){ + $fwdfwsettings{'nosave'} = 'on'; + } + } + } + } + #check Rulepos on new Rule + if($fwdfwsettings{'rulepos'} > 0 && !$fwdfwsettings{'oldrulenumber'}){ + $fwdfwsettings{'oldrulenumber'}=$maxkey; + foreach my $key (sort keys %configfwdfw){ + if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}" + eq "$configfwdfw{$key}[0],$configfwdfw{$key}[2],$configfwdfw{$key}[3],$configfwdfw{$key}[4],$configfwdfw{$key}[5],$configfwdfw{$key}[6],$configfwdfw{$key}[7],$configfwdfw{$key}[8],$configfwdfw{$key}[9],$configfwdfw{$key}[10],$configfwdfw{$key}[11],$configfwdfw{$key}[12],$configfwdfw{$key}[13],$configfwdfw{$key}[14],$configfwdfw{$key}[15],$configfwdfw{$key}[18],$configfwdfw{$key}[19],$configfwdfw{$key}[20],$configfwdfw{$key}[21],$configfwdfw{$key}[22],$configfwdfw{$key}[23],$configfwdfw{$key}[24],$configfwdfw{$key}[25],$configfwdfw{$key}[26],$configfwdfw{$key}[27],$configfwdfw{$key}[28],$configfwdfw{$key}[29],$configfwdfw{$key}[30],$configfwdfw{$key}[31]"){ + $errormessage.=$Lang::tr{'fwdfw err ruleexists'}; + } + } + } + #check if we just close a rule + if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'}) { + if($fwdfwsettings{'nosave'} eq 'on' && $fwdfwsettings{'updatefwrule'} eq 'on'){ + $fwdfwsettings{'nosave2'} = 'on'; + $errormessage=''; + } + } + #increase counters + if (!$errormessage){ + if ($fwdfwsettings{'nosave2'} ne 'on'){ + &saverule(%configfwdfw,$configfwdfw); + } + } + } + if ($errormessage){ + &newrule; + }else{ + if($fwdfwsettings{'nosave2'} ne 'on'){ + &General::firewall_config_changed(); + } + &base; + } +} +if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'fwdfw newrule'}) +{ + &newrule; +} +if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'fwdfw toggle'}) +{ + my %togglehash=(); + &General::readhasharray($fwdfwsettings{'config'}, %togglehash); + foreach my $key (sort keys %togglehash){ + if ($key eq $fwdfwsettings{'key'}){ + if ($togglehash{$key}[2] eq 'ON'){$togglehash{$key}[2]='';}else{$togglehash{$key}[2]='ON';} + } + } + &General::writehasharray($fwdfwsettings{'config'}, %togglehash); + &General::firewall_config_changed(); + &base; +} +if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'fwdfw togglelog'}) +{ + my %togglehash=(); + &General::readhasharray($fwdfwsettings{'config'}, %togglehash); + foreach my $key (sort keys %togglehash){ + if ($key eq $fwdfwsettings{'key'}){ + if ($togglehash{$key}[17] eq 'ON'){$togglehash{$key}[17]='';}else{$togglehash{$key}[17]='ON';} + } + } + &General::writehasharray($fwdfwsettings{'config'}, %togglehash); + &General::firewall_config_changed(); + &base; +} +if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'fwdfw reread'}) +{ + &General::firewall_reload(); + &base; +} +if ($fwdfwsettings{'ACTION'} eq 'editrule') +{ + $fwdfwsettings{'updatefwrule'}='on'; + &newrule; +} +if ($fwdfwsettings{'ACTION'} eq 'deleterule') +{ + &deleterule; +} +if ($fwdfwsettings{'ACTION'} eq 'moveup') +{ + &pos_up; + &base; +} +if ($fwdfwsettings{'ACTION'} eq 'movedown') +{ + &pos_down; + &base; +} +if ($fwdfwsettings{'ACTION'} eq 'copyrule') +{ + $fwdfwsettings{'copyfwrule'}='on'; + &newrule; +} +if ($fwdfwsettings{'ACTION'} eq '' or $fwdfwsettings{'ACTION'} eq 'reset') +{ + &base; +} +### Functions #### +sub addrule +{ + &error; + + &Header::openbox('100%', 'left', ""); + print <<END; + <form method="POST" action=""> + <table border='0' width="100%"> + <tr> + <td align='center'> + <input type='submit' name='ACTION' value='$Lang::tr{'fwdfw newrule'}'> +END + + if (&General::firewall_needs_reload()) { + print <<END; + <input type='submit' name='ACTION' value='$Lang::tr{'fwdfw reread'}' style='font-weight: bold; color: green;'> +END + } + + print <<END; + </td> + </tr> + </table> + </form> + + <br> +END + + &Header::closebox(); + &viewtablerule; +} +sub base +{ + &hint; + &addrule; +} +sub changerule +{ + my $oldchain=shift; + $fwdfwsettings{'updatefwrule'}=''; + $fwdfwsettings{'config'}=$oldchain; + $fwdfwsettings{'nobase'}='on'; + &deleterule; +} +sub checksource +{ + my ($ip,$subnet); + #check ip-address if manual + if ($fwdfwsettings{'src_addr'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'src_addr'} ne ''){ + #check if ip with subnet + if ($fwdfwsettings{'src_addr'} =~ /^(.*?)/(.*?)$/) { + ($ip,$subnet)=split (///,$fwdfwsettings{'src_addr'}); + $subnet = &General::iporsubtocidr($subnet); + $fwdfwsettings{'isip'}='on'; + } + #check if only ip + if($fwdfwsettings{'src_addr'}=~/^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $ip=$fwdfwsettings{'src_addr'}; + $subnet = '32'; + $fwdfwsettings{'isip'}='on'; + } + + if ($fwdfwsettings{'isip'} ne 'on'){ + if (&General::validmac($fwdfwsettings{'src_addr'})){ + $fwdfwsettings{'ismac'}='on'; + } + } + if ($fwdfwsettings{'isip'} eq 'on'){ + ##check if ip is valid + if (! &General::validip($ip)){ + $errormessage.=$Lang::tr{'fwdfw err src_addr'}."<br>"; + return $errormessage; + } + #check and form valid IP + $ip=&General::ip2dec($ip); + $ip=&General::dec2ip($ip); + #check if net or broadcast + $fwdfwsettings{'src_addr'}="$ip/$subnet"; + if(!&General::validipandmask($fwdfwsettings{'src_addr'})){ + $errormessage.=$Lang::tr{'fwdfw err src_addr'}."<br>"; + return $errormessage; + } + } + if ($fwdfwsettings{'isip'} ne 'on' && $fwdfwsettings{'ismac'} ne 'on'){ + $errormessage.=$Lang::tr{'fwdfw err src_addr'}."<br>"; + return $errormessage; + } + }elsif($fwdfwsettings{'src_addr'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'src_addr'} eq ''){ + $errormessage.=$Lang::tr{'fwdfw err nosrcip'}; + return $errormessage; + } + + #check empty fields + if ($fwdfwsettings{$fwdfwsettings{'grp1'}} eq ''){ $errormessage.=$Lang::tr{'fwdfw err nosrc'}."<br>";} + if($fwdfwsettings{'USE_SRC_PORT'} eq 'ON' && ($fwdfwsettings{'PROT'} eq 'TCP' || $fwdfwsettings{'PROT'} eq 'UDP') && $fwdfwsettings{'SRC_PORT'} ne ''){ + my @parts=split(",",$fwdfwsettings{'SRC_PORT'}); + my @values=(); + foreach (@parts){ + chomp($_); + if ($_ =~ /^(\d+)-(\d+)$/ || $_ =~ /^(\d+):(\d+)$/) { + my $check; + #change dashes with : + $_=~ tr/-/:/; + if ($_ eq "*") { + push(@values,"1:65535"); + $check='on'; + } + if ($_ =~ /^(\D):(\d+)$/ || $_ =~ /^(\D)-(\d+)$/) { + push(@values,"1:$2"); + $check='on'; + } + if ($_ =~ /^(\d+):(\D)$/ || $_ =~ /^(\d+)-(\D)$/ ) { + push(@values,"$1:65535"); + $check='on' + } + $errormessage .= &General::validportrange($_, 'destination'); + if(!$check){ + push (@values,$_); + } + }else{ + if (&General::validport($_)){ + push (@values,$_); + }else{ + + } + } + } + $fwdfwsettings{'SRC_PORT'}=join("|",@values); + } + return $errormessage; +} +sub checktarget +{ + my ($ip,$subnet); + &General::readhasharray("$configsrv", %customservice); + #check DNAT settings (has to be single Host and single Port or portrange) + if ($fwdfwsettings{'USE_NAT'} eq 'ON' && $fwdfwsettings{'nat'} eq 'dnat'){ + if($fwdfwsettings{'grp2'} eq 'tgt_addr' || $fwdfwsettings{'grp2'} eq 'cust_host_tgt' || $fwdfwsettings{'grp2'} eq 'ovpn_host_tgt'){ + #check if manual ip is a single Host (if set) + if ($fwdfwsettings{'grp2'} eq 'tgt_addr'){ + my @tmp= split (/./,$fwdfwsettings{$fwdfwsettings{'grp2'}}); + my @tmp1= split ("/",$tmp[3]); + if (($tmp1[0] eq "0") || ($tmp1[0] eq "255")) + { + $errormessage=$Lang::tr{'fwdfw dnat error'}."<br>"; + return $errormessage; + } + } + #check if Port is a single Port or portrange + if ($fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'grp3'} eq 'TGT_PORT'){ + if(($fwdfwsettings{'PROT'} ne 'TCP'|| $fwdfwsettings{'PROT'} ne 'UDP') && $fwdfwsettings{'TGT_PORT'} eq ''){ + $errormessage=$Lang::tr{'fwdfw target'}.": ".$Lang::tr{'fwdfw dnat porterr'}."<br>"; + return $errormessage; + } + if (($fwdfwsettings{'PROT'} eq 'TCP'|| $fwdfwsettings{'PROT'} eq 'UDP') && $fwdfwsettings{'TGT_PORT'} ne '' && !&check_natport($fwdfwsettings{'TGT_PORT'})){ + $errormessage=$Lang::tr{'fwdfw target'}.": ".$Lang::tr{'fwdfw dnat porterr'}."<br>"; + return $errormessage; + } + } + }else{ + $errormessage=$Lang::tr{'fwdfw dnat error'}."<br>"; + return $errormessage; + } + } + if ($fwdfwsettings{'tgt_addr'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'tgt_addr'} ne ''){ + #check if ip with subnet + if ($fwdfwsettings{'tgt_addr'} =~ /^(.*?)/(.*?)$/) { + ($ip,$subnet)=split (///,$fwdfwsettings{'tgt_addr'}); + $subnet = &General::iporsubtocidr($subnet); + } + #check if only ip + if($fwdfwsettings{'tgt_addr'}=~/^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $ip=$fwdfwsettings{'tgt_addr'}; + $subnet='32'; + } + #check if ip is valid + if (! &General::validip($ip)){ + $errormessage.=$Lang::tr{'fwdfw err tgt_addr'}."<br>"; + return $errormessage; + } + #check and form valid IP + $ip=&General::ip2dec($ip); + $ip=&General::dec2ip($ip); + $fwdfwsettings{'tgt_addr'}="$ip/$subnet"; + if(!&General::validipandmask($fwdfwsettings{'tgt_addr'})){ + $errormessage.=$Lang::tr{'fwdfw err tgt_addr'}."<br>"; + return $errormessage; + } + }elsif($fwdfwsettings{'tgt_addr'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'tgt_addr'} eq ''){ + $errormessage.=$Lang::tr{'fwdfw err notgtip'}; + return $errormessage; + } + #check empty fields + if ($fwdfwsettings{$fwdfwsettings{'grp2'}} eq ''){ $errormessage.=$Lang::tr{'fwdfw err notgt'}."<br>";} + #check tgt services + if ($fwdfwsettings{'USESRV'} eq 'ON'){ + if ($fwdfwsettings{'grp3'} eq 'cust_srv'){ + $fwdfwsettings{'TGT_PROT'}=''; + $fwdfwsettings{'ICMP_TGT'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + } + if ($fwdfwsettings{'grp3'} eq 'cust_srvgrp'){ + $fwdfwsettings{'TGT_PROT'}=''; + $fwdfwsettings{'ICMP_TGT'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + #check target service + if($fwdfwsettings{$fwdfwsettings{'grp3'}} eq ''){ + $errormessage.=$Lang::tr{'fwdfw err tgt_grp'}; + } + } + if ($fwdfwsettings{'grp3'} eq 'TGT_PORT'){ + if ($fwdfwsettings{'PROT'} eq 'TCP' || $fwdfwsettings{'PROT'} eq 'UDP'){ + if ($fwdfwsettings{'TGT_PORT'} ne ''){ + if ($fwdfwsettings{'TGT_PORT'} =~ "," && $fwdfwsettings{'USE_NAT'} && $fwdfwsettings{'nat'} eq 'dnat') { + $errormessage=$Lang::tr{'fwdfw dnat porterr'}."<br>"; + return $errormessage; + } + my @parts=split(",",$fwdfwsettings{'TGT_PORT'}); + my @values=(); + foreach (@parts){ + chomp($_); + if ($_ =~ /^(\d+)-(\d+)$/ || $_ =~ /^(\d+):(\d+)$/) { + my $check; + #change dashes with : + $_=~ tr/-/:/; + if ($_ eq "*") { + push(@values,"1:65535"); + $check='on'; + } + if ($_ =~ /^(\D):(\d+)$/ || $_ =~ /^(\D)-(\d+)$/) { + push(@values,"1:$2"); + $check='on'; + } + if ($_ =~ /^(\d+):(\D)$/ || $_ =~ /^(\d+)-(\D)$/) { + push(@values,"$1:65535"); + $check='on' + } + $errormessage .= &General::validportrange($_, 'destination'); + if(!$check){ + push (@values,$_); + } + }else{ + if (&General::validport($_)){ + push (@values,$_); + }else{ + $errormessage=$Lang::tr{'fwdfw err tgt_port'}; + return $errormessage; + } + } + } + $fwdfwsettings{'TGT_PORT'}=join("|",@values); + } + }elsif ($fwdfwsettings{'PROT'} eq 'GRE'){ + $fwdfwsettings{$fwdfwsettings{'grp3'}} = ''; + $fwdfwsettings{'TGT_PORT'} = ''; + $fwdfwsettings{'ICMP_TGT'} = ''; + }elsif ($fwdfwsettings{'PROT'} eq 'ESP'){ + $fwdfwsettings{$fwdfwsettings{'grp3'}} = ''; + $fwdfwsettings{'TGT_PORT'} = ''; + $fwdfwsettings{'ICMP_TGT'}=''; + }elsif ($fwdfwsettings{'PROT'} eq 'AH'){ + $fwdfwsettings{$fwdfwsettings{'grp3'}} = ''; + $fwdfwsettings{'TGT_PORT'} = ''; + $fwdfwsettings{'ICMP_TGT'}=''; + }elsif ($fwdfwsettings{'PROT'} eq 'ICMP'){ + $fwdfwsettings{$fwdfwsettings{'grp3'}} = ''; + $fwdfwsettings{'TGT_PORT'} = ''; + } + } + } + #check targetport + if ($fwdfwsettings{'USESRV'} ne 'ON'){ + $fwdfwsettings{'grp3'}=''; + $fwdfwsettings{$fwdfwsettings{'grp3'}}=''; + $fwdfwsettings{'ICMP_TGT'}=''; + } + #check timeframe + if($fwdfwsettings{'TIME'} eq 'ON'){ + if($fwdfwsettings{'TIME_MON'} eq '' && $fwdfwsettings{'TIME_TUE'} eq '' && $fwdfwsettings{'TIME_WED'} eq '' && $fwdfwsettings{'TIME_THU'} eq '' && $fwdfwsettings{'TIME_FRI'} eq '' && $fwdfwsettings{'TIME_SAT'} eq '' && $fwdfwsettings{'TIME_SUN'} eq ''){ + $errormessage=$Lang::tr{'fwdfw err time'}; + return $errormessage; + } + } + return $errormessage; +} +sub check_natport +{ + my $val=shift; + if($fwdfwsettings{'USE_NAT'} eq 'ON' && $fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'dnatport'} ne ''){ + if ($fwdfwsettings{'dnatport'} =~ /^(\d+)-(\d+)$/) { + $fwdfwsettings{'dnatport'} =~ tr/-/:/; + if ($fwdfwsettings{'dnatport'} eq "*") { + $fwdfwsettings{'dnatport'}="1:65535"; + } + if ($fwdfwsettings{'dnatport'} =~ /^(\D):(\d+)$/) { + $fwdfwsettings{'dnatport'} = "1:$2"; + } + if ($fwdfwsettings{'dnatport'} =~ /^(\d+):(\D)$/) { + $fwdfwsettings{'dnatport'} ="$1:65535"; + } + } + return 1; + } + if ($val =~ "," || $val>65536 || $val<0){ + return 0; + } + return 1; +} +sub checkrule +{ + #check valid port for NAT + if($fwdfwsettings{'USE_NAT'} eq 'ON'){ + #if no dest port is given in nat area, take target host port + if($fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'grp3'} eq 'TGT_PORT' && $fwdfwsettings{'dnatport'} eq ''){$fwdfwsettings{'dnatport'}=$fwdfwsettings{'TGT_PORT'};} + if($fwdfwsettings{'TGT_PORT'} eq '' && $fwdfwsettings{'dnatport'} ne '' && ($fwdfwsettings{'PROT'} eq 'TCP' || $fwdfwsettings{'PROT'} eq 'UDP')){ + $errormessage=$Lang::tr{'fwdfw dnat porterr2'}; + } + #check if port given in nat area is a single valid port or portrange + if($fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'TGT_PORT'} ne '' && !&check_natport($fwdfwsettings{'dnatport'})){ + $errormessage=$Lang::tr{'fwdfw target'}.": ".$Lang::tr{'fwdfw dnat porterr'}."<br>"; + }elsif($fwdfwsettings{'USESRV'} eq 'ON' && $fwdfwsettings{'grp3'} eq 'cust_srv'){ + my $custsrvport; + #get servcie Protocol and Port + foreach my $key (sort keys %customservice){ + if($fwdfwsettings{$fwdfwsettings{'grp3'}} eq $customservice{$key}[0]){ + if ($customservice{$key}[2] ne 'TCP' && $customservice{$key}[2] ne 'UDP'){ + $errormessage=$Lang::tr{'fwdfw target'}.": ".$Lang::tr{'fwdfw dnat porterr'}."<br>"; + } + $custsrvport= $customservice{$key}[1]; + } + } + if($fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'dnatport'} eq ''){$fwdfwsettings{'dnatport'}=$custsrvport;} + } + #check if DNAT port is multiple + if($fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'dnatport'} ne ''){ + my @parts=split(",",$fwdfwsettings{'dnatport'}); + my @values=(); + foreach (@parts){ + chomp($_); + if ($_ =~ /^(\d+)-(\d+)$/ || $_ =~ /^(\d+):(\d+)$/) { + my $check; + #change dashes with : + $_=~ tr/-/:/; + if ($_ eq "*") { + push(@values,"1:65535"); + $check='on'; + } + if ($_ =~ /^(\D):(\d+)$/ || $_ =~ /^(\D)-(\d+)$/) { + push(@values,"1:$2"); + $check='on'; + } + if ($_ =~ /^(\d+):(\D)$/ || $_ =~ /^(\d+)-(\D)$/) { + push(@values,"$1:65535"); + $check='on' + } + $errormessage .= &General::validportrange($_, 'destination'); + if(!$check){ + push (@values,$_); + } + }else{ + if (&General::validport($_)){ + push (@values,$_); + }else{ + + } + } + } + $fwdfwsettings{'dnatport'}=join("|",@values); + } + #check if a rule with prot tcp or udp and ports is edited and now prot is "all", then delete all ports + if($fwdfwsettings{'PROT'} eq ''){ + $fwdfwsettings{'dnatport'}=''; + } + } + #check valid remark + if ($fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){ + $errormessage.=$Lang::tr{'fwdfw err remark'}."<br>"; + } + #check if source and target identical + if ($fwdfwsettings{$fwdfwsettings{'grp1'}} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{$fwdfwsettings{'grp1'}} ne 'ALL'){ + $errormessage=$Lang::tr{'fwdfw err same'}; + return $errormessage; + } + #get source and targetip address if possible + my ($sip,$scidr,$tip,$tcidr); + ($sip,$scidr)=&get_ip("src","grp1"); + ($tip,$tcidr)=&get_ip("tgt","grp2"); + #check same iprange in source and target + if ($sip ne '' && $scidr ne '' && $tip ne '' && $tcidr ne ''){ + my $networkip1=&General::getnetworkip($sip,$scidr); + my $networkip2=&General::getnetworkip($tip,$tcidr); + if ($scidr gt $tcidr){ + if ( &General::IpInSubnet($networkip1,$tip,&General::iporsubtodec($tcidr))){ + $errormessage.=$Lang::tr{'fwdfw err samesub'}; + } + }elsif($scidr eq $tcidr && $scidr eq '32'){ + my ($sbyte1,$sbyte2,$sbyte3,$sbyte4)=split(/./,$networkip1); + my ($tbyte1,$tbyte2,$tbyte3,$tbyte4)=split(/./,$networkip2); + if ($sbyte1 eq $tbyte1 && $sbyte2 eq $tbyte2 && $sbyte3 eq $tbyte3){ + $hint=$Lang::tr{'fwdfw hint ip1'}."<br>"; + $hint.=$Lang::tr{'fwdfw hint ip2'}." Source: $networkip1/$scidr Target: $networkip2/$tcidr<br>"; + } + }else{ + if ( &General::IpInSubnet($networkip2,$sip,&General::iporsubtodec($scidr)) ){ + $errormessage.=$Lang::tr{'fwdfw err samesub'}; + } + } + } + #when icmp selected, no source and targetport allowed + if (($fwdfwsettings{'PROT'} ne '' && $fwdfwsettings{'PROT'} ne 'TCP' && $fwdfwsettings{'PROT'} ne 'UDP' && $fwdfwsettings{'PROT'} ne 'template') && ($fwdfwsettings{'USESRV'} eq 'ON' || $fwdfwsettings{'USE_SRC_PORT'} eq 'ON')){ + $errormessage.=$Lang::tr{'fwdfw err prot_port'}; + return; + } + #change protocol if prot not equal dest single service + if ($fwdfwsettings{'grp3'} eq 'cust_srv'){ + foreach my $key (sort keys %customservice){ + if($customservice{$key}[0] eq $fwdfwsettings{$fwdfwsettings{'grp3'}}){ + if ($customservice{$key}[2] ne $fwdfwsettings{'PROT'}){ + $fwdfwsettings{'PROT'} = $customservice{$key}[2]; + last; + } + } + } + } + #check source and destination protocol if source manual and dest servicegroup + if ($fwdfwsettings{'grp3'} eq 'cust_srvgrp'){ + $fwdfwsettings{'PROT'} = ''; + } + #ATTENTION: $fwdfwsetting{'TGT_PROT'} deprecated since 30.09.2013 + $fwdfwsettings{'TGT_PROT'}=''; #Set field empty (deprecated) + #Check ICMP Types + if ($fwdfwsettings{'PROT'} eq 'ICMP'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + #$fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + foreach my $key (keys %icmptypes){ + if($fwdfwsettings{'ICMP_TYPES'} eq "$icmptypes{$key}[0] ($icmptypes{$key}[1])"){ + $fwdfwsettings{'ICMP_TYPES'}="$icmptypes{$key}[0]"; + } + } + }elsif($fwdfwsettings{'PROT'} eq 'GRE'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} eq 'ESP'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} eq 'AH'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} eq 'IGMP'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} eq 'IPv6'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} eq 'IPIP'){ + $fwdfwsettings{'USE_SRC_PORT'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'USESRV'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} ne 'TCP' && $fwdfwsettings{'PROT'} ne 'UDP'){ + $fwdfwsettings{'ICMP_TYPES'}=''; + $fwdfwsettings{'SRC_PORT'}=''; + $fwdfwsettings{'TGT_PORT'}=''; + }elsif($fwdfwsettings{'PROT'} ne 'ICMP'){ + $fwdfwsettings{'ICMP_TYPES'}=''; + } +} +sub checkvpn +{ + my $ip=shift; + #Test if manual IP is part of static OpenVPN networks + &General::readhasharray("$configccdnet", %ccdnet); + foreach my $key (sort keys %ccdnet){ + my ($vpnip,$vpnsubnet) = split ("/",$ccdnet{$key}[1]); + my $sub=&General::iporsubtodec($vpnsubnet); + if (&General::IpInSubnet($ip,$vpnip,$sub)){ + return 0; + } + } + # A Test if manual ip is part of dynamic openvpn subnet is made in getcolor + # because if one creates a custom host with the ip, we need to check the color there! + # It does not make sense to check this here + + # Test if manual IP is part of an OpenVPN N2N subnet does also not make sense here + # Is also checked in getcolor + + # Test if manual ip is part of an IPsec Network is also checked in getcolor + return 1; +} +sub checkvpncolor +{ + +} +sub deleterule +{ + my %delhash=(); + &General::readhasharray($fwdfwsettings{'config'}, %delhash); + foreach my $key (sort {$a <=> $b} keys %delhash){ + if ($key >= $fwdfwsettings{'key'}) { + my $next = $key + 1; + if (exists $delhash{$next}) { + foreach my $i (0 .. $#{$delhash{$next}}) { + $delhash{$key}[$i] = $delhash{$next}[$i]; + } + } + } + } + # Remove the very last entry. + my $last_key = (sort {$a <=> $b} keys %delhash)[-1]; + delete $delhash{$last_key}; + + &General::writehasharray($fwdfwsettings{'config'}, %delhash); + &General::firewall_config_changed(); + + if($fwdfwsettings{'nobase'} ne 'on'){ + &base; + } +} +sub disable_rule +{ + my $key1=shift; + &General::readhasharray("$configfwdfw", %configfwdfw); + foreach my $key (sort keys %configfwdfw){ + if ($key eq $key1 ){ + if ($configfwdfw{$key}[2] eq 'ON'){$configfwdfw{$key}[2]='';} + } + } + &General::writehasharray("$configfwdfw", %configfwdfw); + &General::firewall_config_changed(); +} +sub error +{ + if ($errormessage) { + &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); + print "<class name='base'>$errormessage\n"; + print " </class>\n"; + &Header::closebox(); + print"<hr>"; + } +} +sub fillselect +{ + my %hash=%{(shift)}; + my $val=shift; + my $key; + foreach my $key (sort { ncmp($hash{$a}[0],$hash{$b}[0]) } keys %hash){ + if($hash{$key}[0] eq $val){ + print"<option value='$hash{$key}[0]' selected>$hash{$key}[0]</option>"; + }else{ + print"<option value='$hash{$key}[0]'>$hash{$key}[0]</option>"; + } + } +} +sub gen_dd_block +{ + my $srctgt = shift; + my $grp=shift; + my $helper=''; + my $show=''; + $checked{'grp1'}{$fwdfwsettings{'grp1'}} = 'CHECKED'; + $checked{'grp2'}{$fwdfwsettings{'grp2'}} = 'CHECKED'; + $checked{'grp3'}{$fwdfwsettings{'grp3'}} = 'CHECKED'; + $checked{'USE_SRC_PORT'}{$fwdfwsettings{'USE_SRC_PORT'}} = 'CHECKED'; + $checked{'USESRV'}{$fwdfwsettings{'USESRV'}} = 'CHECKED'; + $checked{'ACTIVE'}{$fwdfwsettings{'ACTIVE'}} = 'CHECKED'; + $checked{'LOG'}{$fwdfwsettings{'LOG'}} = 'CHECKED'; + $checked{'TIME'}{$fwdfwsettings{'TIME'}} = 'CHECKED'; + $checked{'TIME_MON'}{$fwdfwsettings{'TIME_MON'}} = 'CHECKED'; + $checked{'TIME_TUE'}{$fwdfwsettings{'TIME_TUE'}} = 'CHECKED'; + $checked{'TIME_WED'}{$fwdfwsettings{'TIME_WED'}} = 'CHECKED'; + $checked{'TIME_THU'}{$fwdfwsettings{'TIME_THU'}} = 'CHECKED'; + $checked{'TIME_FRI'}{$fwdfwsettings{'TIME_FRI'}} = 'CHECKED'; + $checked{'TIME_SAT'}{$fwdfwsettings{'TIME_SAT'}} = 'CHECKED'; + $checked{'TIME_SUN'}{$fwdfwsettings{'TIME_SUN'}} = 'CHECKED'; + $selected{'TIME_FROM'}{$fwdfwsettings{'TIME_FROM'}} = 'selected'; + $selected{'TIME_TO'}{$fwdfwsettings{'TIME_TO'}} = 'selected'; + $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp1'}}} ='selected'; + $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected'; +print<<END; + <table width='100%' border='0'> + <tr><td width='50%' valign='top'> + <table width='100%' border='0'> + <tr><td width='1%'><input type='radio' name='$grp' id='std_net_$srctgt' value='std_net_$srctgt' $checked{$grp}{'std_net_'.$srctgt}></td><td>$Lang::tr{'fwhost stdnet'}</td><td align='right'><select name='std_net_$srctgt' style='width:200px;'> +END + foreach my $network (sort keys %defaultNetworks) + { + next if($defaultNetworks{$network}{'NAME'} eq "RED" && $srctgt eq 'src'); + next if($defaultNetworks{$network}{'NAME'} eq "IPFire"); + print "<option value='$defaultNetworks{$network}{'NAME'}'"; + print " selected='selected'" if ($fwdfwsettings{$fwdfwsettings{$grp}} eq $defaultNetworks{$network}{'NAME'}); + my $defnet="$defaultNetworks{$network}{'NAME'}_NETADDRESS"; + my $defsub="$defaultNetworks{$network}{'NAME'}_NETMASK"; + my $defsub1=&General::subtocidr($ifaces{$defsub}); + $ifaces{$defnet}='' if ($defaultNetworks{$network}{'NAME'} eq 'RED'); + if ($ifaces{$defnet}){ + print ">$network ($ifaces{$defnet}/$defsub1)</option>"; + }else{ + print ">$network</option>"; + } + } + print"</select></td></tr>"; + #custom networks + if (! -z $confignet || $optionsfw{'SHOWDROPDOWN'} eq 'on'){ + print"<tr><td><input type='radio' name='$grp' id='cust_net_$srctgt' value='cust_net_$srctgt' $checked{$grp}{'cust_net_'.$srctgt}></td><td>$Lang::tr{'fwhost cust net'}</td><td align='right'><select name='cust_net_$srctgt' style='width:200px;'>"; + &fillselect(%customnetwork,$fwdfwsettings{$fwdfwsettings{$grp}}); + print"</select></td>"; + } + #custom hosts + if (! -z $confighost || $optionsfw{'SHOWDROPDOWN'} eq 'on'){ + print"<tr><td><input type='radio' name='$grp' id='cust_host_$srctgt' value='cust_host_$srctgt' $checked{$grp}{'cust_host_'.$srctgt}></td><td>$Lang::tr{'fwhost cust addr'}</td><td align='right'><select name='cust_host_$srctgt' style='width:200px;'>"; + &fillselect(%customhost,$fwdfwsettings{$fwdfwsettings{$grp}}); + print"</select></td>"; + } + #custom groups + if (! -z $configgrp || $optionsfw{'SHOWDROPDOWN'} eq 'on'){ + print"<tr><td valign='top'><input type='radio' name='$grp' id='cust_grp_$srctgt' value='cust_grp_$srctgt' $checked{$grp}{'cust_grp_'.$srctgt}></td><td >$Lang::tr{'fwhost cust grp'}</td><td align='right'><select name='cust_grp_$srctgt' style='width:200px;'>"; + foreach my $key (sort { ncmp($customgrp{$a}[0],$customgrp{$b}[0]) } keys %customgrp) { + if($helper ne $customgrp{$key}[0] && $customgrp{$key}[2] ne 'none'){ + print"<option "; + print "selected='selected' " if ($fwdfwsettings{$fwdfwsettings{$grp}} eq $customgrp{$key}[0]); + print ">$customgrp{$key}[0]</option>"; + } + $helper=$customgrp{$key}[0]; + } + print"</select></td>"; + } + #End left table. start right table (vpn) + print"</tr></table></td><td valign='top'><table width='100%' border='0'><tr>"; + # CCD networks + if( ! -z $configccdnet || $optionsfw{'SHOWDROPDOWN'} eq 'on'){ + print"<td width='1%'><input type='radio' name='$grp' id='ovpn_net_$srctgt' value='ovpn_net_$srctgt' $checked{$grp}{'ovpn_net_'.$srctgt}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ccdnet'}</td><td nowrap='nowrap' width='1%' align='right'><select name='ovpn_net_$srctgt' style='width:200px;'>"; + &fillselect(%ccdnet,$fwdfwsettings{$fwdfwsettings{$grp}}); + print"</select></td></tr>"; + } + #OVPN CCD Hosts + foreach my $key (sort { ncmp($ccdhost{$a}[0],$ccdhost{$b}[0]) } keys %ccdhost){ + if ($ccdhost{$key}[33] ne '' ){ + print"<tr><td width='1%'><input type='radio' name='$grp' id='ovpn_host_$srctgt' value='ovpn_host_$srctgt' $checked{$grp}{'ovpn_host_'.$srctgt}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ccdhost'}</td><td nowrap='nowrap' width='1%' align='right'><select name='ovpn_host_$srctgt' style='width:200px;'>" if ($show eq ''); + $show='1'; + print "<option value='$ccdhost{$key}[1]'"; + print "selected='selected'" if ($fwdfwsettings{$fwdfwsettings{$grp}} eq $ccdhost{$key}[1]); + print ">$ccdhost{$key}[1]</option>"; + } + } + if($optionsfw{'SHOWDROPDOWN'} eq 'on' && $show eq ''){ + print"<tr><td width='1%'><input type='radio' name='$grp' id='ovpn_host_$srctgt' value='ovpn_host_$srctgt' $checked{$grp}{'ovpn_host_'.$srctgt}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ccdhost'}</td><td nowrap='nowrap' width='1%' align='right'><select name='ovpn_host_$srctgt' style='width:200px;'></select></td></tr>" ; + } + if ($show eq '1'){$show='';print"</select></td></tr>";} + #OVPN N2N + foreach my $key (sort { ncmp($ccdhost{$a}[1],$ccdhost{$b}[1]) } keys %ccdhost){ + if ($ccdhost{$key}[3] eq 'net'){ + print"<tr><td width='1%'><input type='radio' name='$grp' id='ovpn_n2n_$srctgt' value='ovpn_n2n_$srctgt' $checked{$grp}{'ovpn_n2n_'.$srctgt}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ovpn_n2n'}:</td><td nowrap='nowrap' width='1%' align='right'><select name='ovpn_n2n_$srctgt' style='width:200px;'>" if ($show eq ''); + $show='1'; + print "<option value='$ccdhost{$key}[1]'"; + print "selected='selected'" if ($fwdfwsettings{$fwdfwsettings{$grp}} eq $ccdhost{$key}[1]); + print ">$ccdhost{$key}[1]</option>"; + } + } + if($optionsfw{'SHOWDROPDOWN'} eq 'on' && $show eq ''){ + print"<tr><td width='1%'><input type='radio' name='$grp' id='ovpn_n2n_$srctgt' value='ovpn_n2n_$srctgt' $checked{$grp}{'ovpn_n2n_'.$srctgt}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ovpn_n2n'}</td><td nowrap='nowrap' width='1%' align='right'><select name='ovpn_n2n_$srctgt' style='width:200px;'></select></td></tr>" ; + } + if ($show eq '1'){$show='';print"</select></td></tr>";} + #IPsec netze + foreach my $key (sort { ncmp($ipsecconf{$a}[1],$ipsecconf{$b}[1]) } keys %ipsecconf) { + if ($ipsecconf{$key}[3] eq 'net' || ($optionsfw{'SHOWDROPDOWN'} eq 'on' && $ipsecconf{$key}[3] ne 'host')){ + print"<tr><td valign='top'><input type='radio' name='$grp' value='ipsec_net_$srctgt' $checked{$grp}{'ipsec_net_'.$srctgt}></td><td >$Lang::tr{'fwhost ipsec net'}</td><td align='right'><select name='ipsec_net_$srctgt' style='width:200px;'>" if ($show eq ''); + $show='1'; + print "<option "; + print "selected='selected'" if ($fwdfwsettings{$fwdfwsettings{$grp}} eq $ipsecconf{$key}[1]); + print ">$ipsecconf{$key}[1]</option>"; + } + } + if($optionsfw{'SHOWDROPDOWN'} eq 'on' && $show eq ''){ + print"<tr><td valign='top'><input type='radio' name='$grp' id='ipsec_net_$srctgt' value='ipsec_net_$srctgt' $checked{$grp}{'ipsec_net_'.$srctgt}></td><td >$Lang::tr{'fwhost ipsec net'}</td><td align='right'><select name='ipsec_net_$srctgt' style='width:200px;'><select></td></tr>"; + } + if ($show eq '1'){$show='';print"</select></td></tr>";} + + print"</table>"; + print"</td></tr></table><br>"; +} +sub get_ip +{ + my $val=shift; + my $grp =shift; + my $a; + my $b; + &General::readhash("/var/ipfire/ethernet/settings", %netsettings); + if ($fwdfwsettings{$grp} ne $Lang::tr{'fwhost any'}){ + if ($fwdfwsettings{$grp} eq $val.'_addr'){ + ($a,$b) = split (///, $fwdfwsettings{$fwdfwsettings{$grp}}); + }elsif($fwdfwsettings{$grp} eq 'std_net_'.$val){ + if ($fwdfwsettings{$fwdfwsettings{$grp}} =~ /Gr/i){ + $a=$netsettings{'GREEN_NETADDRESS'}; + $b=&General::iporsubtocidr($netsettings{'GREEN_NETMASK'}); + }elsif($fwdfwsettings{$fwdfwsettings{$grp}} =~ /Ora/i){ + $a=$netsettings{'ORANGE_NETADDRESS'}; + $b=&General::iporsubtocidr($netsettings{'ORANGE_NETMASK'}); + }elsif($fwdfwsettings{$fwdfwsettings{$grp}} =~ /Bl/i){ + $a=$netsettings{'BLUE_NETADDRESS'}; + $b=&General::iporsubtocidr($netsettings{'BLUE_NETMASK'}); + }elsif($fwdfwsettings{$fwdfwsettings{$grp}} =~ /OpenVPN/i){ + &General::readhash("$configovpn",%ovpnsettings); + ($a,$b) = split (///, $ovpnsettings{'DOVPN_SUBNET'}); + $b=&General::iporsubtocidr($b); + } + }elsif($fwdfwsettings{$grp} eq 'cust_net_'.$val){ + &General::readhasharray("$confignet", %customnetwork); + foreach my $key (keys %customnetwork){ + if($customnetwork{$key}[0] eq $fwdfwsettings{$fwdfwsettings{$grp}}){ + $a=$customnetwork{$key}[1]; + $b=&General::iporsubtocidr($customnetwork{$key}[2]); + } + } + }elsif($fwdfwsettings{$grp} eq 'cust_host_'.$val){ + &General::readhasharray("$confighost", %customhost); + foreach my $key (keys %customhost){ + if($customhost{$key}[0] eq $fwdfwsettings{$fwdfwsettings{$grp}}){ + if ($customhost{$key}[1] eq 'ip'){ + ($a,$b)=split (///,$customhost{$key}[2]); + $b=&General::iporsubtocidr($b); + }else{ + if ($grp eq 'grp2'){ + $errormessage=$Lang::tr{'fwdfw err tgt_mac'}; + } + } + } + } + } + } + return $a,$b; +} +sub get_name +{ + my $val=shift; + &General::setup_default_networks(%defaultNetworks); + foreach my $network (sort keys %defaultNetworks) + { + return "$network" if ($val eq $defaultNetworks{$network}{'NAME'}); + } +} +sub getsrcport +{ + my %hash=%{(shift)}; + my $key=shift; + if($hash{$key}[7] eq 'ON' && $hash{$key}[10]){ + $hash{$key}[10]=~ s/|/,/g; + print": $hash{$key}[10]"; + }elsif($hash{$key}[7] eq 'ON' && $hash{$key}[8] eq 'ICMP'){ + print": <br>$hash{$key}[9] "; + } +} +sub gettgtport +{ + my %hash=%{(shift)}; + my $key=shift; + my $service; + my $prot; + if($hash{$key}[11] eq 'ON' && $hash{$key}[12] ne 'ICMP'){ + if($hash{$key}[14] eq 'cust_srv'){ + &General::readhasharray("$configsrv", %customservice); + foreach my $i (sort keys %customservice){ + if($customservice{$i}[0] eq $hash{$key}[15]){ + $service = $customservice{$i}[0]; + } + } + }elsif($hash{$key}[14] eq 'cust_srvgrp'){ + $service=$hash{$key}[15]; + }elsif($hash{$key}[14] eq 'TGT_PORT'){ + $hash{$key}[15]=~ s/|/,/g; + $service=$hash{$key}[15]; + } + if($service){ + print": $service"; + } + } +} +sub get_serviceports +{ + my $type=shift; + my $name=shift; + &General::readhasharray("$configsrv", %customservice); + &General::readhasharray("$configsrvgrp", %customservicegrp); + my $tcp; + my $udp; + my $icmp; + @protocols=(); + if($type eq 'service'){ + foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0]) } keys %customservice){ + if ($customservice{$key}[0] eq $name){ + push (@protocols,$customservice{$key}[2]); + } + } + }elsif($type eq 'group'){ + foreach my $key (sort { ncmp($customservicegrp{$a}[0],$customservicegrp{$b}[0]) } keys %customservicegrp){ + if ($customservicegrp{$key}[0] eq $name){ + foreach my $key1 (sort { ncmp($customservice{$a}[0],$customservice{$b}[0]) } keys %customservice){ + if ($customservice{$key1}[0] eq $customservicegrp{$key}[2]){ + if($customservice{$key1}[2] eq 'TCP'){ + $tcp='TCP'; + }elsif($customservice{$key1}[2] eq 'ICMP'){ + $icmp='ICMP'; + }elsif($customservice{$key1}[2] eq 'UDP'){ + $udp='UDP'; + } + } + } + } + } + } + if($tcp && $udp && $icmp){ + push (@protocols,"TCP,UDP, <br>ICMP"); + return @protocols; + } + if($tcp){ + push (@protocols,"TCP"); + } + if($udp){ + push (@protocols,"UDP"); + } + if($icmp){ + push (@protocols,"ICMP"); + } + return @protocols; +} +sub getcolor +{ + my $nettype=shift; + my $val=shift; + my $hash=shift; + if($optionsfw{'SHOWCOLORS'} eq 'on'){ + #custom Hosts + if ($nettype eq 'cust_host_src' || $nettype eq 'cust_host_tgt'){ + foreach my $key (sort keys %$hash){ + if ($$hash{$key}[0] eq $val){ + $val=$$hash{$key}[2]; + } + } + } + #standard networks + if ($val eq 'GREEN'){ + $tdcolor="style='background-color: $Header::colourgreen;color:white;'"; + return; + }elsif ($val eq 'ORANGE'){ + $tdcolor="style='background-color: $Header::colourorange;color:white;'"; + return; + }elsif ($val eq 'BLUE'){ + $tdcolor="style='background-color: $Header::colourblue;color:white;'"; + return; + }elsif ($val eq 'RED' ||$val eq 'RED1' ){ + $tdcolor="style='background-color: $Header::colourred;color:white;'"; + return; + }elsif ($val eq 'IPFire' ){ + $tdcolor="style='background-color: $Header::colourred;color:white;'"; + return; + }elsif ($val eq 'OpenVPN-Dyn' ){ + $tdcolor="style='background-color: $Header::colourovpn;color:white;'"; + return; + }elsif ($val eq 'IPsec RW' ){ + $tdcolor="style='background-color: $Header::colourvpn;color:white;'"; + return; + }elsif($val =~ /^(.*?)/(.*?)$/){ + my ($sip,$scidr) = split ("/",$val); + if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){ + $tdcolor="style='background-color: $Header::colourorange;color:white;'"; + return; + } + if ( &General::IpInSubnet($sip,$netsettings{'GREEN_ADDRESS'},$netsettings{'GREEN_NETMASK'})){ + $tdcolor="style='background-color: $Header::colourgreen;color:white;'"; + return; + } + if ( &General::IpInSubnet($sip,$netsettings{'BLUE_ADDRESS'},$netsettings{'BLUE_NETMASK'})){ + $tdcolor="style='background-color: $Header::colourblue;color:white;'"; + return; + } + }elsif ($val eq 'Default IP'){ + $tdcolor="style='background-color: $Header::colourred;color:white;'"; + return; + } + #Check if a manual IP or custom host is part of a VPN + if ($nettype eq 'src_addr' || $nettype eq 'tgt_addr' || $nettype eq 'cust_host_src' || $nettype eq 'cust_host_tgt'){ + #Check if IP is part of OpenVPN dynamic subnet + my ($a,$b) = split("/",$ovpnsettings{'DOVPN_SUBNET'}); + my ($c,$d) = split("/",$val); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='background-color: $Header::colourovpn;color:white;'"; + return; + } + #Check if IP is part of OpenVPN static subnet + foreach my $key (sort keys %ccdnet){ + my ($a,$b) = split("/",$ccdnet{$key}[1]); + $b =&General::iporsubtodec($b); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='background-color: $Header::colourovpn;color:white;'"; + return; + } + } + #Check if IP is part of OpenVPN N2N subnet + foreach my $key (sort keys %ccdhost){ + if ($ccdhost{$key}[3] eq 'net'){ + my ($a,$b) = split("/",$ccdhost{$key}[11]); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='background-color: $Header::colourovpn;color:white;'"; + return; + } + } + } + #Check if IP is part of IPsec RW network + if ($ipsecsettings{'RW_NET'} ne ''){ + my ($a,$b) = split("/",$ipsecsettings{'RW_NET'}); + $b=&General::iporsubtodec($b); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='background-color: $Header::colourvpn;color:white;'"; + return; + } + } + #Check if IP is part of a IPsec N2N network + foreach my $key (sort keys %ipsecconf){ + my ($a,$b) = split("/",$ipsecconf{$key}[11]); + $b=&General::iporsubtodec($b); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='background-color: $Header::colourvpn;color:white;'"; + return; + } + } + } + #VPN networks + if ($nettype eq 'ovpn_n2n_src' || $nettype eq 'ovpn_n2n_tgt' || $nettype eq 'ovpn_net_src' || $nettype eq 'ovpn_net_tgt'|| $nettype eq 'ovpn_host_src' || $nettype eq 'ovpn_host_tgt'){ + $tdcolor="style='background-color: $Header::colourovpn;color:white;'"; + return; + } + if ($nettype eq 'ipsec_net_src' || $nettype eq 'ipsec_net_tgt'){ + $tdcolor="style='background-color: $Header::colourvpn;color:white;'"; + return; + } + #ALIASE + foreach my $alias (sort keys %aliases) + { + if ($val eq $alias){ + $tdcolor="style='background-color:$Header::colourred;color:white;'"; + return; + } + } + } + $tdcolor=''; + return; +} +sub hint +{ + if ($hint) { + &Header::openbox('100%', 'left', $Lang::tr{'fwhost hint'}); + print "<class name='base'>$hint\n"; + print " </class>\n"; + &Header::closebox(); + print"<hr>"; + } +} +sub inc_counter +{ + my $config=shift; + my %hash=%{(shift)}; + my $val=shift; + my $pos; + + &General::readhasharray($config, %hash); + foreach my $key (sort { uc($hash{$a}[0]) cmp uc($hash{$b}[0]) } keys %hash){ + if($hash{$key}[0] eq $val){ + $pos=$#{$hash{$key}}; + $hash{$key}[$pos] = $hash{$key}[$pos]+1; + } + } + &General::writehasharray($config, %hash); +} +sub newrule +{ + &error; + &General::setup_default_networks(%defaultNetworks); + &General::readhash("/var/ipfire/ethernet/settings", %netsettings); + #read all configfiles + &General::readhasharray("$configccdnet", %ccdnet); + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$configgrp", %customgrp); + &General::readhasharray("$configipsec", %ipsecconf); + &General::get_aliases(%aliases); + my %checked=(); + my $helper; + my $sum=0; + if($fwdfwsettings{'config'} eq ''){$fwdfwsettings{'config'}=$configfwdfw;} + my $config=$fwdfwsettings{'config'}; + my %hash=(); + #Get Red IP-ADDRESS + open (CONN1,"/var/ipfire/red/local-ipaddress"); + my $redip = <CONN1>; + close(CONN1); + if (! $fwdfwsettings{'RULE_ACTION'} && $fwdfwsettings{'POLICY'} eq 'MODE2'){ + $fwdfwsettings{'RULE_ACTION'}='DROP'; + }elsif(! $fwdfwsettings{'RULE_ACTION'} && $fwdfwsettings{'POLICY'} eq 'MODE1'){ + $fwdfwsettings{'RULE_ACTION'}='ACCEPT'; + } + $checked{'grp1'}{$fwdfwsettings{'grp1'}} = 'CHECKED'; + $checked{'grp2'}{$fwdfwsettings{'grp2'}} = 'CHECKED'; + $checked{'grp3'}{$fwdfwsettings{'grp3'}} = 'CHECKED'; + $checked{'USE_SRC_PORT'}{$fwdfwsettings{'USE_SRC_PORT'}} = 'CHECKED'; + $checked{'USESRV'}{$fwdfwsettings{'USESRV'}} = 'CHECKED'; + $checked{'ACTIVE'}{$fwdfwsettings{'ACTIVE'}} = 'CHECKED'; + $checked{'LOG'}{$fwdfwsettings{'LOG'}} = 'CHECKED'; + $checked{'TIME'}{$fwdfwsettings{'TIME'}} = 'CHECKED'; + $checked{'TIME_MON'}{$fwdfwsettings{'TIME_MON'}} = 'CHECKED'; + $checked{'TIME_TUE'}{$fwdfwsettings{'TIME_TUE'}} = 'CHECKED'; + $checked{'TIME_WED'}{$fwdfwsettings{'TIME_WED'}} = 'CHECKED'; + $checked{'TIME_THU'}{$fwdfwsettings{'TIME_THU'}} = 'CHECKED'; + $checked{'TIME_FRI'}{$fwdfwsettings{'TIME_FRI'}} = 'CHECKED'; + $checked{'TIME_SAT'}{$fwdfwsettings{'TIME_SAT'}} = 'CHECKED'; + $checked{'TIME_SUN'}{$fwdfwsettings{'TIME_SUN'}} = 'CHECKED'; + $checked{'USE_NAT'}{$fwdfwsettings{'USE_NAT'}} = 'CHECKED'; + $checked{'nat'}{$fwdfwsettings{'nat'}} = 'CHECKED'; + $selected{'TIME_FROM'}{$fwdfwsettings{'TIME_FROM'}} = 'selected'; + $selected{'TIME_TO'}{$fwdfwsettings{'TIME_TO'}} = 'selected'; + $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected'; + $selected{'ipfire_src'}{$fwdfwsettings{$fwdfwsettings{'grp1'}}} ='selected'; + #check if update and get values + if($fwdfwsettings{'updatefwrule'} eq 'on' || $fwdfwsettings{'copyfwrule'} eq 'on' && !$errormessage){ + &General::readhasharray("$config", %hash); + foreach my $key (sort keys %hash){ + $sum++; + if ($key eq $fwdfwsettings{'key'}){ + $fwdfwsettings{'oldrulenumber'} = $fwdfwsettings{'key'}; + $fwdfwsettings{'RULE_ACTION'} = $hash{$key}[0]; + $fwdfwsettings{'chain'} = $hash{$key}[1]; + $fwdfwsettings{'ACTIVE'} = $hash{$key}[2]; + $fwdfwsettings{'grp1'} = $hash{$key}[3]; + $fwdfwsettings{$fwdfwsettings{'grp1'}} = $hash{$key}[4]; + $fwdfwsettings{'grp2'} = $hash{$key}[5]; + $fwdfwsettings{$fwdfwsettings{'grp2'}} = $hash{$key}[6]; + $fwdfwsettings{'USE_SRC_PORT'} = $hash{$key}[7]; + $fwdfwsettings{'PROT'} = $hash{$key}[8]; + $fwdfwsettings{'ICMP_TYPES'} = $hash{$key}[9]; + $fwdfwsettings{'SRC_PORT'} = $hash{$key}[10]; + $fwdfwsettings{'USESRV'} = $hash{$key}[11]; + $fwdfwsettings{'TGT_PROT'} = $hash{$key}[12]; + $fwdfwsettings{'ICMP_TGT'} = $hash{$key}[13]; + $fwdfwsettings{'grp3'} = $hash{$key}[14]; + $fwdfwsettings{$fwdfwsettings{'grp3'}} = $hash{$key}[15]; + $fwdfwsettings{'ruleremark'} = $hash{$key}[16]; + $fwdfwsettings{'LOG'} = $hash{$key}[17]; + $fwdfwsettings{'TIME'} = $hash{$key}[18]; + $fwdfwsettings{'TIME_MON'} = $hash{$key}[19]; + $fwdfwsettings{'TIME_TUE'} = $hash{$key}[20]; + $fwdfwsettings{'TIME_WED'} = $hash{$key}[21]; + $fwdfwsettings{'TIME_THU'} = $hash{$key}[22]; + $fwdfwsettings{'TIME_FRI'} = $hash{$key}[23]; + $fwdfwsettings{'TIME_SAT'} = $hash{$key}[24]; + $fwdfwsettings{'TIME_SUN'} = $hash{$key}[25]; + $fwdfwsettings{'TIME_FROM'} = $hash{$key}[26]; + $fwdfwsettings{'TIME_TO'} = $hash{$key}[27]; + $fwdfwsettings{'USE_NAT'} = $hash{$key}[28]; + $fwdfwsettings{'nat'} = $hash{$key}[31]; #changed order + $fwdfwsettings{$fwdfwsettings{'nat'}} = $hash{$key}[29]; + $fwdfwsettings{'dnatport'} = $hash{$key}[30]; + $checked{'grp1'}{$fwdfwsettings{'grp1'}} = 'CHECKED'; + $checked{'grp2'}{$fwdfwsettings{'grp2'}} = 'CHECKED'; + $checked{'grp3'}{$fwdfwsettings{'grp3'}} = 'CHECKED'; + $checked{'USE_SRC_PORT'}{$fwdfwsettings{'USE_SRC_PORT'}} = 'CHECKED'; + $checked{'USESRV'}{$fwdfwsettings{'USESRV'}} = 'CHECKED'; + $checked{'ACTIVE'}{$fwdfwsettings{'ACTIVE'}} = 'CHECKED'; + $checked{'LOG'}{$fwdfwsettings{'LOG'}} = 'CHECKED'; + $checked{'TIME'}{$fwdfwsettings{'TIME'}} = 'CHECKED'; + $checked{'TIME_MON'}{$fwdfwsettings{'TIME_MON'}} = 'CHECKED'; + $checked{'TIME_TUE'}{$fwdfwsettings{'TIME_TUE'}} = 'CHECKED'; + $checked{'TIME_WED'}{$fwdfwsettings{'TIME_WED'}} = 'CHECKED'; + $checked{'TIME_THU'}{$fwdfwsettings{'TIME_THU'}} = 'CHECKED'; + $checked{'TIME_FRI'}{$fwdfwsettings{'TIME_FRI'}} = 'CHECKED'; + $checked{'TIME_SAT'}{$fwdfwsettings{'TIME_SAT'}} = 'CHECKED'; + $checked{'TIME_SUN'}{$fwdfwsettings{'TIME_SUN'}} = 'CHECKED'; + $checked{'USE_NAT'}{$fwdfwsettings{'USE_NAT'}} = 'CHECKED'; + $checked{'nat'}{$fwdfwsettings{'nat'}} = 'CHECKED'; + $selected{'TIME_FROM'}{$fwdfwsettings{'TIME_FROM'}} = 'selected'; + $selected{'TIME_TO'}{$fwdfwsettings{'TIME_TO'}} = 'selected'; + $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected'; + $selected{'ipfire_src'}{$fwdfwsettings{$fwdfwsettings{'grp1'}}} ='selected'; + $selected{'dnat'}{$fwdfwsettings{$fwdfwsettings{'nat'}}} ='selected'; + $selected{'snat'}{$fwdfwsettings{$fwdfwsettings{'nat'}}} ='selected'; + } + } + $fwdfwsettings{'oldgrp1a'}=$fwdfwsettings{'grp1'}; + $fwdfwsettings{'oldgrp1b'}=$fwdfwsettings{$fwdfwsettings{'grp1'}}; + $fwdfwsettings{'oldgrp2a'}=$fwdfwsettings{'grp2'}; + $fwdfwsettings{'oldgrp2b'}=$fwdfwsettings{$fwdfwsettings{'grp2'}}; + $fwdfwsettings{'oldgrp3a'}=$fwdfwsettings{'grp3'}; + $fwdfwsettings{'oldgrp3b'}=$fwdfwsettings{$fwdfwsettings{'grp3'}}; + $fwdfwsettings{'oldusesrv'}=$fwdfwsettings{'USESRV'}; + $fwdfwsettings{'oldruleremark'}=$fwdfwsettings{'ruleremark'}; + $fwdfwsettings{'oldnat'}=$fwdfwsettings{'USE_NAT'}; + $fwdfwsettings{'oldruletype'}=$fwdfwsettings{'chain'}; + #check if manual ip (source) is orange network + if ($fwdfwsettings{'grp1'} eq 'src_addr'){ + my ($sip,$scidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp1'}}); + if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){ + $fwdfwsettings{'oldorange'} ='on'; + } + } + }else{ + $fwdfwsettings{'ACTIVE'}='ON'; + $checked{'ACTIVE'}{$fwdfwsettings{'ACTIVE'}} = 'CHECKED'; + $fwdfwsettings{'oldgrp1a'}=$fwdfwsettings{'grp1'}; + $fwdfwsettings{'oldgrp1b'}=$fwdfwsettings{$fwdfwsettings{'grp1'}}; + $fwdfwsettings{'oldgrp2a'}=$fwdfwsettings{'grp2'}; + $fwdfwsettings{'oldgrp2b'}=$fwdfwsettings{$fwdfwsettings{'grp2'}}; + $fwdfwsettings{'oldgrp3a'}=$fwdfwsettings{'grp3'}; + $fwdfwsettings{'oldgrp3b'}=$fwdfwsettings{$fwdfwsettings{'grp3'}}; + $fwdfwsettings{'oldusesrv'}=$fwdfwsettings{'USESRV'}; + $fwdfwsettings{'oldruleremark'}=$fwdfwsettings{'ruleremark'}; + $fwdfwsettings{'oldnat'}=$fwdfwsettings{'USE_NAT'}; + #check if manual ip (source) is orange network + if ($fwdfwsettings{'grp1'} eq 'src_addr'){ + my ($sip,$scidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp1'}}); + if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){ + $fwdfwsettings{'oldorange'} ='on'; + } + } + } + # Split manual source and target address and delete the subnet + my ($sip,$scidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp1'}}); + if ($scidr eq '32'){$fwdfwsettings{$fwdfwsettings{'grp1'}}=$sip;} + my ($dip,$dcidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp2'}}); + if ($scidr eq '32'){$fwdfwsettings{$fwdfwsettings{'grp2'}}=$dip;} + &Header::openbox('100%', 'left', $Lang::tr{'fwdfw source'}); + #------SOURCE------------------------------------------------------- + print "<form method='post'>"; + print<<END; + <table width='100%' border='0'> + <tr><td width='1%'><input type='radio' name='grp1' value='src_addr' checked></td><td width='60%'>$Lang::tr{'fwdfw sourceip'}<input type='TEXT' name='src_addr' value='$fwdfwsettings{'src_addr'}' size='16' maxlength='18' ></td><td width='1%'><input type='radio' name='grp1' id='ipfire_src' value='ipfire_src' $checked{'grp1'}{'ipfire_src'}></td><td><b>Firewall</b></td> +END + print"<td align='right'><select name='ipfire_src' style='width:200px;'>"; + print "<option value='ALL' $selected{'ipfire_src'}{'ALL'}>$Lang::tr{'all'}</option>"; + print "<option value='GREEN' $selected{'ipfire_src'}{'GREEN'}>$Lang::tr{'green'} ($ifaces{'GREEN_ADDRESS'})</option>" if $ifaces{'GREEN_ADDRESS'}; + print "<option value='ORANGE' $selected{'ipfire_src'}{'ORANGE'}>$Lang::tr{'orange'} ($ifaces{'ORANGE_ADDRESS'})</option>" if (&Header::orange_used()); + print "<option value='BLUE' $selected{'ipfire_src'}{'BLUE'}>$Lang::tr{'blue'} ($ifaces{'BLUE_ADDRESS'})</option>" if (&Header::blue_used()); + print "<option value='RED1' $selected{'ipfire_src'}{'RED1'}>$Lang::tr{'red1'} ($redip)" if ($redip); + if (! -z "${General::swroot}/ethernet/aliases"){ + foreach my $alias (sort keys %aliases) + { + print "<option value='$alias' $selected{'ipfire'}{$alias}>$alias</option>"; + } + } + print<<END; + </select></td></tr> + <tr><td><br></td></tr> + </table> +END + &gen_dd_block('src','grp1'); + &Header::closebox(); + + #---SNAT / DNAT ------------------------------------------------ + &Header::openbox('100%', 'left', 'NAT'); + print<<END; + <label> + <input type='checkbox' name='USE_NAT' id='USE_NAT' value="ON" $checked{'USE_NAT'}{'ON'}> + $Lang::tr{'fwdfw use nat'} + </label> + <div class="NAT"> + <table width='100%' border='0'> + <tr> + <td width='5%'></td> + <td width='40%'> + <label> + <input type='radio' name='nat' value='dnat' $checked{'nat'}{'dnat'}> + $Lang::tr{'fwdfw dnat'} + </label> + </td> +END + + if (%aliases) { + print <<END; + <td width='25%' align='right'>$Lang::tr{'dnat address'}:</td> + <td width='30%'> + <select name='dnat' style='width: 100%;'> + <option value='Default IP' $selected{'dnat'}{'Default IP'}>$Lang::tr{'default ip'} ($netsettings{'RED_ADDRESS'})</option> +END + foreach my $alias (sort keys %aliases) { + print "<option value='$alias' $selected{'dnat'}{$alias}>$alias ($aliases{$alias}{'IPT'})</option>"; + } + + print "</select>"; + } else { + print <<END; + <td colspan="2" width='55%'> + <input type='hidden' name='dnat' value='Default IP'> + </td> +END + } + print "</tr>"; + + #SNAT + print <<END; + <tr> + <td width='5%'></td> + <td width='40%'> + <label> + <input type='radio' name='nat' value='snat' $checked{'nat'}{'snat'}> + $Lang::tr{'fwdfw snat'} + </label> + </td> + <td width='25%' align='right'>$Lang::tr{'snat new source ip address'}:</td> + <td width='30%'> + <select name='snat' style='width: 100%;'> +END + + foreach my $alias (sort keys %aliases) { + print "<option value='$alias' $selected{'snat'}{$alias}>$alias ($aliases{$alias}{'IPT'})</option>"; + } + + # XXX this is composed in a very ugly fashion + foreach my $network (sort keys %defaultNetworks) { + next if($defaultNetworks{$network}{'NAME'} eq "IPFire"); + next if($defaultNetworks{$network}{'NAME'} eq "ALL"); + next if($defaultNetworks{$network}{'NAME'} =~ /OpenVPN/i); + next if($defaultNetworks{$network}{'NAME'} =~ /IPsec/i); + + print "<option value='$defaultNetworks{$network}{'NAME'}'"; + print " selected='selected'" if ($fwdfwsettings{$fwdfwsettings{'nat'}} eq $defaultNetworks{$network}{'NAME'}); + print ">$network ($defaultNetworks{$network}{'NET'})</option>"; + } + + print <<END; + </select> + </td> + </tr> + </table> + </div> +END + &Header::closebox(); + + #---TARGET------------------------------------------------------ + &Header::openbox('100%', 'left', $Lang::tr{'fwdfw target'}); + print<<END; + <table width='100%' border='0'> + <tr><td width='1%'><input type='radio' name='grp2' value='tgt_addr' checked></td><td width='60%' nowrap='nowrap'>$Lang::tr{'fwdfw targetip'}<input type='TEXT' name='tgt_addr' value='$fwdfwsettings{'tgt_addr'}' size='16' maxlength='18'><td width='1%'><input type='radio' name='grp2' id='ipfire' value='ipfire' $checked{'grp2'}{'ipfire'}></td><td><b>Firewall</b></td> +END + print"<td align='right'><select name='ipfire' style='width:200px;'>"; + print "<option value='ALL' $selected{'ipfire'}{'ALL'}>$Lang::tr{'all'}</option>"; + print "<option value='GREEN' $selected{'ipfire'}{'GREEN'}>$Lang::tr{'green'} ($ifaces{'GREEN_ADDRESS'})</option>" if $ifaces{'GREEN_ADDRESS'}; + print "<option value='ORANGE' $selected{'ipfire'}{'ORANGE'}>$Lang::tr{'orange'} ($ifaces{'ORANGE_ADDRESS'})</option>" if (&Header::orange_used()); + print "<option value='BLUE' $selected{'ipfire'}{'BLUE'}>$Lang::tr{'blue'} ($ifaces{'BLUE_ADDRESS'})</option>"if (&Header::blue_used()); + print "<option value='RED1' $selected{'ipfire'}{'RED1'}>$Lang::tr{'red1'} ($redip)" if ($redip); + if (! -z "${General::swroot}/ethernet/aliases"){ + foreach my $alias (sort keys %aliases) + { + print "<option value='$alias' $selected{'ipfire'}{$alias}>$alias</option>"; + } + } + print<<END; + </select></td></tr> + <tr><td><br></td></tr></table> +END + &gen_dd_block('tgt','grp2'); + &Header::closebox; + #---PROTOCOL------------------------------------------------------ + $fwdfwsettings{'SRC_PORT'} =~ s/|/,/g; + $fwdfwsettings{'TGT_PORT'} =~ s/|/,/g; + $fwdfwsettings{'dnatport'} =~ tr/|/,/; + + # The dnatport may be empty, if it matches TGT_PORT + if ($fwdfwsettings{'dnatport'} eq $fwdfwsettings{'TGT_PORT'}) { + $fwdfwsettings{'dnatport'} = ""; + } + + &Header::openbox('100%', 'left', $Lang::tr{'fwhost prot'}); + #Fix Protocol for JQuery + if ($fwdfwsettings{'grp3'} eq 'cust_srv' || $fwdfwsettings{'grp3'} eq 'cust_srvgrp'){ + $fwdfwsettings{'PROT'} = 'template'; + } + print<<END; + <table width='100%' border='0'> + <tr> + <td width="25%"> + <select name='PROT' id='protocol' style="width: 95px;"> +END + print "<option value="""; + if ($fwdfwsettings{'PROT'} eq '') { + print " selected="selected""; + } + print ">$Lang::tr{'all'}</option>"; + + print "<option value="template""; + print " selected="selected"" if ($fwdfwsettings{'grp3'} eq 'cust_srv' || $fwdfwsettings{'grp3'} eq 'cust_srvgrp'); + print ">- $Lang::tr{'template'} -</option>"; + + foreach (@PROTOCOLS) { + print"<option value="$_""; + if ($_ eq $fwdfwsettings{'PROT'}) { + print " selected="selected""; + } + if($_ eq "IPv6"){ + print ">$Lang::tr{'fwdfw prot41'}</option>"; + }else{ + print ">$_</option>"; + } + } + + print<<END; + </select> + </td> + <td width="75%"> + <table width='100%' border='0' id="PROTOCOL_ICMP_TYPES"> + <tr> + <td width='20%'>$Lang::tr{'fwhost icmptype'}</td> + <td colspan='2'> + <select name='ICMP_TYPES' style='min-width:230px;'> +END + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + print"<option value='All ICMP-Types'>$Lang::tr{'fwdfw all icmp'}</option>"; + foreach my $key (sort { ncmp($icmptypes{$a}[0],$icmptypes{$b}[0]) }keys %icmptypes){ + if($fwdfwsettings{'ICMP_TYPES'} eq "$icmptypes{$key}[0]"){ + print"<option selected>$icmptypes{$key}[0] ($icmptypes{$key}[1])</option>"; + }else{ + print"<option>$icmptypes{$key}[0] ($icmptypes{$key}[1])</option>"; + } + } + + print <<END; + </select> + </td> + </tr> + </table> + + <table width="100%" border="0" id="PROTOCOL_PORTS"> + <tr> + <!-- #SOURCEPORT --> + <td> + $Lang::tr{'fwdfw use srcport'} + </td> + <td> + <input type='text' name='SRC_PORT' value='$fwdfwsettings{'SRC_PORT'}' maxlength='20' size='18'> + </td> + <td width='10%'> + </td> + + <!-- #TARGETPORT --> + <td> + $Lang::tr{'fwdfw use srv'} + </td> + + <td> + <input type='text' name='TGT_PORT' value='$fwdfwsettings{'TGT_PORT'}' maxlength='20' size='18'> + </td> + </tr> + <tr class="NAT"> + <td colspan='3'></td> + <td>$Lang::tr{'fwdfw external port nat'}:</td> + <td> + <input type='text' name='dnatport' value="$fwdfwsettings{'dnatport'}" maxlength='20' size='18'> + </td> + </tr> + </table> + + <table width="100%" border="0" id="PROTOCOL_TEMPLATE"> + <tr> + <td> + <input type='radio' name='grp3' id='cust_srv' value='cust_srv' checked> + $Lang::tr{'fwhost cust service'} + </td> + <td> + <select name='cust_srv' style='min-width: 230px;'> +END + + &General::readhasharray("$configsrv", %customservice); + foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0]) } keys %customservice){ + print"<option "; + print"selected='selected'" if ($fwdfwsettings{$fwdfwsettings{'grp3'}} eq $customservice{$key}[0]); + print"value='$customservice{$key}[0]'>$customservice{$key}[0]</option>"; + } + + print <<END; + </select> + </td> + </tr> + <tr> + <td> + <input type='radio' name='grp3' id='cust_srvgrp' value='cust_srvgrp' $checked{'grp3'}{'cust_srvgrp'}> + $Lang::tr{'fwhost cust srvgrp'} + </td> + <td> + <select name='cust_srvgrp' style='min-width:230px;'> +END + + &General::readhasharray("$configsrvgrp", %customservicegrp); + my $helper; + foreach my $key (sort { ncmp($customservicegrp{$a}[0],$customservicegrp{$b}[0]) } keys %customservicegrp){ + if ($helper ne $customservicegrp{$key}[0] && $customservicegrp{$key}[2] ne 'none'){ + print"<option "; + print"selected='selected'" if ($fwdfwsettings{$fwdfwsettings{'grp3'}} eq $customservicegrp{$key}[0]); + print">$customservicegrp{$key}[0]</option>"; + } + $helper=$customservicegrp{$key}[0]; + } + + print<<END; + </select> + </td> + </tr> + </table> + </td> + </tr> + </table> +END + + &Header::closebox; + $checked{"RULE_ACTION"}{$fwdfwsettings{'RULE_ACTION'}} = 'CHECKED'; + print <<END; + <br> + <center> + <table width="80%" class='tbl'> + <tr> + <td width="33%" align="center" bgcolor="$color{'color17'}"> + <br> + </td> + <td width="33%" align="center" bgcolor="$color{'color25'}"> + <br> + </td> + <td width="33%" align="center" bgcolor="$color{'color16'}"> + <br> + </td> + </tr> + <tr> + <td width="33%" align="center"> + <label> + <input type="radio" name="RULE_ACTION" value="ACCEPT" $checked{"RULE_ACTION"}{"ACCEPT"}> + <strong>$Lang::tr{'fwdfw ACCEPT'}</strong> + </label> + </td> + <td width="33%" align="center"> + <label> + <input type="radio" name="RULE_ACTION" value="DROP" $checked{"RULE_ACTION"}{"DROP"}> + <strong>$Lang::tr{'fwdfw DROP'}</strong> + </label> + </td> + <td width="33%" align="center"> + <label> + <input type="radio" name="RULE_ACTION" value="REJECT" $checked{"RULE_ACTION"}{"REJECT"}> + <strong>$Lang::tr{'fwdfw REJECT'}</strong> + </label> + </td> + </tr> + </table> + </center> + + <br> +END + #---Activate/logging/remark------------------------------------- + &Header::openbox('100%', 'left', $Lang::tr{'fwdfw additional'}); + print<<END; + <table width='100%' border='0'> +END + print"<tr><td width='12%'>$Lang::tr{'remark'}:</td><td width='88%' align='left'><input type='text' name='ruleremark' maxlength='255' value='$fwdfwsettings{'ruleremark'}' style='width:99%;'></td></tr>"; + if($fwdfwsettings{'updatefwrule'} eq 'on' || $fwdfwsettings{'copyfwrule'} eq 'on'){ + print "<tr><td width='12%'>$Lang::tr{'fwdfw rulepos'}:</td><td><select name='rulepos' >"; + for (my $count =1; $count <= $sum; $count++){ + print"<option value='$count' "; + print"selected='selected'" if($fwdfwsettings{'oldrulenumber'} eq $count); + print">$count</option>"; + } + print"</select></td></tr>"; + }else{ + print "<tr><td width='12%'>$Lang::tr{'fwdfw rulepos'}:</td><td><input type='text' name='rulepos' size='2'></td></tr>"; + } + + print<<END; + </table> + <table width='100%'> + <tr> +END + + if ($fwdfwsettings{'updatefwrule'} eq 'on') { + print <<END; + <td> + <input type='checkbox' name='ACTIVE' value="ON" $checked{'ACTIVE'}{'ON'}> + </td> + <td>$Lang::tr{'fwdfw rule activate'}</td> +END + } else { + print <<END; + <td colspan="2"> + <input type="hidden" name="ACTIVE" value="ON"> + </td> +END + } + + print <<END; + </tr> + <tr> + <td> + <input type='checkbox' name='LOG' value='ON' $checked{'LOG'}{'ON'}> + </td> + <td>$Lang::tr{'fwdfw log rule'}</td> + </tr> + <tr> + <td width='1%'> + <input type='checkbox' name='TIME' id="USE_TIME_CONSTRAINTS" value='ON' $checked{'TIME'}{'ON'}> + </td> + <td>$Lang::tr{'fwdfw timeframe'}</td> + </tr> + <tr id="TIME_CONSTRAINTS"> + <td colspan="2"> + <table width="66%" border="0"> + <tr> + <td width="8em"> </td> + <td align="center">$Lang::tr{'advproxy monday'}</td> + <td align="center">$Lang::tr{'advproxy tuesday'}</td> + <td align="center">$Lang::tr{'advproxy wednesday'}</td> + <td align="center">$Lang::tr{'advproxy thursday'}</td> + <td align="center">$Lang::tr{'advproxy friday'}</td> + <td align="center">$Lang::tr{'advproxy saturday'}</td> + <td align="center">$Lang::tr{'advproxy sunday'}</td> + <td> </td> + </tr> + <tr> + <td width="8em"> </td> + <td align="center"><input type='checkbox' name='TIME_MON' value='on' $checked{'TIME_MON'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_TUE' value='on' $checked{'TIME_TUE'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_WED' value='on' $checked{'TIME_WED'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_THU' value='on' $checked{'TIME_THU'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_FRI' value='on' $checked{'TIME_FRI'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_SAT' value='on' $checked{'TIME_SAT'}{'on'} ></td> + <td align="center"><input type='checkbox' name='TIME_SUN' value='on' $checked{'TIME_SUN'}{'on'} ></td> + <td> + <select name='TIME_FROM'> +END + for (my $i=0;$i<=23;$i++) { + $i = sprintf("%02s",$i); + for (my $j=0;$j<=45;$j+=15) { + $j = sprintf("%02s",$j); + my $time = $i.":".$j; + print "<option $selected{'TIME_FROM'}{$time}>$i:$j</option>\n"; + } + } + print<<END; + </select> ‐ + <select name='TIME_TO'> +END + for (my $i=0;$i<=23;$i++) { + $i = sprintf("%02s",$i); + for (my $j=0;$j<=45;$j+=15) { + $j = sprintf("%02s",$j); + my $time = $i.":".$j; + print "<option $selected{'TIME_TO'}{$time}>$i:$j</option>\n"; + } + } + print<<END; + </select> + </td> + </tr> + </table> + </td> + </tr> + </table> + <br> +END + + #---ACTION------------------------------------------------------ + if($fwdfwsettings{'updatefwrule'} ne 'on'){ + print<<END; + <table border='0' width='100%'> + <tr><td align='right'><input type='submit' value='$Lang::tr{'add'}' style='min-width:100px;' /> + <input type='hidden' name='config' value='$config' > + <input type='hidden' name='ACTION' value='saverule' ></form> + <form method='post' style='display:inline;'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='reset'></form></td></tr> + </table> + <br> +END + }else{ + print<<END; + <table border='0' width='100%'> + <tr><td align='right'><input type='submit' value='$Lang::tr{'fwdfw change'}' style='min-width:100px;' /><input type='hidden' name='updatefwrule' value='$fwdfwsettings{'updatefwrule'}'><input type='hidden' name='key' value='$fwdfwsettings{'key'}'> + <input type='hidden' name='oldgrp1a' value='$fwdfwsettings{'oldgrp1a'}' /> + <input type='hidden' name='oldgrp1b' value='$fwdfwsettings{'oldgrp1b'}' /> + <input type='hidden' name='oldgrp2a' value='$fwdfwsettings{'oldgrp2a'}' /> + <input type='hidden' name='oldgrp2b' value='$fwdfwsettings{'oldgrp2b'}' /> + <input type='hidden' name='oldgrp3a' value='$fwdfwsettings{'oldgrp3a'}' /> + <input type='hidden' name='oldgrp3b' value='$fwdfwsettings{'oldgrp3b'}' /> + <input type='hidden' name='oldusesrv' value='$fwdfwsettings{'oldusesrv'}' /> + <input type='hidden' name='oldrulenumber' value='$fwdfwsettings{'oldrulenumber'}' /> + <input type='hidden' name='rulenumber' value='$fwdfwsettings{'rulepos'}' /> + <input type='hidden' name='oldruleremark' value='$fwdfwsettings{'oldruleremark'}' /> + <input type='hidden' name='oldorange' value='$fwdfwsettings{'oldorange'}' /> + <input type='hidden' name='oldnat' value='$fwdfwsettings{'oldnat'}' /> + <input type='hidden' name='oldruletype' value='$fwdfwsettings{'oldruletype'}' /> + <input type='hidden' name='nat' value='$fwdfwsettings{'nat'}' /> + <input type='hidden' name='ACTION' value='saverule' ></form><form method='post' style='display:inline'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'><input type='hidden' name='ACTION' value'reset'></td></td> + </table></form> +END + } + &Header::closebox(); +} +sub pos_up +{ + my %uphash=(); + my %tmp=(); + &General::readhasharray($fwdfwsettings{'config'}, %uphash); + foreach my $key (sort keys %uphash){ + if ($key eq $fwdfwsettings{'key'}) { + my $last = $key -1; + if (exists $uphash{$last}){ + #save rule last + foreach my $y (0 .. $#{$uphash{$last}}) { + $tmp{0}[$y] = $uphash{$last}[$y]; + } + #copy active rule to last + foreach my $i (0 .. $#{$uphash{$last}}) { + $uphash{$last}[$i] = $uphash{$key}[$i]; + } + #copy saved rule to actual position + foreach my $x (0 .. $#{$tmp{0}}) { + $uphash{$key}[$x] = $tmp{0}[$x]; + } + } + } + } + &General::writehasharray($fwdfwsettings{'config'}, %uphash); + &General::firewall_config_changed(); +} +sub pos_down +{ + my %downhash=(); + my %tmp=(); + &General::readhasharray($fwdfwsettings{'config'}, %downhash); + foreach my $key (sort keys %downhash){ + if ($key eq $fwdfwsettings{'key'}) { + my $next = $key + 1; + if (exists $downhash{$next}){ + #save rule next + foreach my $y (0 .. $#{$downhash{$next}}) { + $tmp{0}[$y] = $downhash{$next}[$y]; + } + #copy active rule to next + foreach my $i (0 .. $#{$downhash{$next}}) { + $downhash{$next}[$i] = $downhash{$key}[$i]; + } + #copy saved rule to actual position + foreach my $x (0 .. $#{$tmp{0}}) { + $downhash{$key}[$x] = $tmp{0}[$x]; + } + } + } + } + &General::writehasharray($fwdfwsettings{'config'}, %downhash); + &General::firewall_config_changed(); +} +sub saverule +{ + my $hash=shift; + my $config=shift; + &General::readhasharray("$config", $hash); + if (!$errormessage){ + ################################################################ + #check if we change an INPUT rule to a OUTGOING + if($fwdfwsettings{'oldruletype'} eq 'INPUTFW' && $fwdfwsettings{'chain'} eq 'OUTGOINGFW' ){ + &changerule($configinput); + #print"1"; + } + #check if we change an INPUT rule to a FORWARD + elsif($fwdfwsettings{'oldruletype'} eq 'INPUTFW' && $fwdfwsettings{'chain'} eq 'FORWARDFW' ){ + &changerule($configinput); + #print"2"; + } + ################################################################ + #check if we change an OUTGOING rule to an INPUT + elsif($fwdfwsettings{'oldruletype'} eq 'OUTGOINGFW' && $fwdfwsettings{'chain'} eq 'INPUTFW' ){ + &changerule($configoutgoing); + #print"3"; + } + #check if we change an OUTGOING rule to a FORWARD + elsif($fwdfwsettings{'oldruletype'} eq 'OUTGOINGFW' && $fwdfwsettings{'chain'} eq 'FORWARDFW' ){ + &changerule($configoutgoing); + #print"4"; + } + ################################################################ + #check if we change a FORWARD rule to an INPUT + elsif($fwdfwsettings{'oldruletype'} eq 'FORWARDFW' && $fwdfwsettings{'chain'} eq 'INPUTFW'){ + &changerule($configfwdfw); + #print"5"; + } + #check if we change a FORWARD rule to an OUTGOING + elsif($fwdfwsettings{'oldruletype'} eq 'FORWARDFW' && $fwdfwsettings{'chain'} eq 'OUTGOINGFW'){ + &changerule($configfwdfw); + #print"6"; + } + if ($fwdfwsettings{'updatefwrule'} ne 'on'){ + my $key = &General::findhasharraykey ($hash); + $$hash{$key}[0] = $fwdfwsettings{'RULE_ACTION'}; + $$hash{$key}[1] = $fwdfwsettings{'chain'}; + $$hash{$key}[2] = $fwdfwsettings{'ACTIVE'}; + $$hash{$key}[3] = $fwdfwsettings{'grp1'}; + $$hash{$key}[4] = $fwdfwsettings{$fwdfwsettings{'grp1'}}; + $$hash{$key}[5] = $fwdfwsettings{'grp2'}; + $$hash{$key}[6] = $fwdfwsettings{$fwdfwsettings{'grp2'}}; + $$hash{$key}[7] = $fwdfwsettings{'USE_SRC_PORT'}; + $$hash{$key}[8] = $fwdfwsettings{'PROT'}; + $$hash{$key}[9] = $fwdfwsettings{'ICMP_TYPES'}; + $$hash{$key}[10] = $fwdfwsettings{'SRC_PORT'}; + $$hash{$key}[11] = $fwdfwsettings{'USESRV'}; + $$hash{$key}[12] = $fwdfwsettings{'TGT_PROT'}; + $$hash{$key}[13] = $fwdfwsettings{'ICMP_TGT'}; + $$hash{$key}[14] = $fwdfwsettings{'grp3'}; + $$hash{$key}[15] = $fwdfwsettings{$fwdfwsettings{'grp3'}}; + $$hash{$key}[16] = $fwdfwsettings{'ruleremark'}; + $$hash{$key}[17] = $fwdfwsettings{'LOG'}; + $$hash{$key}[18] = $fwdfwsettings{'TIME'}; + $$hash{$key}[19] = $fwdfwsettings{'TIME_MON'}; + $$hash{$key}[20] = $fwdfwsettings{'TIME_TUE'}; + $$hash{$key}[21] = $fwdfwsettings{'TIME_WED'}; + $$hash{$key}[22] = $fwdfwsettings{'TIME_THU'}; + $$hash{$key}[23] = $fwdfwsettings{'TIME_FRI'}; + $$hash{$key}[24] = $fwdfwsettings{'TIME_SAT'}; + $$hash{$key}[25] = $fwdfwsettings{'TIME_SUN'}; + $$hash{$key}[26] = $fwdfwsettings{'TIME_FROM'}; + $$hash{$key}[27] = $fwdfwsettings{'TIME_TO'}; + $$hash{$key}[28] = $fwdfwsettings{'USE_NAT'}; + $$hash{$key}[29] = $fwdfwsettings{$fwdfwsettings{'nat'}}; + $$hash{$key}[30] = $fwdfwsettings{'dnatport'}; + $$hash{$key}[31] = $fwdfwsettings{'nat'}; + &General::writehasharray("$config", $hash); + }else{ + foreach my $key (sort {$a <=> $b} keys %$hash){ + if($key eq $fwdfwsettings{'key'}){ + $$hash{$key}[0] = $fwdfwsettings{'RULE_ACTION'}; + $$hash{$key}[1] = $fwdfwsettings{'chain'}; + $$hash{$key}[2] = $fwdfwsettings{'ACTIVE'}; + $$hash{$key}[3] = $fwdfwsettings{'grp1'}; + $$hash{$key}[4] = $fwdfwsettings{$fwdfwsettings{'grp1'}}; + $$hash{$key}[5] = $fwdfwsettings{'grp2'}; + $$hash{$key}[6] = $fwdfwsettings{$fwdfwsettings{'grp2'}}; + $$hash{$key}[7] = $fwdfwsettings{'USE_SRC_PORT'}; + $$hash{$key}[8] = $fwdfwsettings{'PROT'}; + $$hash{$key}[9] = $fwdfwsettings{'ICMP_TYPES'}; + $$hash{$key}[10] = $fwdfwsettings{'SRC_PORT'}; + $$hash{$key}[11] = $fwdfwsettings{'USESRV'}; + $$hash{$key}[12] = $fwdfwsettings{'TGT_PROT'}; + $$hash{$key}[13] = $fwdfwsettings{'ICMP_TGT'}; + $$hash{$key}[14] = $fwdfwsettings{'grp3'}; + $$hash{$key}[15] = $fwdfwsettings{$fwdfwsettings{'grp3'}}; + $$hash{$key}[16] = $fwdfwsettings{'ruleremark'}; + $$hash{$key}[17] = $fwdfwsettings{'LOG'}; + $$hash{$key}[18] = $fwdfwsettings{'TIME'}; + $$hash{$key}[19] = $fwdfwsettings{'TIME_MON'}; + $$hash{$key}[20] = $fwdfwsettings{'TIME_TUE'}; + $$hash{$key}[21] = $fwdfwsettings{'TIME_WED'}; + $$hash{$key}[22] = $fwdfwsettings{'TIME_THU'}; + $$hash{$key}[23] = $fwdfwsettings{'TIME_FRI'}; + $$hash{$key}[24] = $fwdfwsettings{'TIME_SAT'}; + $$hash{$key}[25] = $fwdfwsettings{'TIME_SUN'}; + $$hash{$key}[26] = $fwdfwsettings{'TIME_FROM'}; + $$hash{$key}[27] = $fwdfwsettings{'TIME_TO'}; + $$hash{$key}[28] = $fwdfwsettings{'USE_NAT'}; + $$hash{$key}[29] = $fwdfwsettings{$fwdfwsettings{'nat'}}; + $$hash{$key}[30] = $fwdfwsettings{'dnatport'}; + $$hash{$key}[31] = $fwdfwsettings{'nat'}; + last; + } + } + } + &General::writehasharray("$config", $hash); + if($fwdfwsettings{'oldrulenumber'} > $fwdfwsettings{'rulepos'}){ + my %tmp=(); + my $val=$fwdfwsettings{'oldrulenumber'}-$fwdfwsettings{'rulepos'}; + for (my $z=0;$z<$val;$z++){ + foreach my $key (sort {$a <=> $b} keys %$hash){ + if ($key eq $fwdfwsettings{'oldrulenumber'}) { + my $last = $key -1; + if (exists $$hash{$last}){ + #save rule last + foreach my $y (0 .. $#{$$hash{$last}}) { + $tmp{0}[$y] = $$hash{$last}[$y]; + } + #copy active rule to last + foreach my $i (0 .. $#{$$hash{$last}}) { + $$hash{$last}[$i] = $$hash{$key}[$i]; + } + #copy saved rule to actual position + foreach my $x (0 .. $#{$tmp{0}}) { + $$hash{$key}[$x] = $tmp{0}[$x]; + } + } + } + } + $fwdfwsettings{'oldrulenumber'}--; + } + &General::writehasharray("$config", $hash); + &General::firewall_config_changed(); + }elsif($fwdfwsettings{'rulepos'} > $fwdfwsettings{'oldrulenumber'}){ + my %tmp=(); + my $val=$fwdfwsettings{'rulepos'}-$fwdfwsettings{'oldrulenumber'}; + for (my $z=0;$z<$val;$z++){ + foreach my $key (sort {$a <=> $b} keys %$hash){ + if ($key eq $fwdfwsettings{'oldrulenumber'}) { + my $next = $key + 1; + if (exists $$hash{$next}){ + #save rule next + foreach my $y (0 .. $#{$$hash{$next}}) { + $tmp{0}[$y] = $$hash{$next}[$y]; + } + #copy active rule to next + foreach my $i (0 .. $#{$$hash{$next}}) { + $$hash{$next}[$i] = $$hash{$key}[$i]; + } + #copy saved rule to actual position + foreach my $x (0 .. $#{$tmp{0}}) { + $$hash{$key}[$x] = $tmp{0}[$x]; + } + } + } + } + $fwdfwsettings{'oldrulenumber'}++; + } + &General::writehasharray("$config", $hash); + &General::firewall_config_changed(); + } + } +} +sub validremark +{ + # Checks a hostname against RFC1035 + my $remark = $_[0]; + + # Each part should be at least two characters in length + # but no more than 63 characters + if (length ($remark) < 1 || length ($remark) > 255) { + return 0;} + # Only valid characters are a-z, A-Z, 0-9 and - + if ($remark !~ /^[a-zÀöÌA-ZÃÃÃ0-9-.:;|_()/\s]*$/) { + return 0;} + # First character can only be a letter or a digit + if (substr ($remark, 0, 1) !~ /^[a-zÀöÌA-ZÃÃÃ0-9(]*$/) { + return 0;} + # Last character can only be a letter or a digit + if (substr ($remark, -1, 1) !~ /^[a-zöÀÌA-ZÃÃÃ0-9.:;_)]*$/) { + return 0;} + return 1; +} +sub viewtablerule +{ + &General::readhash("/var/ipfire/ethernet/settings", %netsettings); + + &viewtablenew(%configfwdfw, $configfwdfw, $Lang::tr{'firewall rules'}); + &viewtablenew(%configinputfw, $configinput, $Lang::tr{'external access'}); + &viewtablenew(%configoutgoingfw, $configoutgoing, $Lang::tr{'outgoing firewall'}); +} +sub viewtablenew +{ + my $hash=shift; + my $config=shift; + my $title=shift; + my $go=''; + + my $show_box = (! -z $config) || ($optionsfw{'SHOWTABLES'} eq 'on'); + return if (!$show_box); + + &General::get_aliases(%aliases); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$config", $hash); + &General::readhasharray("$configccdnet", %ccdnet); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$configgrp", %customgrp); + &General::readhasharray("$configsrvgrp", %customservicegrp); + + &Header::openbox('100%', 'left', $title); + print "<table width='100%' cellspacing='0' class='tbl'>"; + + if (! -z $config) { + my $count=0; + my ($gif,$log); + my $ruletype; + my $rulecolor; + my $tooltip; + my @tmpsrc=(); + my @tmptgt=(); + my $coloryellow=''; + + print <<END; + <tr> + <th align='right' width='3%'> + # + </th> + <th width='2%'></th> + <th align='center'> + <b>$Lang::tr{'protocol'}</b> + </th> + <th align='center' width='30%'> + <b>$Lang::tr{'fwdfw source'}</b> + </th> + <th align='center'> + <b>$Lang::tr{'fwdfw log'}</b> + </th> + <th align='center' width='30%'> + <b>$Lang::tr{'fwdfw target'}</b> + </th> + <th align='center' colspan='6' width='18%'> + <b>$Lang::tr{'fwdfw action'}</b> + </th> + </tr> +END + + foreach my $key (sort {$a <=> $b} keys %$hash){ + $tdcolor=''; + @tmpsrc=(); + @tmptgt=(); + #check if vpn hosts/nets have been deleted + if($$hash{$key}[3] =~ /ipsec/i || $$hash{$key}[3] =~ /ovpn/i){ + push (@tmpsrc,$$hash{$key}[4]); + } + if($$hash{$key}[5] =~ /ipsec/i || $$hash{$key}[5] =~ /ovpn/i){ + push (@tmptgt,$$hash{$key}[6]); + } + foreach my $host (@tmpsrc){ + if($$hash{$key}[3] eq 'ipsec_net_src'){ + if(&fwlib::get_ipsec_net_ip($host,11) eq ''){ + $coloryellow='on'; + &disable_rule($key); + $$hash{$key}[2]=''; + } + }elsif($$hash{$key}[3] eq 'ovpn_net_src'){ + if(&fwlib::get_ovpn_net_ip($host,1) eq ''){ + $coloryellow='on'; + &disable_rule($key); + $$hash{$key}[2]=''; + } + }elsif($$hash{$key}[3] eq 'ovpn_n2n_src'){ + if(&fwlib::get_ovpn_n2n_ip($host,27) eq ''){ + $coloryellow='on'; + &disable_rule($key); + $$hash{$key}[2]=''; + } + }elsif($$hash{$key}[3] eq 'ovpn_host_src'){ + if(&fwlib::get_ovpn_host_ip($host,33) eq ''){ + $coloryellow='on'; + &disable_rule($key); + $$hash{$key}[2]=''; + } + } + } + foreach my $host (@tmptgt){ + if($$hash{$key}[5] eq 'ipsec_net_tgt'){ + if(&fwlib::get_ipsec_net_ip($host,11) eq ''){ + $coloryellow='on'; + &disable_rule($key); + $$hash{$key}[2]=''; + } + }elsif($$hash{$key}[5] eq 'ovpn_net_tgt'){ + if(&fwlib::get_ovpn_net_ip($host,1) eq ''){ + $coloryellow='on'; + &disable_rule($key); + $$hash{$key}[2]=''; + } + }elsif($$hash{$key}[5] eq 'ovpn_n2n_tgt'){ + if(&fwlib::get_ovpn_n2n_ip($host,27) eq ''){ + $coloryellow='on'; + &disable_rule($key); + $$hash{$key}[2]=''; + } + }elsif($$hash{$key}[5] eq 'ovpn_host_tgt'){ + if(&fwlib::get_ovpn_host_ip($host,33) eq ''){ + $coloryellow='on'; + &disable_rule($key); + $$hash{$key}[2]=''; + } + } + } + #check if networkgroups or servicegroups are empty + foreach my $netgroup (sort keys %customgrp){ + if(($$hash{$key}[4] eq $customgrp{$netgroup}[0] || $$hash{$key}[6] eq $customgrp{$netgroup}[0]) && $customgrp{$netgroup}[2] eq 'none'){ + $coloryellow='on'; + &disable_rule($key); + $$hash{$key}[2]=''; + } + } + foreach my $srvgroup (sort keys %customservicegrp){ + if($$hash{$key}[15] eq $customservicegrp{$srvgroup}[0] && $customservicegrp{$srvgroup}[2] eq 'none'){ + $coloryellow='on'; + &disable_rule($key); + $$hash{$key}[2]=''; + } + } + $$hash{'ACTIVE'}=$$hash{$key}[2]; + $count++; + if($coloryellow eq 'on'){ + $color="$color{'color14'}"; + $coloryellow=''; + }elsif($coloryellow eq ''){ + if ($count % 2){ + $color="$color{'color22'}"; + } + else{ + $color="$color{'color20'}"; + } + } + print<<END; + <tr bgcolor='$color'> + <td align='right' width='3%'> + <b>$key </b> + </td> +END + + #RULETYPE (A,R,D) + if ($$hash{$key}[0] eq 'ACCEPT'){ + $ruletype='A'; + $tooltip='ACCEPT'; + $rulecolor=$color{'color17'}; + }elsif($$hash{$key}[0] eq 'DROP'){ + $ruletype='D'; + $tooltip='DROP'; + $rulecolor=$color{'color25'}; + }elsif($$hash{$key}[0] eq 'REJECT'){ + $ruletype='R'; + $tooltip='REJECT'; + $rulecolor=$color{'color16'}; + } + + print <<END; + <td bgcolor='$rulecolor' align='center' width='2%'> + <span title='$tooltip'> </span> + </td> +END + + #Get Protocol + my $prot; + if ($$hash{$key}[8]){ + if ($$hash{$key}[8] eq "IPv6"){ + push (@protocols,$Lang::tr{'fwdfw prot41 short'}) + }else{ + push (@protocols,$$hash{$key}[8]); + } + }elsif($$hash{$key}[14] eq 'cust_srv'){ + &get_serviceports("service",$$hash{$key}[15]); + }elsif($$hash{$key}[14] eq 'cust_srvgrp'){ + &get_serviceports("group",$$hash{$key}[15]); + }else{ + push (@protocols,$Lang::tr{'all'}); + } + + my $protz=join(",",@protocols); + if($protz eq 'ICMP' && $$hash{$key}[9] ne 'All ICMP-Types' && $$hash{$key}[14] ne 'cust_srvgrp'){ + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + foreach my $keyicmp (sort { ncmp($icmptypes{$a}[0],$icmptypes{$b}[0]) }keys %icmptypes){ + if($$hash{$key}[9] eq "$icmptypes{$keyicmp}[0]"){ + print "<td align='center'><span title='$icmptypes{$keyicmp}[0]'><b>$protz ($icmptypes{$keyicmp}[1])</b></span></td>"; + last; + } + } + }else{ + print"<td align='center'>$protz</td>"; + } + @protocols=(); + #SOURCE + my $ipfireiface; + &getcolor($$hash{$key}[3],$$hash{$key}[4],%customhost); + print"<td align='center' width='30%' $tdcolor>"; + if ($$hash{$key}[3] eq 'ipfire_src'){ + $ipfireiface=$Lang::tr{'fwdfw iface'}; + } + if ($$hash{$key}[3] eq 'std_net_src'){ + print &get_name($$hash{$key}[4]); + }elsif ($$hash{$key}[3] eq 'src_addr'){ + my ($split1,$split2) = split("/",$$hash{$key}[4]); + if ($split2 eq '32'){ + print $split1; + }else{ + print $$hash{$key}[4]; + } + }elsif ($$hash{$key}[4] eq 'RED1'){ + print "$ipfireiface $Lang::tr{'fwdfw red'}"; + }elsif ($$hash{$key}[4] eq 'ALL'){ + print "$ipfireiface $Lang::tr{'all'}"; + }else{ + if ($$hash{$key}[4] eq 'GREEN' || $$hash{$key}[4] eq 'ORANGE' || $$hash{$key}[4] eq 'BLUE' || $$hash{$key}[4] eq 'RED'){ + print "$ipfireiface $Lang::tr{lc($$hash{$key}[4])}"; + }else{ + print "$ipfireiface $$hash{$key}[4]"; + } + } + $tdcolor=''; + #SOURCEPORT + &getsrcport(%$hash,$key); + #Is this a SNAT rule? + if ($$hash{$key}[31] eq 'snat' && $$hash{$key}[28] eq 'ON'){ + my $net=&get_name($$hash{$key}[29]); + if ( ! $net){ $net=$$hash{$key}[29];} + print"<br>->$net"; + if ($$hash{$key}[30] ne ''){ + print": $$hash{$key}[30]"; + } + } + if ($$hash{$key}[17] eq 'ON'){ + $log="/images/on.gif"; + }else{ + $log="/images/off.gif"; + } + #LOGGING + print<<END; + </td> + <td align='center'> + <form method='POST' action=''> + <input type='image' img src='$log' alt='$Lang::tr{'click to disable'}' title='$Lang::tr{'fwdfw togglelog'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;'/> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='$Lang::tr{'fwdfw togglelog'}' /> + </form> + </td> +END + #TARGET + &getcolor($$hash{$key}[5],$$hash{$key}[6],%customhost); + print<<END; + <td align='center' $tdcolor> +END + #Is this a DNAT rule? + if ($$hash{$key}[31] eq 'dnat' && $$hash{$key}[28] eq 'ON'){ + print "Firewall ($$hash{$key}[29])"; + if($$hash{$key}[30] ne ''){ + $$hash{$key}[30]=~ tr/|/,/; + print": $$hash{$key}[30]"; + } + print"<br>->"; + } + if ($$hash{$key}[5] eq 'std_net_tgt' || $$hash{$key}[5] eq 'ipfire'){ + if ($$hash{$key}[6] eq 'RED1'){ + print "$Lang::tr{'red1'}"; + }elsif ($$hash{$key}[6] eq 'GREEN' || $$hash{$key}[6] eq 'ORANGE' || $$hash{$key}[6] eq 'BLUE'|| $$hash{$key}[6] eq 'ALL' || $$hash{$key}[6] eq 'RED') + { + print &get_name($$hash{$key}[6]); + }else{ + print $$hash{$key}[6]; + } + }elsif ($$hash{$key}[5] eq 'tgt_addr'){ + my ($split1,$split2) = split("/",$$hash{$key}[6]); + if ($split2 eq '32'){ + print $split1; + }else{ + print $$hash{$key}[6]; + } + }else{ + print "$$hash{$key}[6]"; + } + $tdcolor=''; + #TARGETPORT + &gettgtport(%$hash,$key); + print"</td>"; + #RULE ACTIVE + if($$hash{$key}[2] eq 'ON'){ + $gif="/images/on.gif" + + }else{ + $gif="/images/off.gif" + } + print<<END; + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='$gif' alt='$Lang::tr{'click to disable'}' title='$Lang::tr{'fwdfw toggle'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='$Lang::tr{'fwdfw toggle'}' /> + </form> + </td> + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'fwdfw edit'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='editrule' /> + </form> + </td> + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='/images/addblue.gif' alt='$Lang::tr{'fwdfw copy'}' title='$Lang::tr{'fwdfw copy'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='copyrule' /> + </form> + </td> + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='/images/delete.gif' alt='$Lang::tr{'delete'}' title='$Lang::tr{'fwdfw delete'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='deleterule' /> + </form> + </td> +END + if (exists $$hash{$key-1}){ + print<<END; + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='/images/up.gif' alt='$Lang::tr{'fwdfw moveup'}' title='$Lang::tr{'fwdfw moveup'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='moveup' /> + </form> + </td> +END + }else{ + print"<td width='3%'></td>"; + } + + if (exists $$hash{$key+1}){ + print<<END; + <td width='3%' align='center'> + <form method='POST' action=''> + <input type='image' img src='/images/down.gif' alt='$Lang::tr{'fwdfw movedown'}' title='$Lang::tr{'fwdfw movedown'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;' /> + <input type='hidden' name='key' value='$key' /> + <input type='hidden' name='config' value='$config' /> + <input type='hidden' name='ACTION' value='movedown' /> + </form> + </td> + </tr> +END + }else{ + print"<td width='3%'></td></tr>"; + } + #REMARK + if ($optionsfw{'SHOWREMARK'} eq 'on' && $$hash{$key}[16] ne ''){ + print <<END; + <tr bgcolor='$color'> + <td> </td> + <td bgcolor='$rulecolor'></td> + <td colspan='10'> + <em>$$hash{$key}[16]</em> + </td> + </tr> +END + } + + if ($$hash{$key}[18] eq 'ON'){ + #TIMEFRAME + if ($$hash{$key}[18] eq 'ON'){ + my @days=(); + if($$hash{$key}[19] ne ''){push (@days,$Lang::tr{'fwdfw wd_mon'});} + if($$hash{$key}[20] ne ''){push (@days,$Lang::tr{'fwdfw wd_tue'});} + if($$hash{$key}[21] ne ''){push (@days,$Lang::tr{'fwdfw wd_wed'});} + if($$hash{$key}[22] ne ''){push (@days,$Lang::tr{'fwdfw wd_thu'});} + if($$hash{$key}[23] ne ''){push (@days,$Lang::tr{'fwdfw wd_fri'});} + if($$hash{$key}[24] ne ''){push (@days,$Lang::tr{'fwdfw wd_sat'});} + if($$hash{$key}[25] ne ''){push (@days,$Lang::tr{'fwdfw wd_sun'});} + my $weekdays=join(",",@days); + if (@days){ + print"<tr bgcolor='$color'>"; + print"<td> </td><td bgcolor='$rulecolor'></td><td align='left' colspan='10'> $weekdays $$hash{$key}[26] - $$hash{$key}[27]</td></tr>"; + } + } + } + print"<tr bgcolor='FFFFFF'><td colspan='13' height='1'></td></tr>"; + } + } elsif ($optionsfw{'SHOWTABLES'} eq 'on') { + print <<END; + <tr> + <td colspan='7' height='30' bgcolor=$color{'color22'} align='center'>$Lang::tr{'fwhost empty'}</td> + </tr> +END + } + + #SHOW FINAL RULE + my $policy = 'fwdfw ' . $fwdfwsettings{'POLICY'}; + my $colour = "bgcolor='green'"; + if ($fwdfwsettings{'POLICY'} eq 'MODE1') { + $colour = "bgcolor='darkred'"; + } + + my $message; + if (($config eq '/var/ipfire/firewall/config') && ($fwdfwsettings{'POLICY'} ne 'MODE1')) { + print <<END; + <tr> + <td colspan='13'> </td> + </tr> + <tr> + <td colspan='13'> + <table width="100%" border='1' rules="cols" cellspacing='0'> +END + + # GREEN + print <<END; + <tr> + <td align='center'> + <font color="$Header::colourgreen">$Lang::tr{'green'}</font> + </td> + <td align='center'> + <font color="$Header::colourred">$Lang::tr{'red'}</font> + ($Lang::tr{'fwdfw pol allow'}) + </td> +END + + if (&Header::orange_used()) { + print <<END; + <td align='center'> + <font color="$Header::colourorange">$Lang::tr{'orange'}</font> + ($Lang::tr{'fwdfw pol allow'}) + </td> +END + } + + if (&Header::blue_used()) { + print <<END; + <td align='center'> + <font color="$Header::colourblue">$Lang::tr{'blue'}</font> + ($Lang::tr{'fwdfw pol allow'}) + </td> +END + } + + print"</tr>"; + + # ORANGE + if (&Header::orange_used()) { + print <<END; + <tr> + <td align='center' width='20%'> + <font color="$Header::colourorange">$Lang::tr{'orange'}</font> + </td> + <td align='center'> + <font color="$Header::colourred">$Lang::tr{'red'}</font> + ($Lang::tr{'fwdfw pol allow'}) + </td> + <td align='center'> + <font color="$Header::colourgreen">$Lang::tr{'green'}</font> + ($Lang::tr{'fwdfw pol block'}) + </td> +END + + if (&Header::blue_used()) { + print <<END; + <td align='center'> + <font color="$Header::colourblue">$Lang::tr{'blue'}</font> + ($Lang::tr{'fwdfw pol block'}) + </td> +END + } + + print"</tr>"; + } + + if (&Header::blue_used()) { + print <<END; + <tr> + <td align='center'> + <font color="$Header::colourblue">$Lang::tr{'blue'}</font> + </td> + <td align='center'> + <font color="$Header::colourred">$Lang::tr{'red'}</font> + ($Lang::tr{'fwdfw pol allow'}) + </td> +END + + if (&Header::orange_used()) { + print <<END; + <td align='center'> + <font color="$Header::colourorange">$Lang::tr{'orange'}</font> + ($Lang::tr{'fwdfw pol block'}) + </td> + <td align='center'> + <font color="$Header::colourgreen">$Lang::tr{'green'}</font> + ($Lang::tr{'fwdfw pol block'}) + </td> +END + } + + print"</tr>"; + } + + print <<END; + </table> + </td> + </tr> +END + + $message = $Lang::tr{'fwdfw pol allow'}; + + } elsif ($config eq '/var/ipfire/firewall/outgoing' && ($fwdfwsettings{'POLICY1'} ne 'MODE1')) { + $message = $Lang::tr{'fwdfw pol allow'}; + $colour = "bgcolor='green'"; + } else { + $message = $Lang::tr{'fwdfw pol block'}; + $colour = "bgcolor='darkred'"; + } + + if ($message) { + print <<END; + <tr> + <td $colour align='center' colspan='13'> + <font color='#FFFFFF'>$Lang::tr{'policy'}: $message</font> + </td> + </tr> +END + } + + print "</table>"; + print "<br>"; + + &Header::closebox(); +} + +&Header::closebigbox(); +&Header::closepage(); diff --git a/html/cgi-bin/fwhosts.cgi b/html/cgi-bin/fwhosts.cgi new file mode 100644 index 0000000..baecde3 --- /dev/null +++ b/html/cgi-bin/fwhosts.cgi @@ -0,0 +1,2527 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +use strict; + +# enable only the following on debugging purpose +use warnings; +use Sort::Naturally; +use CGI::Carp 'fatalsToBrowser'; +no warnings 'uninitialized'; +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +my %fwhostsettings=(); +my %customnetwork=(); +my %customhost=(); +my %customgrp=(); +my %customservice=(); +my %customservicegrp=(); +my %ccdnet=(); +my %ccdhost=(); +my %ipsecconf=(); +my %icmptypes=(); +my %color=(); +my %defaultNetworks=(); +my %mainsettings=(); +my %ownnet=(); +my %ipsecsettings=(); +my %fwfwd=(); +my %fwinp=(); +my %fwout=(); +my %ovpnsettings=(); + + +my $errormessage; +my $hint; +my $update=0; +my $confignet = "${General::swroot}/fwhosts/customnetworks"; +my $confighost = "${General::swroot}/fwhosts/customhosts"; +my $configgrp = "${General::swroot}/fwhosts/customgroups"; +my $configccdnet = "${General::swroot}/ovpn/ccd.conf"; +my $configccdhost = "${General::swroot}/ovpn/ovpnconfig"; +my $configipsec = "${General::swroot}/vpn/config"; +my $configsrv = "${General::swroot}/fwhosts/customservices"; +my $configsrvgrp = "${General::swroot}/fwhosts/customservicegrp"; +my $fwconfigfwd = "${General::swroot}/firewall/config"; +my $fwconfiginp = "${General::swroot}/firewall/input"; +my $fwconfigout = "${General::swroot}/firewall/outgoing"; +my $configovpn = "${General::swroot}/ovpn/settings"; +my $tdcolor=''; +my $configipsecrw = "${General::swroot}/vpn/settings"; + +unless (-e $confignet) { system("touch $confignet"); } +unless (-e $confighost) { system("touch $confighost"); } +unless (-e $configgrp) { system("touch $configgrp"); } +unless (-e $configsrv) { system("touch $configsrv"); } +unless (-e $configsrvgrp) { system("touch $configsrvgrp"); } + +&General::readhash("${General::swroot}/main/settings", %mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); +&General::readhash("${General::swroot}/ethernet/settings", %ownnet); +&General::readhash("$configovpn", %ovpnsettings); +&General::readhasharray("$configipsec", %ipsecconf); +&General::readhash("$configipsecrw", %ipsecsettings); + +&Header::getcgihash(%fwhostsettings); + +&Header::showhttpheaders(); +&Header::openpage($Lang::tr{'fwhost menu'}, 1, ''); +&Header::openbigbox('100%', 'center'); + +#### JAVA SCRIPT #### +print<<END; +<script> + var PROTOCOLS_WITH_PORTS = ["TCP", "UDP"]; + var update_protocol = function() { + var protocol = $("#protocol").val(); + + if (protocol === undefined) + return; + + // Check if we are dealing with a protocol, that knows ports. + if ($.inArray(protocol, PROTOCOLS_WITH_PORTS) >= 0) { + $("#PORT").show(); + $("#PROTOKOLL").hide(); + } else { + $("#PORT").hide(); + $("#PROTOKOLL").show(); + } + }; + + $(document).ready(function() { + var protocol = $("#protocol").val(); + $("#protocol").change(update_protocol); + update_protocol(); + // Automatically select radio buttons when corresponding + // dropdown menu changes. + $("select").change(function() { + var id = $(this).attr("name"); + $('#' + id).prop("checked", true); + }); + }); +</script> +END + +## ACTION #### +# Update +if ($fwhostsettings{'ACTION'} eq 'updatenet' ) +{ + &General::readhasharray("$confignet", %customnetwork); + foreach my $key (keys %customnetwork) + { + if($customnetwork{$key}[0] eq $fwhostsettings{'orgname'}) + { + $fwhostsettings{'orgname'} = $customnetwork{$key}[0]; + $fwhostsettings{'orgip'} = $customnetwork{$key}[1]; + $fwhostsettings{'orgsub'} = $customnetwork{$key}[2]; + $fwhostsettings{'netremark'} = $customnetwork{$key}[3]; + $fwhostsettings{'count'} = $customnetwork{$key}[4]; + delete $customnetwork{$key}; + + } + } + &General::writehasharray("$confignet", %customnetwork); + $fwhostsettings{'actualize'} = 'on'; + $fwhostsettings{'ACTION'} = 'savenet'; +} +if ($fwhostsettings{'ACTION'} eq 'updatehost') +{ + my ($ip,$subnet); + &General::readhasharray("$confighost", %customhost); + foreach my $key (keys %customhost) + { + if($customhost{$key}[0] eq $fwhostsettings{'orgname'}) + { + if ($customhost{$key}[1] eq 'ip'){ + ($ip,$subnet) = split (///,$customhost{$key}[2]); + }else{ + $ip = $customhost{$key}[2]; + } + $fwhostsettings{'orgip'} = $ip; + $fwhostsettings{'count'} = $customhost{$key}[4]; + delete $customhost{$key}; + &General::writehasharray("$confighost", %customhost); + } + } + $fwhostsettings{'actualize'} = 'on'; + if($fwhostsettings{'orgip'}){ + $fwhostsettings{'ACTION'} = 'savehost'; + }else{ + $fwhostsettings{'ACTION'} = $Lang::tr{'fwhost newhost'}; + } +} +if ($fwhostsettings{'ACTION'} eq 'updateservice') +{ + my $count=0; + my $needrules=0; + $errormessage=&checkports(%customservice); + if ($fwhostsettings{'oldsrvname'} ne $fwhostsettings{'SRV_NAME'} && !&checkgroup($fwhostsettings{'SRV_NAME'})){ + $errormessage=$Lang::tr{'fwhost err grpexist'}; + } + if (!$errormessage){ + &General::readhasharray("$configsrv", %customservice); + foreach my $key (keys %customservice) + { + if ($customservice{$key}[0] eq $fwhostsettings{'oldsrvname'}) + { + delete $customservice{$key}; + &General::writehasharray("$configsrv", %customservice); + last; + } + } + if ($fwhostsettings{'PROT'} ne 'ICMP'){ + $fwhostsettings{'ICMP_TYPES'}='BLANK'; + } + my $key1 = &General::findhasharraykey(%customservice); + #find out short ICMP-TYPE + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + foreach my $key (keys %icmptypes){ + if ("$icmptypes{$key}[0] ($icmptypes{$key}[1])" eq $fwhostsettings{'ICMP_TYPES'}){ + $fwhostsettings{'ICMP_TYPES'}=$icmptypes{$key}[0]; + } + } + foreach my $i (0 .. 4) { $customservice{$key1}[$i] = "";} + $customservice{$key1}[0] = $fwhostsettings{'SRV_NAME'}; + $customservice{$key1}[1] = $fwhostsettings{'SRV_PORT'}; + $customservice{$key1}[2] = $fwhostsettings{'PROT'}; + $customservice{$key1}[3] = $fwhostsettings{'ICMP_TYPES'}; + &General::writehasharray("$configsrv", %customservice); + #check if we need to update firewallrules + if ($fwhostsettings{'SRV_NAME'} ne $fwhostsettings{'oldsrvname'}){ + if ( ! -z $fwconfigfwd ){ + &General::readhasharray("$fwconfigfwd", %fwfwd); + foreach my $key (sort keys %fwfwd){ + if ($fwfwd{$key}[15] eq $fwhostsettings{'oldsrvname'}){ + $fwfwd{$key}[15] = $fwhostsettings{'SRV_NAME'}; + } + } + &General::writehasharray("$fwconfigfwd", %fwfwd); + } + if ( ! -z $fwconfiginp ){ + &General::readhasharray("$fwconfiginp", %fwinp); + foreach my $line (sort keys %fwinp){ + if ($fwfwd{$line}[15] eq $fwhostsettings{'oldsrvname'}){ + $fwfwd{$line}[15] = $fwhostsettings{'SRV_NAME'}; + } + } + &General::writehasharray("$fwconfiginp", %fwinp); + } + if ( ! -z $fwconfigout ){ + &General::readhasharray("$fwconfigout", %fwout); + foreach my $line (sort keys %fwout){ + if ($fwout{$line}[15] eq $fwhostsettings{'oldsrvname'}){ + $fwout{$line}[15] = $fwhostsettings{'SRV_NAME'}; + } + } + &General::writehasharray("$fwconfigout", %fwout); + } + #check if we need to update groups + &General::readhasharray("$configsrvgrp", %customservicegrp); + foreach my $key (sort keys %customservicegrp){ + if($customservicegrp{$key}[2] eq $fwhostsettings{'oldsrvname'}){ + $customservicegrp{$key}[2] = $fwhostsettings{'SRV_NAME'}; + &checkrulereload($customservicegrp{$key}[0]); + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp); + } + &checkrulereload($fwhostsettings{'SRV_NAME'}); + $fwhostsettings{'SRV_NAME'} = ''; + $fwhostsettings{'SRV_PORT'} = ''; + $fwhostsettings{'PROT'} = ''; + $fwhostsettings{'ICMP'} = ''; + $fwhostsettings{'oldsrvicmp'} = ''; + $fwhostsettings{'updatesrv'} = ''; + }else{ + $fwhostsettings{'SRV_NAME'} = $fwhostsettings{'oldsrvname'}; + $fwhostsettings{'SRV_PORT'} = $fwhostsettings{'oldsrvport'}; + $fwhostsettings{'PROT'} = $fwhostsettings{'oldsrvprot'}; + $fwhostsettings{'ICMP'} = $fwhostsettings{'oldsrvicmp'}; + $fwhostsettings{'updatesrv'}= 'on'; + } + &addservice; +} +# save +if ($fwhostsettings{'ACTION'} eq 'savenet' ) +{ + my $needrules=0; + if ($fwhostsettings{'orgname'} eq ''){$fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'};} + #check if all fields are set + if ($fwhostsettings{'HOSTNAME'} eq '' || $fwhostsettings{'IP'} eq '' || $fwhostsettings{'SUBNET'} eq '') + { + $errormessage=$errormessage.$Lang::tr{'fwhost err empty'}; + &addnet; + &viewtablenet; + }else{ + #check valid ip + if (!&General::validipandmask($fwhostsettings{'IP'}."/".$fwhostsettings{'SUBNET'})) + { + $errormessage=$errormessage.$Lang::tr{'fwhost err addr'}; + $fwhostsettings{'BLK_HOST'} ='readonly'; + $fwhostsettings{'NOCHECK'} ='false'; + $fwhostsettings{'error'} ='on'; + } + #check remark + if ($fwhostsettings{'NETREMARK'} ne '' && !&validremark($fwhostsettings{'NETREMARK'})){ + $errormessage=$Lang::tr{'fwhost err remark'}; + $fwhostsettings{'error'} ='on'; + } + #check if subnet is sigle host + if(&General::iporsubtocidr($fwhostsettings{'SUBNET'}) eq '32') + { + $errormessage=$errormessage.$Lang::tr{'fwhost err sub32'}; + } + if($fwhostsettings{'error'} ne 'on'){ + #check if we use one of ipfire's networks (green,orange,blue) + if (($ownnet{'GREEN_NETADDRESS'} ne '' && $ownnet{'GREEN_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($fwhostsettings{'IP'},$ownnet{'GREEN_NETADDRESS'},$ownnet{'GREEN_NETMASK'})) + { + $errormessage=$errormessage.$Lang::tr{'ccd err green'}."<br>"; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';} + } + if (($ownnet{'ORANGE_NETADDRESS'} ne '' && $ownnet{'ORANGE_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($fwhostsettings{'IP'},$ownnet{'ORANGE_NETADDRESS'},$ownnet{'ORANGE_NETMASK'})) + { + $errormessage=$errormessage.$Lang::tr{'ccd err orange'}."<br>"; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';} + } + if (($ownnet{'BLUE_NETADDRESS'} ne '' && $ownnet{'BLUE_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($fwhostsettings{'IP'},$ownnet{'BLUE_NETADDRESS'},$ownnet{'BLUE_NETMASK'})) + { + $errormessage=$errormessage.$Lang::tr{'ccd err blue'}."<br>"; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';} + } + if (($ownnet{'RED_NETADDRESS'} ne '' && $ownnet{'RED_NETADDRESS'} ne '0.0.0.0') && &General::IpInSubnet($fwhostsettings{'IP'},$ownnet{'RED_NETADDRESS'},$ownnet{'RED_NETMASK'})) + { + $errormessage=$errormessage.$Lang::tr{'ccd err red'}."<br>"; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';} + } + } + #only check plausi when no error till now + if (!$errormessage){ + &plausicheck("editnet"); + } + #check if network ip is part of an already used one + if(&checksubnet(%customnetwork)) + { + $errormessage=$errormessage.$Lang::tr{'fwhost err partofnet'}; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + } + if($fwhostsettings{'actualize'} eq 'on' && $fwhostsettings{'newnet'} ne 'on' && $errormessage) + { + $fwhostsettings{'actualize'} = ''; + my $key = &General::findhasharraykey (%customnetwork); + foreach my $i (0 .. 3) { $customnetwork{$key}[$i] = "";} + $customnetwork{$key}[0] = $fwhostsettings{'orgname'} ; + $customnetwork{$key}[1] = $fwhostsettings{'orgip'} ; + $customnetwork{$key}[2] = $fwhostsettings{'orgsub'}; + $customnetwork{$key}[3] = $fwhostsettings{'orgnetremark'}; + &General::writehasharray("$confignet", %customnetwork); + undef %customnetwork; + } + if (!$errormessage){ + + &General::readhasharray("$confignet", %customnetwork); + if ($fwhostsettings{'ACTION'} eq 'updatenet'){ + if ($fwhostsettings{'update'} == '0'){ + foreach my $key (keys %customnetwork) { + if($customnetwork{$key}[0] eq $fwhostsettings{'orgname'}){ + delete $customnetwork{$key}; + last; + } + } + } + } + #get count if actualize is 'on' + if($fwhostsettings{'actualize'} eq 'on'){ + $fwhostsettings{'actualize'} = ''; + #check if we need to reload rules + if($fwhostsettings{'orgip'} ne $fwhostsettings{'IP'}){ + $needrules='on'; + } + if ($fwhostsettings{'orgname'} ne $fwhostsettings{'HOSTNAME'}){ + #check if we need to update groups + &General::readhasharray("$configgrp", %customgrp); + foreach my $key (sort keys %customgrp){ + if($customgrp{$key}[2] eq $fwhostsettings{'orgname'}){ + $customgrp{$key}[2]=$fwhostsettings{'HOSTNAME'}; + last; + } + } + &General::writehasharray("$configgrp", %customgrp); + #check if we need to update firewallrules + if ( ! -z $fwconfigfwd ){ + &General::readhasharray("$fwconfigfwd", %fwfwd); + foreach my $line (sort keys %fwfwd){ + if ($fwfwd{$line}[4] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[4] = $fwhostsettings{'HOSTNAME'}; + } + if ($fwfwd{$line}[6] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[6] = $fwhostsettings{'HOSTNAME'}; + } + } + &General::writehasharray("$fwconfigfwd", %fwfwd); + } + if ( ! -z $fwconfiginp ){ + &General::readhasharray("$fwconfiginp", %fwinp); + foreach my $line (sort keys %fwinp){ + if ($fwfwd{$line}[4] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[4] = $fwhostsettings{'HOSTNAME'}; + } + } + &General::writehasharray("$fwconfiginp", %fwinp); + } + } + } + my $key = &General::findhasharraykey (%customnetwork); + foreach my $i (0 .. 3) { $customnetwork{$key}[$i] = "";} + $fwhostsettings{'SUBNET'} = &General::iporsubtocidr($fwhostsettings{'SUBNET'}); + $customnetwork{$key}[0] = $fwhostsettings{'HOSTNAME'}; + #convert ip when leading '0' in byte + $fwhostsettings{'IP'} =&General::ip2dec($fwhostsettings{'IP'}); + $fwhostsettings{'IP'} =&General::dec2ip($fwhostsettings{'IP'}); + $customnetwork{$key}[1] = &General::getnetworkip($fwhostsettings{'IP'},$fwhostsettings{'SUBNET'}) ; + $customnetwork{$key}[2] = &General::iporsubtodec($fwhostsettings{'SUBNET'}) ; + $customnetwork{$key}[3] = $fwhostsettings{'NETREMARK'}; + &General::writehasharray("$confignet", %customnetwork); + $fwhostsettings{'IP'}=$fwhostsettings{'IP'}."/".&General::iporsubtodec($fwhostsettings{'SUBNET'}); + undef %customnetwork; + $fwhostsettings{'HOSTNAME'}=''; + $fwhostsettings{'IP'}=''; + $fwhostsettings{'SUBNET'}=''; + $fwhostsettings{'NETREMARK'}=''; + #check if an edited net affected groups and need to reload rules + if ($needrules eq 'on'){ + &General::firewall_config_changed(); + } + &addnet; + &viewtablenet; + }else { + &addnet; + &viewtablenet; + } + } +} +if ($fwhostsettings{'ACTION'} eq 'savehost') +{ + my $needrules=0; + if ($fwhostsettings{'orgname'} eq ''){$fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'};} + $fwhostsettings{'SUBNET'}='32'; + #check if all fields are set + if ($fwhostsettings{'HOSTNAME'} eq '' || $fwhostsettings{'IP'} eq '' || $fwhostsettings{'SUBNET'} eq '') + { + $errormessage=$errormessage.$Lang::tr{'fwhost err empty'}; + $fwhostsettings{'ACTION'} = 'edithost'; + }else{ + if($fwhostsettings{'IP'}=~/^([0-9a-fA-F]{1,2}:){5}[0-9a-fA-F]{1,2}$/){ + $fwhostsettings{'type'} = 'mac'; + }elsif($fwhostsettings{'IP'}=~/^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/){ + $fwhostsettings{'type'} = 'ip'; + }else{ + $fwhostsettings{'type'} = ''; + $errormessage=$Lang::tr{'fwhost err ipmac'}; + } + #check remark + if ($fwhostsettings{'HOSTREMARK'} ne '' && !&validremark($fwhostsettings{'HOSTREMARK'})){ + $errormessage=$Lang::tr{'fwhost err remark'}; + } + #CHECK IP-PART + if ($fwhostsettings{'type'} eq 'ip'){ + #check for subnet + if (rindex($fwhostsettings{'IP'},'/') eq '-1' ){ + if($fwhostsettings{'type'} eq 'ip' && !&General::validipandmask($fwhostsettings{'IP'}."/32")) + { + $errormessage.=$errormessage.$Lang::tr{'fwhost err ip'}; + $fwhostsettings{'error'}='on'; + } + }elsif(rindex($fwhostsettings{'IP'},'/') ne '-1' ){ + $errormessage=$errormessage.$Lang::tr{'fwhost err ipwithsub'}; + $fwhostsettings{'error'}='on'; + } + #check if net or broadcast + my @tmp= split (/./,$fwhostsettings{'IP'}); + if (($tmp[3] eq "0") || ($tmp[3] eq "255")){ + $errormessage=$Lang::tr{'fwhost err hostip'}; + } + } + #only check plausi when no error till now + if (!$errormessage){ + &plausicheck("edithost"); + } + if($fwhostsettings{'actualize'} eq 'on' && $fwhostsettings{'newhost'} ne 'on' && $errormessage){ + $fwhostsettings{'actualize'} = ''; + my $key = &General::findhasharraykey (%customhost); + foreach my $i (0 .. 3) { $customhost{$key}[$i] = "";} + $customhost{$key}[0] = $fwhostsettings{'orgname'} ; + $customhost{$key}[1] = $fwhostsettings{'type'} ; + if($customhost{$key}[1] eq 'ip'){ + $customhost{$key}[2] = $fwhostsettings{'orgip'}."/".&General::iporsubtodec($fwhostsettings{'SUBNET'}); + }else{ + $customhost{$key}[2] = $fwhostsettings{'orgip'}; + } + $customhost{$key}[3] = $fwhostsettings{'orgremark'}; + &General::writehasharray("$confighost", %customhost); + undef %customhost; + } + if (!$errormessage){ + #get count if host was edited + if($fwhostsettings{'actualize'} eq 'on'){ + if($fwhostsettings{'orgip'} ne $fwhostsettings{'IP'}){ + $needrules='on'; + } + if($fwhostsettings{'orgname'} ne $fwhostsettings{'HOSTNAME'}){ + #check if we need to update groups + &General::readhasharray("$configgrp", %customgrp); + foreach my $key (sort keys %customgrp){ + if($customgrp{$key}[2] eq $fwhostsettings{'orgname'}){ + $customgrp{$key}[2]=$fwhostsettings{'HOSTNAME'}; + } + } + &General::writehasharray("$configgrp", %customgrp); + #check if we need to update firewallrules + if ( ! -z $fwconfigfwd ){ + &General::readhasharray("$fwconfigfwd", %fwfwd); + foreach my $line (sort keys %fwfwd){ + if ($fwfwd{$line}[4] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[4] = $fwhostsettings{'HOSTNAME'}; + } + if ($fwfwd{$line}[6] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[6] = $fwhostsettings{'HOSTNAME'}; + } + } + &General::writehasharray("$fwconfigfwd", %fwfwd); + } + if ( ! -z $fwconfiginp ){ + &General::readhasharray("$fwconfiginp", %fwinp); + foreach my $line (sort keys %fwinp){ + if ($fwfwd{$line}[4] eq $fwhostsettings{'orgname'}){ + $fwfwd{$line}[4] = $fwhostsettings{'HOSTNAME'}; + } + } + &General::writehasharray("$fwconfiginp", %fwinp); + } + } + } + my $key = &General::findhasharraykey (%customhost); + foreach my $i (0 .. 3) { $customhost{$key}[$i] = "";} + $customhost{$key}[0] = $fwhostsettings{'HOSTNAME'} ; + $customhost{$key}[1] = $fwhostsettings{'type'} ; + if ($fwhostsettings{'type'} eq 'ip'){ + #convert ip when leading '0' in byte + $fwhostsettings{'IP'}=&General::ip2dec($fwhostsettings{'IP'}); + $fwhostsettings{'IP'}=&General::dec2ip($fwhostsettings{'IP'}); + $customhost{$key}[2] = $fwhostsettings{'IP'}."/".&General::iporsubtodec($fwhostsettings{'SUBNET'}); + }else{ + $customhost{$key}[2] = $fwhostsettings{'IP'}; + } + $customhost{$key}[3] = $fwhostsettings{'HOSTREMARK'}; + &General::writehasharray("$confighost", %customhost); + undef %customhost; + $fwhostsettings{'HOSTNAME'}=''; + $fwhostsettings{'IP'}=''; + $fwhostsettings{'type'}=''; + $fwhostsettings{'HOSTREMARK'}=''; + #check if we need to update rules while host was edited + if($needrules eq 'on'){ + &General::firewall_config_changed(); + } + &addhost; + &viewtablehost; + }else{ + &addhost; + &viewtablehost; + } + } +} +if ($fwhostsettings{'ACTION'} eq 'savegrp') +{ + my $grp=$fwhostsettings{'grp_name'}; + my $rem=$fwhostsettings{'remark'}; + my $count; + my $type; + my $updcounter='off'; + my @target; + my @newgrp; + &General::readhasharray("$configgrp", %customgrp); + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + #check name + if (!&validhostname($grp)){$errormessage.=$Lang::tr{'fwhost err name'};} + #check existing name + if (!&checkgroup($grp) && $fwhostsettings{'update'} ne 'on'){$errormessage.=$Lang::tr{'fwhost err grpexist'};} + #check remark + if ($rem ne '' && !&validremark($rem) && $fwhostsettings{'update'} ne 'on'){ + $errormessage.=$Lang::tr{'fwhost err remark'}; + } + if ($fwhostsettings{'update'} eq 'on'){ + #check standard networks + if ($fwhostsettings{'grp2'} eq 'std_net'){ + @target=$fwhostsettings{'DEFAULT_SRC_ADR'}; + $type='Standard Network'; + } + #check custom networks + if ($fwhostsettings{'grp2'} eq 'cust_net' && $fwhostsettings{'CUST_SRC_NET'} ne ''){ + @target=$fwhostsettings{'CUST_SRC_NET'}; + $updcounter='net'; + $type='Custom Network'; + }elsif($fwhostsettings{'grp2'} eq 'cust_net' && $fwhostsettings{'CUST_SRC_NET'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}."<br>"; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #check custom addresses + if ($fwhostsettings{'grp2'} eq 'cust_host' && $fwhostsettings{'CUST_SRC_HOST'} ne ''){ + @target=$fwhostsettings{'CUST_SRC_HOST'}; + $updcounter='host'; + $type='Custom Host'; + }elsif($fwhostsettings{'grp2'} eq 'cust_host' && $fwhostsettings{'CUST_SRC_HOST'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}."<br>"; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #get address from ovpn ccd static net + if ($fwhostsettings{'grp2'} eq 'ovpn_net' && $fwhostsettings{'OVPN_CCD_NET'} ne ''){ + @target=$fwhostsettings{'OVPN_CCD_NET'}; + $type='OpenVPN static network'; + }elsif($fwhostsettings{'grp2'} eq 'ovpn_net' && $fwhostsettings{'OVPN_CCD_NET'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #get address from ovpn ccd static host + if ($fwhostsettings{'grp2'} eq 'ovpn_host' && $fwhostsettings{'OVPN_CCD_HOST'} ne ''){ + @target=$fwhostsettings{'OVPN_CCD_HOST'}; + $type='OpenVPN static host'; + }elsif ($fwhostsettings{'grp2'} eq 'ovpn_host' && $fwhostsettings{'OVPN_CCD_HOST'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}; + } + #get address from ovpn ccd Net-2-Net + if ($fwhostsettings{'grp2'} eq 'ovpn_n2n' && $fwhostsettings{'OVPN_N2N'} ne ''){ + @target=$fwhostsettings{'OVPN_N2N'}; + $type='OpenVPN N-2-N'; + }elsif ($fwhostsettings{'grp2'} eq 'ovpn_n2n' && $fwhostsettings{'OVPN_N2N'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #get address from IPSEC HOST + if ($fwhostsettings{'grp2'} eq 'ipsec_host' && $fwhostsettings{'IPSEC_HOST'} ne ''){ + @target=$fwhostsettings{'IPSEC_HOST'}; + $type='IpSec Host'; + }elsif ($fwhostsettings{'grp2'} eq 'ipsec_host' && $fwhostsettings{'IPSEC_HOST'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #get address from IPSEC NETWORK + if ($fwhostsettings{'grp2'} eq 'ipsec_net' && $fwhostsettings{'IPSEC_NET'} ne ''){ + @target=$fwhostsettings{'IPSEC_NET'}; + $type='IpSec Network'; + }elsif ($fwhostsettings{'grp2'} eq 'ipsec_net' && $fwhostsettings{'IPSEC_NET'} eq ''){ + $errormessage=$Lang::tr{'fwhost err groupempty'}; + $fwhostsettings{'grp_name'}=''; + $fwhostsettings{'remark'}=''; + } + #check if host/net exists in grp + + my $test="$grp,$fwhostsettings{'oldremark'},@target"; + foreach my $key (keys %customgrp) { + my $test1="$customgrp{$key}[0],$customgrp{$key}[1],$customgrp{$key}[2]"; + if ($test1 eq $test){ + $errormessage=$Lang::tr{'fwhost err isingrp'}; + $fwhostsettings{'update'} = 'on'; + } + } + } + + if (!$errormessage){ + #on first save, we have an empty @target, so fill it with nothing + my $targetvalues=@target; + if ($targetvalues == '0'){ + @target="none"; + } + #on update, we have to delete the dummy entry + foreach my $key (keys %customgrp){ + if ($customgrp{$key}[0] eq $grp && $customgrp{$key}[2] eq "none"){ + delete $customgrp{$key}; + last; + } + } + &General::writehasharray("$configgrp", %customgrp); + &General::readhasharray("$configgrp", %customgrp); + #create array with new lines + foreach my $line (@target){ + push (@newgrp,"$grp,$rem,$line"); + } + #append new entries + my $key = &General::findhasharraykey (%customgrp); + foreach my $line (@newgrp){ + foreach my $i (0 .. 3) { $customgrp{$key}[$i] = "";} + my ($a,$b,$c,$d) = split (",",$line); + $customgrp{$key}[0] = $a; + $customgrp{$key}[1] = $b; + $customgrp{$key}[2] = $c; + $customgrp{$key}[3] = $type; + } + &General::writehasharray("$configgrp", %customgrp); + #update counter in Host/Net + $fwhostsettings{'update'}='on'; + } + #check if ruleupdate is needed + my $netgrpcount=0; + $netgrpcount=&getnetcount($grp); + if($netgrpcount > 0 ) + { + &General::firewall_config_changed(); + } + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq 'saveservice') +{ + my $ICMP; + &General::readhasharray("$configsrv", %customservice ); + &General::readhasharray("$configgrp", %customgrp); + $errormessage=&checkports(%customservice); + if ($fwhostsettings{'PROT'} eq 'ICMP'){ + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + foreach my $key (keys %icmptypes){ + if ("$icmptypes{$key}[0] ($icmptypes{$key}[1])" eq $fwhostsettings{'ICMP_TYPES'}){ + $ICMP=$icmptypes{$key}[0]; + } + } + } + if($ICMP eq ''){$ICMP=$fwhostsettings{'ICMP_TYPES'};} + if ($fwhostsettings{'PROT'} ne 'ICMP'){$ICMP='BLANK';} + #Check if a group with the same name already exists + if (!&checkgroup($fwhostsettings{'SRV_NAME'})){ + $errormessage = $Lang::tr{'fwhost err grpexist'}; + } + if (!$errormessage){ + my $key = &General::findhasharraykey (%customservice); + foreach my $i (0 .. 4) { $customservice{$key}[$i] = "";} + $customservice{$key}[0] = $fwhostsettings{'SRV_NAME'}; + $customservice{$key}[1] = $fwhostsettings{'SRV_PORT'}; + $customservice{$key}[2] = $fwhostsettings{'PROT'}; + $customservice{$key}[3] = $ICMP; + &General::writehasharray("$configsrv", %customservice ); + #reset fields + $fwhostsettings{'SRV_NAME'}=''; + $fwhostsettings{'SRV_PORT'}=''; + $fwhostsettings{'PROT'}=''; + $fwhostsettings{'ICMP_TYPES'}=''; + } + &addservice; +} +if ($fwhostsettings{'ACTION'} eq 'saveservicegrp') +{ + my $prot; + my $port; + my $tcpcounter=0; + my $udpcounter=0; + &General::readhasharray("$configsrvgrp", %customservicegrp ); + &General::readhasharray("$configsrv", %customservice ); + $errormessage=&checkservicegroup; + #Check if we have more than 15 services from one Protocol in the group + #iptables can only handle 15 ports/portranges via multiport + foreach my $key (keys %customservicegrp){ + if($customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'}){ + foreach my $key1 (keys %customservice){ + $tcpcounter++ if $customservice{$key1}[2] eq 'TCP' && $customservicegrp{$key}[2] eq $customservice{$key1}[0]; + $tcpcounter++ if $customservice{$key1}[2] eq 'TCP' && $customservicegrp{$key}[2] eq $customservice{$key1}[0] && $customservice{$key1}[1] =~m/:/i; + $udpcounter++ if $customservice{$key1}[2] eq 'UDP' && $customservicegrp{$key}[2] eq $customservice{$key1}[0]; + $udpcounter++ if $customservice{$key1}[2] eq 'UDP' && $customservicegrp{$key}[2] eq $customservice{$key1}[0] && $customservice{$key1}[1] =~m/:/i; + } + } + } + if ($tcpcounter > 15){ + $errormessage=$Lang::tr{'fwhost err maxservicetcp'}; + } + if ($udpcounter > 15){ + $errormessage=$Lang::tr{'fwhost err maxserviceudp'}; + } + $tcpcounter=0; + $udpcounter=0; + #check remark + if ($fwhostsettings{'SRVGRP_REMARK'} ne '' && !&validremark($fwhostsettings{'SRVGRP_REMARK'})){ + $errormessage .= $Lang::tr{'fwhost err remark'}; + } + #Check if there is already a service with the same name + if(!&checkservice($fwhostsettings{'SRVGRP_NAME'})){ + $errormessage .= $Lang::tr{'fwhost err srv exists'}; + } + if (!$errormessage){ + #on first save, we have to enter a dummy value + if ($fwhostsettings{'CUST_SRV'} eq ''){ + $fwhostsettings{'CUST_SRV'}='none'; + } + #on update, we have to delete the dummy entry + foreach my $key (keys %customservicegrp){ + if ($customservicegrp{$key}[2] eq 'none' && $customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'}){ + delete $customservicegrp{$key}; + last; + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp ); + #check if remark has also changed + if ($fwhostsettings{'SRVGRP_REMARK'} ne $fwhostsettings{'oldsrvgrpremark'} && $fwhostsettings{'updatesrvgrp'} eq 'on') + { + foreach my $key (keys %customservicegrp) + { + if($customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'} && $customservicegrp{$key}[1] eq $fwhostsettings{'oldsrvgrpremark'}) + { + $customservicegrp{$key}[1]=''; + $customservicegrp{$key}[1]=$fwhostsettings{'SRVGRP_REMARK'}; + } + } + } + my $key = &General::findhasharraykey (%customservicegrp); + foreach my $i (0 .. 2) { $customservice{$key}[$i] = "";} + $customservicegrp{$key}[0] = $fwhostsettings{'SRVGRP_NAME'}; + $customservicegrp{$key}[1] = $fwhostsettings{'SRVGRP_REMARK'}; + $customservicegrp{$key}[2] = $fwhostsettings{'CUST_SRV'}; + &General::writehasharray("$configsrvgrp", %customservicegrp ); + $fwhostsettings{'updatesrvgrp'}='on'; + } + &checkrulereload($fwhostsettings{'SRVGRP_NAME'}); + &addservicegrp; + &viewtableservicegrp; +} +# edit +if ($fwhostsettings{'ACTION'} eq 'editnet') +{ + &addnet; + &viewtablenet; +} +if ($fwhostsettings{'ACTION'} eq 'edithost') +{ + &addhost; + &viewtablehost; +} +if ($fwhostsettings{'ACTION'} eq 'editgrp') +{ + $fwhostsettings{'update'}='on'; + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq 'editservice') +{ + $fwhostsettings{'updatesrv'}='on'; + &addservice; +} +if ($fwhostsettings{'ACTION'} eq 'editservicegrp') +{ + $fwhostsettings{'updatesrvgrp'} = 'on'; + &addservicegrp; + &viewtableservicegrp; +} +# reset +if ($fwhostsettings{'ACTION'} eq 'resetnet') +{ + $fwhostsettings{'HOSTNAME'} =""; + $fwhostsettings{'IP'} =""; + $fwhostsettings{'SUBNET'} =""; + &showmenu; +} +if ($fwhostsettings{'ACTION'} eq 'resethost') +{ + $fwhostsettings{'HOSTNAME'} =""; + $fwhostsettings{'IP'} =""; + $fwhostsettings{'type'} =""; + &showmenu; +} +if ($fwhostsettings{'ACTION'} eq 'resetgrp') +{ + $fwhostsettings{'grp_name'} =""; + $fwhostsettings{'remark'} =""; + &showmenu; +} +# delete +if ($fwhostsettings{'ACTION'} eq 'delnet') +{ + &General::readhasharray("$confignet", %customnetwork); + foreach my $key (keys %customnetwork) { + if($fwhostsettings{'key'} eq $customnetwork{$key}[0]){ + delete $customnetwork{$key}; + &General::writehasharray("$confignet", %customnetwork); + last; + } + } + &addnet; + &viewtablenet; +} +if ($fwhostsettings{'ACTION'} eq 'delhost') +{ + &General::readhasharray("$confighost", %customhost); + foreach my $key (keys %customhost) { + if($fwhostsettings{'key'} eq $customhost{$key}[0]){ + delete $customhost{$key}; + &General::writehasharray("$confighost", %customhost); + last; + } + } + &addhost; + &viewtablehost; +} +if ($fwhostsettings{'ACTION'} eq 'deletegrphost') +{ + my $grpremark; + my $grpname; + &General::readhasharray("$configgrp", %customgrp); + foreach my $key (keys %customgrp){ + if($customgrp{$key}[0].",".$customgrp{$key}[1].",".$customgrp{$key}[2].",".$customgrp{$key}[3] eq $fwhostsettings{'delhost'}){ + $grpname=$customgrp{$key}[0]; + $grpremark=$customgrp{$key}[1]; + #check if we delete the last entry, then generate dummy + if ($fwhostsettings{'last'} eq 'on'){ + $customgrp{$key}[1] = ''; + $customgrp{$key}[2] = 'none'; + $customgrp{$key}[3] = ''; + $fwhostsettings{'last'}=''; + last; + }else{ + delete $customgrp{$key}; + } + } + } + &General::writehasharray("$configgrp", %customgrp); + &General::firewall_config_changed(); + if ($fwhostsettings{'grpcnt'} > 0){ + &General::firewall_config_changed(); + } + if ($fwhostsettings{'update'} eq 'on'){ + $fwhostsettings{'remark'}= $grpremark; + $fwhostsettings{'grp_name'}=$grpname; + } + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq 'delgrp') +{ + &General::readhasharray("$configgrp", %customgrp); + &decrease($fwhostsettings{'grp_name'}); + foreach my $key (sort keys %customgrp) + { + if($customgrp{$key}[0] eq $fwhostsettings{'grp_name'}) + { + delete $customgrp{$key}; + } + } + &General::writehasharray("$configgrp", %customgrp); + $fwhostsettings{'grp_name'}=''; + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq 'delservice') +{ + &General::readhasharray("$configsrv", %customservice); + foreach my $key (keys %customservice) { + if($customservice{$key}[0] eq $fwhostsettings{'SRV_NAME'}){ + delete $customservice{$key}; + &General::writehasharray("$configsrv", %customservice); + last; + } + } + $fwhostsettings{'SRV_NAME'}=''; + $fwhostsettings{'SRV_PORT'}=''; + $fwhostsettings{'PROT'}=''; + &addservice; +} +if ($fwhostsettings{'ACTION'} eq 'delservicegrp') +{ + &General::readhasharray("$configsrvgrp", %customservicegrp); + &decreaseservice($fwhostsettings{'SRVGRP_NAME'}); + foreach my $key (sort keys %customservicegrp) + { + if($customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'}) + { + delete $customservicegrp{$key}; + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp); + $fwhostsettings{'SRVGRP_NAME'}=''; + &addservicegrp; + &viewtableservicegrp; +} +if ($fwhostsettings{'ACTION'} eq 'delgrpservice') +{ + my $grpname; + my $grpremark; + &General::readhasharray("$configsrvgrp", %customservicegrp); + foreach my $key (keys %customservicegrp){ + if($customservicegrp{$key}[0].",".$customservicegrp{$key}[1].",".$customservicegrp{$key}[2] eq $fwhostsettings{'delsrvfromgrp'}) + { + $grpname=$customservicegrp{$key}[0]; + $grpremark=$customservicegrp{$key}[1]; + if($fwhostsettings{'last'} eq 'on'){ + $customservicegrp{$key}[2] = 'none'; + $fwhostsettings{'last'} = ''; + last; + }else{ + delete $customservicegrp{$key}; + } + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp); + &General::firewall_config_changed(); + if ($fwhostsettings{'updatesrvgrp'} eq 'on'){ + $fwhostsettings{'SRVGRP_NAME'}=$grpname; + $fwhostsettings{'SRVGRP_REMARK'}=$grpremark; + } + &addservicegrp; + &viewtableservicegrp; +} +if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newnet'}) +{ + &addnet; + &viewtablenet; +} +if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newhost'}) +{ + &addhost; + &viewtablehost; +} +if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newgrp'}) +{ + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newservice'}) +{ + &addservice; +} +if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newservicegrp'}) +{ + &addservicegrp; + &viewtableservicegrp; +} +if ($fwhostsettings{'ACTION'} eq 'changegrpremark') +{ + &General::readhasharray("$configgrp", %customgrp); + if ($fwhostsettings{'oldrem'} ne $fwhostsettings{'newrem'} && (&validremark($fwhostsettings{'newrem'}) || $fwhostsettings{'newrem'} eq '')){ + foreach my $key (sort keys %customgrp) + { + if($customgrp{$key}[0] eq $fwhostsettings{'grp'} && $customgrp{$key}[1] eq $fwhostsettings{'oldrem'}) + { + $customgrp{$key}[1]=''; + $customgrp{$key}[1]=$fwhostsettings{'newrem'}; + } + } + &General::writehasharray("$configgrp", %customgrp); + $fwhostsettings{'update'}='on'; + $fwhostsettings{'remark'}=$fwhostsettings{'newrem'}; + }else{ + $errormessage=$Lang::tr{'fwhost err remark'}; + $fwhostsettings{'remark'}=$fwhostsettings{'oldrem'}; + $fwhostsettings{'grp_name'}=$fwhostsettings{'grp'}; + $fwhostsettings{'update'} = 'on'; + } + $fwhostsettings{'grp_name'}=$fwhostsettings{'grp'}; + &addgrp; + &viewtablegrp; +} +if ($fwhostsettings{'ACTION'} eq 'changesrvgrpremark') +{ + &General::readhasharray("$configsrvgrp", %customservicegrp ); + if ($fwhostsettings{'oldsrvrem'} ne $fwhostsettings{'newsrvrem'} && (&validremark($fwhostsettings{'newsrvrem'}) || $fwhostsettings{'newsrvrem'} eq '')){ + foreach my $key (sort keys %customservicegrp) + { + if($customservicegrp{$key}[0] eq $fwhostsettings{'srvgrp'} && $customservicegrp{$key}[1] eq $fwhostsettings{'oldsrvrem'}) + { + $customservicegrp{$key}[1]=''; + $customservicegrp{$key}[1]=$fwhostsettings{'newsrvrem'}; + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp); + $fwhostsettings{'updatesrvgrp'}='on'; + $fwhostsettings{'SRVGRP_REMARK'}=$fwhostsettings{'newsrvrem'}; + }elsif($fwhostsettings{'oldsrvrem'} eq $fwhostsettings{'newsrvrem'}){ + &addservicegrp; + &viewtableservicegrp; + }else{ + $errormessage=$Lang::tr{'fwhost err remark'}; + $fwhostsettings{'SRVGRP_REMARK'}=$fwhostsettings{'oldsrvrem'}; + $fwhostsettings{'SRVGRP_NAME'}=$fwhostsettings{'srvgrp'}; + $fwhostsettings{'updatesrvgrp'} = 'on'; + } + $fwhostsettings{'SRVGRP_NAME'}=$fwhostsettings{'srvgrp'}; + &addservicegrp; + &viewtableservicegrp; +} +if ($fwhostsettings{'ACTION'} eq 'changesrvgrpname') +{ + &General::readhasharray("$configsrvgrp", %customservicegrp ); + if ($fwhostsettings{'oldsrvgrpname'} ne $fwhostsettings{'srvgrp'}){ + #Check new groupname + if (!&validhostname($fwhostsettings{'srvgrp'})){ + $errormessage.=$Lang::tr{'fwhost err name'}."<br>"; + } + if (!$errormessage){ + #Rename group in customservicegroup + foreach my $key (keys %customservicegrp) { + if($customservicegrp{$key}[0] eq $fwhostsettings{'oldsrvgrpname'}){ + $customservicegrp{$key}[0]=$fwhostsettings{'srvgrp'}; + } + } + &General::writehasharray("$configsrvgrp", %customservicegrp ); + #change name in FW Rules + &changenameinfw($fwhostsettings{'oldsrvgrpname'},$fwhostsettings{'srvgrp'},15); + } + } + &addservicegrp; + &viewtableservicegrp; +} +if ($fwhostsettings{'ACTION'} eq 'changegrpname') +{ + &General::readhasharray("$configgrp", %customgrp ); + if ($fwhostsettings{'oldgrpname'} ne $fwhostsettings{'grp'}){ + #Check new groupname + if (!&validhostname($fwhostsettings{'grp'})){ + $errormessage.=$Lang::tr{'fwhost err name'}."<br>"; + } + if (!$errormessage){ + #Rename group in customservicegroup + foreach my $key (keys %customgrp) { + if($customgrp{$key}[0] eq $fwhostsettings{'oldgrpname'}){ + $customgrp{$key}[0]=$fwhostsettings{'grp'}; + } + } + &General::writehasharray("$configgrp", %customgrp ); + #change name in FW Rules + &changenameinfw($fwhostsettings{'oldgrpname'},$fwhostsettings{'grp'},6); + } + } + &addgrp; + &viewtablegrp; +} +### VIEW ### +if($fwhostsettings{'ACTION'} eq '') +{ + &showmenu; +} +### FUNCTIONS ### +sub showmenu { + &Header::openbox('100%', 'left',); + print "$Lang::tr{'fwhost welcome'}"; + print<<END; + <br><br><table border='0' width='100%'> + <tr><td><form method='post'><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newnet'}' ><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newhost'}' ><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newgrp'}' ></form></td> + <td align='right'><form method='post'><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newservice'}' ><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newservicegrp'}' ></form></td></tr> + <tr><td colspan='6'></td></tr></table> +END + &Header::closebox(); + +} +# Add +sub addnet +{ + &error; + &showmenu; + &Header::openbox('100%', 'left', $Lang::tr{'fwhost addnet'}); + $fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'}; + $fwhostsettings{'orgnetremark'}=$fwhostsettings{'NETREMARK'}; + print<<END; + <table border='0' width='100%' > + <tr><td width='15%'>$Lang::tr{'name'}:</td><td><form method='post'><input type='TEXT' name='HOSTNAME' id='textbox1' value='$fwhostsettings{'HOSTNAME'}' $fwhostsettings{'BLK_HOST'} size='20'><script>document.getElementById('textbox1').focus()</script></td></tr> + <tr><td>$Lang::tr{'fwhost netaddress'}:</td><td><input type='TEXT' name='IP' value='$fwhostsettings{'IP'}' $fwhostsettings{'BLK_IP'} size='20' maxlength='15'></td></tr> + <tr><td>$Lang::tr{'netmask'}:</td><td><input type='TEXT' name='SUBNET' value='$fwhostsettings{'SUBNET'}' $fwhostsettings{'BLK_IP'} size='20' maxlength='15'></td></tr> + <tr><td>$Lang::tr{'remark'}:</td><td><input type='TEXT' name='NETREMARK' value='$fwhostsettings{'NETREMARK'}' style='width: 98.5%;'></td></tr> + <tr><td colspan='6'><br></td></tr><tr> +END + if ($fwhostsettings{'ACTION'} eq 'editnet' || $fwhostsettings{'error'} eq 'on') + { + print "<td colspan='6' align='right'><input type='submit' value='$Lang::tr{'update'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='updatenet'><input type='hidden' name='orgnetremark' value='$fwhostsettings{'orgnetremark'}' ><input type='hidden' name='orgname' value='$fwhostsettings{'orgname'}' ><input type='hidden' name='update' value='on'><input type='hidden' name='newnet' value='$fwhostsettings{'newnet'}'>"; + }else{ + print "<td colspan='6' align='right'><input type='submit' value='$Lang::tr{'save'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='savenet'><input type='hidden' name='newnet' value='on'>"; + } + print "</form><form method='post' style='display:inline'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;' ><input type='hidden' name='ACTION' value='resetnet'></form></td></tr></table>"; + &Header::closebox(); +} +sub addhost +{ + &error; + &showmenu; + &Header::openbox('100%', 'left', $Lang::tr{'fwhost addhost'}); + $fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'}; + $fwhostsettings{'orgremark'}=$fwhostsettings{'HOSTREMARK'}; + print<<END; + <table width='100%'> + <tr><td>$Lang::tr{'name'}:</td><td><form method='post' style='display:inline;'><input type='TEXT' name='HOSTNAME' id='textbox1' value='$fwhostsettings{'HOSTNAME'}' $fwhostsettings{'BLK_HOST'} size='20'><script>document.getElementById('textbox1').focus()</script></td></tr> + <tr><td>IP/MAC:</td><td><input type='TEXT' name='IP' value='$fwhostsettings{'IP'}' $fwhostsettings{'BLK_IP'} size='20' maxlength='17'></td></tr> + <tr><td width='10%'>$Lang::tr{'remark'}:</td><td><input type='TEXT' name='HOSTREMARK' value='$fwhostsettings{'HOSTREMARK'}' style='width:98%;'></td></tr> + <tr><td colspan='5'><br></td></tr><tr> +END + + if ($fwhostsettings{'ACTION'} eq 'edithost' || $fwhostsettings{'error'} eq 'on') + { + + print " <td colspan='4' align='right'><input type='submit' value='$Lang::tr{'update'}' style='min-width:100px;'/><input type='hidden' name='ACTION' value='updatehost'><input type='hidden' name='orgremark' value='$fwhostsettings{'orgremark'}' ><input type='hidden' name='orgname' value='$fwhostsettings{'orgname'}' ><input type='hidden' name='update' value='on'><input type='hidden' name='newhost' value='$fwhostsettings{'newhost'}'></form>"; + }else{ + print " <td colspan='4' align='right'><input type='submit' name='savehost' value='$Lang::tr{'save'}' style='min-width:100px;' /><input type='hidden' name='ACTION' value='savehost' /><input type='hidden' name='newhost' value='on'>"; + } + print " </form><form method='post' style='display:inline'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;' ><input type='hidden' name='ACTION' value='resethost'></form></td></tr></table>"; + &Header::closebox(); +} +sub addgrp +{ + &hint; + &error; + &showmenu; + &Header::openbox('100%', 'left', $Lang::tr{'fwhost addgrp'}); + &General::setup_default_networks(%defaultNetworks); + &General::readhasharray("$configccdnet", %ccdnet); + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$configipsec", %ipsecconf); + + my %checked=(); + my $show=''; + $checked{'check1'}{'off'} = ''; + $checked{'check1'}{'on'} = ''; + $checked{'grp2'}{$fwhostsettings{'grp2'}} = 'CHECKED'; + $fwhostsettings{'oldremark'}=$fwhostsettings{'remark'}; + $fwhostsettings{'oldgrpname'}=$fwhostsettings{'grp_name'}; + my $grp=$fwhostsettings{'grp_name'}; + my $rem=$fwhostsettings{'remark'}; + if ($fwhostsettings{'update'} eq ''){ + print<<END; + <table width='100%' border='0'> + <tr> + <td width='10%'>$Lang::tr{'fwhost addgrpname'}</td> + <td><form method='post'><input type='TEXT' name='grp_name' value='$fwhostsettings{'grp_name'}' size='20'></td> + </tr> + <tr> + <td width='10%'>$Lang::tr{'remark'}:</td> + <td ><input type='TEXT' name='remark' value='$fwhostsettings{'remark'}' style='width: 98%;'></td> + </tr> + <tr> + <td colspan='2'><br></td> + </tr> + </table> +END + }else{ + print<<END; + <table width='100%' border='0'><form method='post' style='display:inline'> + <tr> + <td nowrap='nowrap' width='12%'>$Lang::tr{'fwhost addgrpname'}</td> + <td width='20%'><input type='TEXT' name='grp' value='$fwhostsettings{'grp_name'}' ></td> + <td><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldgrpname' value='$fwhostsettings{'oldgrpname'}'><input type='hidden' name='ACTION' value='changegrpname'></td> + <td></td></form> + </tr> + <tr><form method='post' style='display:inline'> + <td>$Lang::tr{'remark'}:</td> + <td colspan='2'><input type='TEXT' name='newrem' size='45' value='$fwhostsettings{'remark'}' style='width:98%'></td> + <td align='right'><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldrem' value='$fwhostsettings{'oldremark'}'><input type='hidden' name='ACTION' value='changegrpremark' ></td> + </tr> + </table></form> + <br><br> +END + } + if ($fwhostsettings{'update'} eq 'on'){ + print<<END; + <form method='post'><input type='hidden' name='remark' value='$rem'><input type='hidden' name='grp_name' value='$grp'> + <table width='100%' border='0'> + <tr><td width=50% valign='top'> + <table width='100%' border='0'> + <tr><td width='1%'><input type='radio' name='grp2' value='std_net' id='DEFAULT_SRC_ADR' checked></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost stdnet'}</td><td><select name='DEFAULT_SRC_ADR' style='min-width:185px;'> +END + foreach my $network (sort keys %defaultNetworks) + { + next if($defaultNetworks{$network}{'LOCATION'} eq "IPCOP"); + next if($defaultNetworks{$network}{'NAME'} eq "IPFire"); + print "<option value='$defaultNetworks{$network}{'NAME'}'"; + print " selected='selected'" if ($fwhostsettings{'DEFAULT_SRC_ADR'} eq $defaultNetworks{$network}{'NAME'}); + my $defnet="$defaultNetworks{$network}{'NAME'}_NETADDRESS"; + my $defsub="$defaultNetworks{$network}{'NAME'}_NETMASK"; + my $defsub1=&General::subtocidr($ownnet{$defsub}); + $ownnet{$defnet}='' if ($defaultNetworks{$network}{'NAME'} eq 'RED'); + if ($ownnet{$defnet}){ + print ">$network ($ownnet{$defnet}/$defsub1)</option>"; + }else{ + print ">$network</option>"; + } + } + print"</select></td></tr>"; + if (! -z $confignet){ + print"<tr><td><input type='radio' name='grp2' id='CUST_SRC_NET' value='cust_net' $checked{'grp2'}{'cust_net'}></td><td>$Lang::tr{'fwhost cust net'}:</td><td><select name='CUST_SRC_NET' style='min-width:185px;'>"; + foreach my $key (sort { ncmp($customnetwork{$a}[0],$customnetwork{$b}[0]) } keys %customnetwork) { + print"<option>$customnetwork{$key}[0]</option>"; + } + print"</select></td></tr>"; + } + if (! -z $confighost){ + print"<tr><td valign='top'><input type='radio' name='grp2' id='CUST_SRC_HOST' value='cust_host' $checked{'grp2'}{'cust_host'}></td><td valign='top'>$Lang::tr{'fwhost cust addr'}:</td><td><select name='CUST_SRC_HOST' style='min-width:185px;'>"; + foreach my $key (sort { ncmp($customhost{$a}[0],$customhost{$b}[0]) } keys %customhost) { + print"<option>$customhost{$key}[0]</option>"; + } + print"</select></td></tr>"; + } + print"</table>"; + #Inner table right + print"</td><td valign='top'><table width='100%' border='0'>"; + #OVPN networks + if (! -z $configccdnet){ + print"<td width='1%'><input type='radio' name='grp2' id='OVPN_CCD_NET' value='ovpn_net' $checked{'grp2'}{'ovpn_net'}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ccdnet'}</td><td nowrap='nowrap' width='1%'><select name='OVPN_CCD_NET' style='min-width:185px;'>"; + foreach my $key (sort { ncmp($ccdnet{$a}[0],$ccdnet{$b}[0]) } keys %ccdnet) + { + print"<option value='$ccdnet{$key}[0]'>$ccdnet{$key}[0]</option>"; + } + print"</select></td></tr>"; + } + #OVPN clients + foreach my $key (sort { ncmp($ccdhost{$a}[0],$ccdhost{$b}[0]) } keys %ccdhost) + { + if ($ccdhost{$key}[33] ne ''){ + print"<td width='1%'><input type='radio' name='grp2' value='ovpn_host' $checked{'grp2'}{'ovpn_host'}></td><td nowrap='nowrap' width='16%'>$Lang::tr{'fwhost ccdhost'}</td><td nowrap='nowrap' width='1%'><select name='OVPN_CCD_HOST' style='min-width:185px;'>" if ($show eq ''); + $show='1'; + print"<option value='$ccdhost{$key}[1]'>$ccdhost{$key}[1]</option>"; + } + } + if ($show eq '1'){$show='';print"</select></td></tr>";} + #OVPN n2n networks + foreach my $key (sort { ncmp($ccdhost{$a}[1],$ccdhost{$b}[1]) } keys %ccdhost) { + if($ccdhost{$key}[3] eq 'net'){ + print"<td width='1%'><input type='radio' name='grp2' id='OVPN_N2N' value='ovpn_n2n' $checked{'grp2'}{'ovpn_n2n'}></td><td valign='top'>$Lang::tr{'fwhost ovpn_n2n'}:</td><td colspan='3'><select name='OVPN_N2N' style='min-width:185px;'>" if ($show eq ''); + $show='1'; + print"<option>$ccdhost{$key}[1]</option>"; + } + } + if ($show eq '1'){$show='';print"</select></td></tr>";} + #IPsec networks + foreach my $key (sort { ncmp($ipsecconf{$a}[0],$ipsecconf{$b}[0]) } keys %ipsecconf) { + if ($ipsecconf{$key}[3] eq 'net'){ + print"<td valign='top'><input type='radio' name='grp2' id='IPSEC_NET' value='ipsec_net' $checked{'grp2'}{'ipsec_net'}></td><td valign='top'>$Lang::tr{'fwhost ipsec net'}</td><td><select name='IPSEC_NET' style='min-width:185px;'>" if ($show eq ''); + $show='1'; + print"<option value='$ipsecconf{$key}[1]'>$ipsecconf{$key}[1]</option>"; + } + } + if ($show eq '1'){$show='';print"</select></td></tr>";} + print"</table>"; + print"</td></tr></table>"; + print"<br><br>"; + } + print"<table width='100%'>"; + print"<tr><td align='right'><input type='submit' value='$Lang::tr{'add'}' style='min-width:100px;' /><input type='hidden' name='oldremark' value='$fwhostsettings{'oldremark'}'><input type='hidden' name='update' value="$fwhostsettings{'update'}"><input type='hidden' name='ACTION' value='savegrp' ></form><form method='post' style='display:inline'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='resetgrp'></form></td></table>"; + &Header::closebox(); +} +sub addservice +{ + &error; + &showmenu; + &Header::openbox('100%', 'left', $Lang::tr{'fwhost addservice'}); + if ($fwhostsettings{'updatesrv'} eq 'on') + { + $fwhostsettings{'oldsrvname'} = $fwhostsettings{'SRV_NAME'}; + $fwhostsettings{'oldsrvport'} = $fwhostsettings{'SRV_PORT'}; + $fwhostsettings{'oldsrvprot'} = $fwhostsettings{'PROT'}; + $fwhostsettings{'oldsrvicmp'} = $fwhostsettings{'ICMP'}; + } + print<<END; + <table width='100%' border='0'><form method='post'> + <tr><td width='10%' nowrap='nowrap'>$Lang::tr{'fwhost srv_name'}:</td><td><input type='text' name='SRV_NAME' id='textbox1' value='$fwhostsettings{'SRV_NAME'}' size='24'><script>document.getElementById('textbox1').focus()</script></td></tr> + <tr><td width='10%' nowrap='nowrap'>$Lang::tr{'fwhost prot'}:</td><td><select name='PROT' id='protocol' > +END + foreach ("TCP","UDP","ICMP") + { + if ($_ eq $fwhostsettings{'PROT'}) + { + print"<option selected>$_</option>"; + }else{ + print"<option>$_</option>"; + } + } + print<<END; + </select></td></tr></table> + <div id='PROTOKOLL' class='noscript'><table width=100%' border='0'><tr><td width='10%' nowrap='nowrap'>$Lang::tr{'fwhost icmptype'}</td><td><select name='ICMP_TYPES'> +END + &General::readhasharray("${General::swroot}/fwhosts/icmp-types", %icmptypes); + print"<option value='All ICMP-Types'>$Lang::tr{'fwdfw all icmp'}</option>"; + foreach my $key (sort { ncmp($icmptypes{$a}[0],$icmptypes{$b}[0]) }keys %icmptypes){ + if ($icmptypes{$key}[0] eq $fwhostsettings{'oldsrvicmp'}){ + print"<option selected>$icmptypes{$key}[0] ($icmptypes{$key}[1])</option>"; + }else{ + print"<option>$icmptypes{$key}[0] ($icmptypes{$key}[1])</option>"; + } + } + print<<END; + </select></td></tr></table></div> + <div id='PORT' class='noscript'><table width='100%' border='0'><tr><td width='10%'>$Lang::tr{'fwhost port'}:</td><td><input type='text' name='SRV_PORT' value='$fwhostsettings{'SRV_PORT'}' maxlength='11' size='24'></td></tr></table></div> + <table width='100%' border='0'><tr><td colspan='6'><br></td></tr> + <tr><td colspan='6' align='right'> +END + if ($fwhostsettings{'updatesrv'} eq 'on') + { + print<<END; + <input type='submit' value='$Lang::tr{'update'}'style='min-width:100px;' > + <input type='hidden' name='ACTION' value='updateservice'> + <input type='hidden' name='oldsrvname' value='$fwhostsettings{'oldsrvname'}'> + <input type='hidden' name='oldsrvport' value='$fwhostsettings{'oldsrvport'}'> + <input type='hidden' name='oldsrvprot' value='$fwhostsettings{'oldsrvprot'}'> + <input type='hidden' name='oldsrvicmp' value='$fwhostsettings{'oldsrvicmp'}'> + </form> +END + }else{ + print"<input type='submit' value='$Lang::tr{'save'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='saveservice'></form>"; + } + print<<END; + <form style='display:inline;' method='post'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'></form></td></tr> + </table></form> +END + &Header::closebox(); + &viewtableservice; +} +sub addservicegrp +{ + &hint; + &error; + &showmenu; + &Header::openbox('100%', 'left', $Lang::tr{'fwhost addservicegrp'}); + $fwhostsettings{'oldsrvgrpremark'}=$fwhostsettings{'SRVGRP_REMARK'}; + $fwhostsettings{'oldsrvgrpname'}=$fwhostsettings{'SRVGRP_NAME'}; + if ($fwhostsettings{'updatesrvgrp'} eq ''){ + print<<END; + <table width='100%' border='0'><form method='post'> + <tr><td width='10%'>$Lang::tr{'fwhost addgrpname'}</td><td><input type='text' name='SRVGRP_NAME' value='$fwhostsettings{'SRVGRP_NAME'}' size='24'></td></tr> + <tr><td width='10%'>$Lang::tr{'remark'}:</td><td><input type='text' name='SRVGRP_REMARK' value='$fwhostsettings{'SRVGRP_REMARK'}' style='width: 98%;'></td></tr> + <tr><td colspan='2'><br></tr> + </table> +END + }else{ + print<<END; + <table width='100%'><form method='post' style='display:inline'> + <tr><td width='10%'>$Lang::tr{'fwhost addgrpname'}</td><td width='20%'><input type='text' name='srvgrp' value='$fwhostsettings{'SRVGRP_NAME'}' size='14'></td><td align='left'><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldsrvgrpname' value='$fwhostsettings{'oldsrvgrpname'}'><input type='hidden' name='ACTION' value='changesrvgrpname'></td><td width='3%'></td></form></tr> + <tr><form method='post'><td width='10%'>$Lang::tr{'remark'}:</td><td colspan='2'><input type='text' name='newsrvrem' value='$fwhostsettings{'SRVGRP_REMARK'}' style='width:98%;'></td><td align='right'><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldsrvrem' value='$fwhostsettings{'oldsrvgrpremark'}'><input type='hidden' name='ACTION' value='changesrvgrpremark' ></td></tr> + <tr><td colspan='4'><br></td></td></tr> + </table></form> +END + } + if($fwhostsettings{'updatesrvgrp'} eq 'on'){ + print<<END; + <form method='post'><input type='hidden' name='SRVGRP_REMARK' value='$fwhostsettings{'SRVGRP_REMARK'}'><input type='hidden' name='SRVGRP_NAME' value='$fwhostsettings{'SRVGRP_NAME'}'><table border='0' width='100%'> + <tr><td width='10%' nowrap='nowrap'>$Lang::tr{'add'}: </td><td><select name='CUST_SRV' style='min-width:185px;'> +END + &General::readhasharray("$configsrv", %customservice); + #Protocols for use in servicegroups + print "<optgroup label='$Lang::tr{'fwhost cust service'}'>"; + foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0]) } keys %customservice) + { + print "<option>$customservice{$key}[0]</option>"; + } + print "</optgroup>"; + print "<optgroup label='$Lang::tr{'protocol'}'>"; + print "<option>GRE</option>"; + print "<option>AH</option>"; + print "<option>ESP</option>"; + print "<option>IGMP</option>"; + print "<option>IPIP</option>"; + print "<option value='IPV6'>IPv6 encap</option>"; + print "</optgroup>"; + print<<END; + </select></td></tr> + <tr><td colspan='4'><br><br></td></tr> + <tr><td colspan='4'></td></tr> + </table> +END + } + print<<END; + <table width='100%'> + <tr><td align='right'><input type='submit' value='$Lang::tr{'add'}' style='min-width:100px;' /><input type='hidden' name='updatesrvgrp' value='$fwhostsettings{'updatesrvgrp'}'><input type='hidden' name='oldsrvgrpremark' value='$fwhostsettings{'oldsrvgrpremark'}'><input type='hidden' name='ACTION' value='saveservicegrp' ></form><form style='display:inline;' method='post'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'></td></tr> + </table></form> +END + &Header::closebox(); +} +# View +sub viewtablenet +{ + if(! -z $confignet){ + &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust net'}); + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$configgrp", %customgrp); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + if (!keys %customnetwork) + { + print "<center><b>$Lang::tr{'fwhost empty'}</b>"; + }else{ + print<<END; + <table width='100%' cellspacing='0' class='tbl'> + <tr><th align='center'><b>$Lang::tr{'name'}</b></th><th align='center'><b>$Lang::tr{'fwhost netaddress'}</b></th><th align='center'><b>$Lang::tr{'remark'}</b></th><th align='center'><b>$Lang::tr{'used'}</b></th><th></th><th width='3%'></th></tr> +END + } + my $count=0; + my $col=''; + foreach my $key (sort {ncmp($a,$b)} keys %customnetwork) { + if ($fwhostsettings{'ACTION'} eq 'editnet' && $fwhostsettings{'HOSTNAME'} eq $customnetwork{$key}[0]) { + print" <tr>"; + $col="bgcolor='${Header::colouryellow}'"; + }elsif ($count % 2) + { + $col="bgcolor='$color{'color20'}'"; + print" <tr>"; + }else + { + $col="bgcolor='$color{'color22'}'"; + print" <tr>"; + } + my $colnet="$customnetwork{$key}[1]/".&General::subtocidr($customnetwork{$key}[2]); + my $netcount=&getnetcount($customnetwork{$key}[0]); + print"<td width='20%' $col><form method='post'>$customnetwork{$key}[0]</td><td width='15%' align='center' $col>".&Header::colorize($colnet)."</td><td width='40%' $col>$customnetwork{$key}[3]</td><td align='center' $col>$netcount x</td>"; + print<<END; + <td width='1%' $col><input type='image' src='/images/edit.gif' align='middle' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} /> + <input type='hidden' name='ACTION' value='editnet'> + <input type='hidden' name='HOSTNAME' value='$customnetwork{$key}[0]' /> + <input type='hidden' name='IP' value='$customnetwork{$key}[1]' /> + <input type='hidden' name='SUBNET' value='$customnetwork{$key}[2]' /> + <input type='hidden' name='NETREMARK' value='$customnetwork{$key}[3]' /> + </td></form> +END + if($netcount == '0') + { + print"<td width='1%' $col><form method='post'><input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} /><input type='hidden' name='ACTION' value='delnet' /><input type='hidden' name='key' value='$customnetwork{$key}[0]' /></td></form></tr>"; + }else{ + print"<td $col></td></tr>"; + } + $count++; + } + print"</table>"; + &Header::closebox(); + } + +} +sub getcolor +{ + my $c=shift; + #Check if IP is part of OpenVPN N2N subnet + foreach my $key (sort keys %ccdhost){ + if ($ccdhost{$key}[3] eq 'net'){ + my ($a,$b) = split("/",$ccdhost{$key}[11]); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='color:$Header::colourovpn ;'"; + return $tdcolor; + } + } + } + #Check if IP is part of OpenVPN dynamic subnet + my ($a,$b) = split("/",$ovpnsettings{'DOVPN_SUBNET'}); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='color: $Header::colourovpn;'"; + return $tdcolor; + } + #Check if IP is part of OpenVPN static subnet + foreach my $key (sort keys %ccdnet){ + my ($a,$b) = split("/",$ccdnet{$key}[1]); + $b =&General::iporsubtodec($b); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='color: $Header::colourovpn;'"; + return $tdcolor; + } + } + #Check if IP is part of IPsec RW network + if ($ipsecsettings{'RW_NET'} ne ''){ + my ($a,$b) = split("/",$ipsecsettings{'RW_NET'}); + $b=&General::iporsubtodec($b); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='color: $Header::colourvpn;'"; + return $tdcolor; + } + } + #Check if IP is part of a IPsec N2N network + foreach my $key (sort keys %ipsecconf){ + my ($a,$b) = split("/",$ipsecconf{$key}[11]); + if (&General::IpInSubnet($c,$a,$b)){ + $tdcolor="style='color: $Header::colourvpn;'"; + return $tdcolor; + } + } + $tdcolor=''; + return $tdcolor; +} +sub viewtablehost +{ + if (! -z $confighost){ + &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust addr'}); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$configccdnet", %ccdnet); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + &General::readhasharray("$configgrp", %customgrp); + if (!keys %customhost) + { + print "<center><b>$Lang::tr{'fwhost empty'}</b>"; + }else{ + print<<END; + <table width='100%' cellspacing='0' class='tbl'> + <tr><th align='center'><b>$Lang::tr{'name'}</b></th><th align='center'><b>$Lang::tr{'fwhost ip_mac'}</b></th><th align='center'><b>$Lang::tr{'remark'}</b></th><th align='center'><b>$Lang::tr{'used'}</b></th><th></th><th width='3%'></th></tr> +END + } + my $count=0; + my $col=''; + foreach my $key (sort { ncmp ($customhost{$a}[0],$customhost{$b}[0])} keys %customhost) { + if ( ($fwhostsettings{'ACTION'} eq 'edithost' || $fwhostsettings{'error'}) && $fwhostsettings{'HOSTNAME'} eq $customhost{$key}[0]) { + print" <tr>"; + $col="bgcolor='${Header::colouryellow}'"; + }elsif ($count % 2){ + print" <tr>"; + $col="bgcolor='$color{'color20'}'"; + }else{ + $col="bgcolor='$color{'color22'}'"; + print" <tr>"; + } + my ($ip,$sub)=split(///,$customhost{$key}[2]); + $customhost{$key}[4]=~s/\s+//g; + my $hostcount=0; + $hostcount=&gethostcount($customhost{$key}[0]); + print"<td width='20%' $col>$customhost{$key}[0]</td><td width='20%' align='center' $col ".&getcolor($ip).">".&Header::colorize($ip)."</td><td width='50%' align='left' $col>$customhost{$key}[3]</td><td align='center' $col>$hostcount x</td>"; + print<<END; + <td width='1%' $col><form method='post'><input type='image' src='/images/edit.gif' align='middle' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} /> + <input type='hidden' name='ACTION' value='edithost' /> + <input type='hidden' name='HOSTNAME' value='$customhost{$key}[0]' /> + <input type='hidden' name='IP' value='$ip' /> + <input type='hidden' name='type' value='$customhost{$key}[1]' /> + <input type='hidden' name='HOSTREMARK' value='$customhost{$key}[3]' /> + </form></td> +END + if($hostcount == '0') + { + print"<td width='1%' $col><form method='post'><input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} /><input type='hidden' name='ACTION' value='delhost' /><input type='hidden' name='key' value='$customhost{$key}[0]' /></td></form></tr>"; + }else{ + print"<td width='1%' $col></td></tr>"; + } + $count++; + } + print"</table>"; + &Header::closebox(); + } +} +sub viewtablegrp +{ + if(! -z "$configgrp"){ + &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust grp'}); + &General::readhasharray("$configgrp", %customgrp); + &General::readhasharray("$configipsec", %ipsecconf); + &General::readhasharray("$configccdhost", %ccdhost); + &General::readhasharray("$configccdnet", %ccdnet); + &General::readhasharray("$confighost", %customhost); + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + my @grp=(); + my $helper=''; + my $count=1; + my $grpname; + my $remark; + my $number; + my $delflag; + my @counter; + my %hash; + if (!keys %customgrp) + { + print "<center><b>$Lang::tr{'fwhost err emptytable'}</b>"; + }else{ + #get all groups in a hash + foreach my $key (sort { ncmp($customgrp{$a}[0],$customgrp{$b}[0]) } sort { ncmp($customgrp{$a}[2],$customgrp{$b}[2]) } keys %customgrp){ + push (@counter,$customgrp{$key}[0]); + } + foreach my $key1 (@counter) { + $hash{$key1}++ ; + } + foreach my $key (sort { ncmp($customgrp{$a}[0],$customgrp{$b}[0]) } sort { ncmp($customgrp{$a}[2],$customgrp{$b}[2]) } keys %customgrp){ + $count++; + if ($helper ne $customgrp{$key}[0]){ + $delflag='0'; + foreach my $key1 (sort { ncmp($customgrp{$a}[0],$customgrp{$b}[0]) } sort { ncmp($customgrp{$a}[2],$customgrp{$b}[2]) } keys %customgrp){ + if ($customgrp{$key}[0] eq $customgrp{$key1}[0]) + { + $delflag++; + } + if($delflag > 1){ + last; + } + } + $number=1; + if ($customgrp{$key}[2] eq "none"){$customgrp{$key}[2]=$Lang::tr{'fwhost err emptytable'};} + $grpname=$customgrp{$key}[0]; + $remark="$customgrp{$key}[1]"; + if($count gt 1){ print"</table>";$count=1;} + print "<br><b><u>$grpname</u></b> "; + print " <b>$Lang::tr{'remark'}:</b>  $remark   " if ($remark ne ''); + my $netgrpcount=&getnetcount($grpname); + print "<b>$Lang::tr{'used'}:</b> $netgrpcount x"; + if($netgrpcount == '0') + { + print"<form method='post' style='display:inline'><input type='image' src='/images/delete.gif' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} align='right' /><input type='hidden' name='grp_name' value='$grpname' ><input type='hidden' name='ACTION' value='delgrp'></form>"; + } + print"<form method='post' style='display:inline'><input type='image' src='/images/edit.gif' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} align='right' /><input type='hidden' name='grp_name' value='$grpname' ><input type='hidden' name='remark' value='$remark' ><input type='hidden' name='ACTION' value='editgrp'></form>"; + print"<table width='100%' cellspacing='0' class='tbl'><tr><th align='center'><b>Name</b></th><th align='center'><b>$Lang::tr{'ip address'}</b></th><th align='center' width='25%'><b>$Lang::tr{'fwhost type'}</th><th></th></tr>"; + } + my $col=''; + if ( ($fwhostsettings{'ACTION'} eq 'editgrp' || $fwhostsettings{'update'} ne '') && $fwhostsettings{'grp_name'} eq $customgrp{$key}[0]) { + print" <tr>"; + $col="bgcolor='${Header::colouryellow}'"; + }elsif ($count %2 == 0){ + print"<tr>"; + $col="bgcolor='$color{'color20'}'"; + }else{ + print"<tr>"; + $col="bgcolor='$color{'color22'}'"; + } + my $ip=&getipforgroup($customgrp{$key}[2],$customgrp{$key}[3]); + if ($ip eq ''){ + print"<tr>"; + $col="bgcolor='${Header::colouryellow}'"; + } + print "<td width='39%' align='left' $col>"; + if($customgrp{$key}[3] eq 'Standard Network'){ + print &get_name($customgrp{$key}[2])."</td>"; + }else{ + print "$customgrp{$key}[2]</td>"; + } + if ($ip eq '' && $customgrp{$key}[2] ne $Lang::tr{'fwhost err emptytable'}){ + print "<td align='center' $col>$Lang::tr{'fwhost deleted'}</td><td align='center' $col>$customgrp{$key}[3]</td><td width='1%' $col><form method='post'>"; + }else{ + my ($colip,$colsub) = split("/",$ip); + $ip="$colip/".&General::subtocidr($colsub) if ($colsub); + print"<td align='center' $col ".&getcolor($colip).">".&Header::colorize($ip)."</td><td align='center' $col>$customgrp{$key}[3]</td><td width='1%' $col><form method='post'>"; + } + if ($delflag > 0 && $ip ne ''){ + print"<input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} />"; + #check if this group has only one entry + foreach my $key2 (keys %hash) { + if ($hash{$key2}<2 && $key2 eq $customgrp{$key}[0]){ + print "<input type='hidden' name='last' value='on'>" ; + } + } + } + print"<input type='hidden' name='ACTION' value='deletegrphost'><input type='hidden' name='grpcnt' value='$customgrp{$key}[4]'><input type='hidden' name='update' value='$fwhostsettings{'update'}'><input type='hidden' name='delhost' value='$grpname,$remark,$customgrp{$key}[2],$customgrp{$key}[3]'></form></td></tr>"; + + $helper=$customgrp{$key}[0]; + $number++; + } + print"</table>"; + } + &Header::closebox(); +} + +} +sub viewtableservice +{ + my $count=0; + my $srvcount; + if(! -z "$configsrv") + { + &Header::openbox('100%', 'left', $Lang::tr{'fwhost services'}); + &General::readhasharray("$configsrv", %customservice); + &General::readhasharray("$configsrvgrp", %customservicegrp); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + print<<END; + <table width='100%' cellspacing='0' class='tbl'> + <tr><th align='center'><b>$Lang::tr{'fwhost srv_name'}</b></th><th align='center'><b>$Lang::tr{'fwhost prot'}</b></th><th align='center'><b>$Lang::tr{'fwhost port'}</b></th><th align='center'><b>ICMP</b></th><th align='center'><b>$Lang::tr{'fwhost used'}</b></th><th></th><th width='3%'></th></tr> +END + my $col=''; + foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0])} keys %customservice) + { + $count++; + if ( ($fwhostsettings{'updatesrv'} eq 'on' || $fwhostsettings{'error'}) && $fwhostsettings{'SRV_NAME'} eq $customservice{$key}[0]) { + print" <tr>"; + $col="bgcolor='${Header::colouryellow}'"; + }elsif ($count % 2){ + print" <tr>"; + $col="bgcolor='$color{'color22'}'"; + }else{ + print" <tr>"; + $col="bgcolor='$color{'color20'}'"; + } + print<<END; + <td $col>$customservice{$key}[0]</td><td align='center' $col>$customservice{$key}[2]</td><td align='center' $col>$customservice{$key}[1]</td><td align='center' $col> +END + #Neuer count + $srvcount=&getsrvcount($customservice{$key}[0]); + if($customservice{$key}[3] eq 'All ICMP-Types'){print $Lang::tr{'fwdfw all icmp'};} + elsif($customservice{$key}[3] ne 'BLANK'){print $customservice{$key}[3];} + print<<END; + </td><td align='center' $col>$srvcount x</td> + <td width='1%' $col><form method='post'><input type='image' src='/images/edit.gif' align='middle' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} /><input type='hidden' name='ACTION' value='editservice' /> + <input type='hidden' name='SRV_NAME' value='$customservice{$key}[0]' /> + <input type='hidden' name='SRV_PORT' value='$customservice{$key}[1]' /> + <input type='hidden' name='PROT' value='$customservice{$key}[2]' /> + <input type='hidden' name='ICMP' value='$customservice{$key}[3]' /></form></td> +END + if ($srvcount eq '0') + { + print"<td width='1%' $col><form method='post'><input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} /><input type='hidden' name='ACTION' value='delservice' /><input type='hidden' name='SRV_NAME' value='$customservice{$key}[0]'></td></tr></form>"; + }else{ + print"<td $col></td></tr>"; + } + } + print"</table>"; + &Header::closebox(); + } +} +sub viewtableservicegrp +{ + my $count=0; + my $grpname; + my $remark; + my $helper; + my $helper1; + my $port; + my $protocol; + my $delflag; + my $grpcount=0; + my $col=''; + my $lastentry=0; + my @counter; + my %hash; + if (! -z $configsrvgrp){ + &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust srvgrp'}); + &General::readhasharray("$configsrvgrp", %customservicegrp); + &General::readhasharray("$configsrv", %customservice); + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + my $number= keys %customservicegrp; + foreach my $key (sort { ncmp($customservicegrp{$a}[0],$customservicegrp{$b}[0]) } sort { ncmp($customservicegrp{$a}[2],$customservicegrp{$b}[2]) }keys %customservicegrp){ + push (@counter,$customservicegrp{$key}[0]); + } + foreach my $key1 (@counter) { + $hash{$key1}++ ; + } + foreach my $key (sort { ncmp($customservicegrp{$a}[0],$customservicegrp{$b}[0]) } sort { ncmp($customservicegrp{$a}[2],$customservicegrp{$b}[2]) }keys %customservicegrp){ + $count++; + if ($helper ne $customservicegrp{$key}[0]){ + #Get used groupcounter + $grpcount=&getsrvcount($customservicegrp{$key}[0]); + $delflag=0; + foreach my $key1 (sort { ncmp($customservicegrp{$a}[0],$customservicegrp{$b}[0]) } sort { ncmp($customservicegrp{$a}[2],$customservicegrp{$b}[2]) } keys %customservicegrp){ + if ($customservicegrp{$key}[0] eq $customservicegrp{$key1}[0]) + { + $delflag++; + } + if($delflag > 1){ + last; + } + } + $grpname=$customservicegrp{$key}[0]; + if ($customservicegrp{$key}[2] eq "none"){ + $customservicegrp{$key}[2]=$Lang::tr{'fwhost err emptytable'}; + $port=''; + $protocol=''; + } + $remark="$customservicegrp{$key}[1]"; + if($count >0){print"</table>";$count=1;} + print "<br><b><u>$grpname</u></b> "; + print "<b>$Lang::tr{'remark'}:</b> $remark " if ($remark ne ''); + print " <b>$Lang::tr{'used'}:</b> $grpcount x"; + if($grpcount == '0') + { + print"<form method='post' style='display:inline'><input type='image' src='/images/delete.gif' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} align='right' /><input type='hidden' name='SRVGRP_NAME' value='$grpname' ><input type='hidden' name='ACTION' value='delservicegrp'></form>"; + } + print"<form method='post' style='display:inline'><input type='image' src='/images/edit.gif' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} align='right' /><input type='hidden' name='SRVGRP_NAME' value='$grpname' ><input type='hidden' name='SRVGRP_REMARK' value='$remark' ><input type='hidden' name='ACTION' value='editservicegrp'></form>"; + print"<table width='100%' cellspacing='0' class='tbl'><tr><th align='center'><b>Name</b></th><th align='center'><b>$Lang::tr{'port'}</b></th><th align='center' width='25%'><b>$Lang::tr{'fwhost prot'}</th><th></th></tr>"; + } + if( $fwhostsettings{'SRVGRP_NAME'} eq $customservicegrp{$key}[0]) { + print"<tr>"; + $col="bgcolor='${Header::colouryellow}'"; + }elsif ($count %2 == 0){ + print"<tr>"; + $col="bgcolor='$color{'color20'}'"; + }else{ + print"<tr>"; + $col="bgcolor='$color{'color22'}'"; + } + #make lines yellow if it is a dummy entry + if ($customservicegrp{$key}[2] eq $Lang::tr{'fwhost err emptytable'}){ + print"<tr>"; + $col="bgcolor='${Header::colouryellow}'"; + } + #Set fields if we use protocols in servicegroups + if ($customservicegrp{$key}[2] ne 'TCP' || $customservicegrp{$key}[2] ne 'UDP' || $customservicegrp{$key}[2] ne 'ICMP'){ + $port='-'; + } + if ($customservicegrp{$key}[2] eq 'GRE'){$protocol='GRE';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} GRE";} + if ($customservicegrp{$key}[2] eq 'ESP'){$protocol='ESP';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} ESP";} + if ($customservicegrp{$key}[2] eq 'AH'){$protocol='AH';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} AH";} + if ($customservicegrp{$key}[2] eq 'IGMP'){$protocol='IGMP';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} IGMP";} + if ($customservicegrp{$key}[2] eq 'IPIP'){$protocol='IPIP';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} IPIP";} + if ($customservicegrp{$key}[2] eq 'IPV6'){$protocol='IPV6';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} IPv6 encapsulation";} + print "<td width='39%' $col>$customservicegrp{$key}[2]</td>"; + foreach my $srv (sort keys %customservice){ + if ($customservicegrp{$key}[2] eq $customservice{$srv}[0]){ + $protocol=$customservice{$srv}[2]; + $port=$customservice{$srv}[1]; + last; + } + } + print"<td align='center' $col>$port</td><td align='center' $col>$protocol</td><td width='1%' $col><form method='post'>"; + if ($delflag gt '0'){ + if ($customservicegrp{$key}[2] ne $Lang::tr{'fwhost err emptytable'}){ + print"<input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} />"; + } + #check if this group has only one entry + foreach my $key2 (keys %hash) { + if ($hash{$key2}<2 && $key2 eq $customservicegrp{$key}[0]){ + print "<input type='hidden' name='last' value='on'>" ; + } + } + } + print"<input type='hidden' name='ACTION' value='delgrpservice'><input type='hidden' name='updatesrvgrp' value='$fwhostsettings{'updatesrvgrp'}'>"; + if($protocol eq 'TCP' || $protocol eq 'UDP' || $protocol eq 'ICMP'){ + print "<input type='hidden' name='delsrvfromgrp' value='$grpname,$remark,$customservicegrp{$key}[2]'></form></td></tr>"; + }else{ + print "<input type='hidden' name='delsrvfromgrp' value='$grpname,$remark,$protocol'></form></td></tr>"; + } + $helper=$customservicegrp{$key}[0]; + } + print"</table>"; + &Header::closebox(); + } +} +# Check +sub checkname +{ + my %hash=%{(shift)}; + foreach my $key (keys %hash) { + if($hash{$key}[0] eq $fwhostsettings{'HOSTNAME'}){ + return 0; + } + } + return 1; + +} +sub checkgroup +{ + &General::readhasharray("$configsrvgrp", %customservicegrp ); + my $name=shift; + foreach my $key (keys %customservicegrp) { + if($customservicegrp{$key}[0] eq $name){ + return 0; + } + } + return 1; +} +sub checkservice +{ + &General::readhasharray("$configsrv", %customservice ); + my $name=shift; + foreach my $key (keys %customservice) { + if($customservice{$key}[0] eq $name){ + return 0; + } + } + return 1; +} +sub checkip +{ + + my %hash=%{(shift)}; + my $a=shift; + foreach my $key (keys %hash) { + if($hash{$key}[$a] eq $fwhostsettings{'IP'}."/".&General::iporsubtodec($fwhostsettings{'SUBNET'})){ + return 0; + } + } + return 1; +} +sub checksubnet +{ + my %hash=%{(shift)}; + &General::readhasharray("$confignet", %hash); + foreach my $key (keys %hash) { + if(&General::IpInSubnet($fwhostsettings{'IP'},$hash{$key}[1],$hash{$key}[2])) + { + return 1; + } + } + return 0; +} +sub checkservicegroup +{ + &General::readhasharray("$configsrvgrp", %customservicegrp); + #check name + if ( ! &validhostname($fwhostsettings{'SRVGRP_NAME'})) + { + $errormessage.=$Lang::tr{'fwhost err name'}."<br>"; + return $errormessage; + } + #check empty selectbox + if (keys %customservice lt 1) + { + $errormessage.=$Lang::tr{'fwhost err groupempty'}."<br>"; + } + #check if name already exists + if ($fwhostsettings{'updatesrvgrp'} ne 'on'){ + foreach my $key (keys %customservicegrp) { + if( $customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'} ){ + $errormessage.=$Lang::tr{'fwhost err grpexist'}."<br>"; + + } + } + } + #check if service already exists in group + foreach my $key (keys %customservicegrp) { + if($customservicegrp{$key}[0] eq $fwhostsettings{'SRVGRP_NAME'} && $customservicegrp{$key}[2] eq $fwhostsettings{'CUST_SRV'} ){ + $errormessage.=$Lang::tr{'fwhost err srvexist'}."<br>"; + } + } + return $errormessage; +} +sub checkrulereload +{ + my $search=shift; + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + + #check if service or servicegroup is used in rules + foreach my $key (keys %fwfwd){ + if($search eq $fwfwd{$key}[15]){ + &General::firewall_config_changed(); + return; + } + } + foreach my $key (keys %fwinp){ + if($search eq $fwinp{$key}[15]){ + &General::firewall_config_changed(); + return; + } + } + foreach my $key (keys %fwout){ + if($search eq $fwout{$key}[15]){ + &General::firewall_config_changed(); + return; + } + } +} +sub error +{ + if ($errormessage) { + &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); + print "<class name='base'>$errormessage\n"; + print " </class>\n"; + &Header::closebox(); + } +} +sub hint +{ + if ($hint) { + &Header::openbox('100%', 'left', $Lang::tr{'fwhost hint'}); + print "<class name='base'>$hint\n"; + print " </class>\n"; + &Header::closebox(); + } +} +sub get_name +{ + my $val=shift; + &General::setup_default_networks(%defaultNetworks); + foreach my $network (sort keys %defaultNetworks) + { + return "$network" if ($val eq $defaultNetworks{$network}{'NAME'}); + } +} +sub gethostcount +{ + my $searchstring=shift; + my $srvcounter=0; + #Count services used in servicegroups + foreach my $key (keys %customgrp) { + if($customgrp{$key}[2] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - config + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[4] eq $searchstring){ + $srvcounter++; + } + if($fwfwd{$key1}[6] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - input + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[4] eq $searchstring){ + $srvcounter++; + } + if($fwinp{$key2}[6] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - outgoing + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[4] eq $searchstring){ + $srvcounter++; + } + if($fwout{$key3}[6] eq $searchstring){ + $srvcounter++; + } + } + return $srvcounter; +} +sub getnetcount +{ + my $searchstring=shift; + my $srvcounter=0; + #Count services used in servicegroups + foreach my $key (keys %customgrp) { + if($customgrp{$key}[2] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - config + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[4] eq $searchstring){ + $srvcounter++; + } + if($fwfwd{$key1}[6] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - input + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[4] eq $searchstring){ + $srvcounter++; + } + if($fwinp{$key2}[6] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - outgoing + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[4] eq $searchstring){ + $srvcounter++; + } + if($fwout{$key3}[6] eq $searchstring){ + $srvcounter++; + } + } + return $srvcounter; +} +sub getsrvcount +{ + my $searchstring=shift; + my $srvcounter=0; + #Count services used in servicegroups + foreach my $key (keys %customservicegrp) { + if($customservicegrp{$key}[2] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - config + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[15] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - input + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[15] eq $searchstring){ + $srvcounter++; + } + } + #Count services used in firewall - outgoing + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[15] eq $searchstring){ + $srvcounter++; + } + } + return $srvcounter; +} +sub deletefromgrp +{ + my $target=shift; + my $config=shift; + my %hash=(); + &General::readhasharray("$config",%hash); + foreach my $key (keys %hash) { + if($hash{$key}[2] eq $target){ + delete $hash{$key}; + } + } + &General::writehasharray("$config",%hash); + +} +sub plausicheck +{ + my $edit=shift; + #check hostname + if (!&validhostname($fwhostsettings{'HOSTNAME'})) + { + $errormessage=$errormessage.$Lang::tr{'fwhost err name'}; + $fwhostsettings{'BLK_IP'}='readonly'; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + } + #check if name collides with CCD Netname + &General::readhasharray("$configccdnet", %ccdnet); + foreach my $key (keys %ccdnet) { + if($ccdnet{$key}[0] eq $fwhostsettings{'HOSTNAME'}){ + $errormessage=$errormessage.$Lang::tr{'fwhost err isccdnet'};; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + last; + } + } + #check if IP collides with CCD NetIP + if ($fwhostsettings{'type'} ne 'mac'){ + &General::readhasharray("$configccdnet", %ccdnet); + foreach my $key (keys %ccdnet) { + my $test=(&General::getnetworkip($fwhostsettings{'IP'},&General::iporsubtocidr($fwhostsettings{'SUBNET'})))."/".$fwhostsettings{'SUBNET'}; + if($ccdnet{$key}[1] eq $test){ + $errormessage=$errormessage.$Lang::tr{'fwhost err isccdipnet'}; + $fwhostsettings{'IP'} = $fwhostsettings{'orgip'}; + $fwhostsettings{'SUBNET'} = $fwhostsettings{'orgsubnet'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + last; + } + } + } + #check if name collides with CCD Hostname + &General::readhasharray("$configccdhost", %ccdhost); + foreach my $key (keys %ccdhost) { + my ($ip,$sub)=split(///,$ccdhost{$key}[33]); + if($ip eq $fwhostsettings{'IP'}){ + $errormessage=$Lang::tr{'fwhost err isccdiphost'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + last; + } + } + #check if IP collides with CCD HostIP (only hosts) + if ($edit eq 'edithost') + { + foreach my $key (keys %ccdhost) { + if($ccdhost{$key}[1] eq $fwhostsettings{'HOSTNAME'}){ + $errormessage=$Lang::tr{'fwhost err isccdhost'}; + $fwhostsettings{'IP'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + last; + } + } + } + #check if network with this name already exists + &General::readhasharray("$confignet", %customnetwork); + if (!&checkname(%customnetwork)) + { + $errormessage=$errormessage."<br>".$Lang::tr{'fwhost err netexist'}; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + } + #check if network ip already exists + if (!&checkip(%customnetwork,1)) + { + $errormessage=$errormessage."<br>".$Lang::tr{'fwhost err net'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + } + #check if host with this name already exists + &General::readhasharray("$confighost", %customhost); + if (!&checkname(%customhost)) + { + $errormessage.="<br>".$Lang::tr{'fwhost err hostexist'}; + $fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'}; + if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}=$edit;} + } + #check if host with this ip already exists + if (!&checkip(%customhost,2)) + { + $errormessage=$errormessage."<br>".$Lang::tr{'fwhost err ipcheck'}; + } + return; +} +sub getipforgroup +{ + my $name=$_[0], + my $type=$_[1]; + my $value; + + #get address from IPSEC NETWORK + if ($type eq 'IpSec Network'){ + foreach my $key (keys %ipsecconf) { + if ($ipsecconf{$key}[1] eq $name){ + return $ipsecconf{$key}[11]; + } + } + &deletefromgrp($name,$configgrp); + } + + #get address from IPSEC HOST + if ($type eq 'IpSec Host'){ + foreach my $key (keys %ipsecconf) { + if ($ipsecconf{$key}[1] eq $name){ + return $ipsecconf{$key}[10]; + } + } + &deletefromgrp($name,$configgrp); + } + + #get address from ovpn ccd Net-2-Net + if ($type eq 'OpenVPN N-2-N'){ + foreach my $key (keys %ccdhost) { + if($ccdhost{$key}[1] eq $name){ + my ($a,$b) = split ("/",$ccdhost{$key}[11]); + $b=&General::iporsubtodec($b); + return "$a/$b"; + } + } + &deletefromgrp($name,$configgrp); + } + + #get address from ovpn ccd static host + if ($type eq 'OpenVPN static host'){ + foreach my $key (keys %ccdhost) { + if($ccdhost{$key}[1] eq $name){ + my ($a,$b) = split (///,$ccdhost{$key}[33]); + $b=&General::iporsubtodec($b); + return "$a/$b"; + } + } + &deletefromgrp($name,$configgrp); + } + + #get address from ovpn ccd static net + if ($type eq 'OpenVPN static network'){ + foreach my $key (keys %ccdnet) { + if ($ccdnet{$key}[0] eq $name){ + my ($a,$b) = split (///,$ccdnet{$key}[1]); + $b=&General::iporsubtodec($b); + return "$a/$b"; + } + } + } + + #check custom addresses + if ($type eq 'Custom Host'){ + foreach my $key (keys %customhost) { + if ($customhost{$key}[0] eq $name){ + my ($ip,$sub) = split("/",$customhost{$key}[2]); + return $ip; + } + } + } + + ##check custom networks + if ($type eq 'Custom Network'){ + foreach my $key (keys %customnetwork) { + if($customnetwork{$key}[0] eq $name){ + return $customnetwork{$key}[1]."/".$customnetwork{$key}[2]; + } + } + } + + #check standard networks + if ($type eq 'Standard Network'){ + if ($name =~ /OpenVPN/i){ + my %ovpn=(); + &General::readhash("${General::swroot}/ovpn/settings",%ovpn); + return $ovpn{'DOVPN_SUBNET'}; + } + if ($name eq 'GREEN'){ + my %hash=(); + &General::readhash("${General::swroot}/ethernet/settings",%hash); + return $hash{'GREEN_NETADDRESS'}."/".$hash{'GREEN_NETMASK'}; + } + if ($name eq 'BLUE'){ + my %hash=(); + &General::readhash("${General::swroot}/ethernet/settings",%hash); + return $hash{'BLUE_NETADDRESS'}."/".$hash{'BLUE_NETMASK'}; + } + if ($name eq 'ORANGE'){ + my %hash=(); + &General::readhash("${General::swroot}/ethernet/settings",%hash); + return $hash{'ORANGE_NETADDRESS'}."/".$hash{'ORANGE_NETMASK'}; + } + if ($name eq 'ALL'){ + return "0.0.0.0/0.0.0.0"; + } + if ($name =~ /IPsec/i){ + my %hash=(); + &General::readhash("${General::swroot}/vpn/settings",%hash); + return $hash{'RW_NET'}; + } + } +} +sub decrease +{ + my $grp=$_[0]; + &General::readhasharray("$confignet", %customnetwork); + &General::readhasharray("$confighost", %customhost); + foreach my $key (sort keys %customgrp ){ + if ( ($customgrp{$key}[0] eq $grp) && ($customgrp{$key}[3] eq 'Custom Network')){ + foreach my $key1 (sort keys %customnetwork){ + if ($customnetwork{$key1}[0] eq $customgrp{$key}[2]){ + $customnetwork{$key1}[4]=$customnetwork{$key1}[4]-1; + last; + } + } + } + + if (($customgrp{$key}[0] eq $grp) && ($customgrp{$key}[3] eq 'Custom Host')){ + foreach my $key2 (sort keys %customhost){ + if ($customhost{$key2}[0] eq $customgrp{$key}[2]){ + $customhost{$key2}[4]=$customhost{$key2}[4]-1; + last; + } + } + + } + } + &General::writehasharray("$confignet", %customnetwork); + &General::writehasharray("$confighost", %customhost); +} +sub decreaseservice +{ + my $grp=$_[0]; + &General::readhasharray("$configsrv", %customservice); + &General::readhasharray("$configsrvgrp", %customservicegrp); + + foreach my $key (sort keys %customservicegrp){ + if ($customservicegrp{$key}[0] eq $grp ){ + foreach my $key2 (sort keys %customservice){ + if ($customservice{$key2}[0] eq $customservicegrp{$key}[2]){ + $customservice{$key2}[4]--; + } + } + } + } + &General::writehasharray("$configsrv", %customservice); + +} +sub changenameinfw +{ + my $old=shift; + my $new=shift; + my $fld=shift; + &General::readhasharray("$fwconfigfwd", %fwfwd); + &General::readhasharray("$fwconfiginp", %fwinp); + &General::readhasharray("$fwconfigout", %fwout); + #Rename group in Firewall-CONFIG + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[$fld] eq $old){ + $fwfwd{$key1}[$fld]=$new; + } + } + &General::writehasharray("$fwconfigfwd", %fwfwd ); + #Rename group in Firewall-INPUT + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[$fld] eq $old){ + $fwinp{$key2}[$fld]=$new; + } + } + &General::writehasharray("$fwconfiginp", %fwinp ); + #Rename group in Firewall-OUTGOING + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[$fld] eq $old){ + $fwout{$key3}[$fld]=$new; + } + } + &General::writehasharray("$fwconfigout", %fwout ); +} +sub checkports +{ + + my %hash=%{(shift)}; + #check empty fields + if ($fwhostsettings{'SRV_NAME'} eq '' ){ + $errormessage=$Lang::tr{'fwhost err name1'}; + } + if ($fwhostsettings{'SRV_PORT'} eq '' && $fwhostsettings{'PROT'} ne 'ICMP'){ + $errormessage=$Lang::tr{'fwhost err port'}; + } + #check valid name + if (! &validhostname($fwhostsettings{'SRV_NAME'})){ + $errormessage="<br>".$Lang::tr{'fwhost err name'}; + } + #change dashes with : + $fwhostsettings{'SRV_PORT'}=~ tr/-/:/; + + if ($fwhostsettings{'SRV_PORT'} eq "*") { + $fwhostsettings{'SRV_PORT'} = "1:65535"; + } + if ($fwhostsettings{'SRV_PORT'} =~ /^(\D):(\d+)$/) { + $fwhostsettings{'SRV_PORT'} = "1:$2"; + } + if ($fwhostsettings{'SRV_PORT'} =~ /^(\d+):(\D)$/) { + $fwhostsettings{'SRV_PORT'} = "$1:65535"; + } + if($fwhostsettings{'PROT'} ne 'ICMP'){ + $errormessage = $errormessage.&General::validportrange($fwhostsettings{'SRV_PORT'}, 'src'); + } + # a new service has to have a different name + foreach my $key (keys %hash){ + if ($hash{$key}[0] eq $fwhostsettings{'SRV_NAME'}){ + $errormessage = "<br>".$Lang::tr{'fwhost err srv exists'}; + last; + } + } + return $errormessage; +} +sub validhostname +{ + # Checks a hostname against RFC1035 + my $hostname = $_[0]; + + # Each part should be at least two characters in length + # but no more than 63 characters + if (length ($hostname) < 1 || length ($hostname) > 63) { + return 0;} + # Only valid characters are a-z, A-Z, 0-9 and - + if ($hostname !~ /^[a-zA-ZÀöÌÃÃÃ0-9-_.;()/\s]*$/) { + return 0;} + # First character can only be a letter or a digit + if (substr ($hostname, 0, 1) !~ /^[a-zA-ZöÀÌÃÃÃ0-9]*$/) { + return 0;} + # Last character can only be a letter or a digit + if (substr ($hostname, -1, 1) !~ /^[a-zA-ZöÀÌÃÃÃ0-9()]*$/) { + return 0;} + return 1; +} +sub validremark +{ + # Checks a hostname against RFC1035 + my $remark = $_[0]; + # Each part should be at least two characters in length + # but no more than 63 characters + if (length ($remark) < 1 || length ($remark) > 255) { + return 0;} + # Only valid characters are a-z, A-Z, 0-9 and - + if ($remark !~ /^[a-zÀöÌA-ZÃÃÃ0-9-.:;|_()/\s]*$/) { + return 0;} + # First character can only be a letter or a digit + if (substr ($remark, 0, 1) !~ /^[a-zÀöÌA-ZÃÃÃ0-9]*$/) { + return 0;} + # Last character can only be a letter or a digit + if (substr ($remark, -1, 1) !~ /^[a-zöÀÌA-ZÃÃÃ0-9.:;_)]*$/) { + return 0;} + return 1; +} +&Header::closebigbox(); +&Header::closepage(); diff --git a/html/cgi-bin/gui.cgi b/html/cgi-bin/gui.cgi index 5abf88e..dfdf7cd 100644 --- a/html/cgi-bin/gui.cgi +++ b/html/cgi-bin/gui.cgi @@ -36,7 +36,6 @@ my %checked=(); my $errormessage='';
-$cgiparams{'FX'} = 'off'; $cgiparams{'SPEED'} = 'off'; $cgiparams{'WINDOWWITHHOSTNAME'} = 'off'; $cgiparams{'REBOOTQUESTION'} = 'off'; @@ -90,7 +89,6 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") $mainsettings{'WINDOWWITHHOSTNAME'} = $cgiparams{'WINDOWWITHHOSTNAME'}; $mainsettings{'REBOOTQUESTION'} = $cgiparams{'REBOOTQUESTION'}; $mainsettings{'PPPUPDOWNBEEP'} = $cgiparams{'PPPUPDOWNBEEP'}; - $mainsettings{'FX'} = $cgiparams{'FX'}; $mainsettings{'SPEED'} = $cgiparams{'SPEED'}; $mainsettings{'THEME'} = $cgiparams{'theme'}; $mainsettings{'REFRESHINDEX'} = $cgiparams{'REFRESHINDEX'}; @@ -101,7 +99,7 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") if ($mainsettings{'WINDOWWITHHOSTNAME'}) { $cgiparams{'WINDOWWITHHOSTNAME'} = $mainsettings{'WINDOWWITHHOSTNAME'}; } else { - $cgiparams{'WINDOWWITHHOSTNAME'} = 'off'; + $cgiparams{'WINDOWWITHHOSTNAME'} = 'on'; } if ($mainsettings{'REBOOTQUESTION'}) { @@ -116,12 +114,6 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") $cgiparams{'PPPUPDOWNBEEP'} = 'on'; }
- if ($mainsettings{'FX'}) { - $cgiparams{'FX'} = $mainsettings{'FX'}; - } else { - $cgiparams{'FX'} = 'on'; - } - if ($mainsettings{'THEME'}) { $cgiparams{'THEME'} = $mainsettings{'THEME'}; } else { @@ -146,11 +138,10 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") # Default settings if ($cgiparams{'ACTION'} eq "$Lang::tr{'restore defaults'}") { - $cgiparams{'WINDOWWITHHOSTNAME'} = 'off'; + $cgiparams{'WINDOWWITHHOSTNAME'} = 'on'; $cgiparams{'REBOOTQUESTION'} = 'on'; $cgiparams{'PPPUPDOWNBEEP'} = 'on'; $cgiparams{'REFRESHINDEX'} = 'off'; - $cgiparams{'FX'} = 'on'; $cgiparams{'SPEED'} = 'on'; $cgiparams{'THEME'} = 'ipfire'; } @@ -171,10 +162,6 @@ $checked{'REFRESHINDEX'}{'off'} = ''; $checked{'REFRESHINDEX'}{'on'} = ''; $checked{'REFRESHINDEX'}{$cgiparams{'REFRESHINDEX'}} = "checked='checked'";
-$checked{'FX'}{'off'} = ''; -$checked{'FX'}{'on'} = ''; -$checked{'FX'}{$cgiparams{'FX'}} = "checked='checked'"; - $checked{'SPEED'}{'off'} = ''; $checked{'SPEED'}{'on'} = ''; $checked{'SPEED'}{$cgiparams{'SPEED'}} = "checked='checked'"; @@ -188,19 +175,12 @@ if ($errormessage) { &Header::closebox(); }
-&Header::openbox('100%','left',$Lang::tr{'gui settings'}); +&Header::openbox('100%','left',$Lang::tr{'display'});
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> <table width='100%'> <tr> - <td colspan='2'><p><b>$Lang::tr{'display'}</b></td> -</tr> -<tr> - <td><input type='checkbox' name='FX' $checked{'FX'}{'on'} /></td> - <td>$Lang::tr{'display webinterface effects'}</td> -</tr> -<tr> <td><input type='checkbox' name='WINDOWWITHHOSTNAME' $checked{'WINDOWWITHHOSTNAME'}{'on'} /></td> <td>$Lang::tr{'display hostname in window title'}</td> </tr> @@ -249,9 +229,13 @@ END
print <<END </select></td></tr> -<tr> - <td colspan='2'><hr /><p><b>$Lang::tr{'theme'}</b></td> -</tr> +</table> +END +; +&Header::closebox(); +&Header::openbox('100%','left',$Lang::tr{'theme'}); +print<<END; +<table> <tr> <td> </td> <td><select name='theme'> @@ -282,22 +266,26 @@ foreach $item (sort (@files)) {
print <<END </select></td></tr> -<tr> - <td colspan='2'><hr /><p><b>$Lang::tr{'sound'}</b></td> -</tr> +</table> +END +; +&Header::closebox(); +&Header::openbox('100%','left',$Lang::tr{'sound'}); +print <<END <tr> <td><input type ='checkbox' name='PPPUPDOWNBEEP' $checked{'PPPUPDOWNBEEP'}{'on'} /></td> <td>$Lang::tr{'beep when ppp connects or disconnects'}</td> </tr> <tr> - <td colspan='2'><hr /></td> + <td colspan='2'></td> </tr> </table> -<div align='center'> -<table width='80%'> +<div align='right'> +<br> +<table width='100%'> <tr> - <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' /></td> - <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> + <td width='90%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' /></td> + <td width='10%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> </div> diff --git a/html/cgi-bin/hosts.cgi b/html/cgi-bin/hosts.cgi index 94a48d3..bb7df1f 100644 --- a/html/cgi-bin/hosts.cgi +++ b/html/cgi-bin/hosts.cgi @@ -4,7 +4,7 @@ # IPFire.org - A linux based firewall # # Copyright (C) 2007 Michael Tremer & Christian Schmidt # # # -# This program is free software: you can redistribute it and/or modify # +# This program is free software you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # @@ -264,11 +264,12 @@ print <<END <td><input type='checkbox' name='EN' $checked{'EN'}{'on'} /></td> </tr> </table> +<br> <hr /> <table width='100%'> <tr> <td class='base' width='50%'><img src='/blob.gif' align='top' alt='*' /> $Lang::tr{'this field may be blank'}</td> - <td width='50%' align='center'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> + <td width='50%' align='right'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> </tr> </table> </form> @@ -283,12 +284,12 @@ END # &Header::openbox('100%', 'left', $Lang::tr{'current hosts'}); print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'host ip'}</b></a></td> - <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?HOST'><b>$Lang::tr{'hostname'}</b></a></td> - <td width='50%' align='center'><a href='$ENV{'SCRIPT_NAME'}?DOM'><b>$Lang::tr{'domain name'}</b></a></td> - <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'host ip'}</b></a></th> + <th width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?HOST'><b>$Lang::tr{'hostname'}</b></a></th> + <th width='50%' align='center'><a href='$ENV{'SCRIPT_NAME'}?DOM'><b>$Lang::tr{'domain name'}</b></a></th> + <th width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -296,7 +297,7 @@ END # # Print each line of @current list # - +my $col=""; my $key = 0; foreach my $line (@current) { chomp($line); # remove newline @@ -318,15 +319,17 @@ foreach my $line (@current) { if ($settings{'KEY1'} eq $key) { print "<tr bgcolor='${Header::colouryellow}'>"; } elsif ($key % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } print <<END -<td align='center'>$temp[1]</td> -<td align='center'>$temp[2]</td> -<td align='center'>$temp[3]</td> -<td align='center'> +<td align='center' $col>$temp[1]</td> +<td align='center' $col>$temp[2]</td> +<td align='center' $col>$temp[3]</td> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> @@ -334,7 +337,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -342,7 +345,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> diff --git a/html/cgi-bin/ids.cgi b/html/cgi-bin/ids.cgi index 4bd0128..88d9db2 100644 --- a/html/cgi-bin/ids.cgi +++ b/html/cgi-bin/ids.cgi @@ -491,7 +491,7 @@ END refreshpage(); }
-&Header::openbox('100%', 'left', $Lang::tr{'intrusion detection system2'}); +&Header::openbox('100%', 'left', $Lang::tr{'intrusion detection system'}); print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'><table width='100%'> <tr><td class='base'><input type='checkbox' name='ENABLE_SNORT_GREEN' $checked{'ENABLE_SNORT_GREEN'}{'on'} />GREEN Snort @@ -511,7 +511,7 @@ if ( -e "/var/ipfire/guardian/guardian.conf" ) { print <<END </td></tr> <tr> - <td><hr /></td> + <td><br><br></td> </tr> <tr> <td><b>$Lang::tr{'ids rules update'}</b></td> @@ -536,7 +536,7 @@ print <<END <td nowrap='nowrap'>Oinkcode: <input type='text' size='40' name='OINKCODE' value='$snortsettings{'OINKCODE'}' /></td> </tr> <tr> - <td width='30%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'download new ruleset'}' /> + <td width='30%' align='left'><br><input type='submit' name='ACTION' value='$Lang::tr{'download new ruleset'}' /> END ; if ( -e "/var/tmp/snortrules.tar.gz"){ @@ -548,10 +548,10 @@ print " $Lang::tr{'updates installed'}: $snortsettings{'INSTALLDATE'}</td>" print <<END </tr> </table> -<hr /> +<br><br> <table width='100%'> <tr> - <td align='center'><input type='hidden' name='ACTION2' value='snort' /><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> + <td align='right'><input type='hidden' name='ACTION2' value='snort' /><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> </form> @@ -579,7 +579,7 @@ END print `cat /var/ipfire/guardian/guardian.ignore`; print <<END </textarea></td></tr> -<tr><td align='center' colspan='2'><input type='hidden' name='ACTION2' value='guardian' /><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td></tr> +<tr><td align='right' colspan='2'><input type='hidden' name='ACTION2' value='guardian' /><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td></tr> </table> </form> END @@ -680,7 +680,7 @@ if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable # Check for display flag if ($displayrulefilerules) { # Rule file definition rule display - print "<TR><TD CLASS='base' VALIGN='TOP'><TABLE border=1><TR>"; + print "<TR><TD CLASS='base' VALIGN='TOP'><TABLE border=0><TR>";
# Local vars my $ruledefdisplaycnt = 0; @@ -732,9 +732,7 @@ if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable print <<END <table width='100%'> <tr> - <td width='33%'> </td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> - <td width='33%'> + <td width='100%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> <!-- space for future online help link --> </td> </tr> diff --git a/html/cgi-bin/index.cgi b/html/cgi-bin/index.cgi index ea19e26..b3a2629 100644 --- a/html/cgi-bin/index.cgi +++ b/html/cgi-bin/index.cgi @@ -40,6 +40,8 @@ my $warnmessage = ''; my $refresh = ""; my $ipaddr='';
+my $haveipsec=0; +my $haveovpn=0;
&Header::showhttpheaders();
@@ -60,9 +62,7 @@ my %mainsettings = (); my $connstate = &Header::connectionstatus();
if ( -e "/var/ipfire/main/gpl-accepted" ) { -if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'} || $cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) { - $refresh = "<meta http-equiv='refresh' content='300;'>"; -} elsif ($connstate =~ /$Lang::tr{'connecting'}/ || /$Lang::tr{'connection closed'}/ ){ +if ($connstate =~ /$Lang::tr{'connecting'}/ || /$Lang::tr{'connection closed'}/ ){ $refresh = "<meta http-equiv='refresh' content='5;'>"; } elsif ($connstate =~ /$Lang::tr{'dod waiting'}/ || -e "${General::swroot}/main/refreshindex") { $refresh = "<meta http-equiv='refresh' content='30;'>"; @@ -138,7 +138,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'yes'} && $cgiparams{'gpl_accepted'} eq '1 system('touch /var/ipfire/main/gpl_accepted') } if ( -e "/var/ipfire/main/gpl_accepted" ) { -&Header::openbox('100%', 'center', &Header::cleanhtml(`/bin/uname -n`,"y")); +&Header::openbox('100%', 'center', '');
if ( ( $pppsettings{'VALID'} eq 'yes' && $modemsettings{'VALID'} eq 'yes' ) || ( $netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ )) { @@ -158,105 +158,57 @@ if ( ( $pppsettings{'VALID'} eq 'yes' && $modemsettings{'VALID'} eq 'yes' ) || ( print "$Lang::tr{'profile has errors'}\n </b></font>\n"; }
-#if ( $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) { -# $ipaddr = $netsettings{'RED_ADDRESS'}; -#} - -my $death = 0; -my $rebirth = 0; - -if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'}) { - $death = 1; - &General::log($Lang::tr{'shutting down ipfire'}); - system '/usr/local/bin/ipfirereboot down'; -} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) { - $rebirth = 1; - &General::log($Lang::tr{'rebooting ipfire'}); - system '/usr/local/bin/ipfirereboot boot'; -} - -if ($death == 0 && $rebirth == 0) { - -if ($mainsettings{'REBOOTQUESTION'} eq "off") { -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='100%'> - <tr> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'refresh'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown'}' /></td> - </tr> - </table> - </form> -END -; -} else { - if ($cgiparams{'ACTION'} eq $Lang::tr{'reboot ask'}) { -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='100%'> - <tr> - <td colspan="3" align='left'><font color="red">$Lang::tr{'reboot sure'}</font></td> - </tr> - <tr> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'refresh'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown ask'}' /></td> - </tr> - </table> - </form> -END -; - } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown ask'}) { -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='100%'> - <tr> - <td colspan="3" align='right'><font color="red">$Lang::tr{'shutdown sure'}</font></td> - </tr> - <tr> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot ask'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'refresh'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown'}' /></td> - </tr> - </table> - </form> -END -; - } else { -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='100%'> - <tr> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot ask'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'refresh'}' /></td> - <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown ask'}' /></td> - </tr> - </table> - </form> -END -; - } -} print <<END; - - - <!-- Table of networks --> -<table border='0' width=80%> +<table width=80% class='tbl'> <tr> <th bgcolor='$color{'color20'}'>$Lang::tr{'network'}</th> - <th bgcolor='$color{'color20'}'>IP</th> + <th bgcolor='$color{'color20'}'>$Lang::tr{'ip address'}</th> <th bgcolor='$color{'color20'}'>$Lang::tr{'status'}</th></tr> <tr> <td align='center' bgcolor='$Header::colourred' width='25%'><a href="/cgi-bin/pppsetup.cgi"><font size='2' color='white'><b>$Lang::tr{'internet'}</b></font></a><br></td> <td width='30%' align='center'>$ipaddr </td> <td width='45%' align='center'>$connstate END + my $HOSTNAME = (gethostbyaddr(pack("C4", split(/./, $ipaddr)), 2))[0]; + if ( "$HOSTNAME" ne "" ) { + print <<END; + <tr><td><b>Hostname:</b><td align='center'>$HOSTNAME<td> +END + } + + if ( -e "/var/ipfire/red/remote-ipaddress" ) { + my $GATEWAY = `cat /var/ipfire/red/remote-ipaddress`; + chomp($GATEWAY); + print <<END; + <tr><td><b>Gateway:</b><td align='center'>$GATEWAY<td> +END + } + + my $DNS1 = `cat /var/ipfire/red/dns1`; + my $DNS2 = `cat /var/ipfire/red/dns2`; + chomp($DNS1); + chomp($DNS1); + + if ( $DNS1 ) { print <<END; + <tr><td><b>DNS-Server:</b><td align='center'>$DNS1 +END + } + if ( $DNS2 ) { print <<END; + <td align='center'>$DNS2 +END + } else { print <<END; + <td> </td> + </tr> + </table> +END + } + +#Dial profiles if ( $netsettings{'RED_TYPE'} ne "STATIC" && $netsettings{'RED_TYPE'} ne "DHCP" ){ print `/usr/local/bin/dialctrl.pl show`; print <<END; - </td></tr> - <tr><td colspan='2'> - +<br> + <table width='80%'> + <tr><td> <form method='post' action='$ENV{'SCRIPT_NAME'}'>$Lang::tr{'profile'}: <select name='PROFILE'> END @@ -287,90 +239,119 @@ END } else { print "$Lang::tr{'profile has errors'}\n </b></font>\n"; } + print"</tr></table>"; } - my $HOSTNAME = (gethostbyaddr(pack("C4", split(/./, $ipaddr)), 2))[0]; - if ( "$HOSTNAME" ne "" ) { - print <<END; - <tr><td><b>Hostname:</b><td align='center'>$HOSTNAME<td> -END - } - - if ( -e "/var/ipfire/red/remote-ipaddress" ) { - my $GATEWAY = `cat /var/ipfire/red/remote-ipaddress`; - chomp($GATEWAY); + if ( $netsettings{'GREEN_DEV'} ) { + my $sub=&General::iporsubtocidr($netsettings{'GREEN_NETMASK'}); print <<END; - <tr><td><b>Gateway:</b><td align='center'>$GATEWAY<td> -END - } - - my $DNS1 = `cat /var/ipfire/red/dns1`; - my $DNS2 = `cat /var/ipfire/red/dns2`; - chomp($DNS1); - chomp($DNS1); - - if ( $DNS1 ) { print <<END; - <tr><td><b>DNS-Server:</b><td align='center'>$DNS1 -END - } - if ( $DNS2 ) { print <<END; - <td align='center'>$DNS2 -END - } else { print <<END; - <td> -END - } - - if ( $netsettings{'GREEN_DEV'} ) { print <<END; + <br> + <table width='80%' class='tbl'> + <tr> + <th>$Lang::tr{'network'}</th> + <th>$Lang::tr{'ip address'}</th> + <th>$Lang::tr{'status'}</th> + </tr> <tr><td align='center' bgcolor='$Header::colourgreen' width='25%'><a href="/cgi-bin/dhcp.cgi"><font size='2' color='white'><b>$Lang::tr{'lan'}</b></font></a> - <td width='30%' align='center'>$netsettings{'GREEN_ADDRESS'} - <td width='45%' align='center'> + <td width='30%' align='center'>$netsettings{'GREEN_ADDRESS'}/$sub + <td width='45%' align='center'> END if ( `cat /var/ipfire/proxy/advanced/settings | grep ^ENABLE=on` ) { print $Lang::tr{'advproxy on'}; if ( `cat /var/ipfire/proxy/advanced/settings | grep ^TRANSPARENT=on` ) { print " (transparent)"; } } else { print $Lang::tr{'advproxy off'}; } } - if ( $netsettings{'BLUE_DEV'} ) { print <<END; + if ( $netsettings{'BLUE_DEV'} ) { + my $sub=&General::iporsubtocidr($netsettings{'BLUE_NETMASK'}); + print <<END; <tr><td align='center' bgcolor='$Header::colourblue' width='25%'><a href="/cgi-bin/wireless.cgi"><font size='2' color='white'><b>$Lang::tr{'wireless'}</b></font></a><br> - <td width='30%' align='center'>$netsettings{'BLUE_ADDRESS'} - <td width='45%' align='center'> + <td width='30%' align='center'>$netsettings{'BLUE_ADDRESS'}/$sub + <td width='45%' align='center'> END if ( `cat /var/ipfire/proxy/advanced/settings | grep ^ENABLE_BLUE=on` ) { print $Lang::tr{'advproxy on'}; if ( `cat /var/ipfire/proxy/advanced/settings | grep ^TRANSPARENT_BLUE=on` ) { print " (transparent)"; } } else { print $Lang::tr{'advproxy off'}; } } - if ( $netsettings{'ORANGE_DEV'} ) { print <<END; - <tr><td align='center' bgcolor='$Header::colourorange' width='25%'><a href="/cgi-bin/dmzholes.cgi"><font size='2' color='white'><b>$Lang::tr{'dmz'}</b></font></a><br> - <td width='30%' align='center'>$netsettings{'ORANGE_ADDRESS'} - <td width='45%' align='center'><font color=$Header::colourgreen>Online</font> + if ( $netsettings{'ORANGE_DEV'} ) { + my $sub=&General::iporsubtocidr($netsettings{'ORANGE_NETMASK'}); + print <<END; + <tr><td align='center' bgcolor='$Header::colourorange' width='25%'><a href="/cgi-bin/firewall.cgi"><font size='2' color='white'><b>$Lang::tr{'dmz'}</b></font></a><br> + <td width='30%' align='center'>$netsettings{'ORANGE_ADDRESS'}/$sub + <td width='45%' align='center'><font color=$Header::colourgreen>Online</font> END } - if ( `cat /var/ipfire/vpn/settings | grep ^ENABLED=on` || - `cat /var/ipfire/vpn/settings | grep ^ENABLED_BLUE=on` ) { +#check if IPSEC is running +if ( `cat /var/ipfire/vpn/settings | grep ^ENABLED=on` || + `cat /var/ipfire/vpn/settings | grep ^ENABLED_BLUE=on` ) { + $haveipsec=1; + my $ipsecip = `cat /var/ipfire/vpn/settings | grep ^VPN_IP= | cut -c 8-`; +print<<END; + <tr><td align='center' bgcolor='$Header::colourvpn' width='25%'><a href="/cgi-bin/vpnmain.cgi"><font size='2' color='white'><b>$Lang::tr{'ipsec'}</b></font></a><br> + <td width='30%' align='center'>$ipsecip + <td width='45%' align='center'><font color=$Header::colourgreen>Online</font> +END +} + +#check if OpenVPN is running +my %confighash=(); +&General::readhash("${General::swroot}/ovpn/settings", %confighash); + +if (($confighash{'ENABLED'} eq "on") || + ($confighash{'ENABLED_BLUE'} eq "on") || + ($confighash{'ENABLED_ORANGE'} eq "on")) { + my ($ovpnip,$sub) = split("/",$confighash{'DOVPN_SUBNET'}); + $sub=&General::iporsubtocidr($sub); + $ovpnip="$ovpnip/$sub"; + $haveovpn=1; +print <<END; + <tr> + <td align='center' bgcolor='$Header::colourovpn' width='25%'> + <a href="/cgi-bin/ovpnmain.cgi"><font size='2' color='white'><b>OpenVPN</b></font></a><br> + </td> + <td width='30%' align='center'>$ovpnip + <td width='45%' align='center'><font color=$Header::colourgreen>Online</font> +END + } +print"</td></tr></table>"; +&Header::closebox(); + +# Start of Box wich contains all vpn connections + &Header::openbox('100%', 'center', $Lang::tr{'vpn'}) if ($haveipsec || $haveovpn); + +#show ipsec connectiontable + if ( $haveipsec ) { my $ipsecip = `cat /var/ipfire/vpn/settings | grep ^VPN_IP= | cut -c 8-`; my @status = `/usr/local/bin/ipsecctrl I`; my %confighash = (); &General::readhasharray("${General::swroot}/vpn/config", %confighash); print <<END; - <tr><td align='center' bgcolor='$Header::colourvpn' width='25%'><a href="/cgi-bin/vpnmain.cgi"><font size='2' color='white'><b>$Lang::tr{'vpn'}</b></font></a><br> - <td width='30%' align='center'>$ipsecip - <td width='45%' align='center'><font color=$Header::colourgreen>Online</font> + <br> + <table width='80%' class='tbl'> + <tr> + <th>$Lang::tr{'ipsec network'}</th> + <th>$Lang::tr{'ip address'}</th> + <th>$Lang::tr{'status'}</th> + </tr> END my $id = 0; my $gif; + my $col=""; foreach my $key (sort { uc($confighash{$a}[1]) cmp uc($confighash{$b}[1]) } keys %confighash) { if ($confighash{$key}[0] eq 'on') { $gif = 'on.gif'; } else { $gif = 'off.gif'; } - + my ($vpnip,$vpnsub) = split("/",$confighash{$key}[11]); + $vpnsub=&General::iporsubtocidr($vpnsub); + $vpnip="$vpnip/$vpnsub"; if ($id % 2) { - print "<tr><td align='left' nowrap='nowrap' bgcolor='$color{'color20'}'>$confighash{$key}[1] / " . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td><td align='center'>$confighash{$key}[11]</td>"; + $col="bgcolor='$color{'color20'}'"; + print "<tr><td align='left' nowrap='nowrap' bgcolor='$Header::colourvpn' width='50%'><font color=white>$confighash{$key}[1] / " . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td><td align='center' $col>$vpnip</td>"; } else { - print "<tr></td><td align='left' nowrap='nowrap' bgcolor='$color{'color22'}'>$confighash{$key}[1] / " . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td><td align='center'>$confighash{$key}[11]</td>"; + $col="bgcolor='$color{'color22'}'"; + print "<tr></td><td align='left' nowrap='nowrap' bgcolor='$Header::colourvpn' width='50%'><font color=white>$confighash{$key}[1] / " . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td><td align='center' $col>$vpnip</td>"; } - my $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; + my $active = "<td bgcolor='${Header::colourred}' width='15%' align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td>"; if ($confighash{$key}[0] eq 'off') { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourblue}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; + $active = "<td bgcolor='${Header::colourblue}' width='15%' align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td>"; } else { foreach my $line (@status) { if (($line =~ /"$confighash{$key}[1]".*IPsec SA established/) || @@ -380,46 +361,38 @@ END } } } - print "<td align='center'>$active</td>"; + print "$active</td>"; } + print "</tr></table>"; }
### # Check if there is any OpenVPN connection configured. ###
-if ( -s "${General::swroot}/ovpn/ovpnconfig") - { +if ( $haveovpn ) +{ print <<END; - + <br> + <table width='80%' class='tbl'> <tr> - <td align='center' bgcolor='$Header::colourovpn' width='25%'> - <a href="/cgi-bin/ovpnmain.cgi"><font size='2' color='white'><b>OpenVPN</b></font></a><br> - </td> + <th>$Lang::tr{'openvpn network'}</th> + <th>$Lang::tr{'ip address'}</th> + <th>$Lang::tr{'status'}</th> END # Check if the OpenVPN server for Road Warrior Connections is running and display status information. my %confighash=();
&General::readhash("${General::swroot}/ovpn/settings", %confighash); - - if (($confighash{'ENABLED'} eq "on") || - ($confighash{'ENABLED_BLUE'} eq "on") || - ($confighash{'ENABLED_ORANGE'} eq "on")) { - - my $ovpnip = $confighash{'DOVPN_SUBNET'}; - print <<END; - <td width='30%' align='center'>$ovpnip - <td width='45%' align='center'><font color=$Header::colourgreen>Online</font> -END - - } - # Print the OpenVPN N2N connection status. if ( -d "${General::swroot}/ovpn/n2nconf") { my %confighash=();
&General::readhasharray("${General::swroot}/ovpn/ovpnconfig", %confighash); + my $lines; + my $col=""; foreach my $dkey (keys %confighash) { + $lines++; if (($confighash{$dkey}[3] eq 'net') && (-e "/var/run/$confighash{$dkey}[1]n2n.pid")) { my $tport = $confighash{$dkey}[22]; next if ($tport eq ''); @@ -437,16 +410,24 @@ END } else { $display = $tustate[1]; } - + if ($lines %2){ + $col="bgcolor='$color{'color20'}'"; + }else{ + $col="bgcolor='$color{'color22'}'"; + } + #make cidr from ip + my ($vpnip,$vpnsub) = split("/",$confighash{$dkey}[11]); + my $vpnsub=&General::iporsubtocidr($vpnsub); + my $vpnip="$vpnip/$vpnsub"; print <<END; <tr> - <td align='left' nowrap='nowrap' bgcolor='$color{'color22'}'> + <td align='left' nowrap='nowrap' bgcolor='$Header::colourovpn' width='50%'><font color=white> $confighash{$dkey}[1] </td> - <td align='center'> - $confighash{$dkey}[11] + <td align='center' $col> + $vpnip </td> - <td align='center' bgcolor='$display_colour'> + <td align='center' bgcolor='$display_colour' width='15%'> <b> <font color='#FFFFFF'> $display @@ -459,7 +440,7 @@ END } } } - +&Header::closebox(); # Fireinfo if ( ! -e "/var/ipfire/main/send_profile") { $warnmessage .= "<li><a style='color: white;' href='fireinfo.cgi'>$Lang::tr{'fireinfo please enable'}</a></li>"; @@ -534,28 +515,6 @@ END if ( -e "/var/run/need_reboot" ) { print "<br /><br /><font color='red'>$Lang::tr{'needreboot'}!</font>"; } -} else { - my $message=''; - if ($death) { - $message = $Lang::tr{'ipfire has now shutdown'}; - } else { - $message = $Lang::tr{'ipfire has now rebooted'}; - } - print <<END -<div align='center'> -<table width='100%' bgcolor='#ffffff'> -<tr><td align='center'> -<br /><br /><img src='/images/IPFire.png' /><br /><br /><br /> -</td></tr> -</table> -<br /> -<font size='6'>$message</font> -</div> -END -; - -} - &Header::closebox(); }
diff --git a/html/cgi-bin/logs.cgi/firewalllog.dat b/html/cgi-bin/logs.cgi/firewalllog.dat index 466a3ce..73e62ea 100644 --- a/html/cgi-bin/logs.cgi/firewalllog.dat +++ b/html/cgi-bin/logs.cgi/firewalllog.dat @@ -233,7 +233,7 @@ if ($errormessage) { &Header::closebox(); }
-&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:"); +&Header::openbox('100%', 'left', "$Lang::tr{'settings'}");
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> @@ -308,16 +308,16 @@ if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; } if ($lines != 0) { &oldernewer(); }
print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'chain'}</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'iface'}</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'proto'}</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'source'}<br/>$Lang::tr{'destination'}</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'src port'}<br />$Lang::tr{'dst port'}</b></td> - <td align='center' class='boldbase'><b>Flag</b></td> - <td align='center' class='boldbase'><b>$Lang::tr{'mac address'}</b></td> + <th align='center' class='boldbase'><b>$Lang::tr{'time'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'chain'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'iface'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'proto'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'source'}<br/>$Lang::tr{'destination'}</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'src port'}<br />$Lang::tr{'dst port'}</b></th> + <th align='center' class='boldbase'><b>Flag</b></th> + <th align='center' class='boldbase'><b>$Lang::tr{'mac address'}</b></th> </tr> END ; @@ -353,26 +353,29 @@ foreach $_ (@log) $dstport = "$dstport($servi)";} my @mactemp = split(/:/,$macaddr); $macaddr = "$mactemp[6]:$mactemp[7]:$mactemp[8]:$mactemp[9]:$mactemp[10]:$mactemp[11]"; + my $col=""; if ($lines % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color22'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } print <<END
- <td align='center'>$time</td> - <td align='center'>$comment</td> - <td align='center'>$iface</td> - <td align='center'>$proto</td> - <td align='center'><a href='/cgi-bin/ipinfo.cgi?ip=$srcaddr'>$srcaddr</a><br /><a href='/cgi-bin/ipinfo.cgi?ip=$dstaddr'>$dstaddr</a></td> - <td align='center'>$srcport<br/>$dstport</td> + <td align='center' $col>$time</td> + <td align='center' $col>$comment</td> + <td align='center' $col>$iface</td> + <td align='center' $col>$proto</td> + <td align='center' $col><a href='/cgi-bin/ipinfo.cgi?ip=$srcaddr'>$srcaddr</a><br /><a href='/cgi-bin/ipinfo.cgi?ip=$dstaddr'>$dstaddr</a></td> + <td align='center' $col>$srcport<br/>$dstport</td> END ; if ( $fcode ne "" ){ - print "<td align='center'><a href='../country.cgi#$fcode'><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$ccode'></a></td>";} + print "<td align='center' $col><a href='../country.cgi#$fcode'><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$ccode'></a></td>";} else { - print "<td align='center'></td>";} + print "<td align='center' $col></td>";} print <<END - <td align='center'>$macaddr</td> + <td align='center' $col>$macaddr</td> </tr> END ; diff --git a/html/cgi-bin/logs.cgi/firewalllogip.dat b/html/cgi-bin/logs.cgi/firewalllogip.dat index 3ec3f6d..b58f09e 100644 --- a/html/cgi-bin/logs.cgi/firewalllogip.dat +++ b/html/cgi-bin/logs.cgi/firewalllogip.dat @@ -221,7 +221,7 @@ if ($errormessage) { &Header::closebox(); }
-&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:"); +&Header::openbox('100%', 'left', "$Lang::tr{'settings'}");
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> @@ -266,15 +266,15 @@ print <<END </td> <td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day before'}' value='<<' /></td> <td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day after'}' value='>>' /></td> -<td width='20%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> +<td width='20%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> +</tr> +<tr> + <td colspan='3' align='left' valign="left">$Lang::tr{'Number of IPs for the pie chart'}:</td> + <td colspan='3' align='left' valign="center"><input type='text' name='pienumber' value='$pienumber' size='4'></td> + <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> -<table width='100%'> -<tr><td width='20%' align='right' valign="center">$Lang::tr{'Number of IPs for the pie chart'}:</td> - <td width='10%' align='left' valign="center"><input type='text' name='pienumber' value='$pienumber' size='4'></td> - <td width='20%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td></tr> - </table> - </form> +</form> END ;
@@ -403,13 +403,13 @@ if ($showpie != 2 && $pienumber <= 50 && $pienumber != 0) { }
print <<END -<TABLE WIDTH='100%'> +<TABLE WIDTH='100%' class='tbl'> <TR> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'></TD> -<TD WIDTH='30%' ALIGN='CENTER' CLASS='boldbase'><B>IP</B></TD> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'><B>Flag</B></TD> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'><B>Count</B></TD> -<TD WIDTH='30%' ALIGN='CENTER' CLASS='boldbase'><B>Percent</B></TD> +<TH WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'></TH> +<TH WIDTH='30%' ALIGN='CENTER' CLASS='boldbase'><B>IP</B></TH> +<TH WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'><B>Flag</B></TH> +<TH WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'><B>Count</B></TH> +<TH WIDTH='30%' ALIGN='CENTER' CLASS='boldbase'><B>Percent</B></TH> </TR> END ; @@ -419,6 +419,7 @@ my $show=0;
my $s; my $percent; +my $col="";
for($s=0;$s<$lines;$s++) { @@ -426,45 +427,45 @@ for($s=0;$s<$lines;$s++) $percent = $value[$s] * 100 / $linesjc; $percent = sprintf("%.f", $percent); $total = $total + $value[$s]; - if ( ($color % 10) == 1 ){print "<TR BGCOLOR='$color{'color1'}'>\n";} - if ( ($color % 10) == 2 ){print "<TR BGCOLOR='$color{'color2'}'>\n";} - if ( ($color % 10) == 3 ){print "<TR BGCOLOR='$color{'color3'}'>\n";} - if ( ($color % 10) == 4 ){print "<TR BGCOLOR='$color{'color4'}'>\n";} - if ( ($color % 10) == 5 ){print "<TR BGCOLOR='$color{'color5'}'>\n";} - if ( ($color % 10) == 6 ){print "<TR BGCOLOR='$color{'color6'}'>\n";} - if ( ($color % 10) == 7 ){print "<TR BGCOLOR='$color{'color7'}'>\n";} - if ( ($color % 10) == 8 ){print "<TR BGCOLOR='$color{'color8'}'>\n";} - if ( ($color % 10) == 9 ){print "<TR BGCOLOR='$color{'color9'}'>\n";} - if ( ($color % 10) == 0 ){print "<TR BGCOLOR='$color{'color10'}'>\n";} + if ( ($color % 10) == 1 ){print "<TR>"; $col="BGCOLOR='$color{'color1'}'";} + if ( ($color % 10) == 2 ){print "<TR>"; $col="BGCOLOR='$color{'color2'}'";} + if ( ($color % 10) == 3 ){print "<TR>"; $col="BGCOLOR='$color{'color3'}'";} + if ( ($color % 10) == 4 ){print "<TR>"; $col="BGCOLOR='$color{'color4'}'";} + if ( ($color % 10) == 5 ){print "<TR>"; $col="BGCOLOR='$color{'color5'}'";} + if ( ($color % 10) == 6 ){print "<TR>"; $col="BGCOLOR='$color{'color6'}'";} + if ( ($color % 10) == 7 ){print "<TR>"; $col="BGCOLOR='$color{'color7'}'";} + if ( ($color % 10) == 8 ){print "<TR>"; $col="BGCOLOR='$color{'color8'}'";} + if ( ($color % 10) == 9 ){print "<TR>"; $col="BGCOLOR='$color{'color9'}'";} + if ( ($color % 10) == 0 ){print "<TR>"; $col="BGCOLOR='$color{'color10'}'";}
my $gi = Geo::IP::PurePerl->new(); my $ccode = $gi->country_code_by_name($key[$s]); my $fcode = lc($ccode);
$color++; - print "<TD ALIGN='CENTER'><form method='post' action='showrequestfromip.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='ip' value='$key[$s]'> <input type='submit' value='details'></form></TD>"; - print "<TD ALIGN='CENTER'><a href='/cgi-bin/ipinfo.cgi?ip=$key[$s]'>$key[$s]</a></TD>"; + print "<TD ALIGN='CENTER' $col><form method='post' action='showrequestfromip.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='ip' value='$key[$s]'> <input type='submit' value='details'></form></TD>"; + print "<TD ALIGN='CENTER' $col><a href='/cgi-bin/ipinfo.cgi?ip=$key[$s]'>$key[$s]</a></TD>"; if ( $fcode ne "" ){ - print "<TD ALIGN='CENTER'><a href='/cgi-bin/country.cgi#$fcode'><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$ccode'></a></TD>";} + print "<TD ALIGN='CENTER' $col><a href='/cgi-bin/country.cgi#$fcode'><img src='/images/flags/$fcode.png' border='0' align='absmiddle' alt='$ccode'></a></TD>";} else { - print "<TD ALIGN='CENTER'></TD>";} - print "<TD ALIGN='CENTER'>$value[$s]</TD>"; - print "<TD ALIGN='CENTER'>$percent</TD>"; + print "<TD ALIGN='CENTER' $col></TD>";} + print "<TD ALIGN='CENTER' $col>$value[$s]</TD>"; + print "<TD ALIGN='CENTER' $col>$percent</TD>"; print "</TR>"; }
if($cgiparams{'otherspie'} == 2 ){} else{ -if ( ($color % 10) == 1 ){print "<TR BGCOLOR='$color{'color1'}'>\n";} -if ( ($color % 10) == 2 ){print "<TR BGCOLOR='$color{'color2'}'>\n";} -if ( ($color % 10) == 3 ){print "<TR BGCOLOR='$color{'color3'}'>\n";} -if ( ($color % 10) == 4 ){print "<TR BGCOLOR='$color{'color4'}'>\n";} -if ( ($color % 10) == 5 ){print "<TR BGCOLOR='$color{'color5'}'>\n";} -if ( ($color % 10) == 6 ){print "<TR BGCOLOR='$color{'color6'}'>\n";} -if ( ($color % 10) == 7 ){print "<TR BGCOLOR='$color{'color7'}'>\n";} -if ( ($color % 10) == 8 ){print "<TR BGCOLOR='$color{'color8'}'>\n";} -if ( ($color % 10) == 9 ){print "<TR BGCOLOR='$color{'color9'}'>\n";} -if ( ($color % 10) == 0 ){print "<TR BGCOLOR='$color{'color10'}'>\n";} +if ( ($color % 10) == 1 ){print "<TR>"; $col="BGCOLOR='$color{'color1'}'";} +if ( ($color % 10) == 2 ){print "<TR>"; $col="BGCOLOR='$color{'color2'}'";} +if ( ($color % 10) == 3 ){print "<TR>"; $col="BGCOLOR='$color{'color3'}'";} +if ( ($color % 10) == 4 ){print "<TR>"; $col="BGCOLOR='$color{'color4'}'";} +if ( ($color % 10) == 5 ){print "<TR>"; $col="BGCOLOR='$color{'color5'}'";} +if ( ($color % 10) == 6 ){print "<TR>"; $col="BGCOLOR='$color{'color6'}'";} +if ( ($color % 10) == 7 ){print "<TR>"; $col="BGCOLOR='$color{'color7'}'";} +if ( ($color % 10) == 8 ){print "<TR>"; $col="BGCOLOR='$color{'color8'}'";} +if ( ($color % 10) == 9 ){print "<TR>"; $col="BGCOLOR='$color{'color9'}'";} +if ( ($color % 10) == 0 ){print "<TR>"; $col="BGCOLOR='$color{'color10'}'";}
if ( $linesjc ne "0") { @@ -473,11 +474,11 @@ $dif = $linesjc - $total; $percent = $dif * 100 / $linesjc; $percent = sprintf("%.f", $percent); print <<END -<TD ALIGN='CENTER'></TD> -<TD ALIGN='CENTER'>$Lang::tr{'otherip'}</TD> -<TD ALIGN='CENTER'></TD> -<TD ALIGN='CENTER'>$dif</TD> -<TD ALIGN='CENTER'>$percent</TD> +<TD ALIGN='CENTER' $col></TD> +<TD ALIGN='CENTER' $col>$Lang::tr{'otherip'}</TD> +<TD ALIGN='CENTER' $col></TD> +<TD ALIGN='CENTER' $col>$dif</TD> +<TD ALIGN='CENTER' $col>$percent</TD> </TR> END ; diff --git a/html/cgi-bin/logs.cgi/firewalllogport.dat b/html/cgi-bin/logs.cgi/firewalllogport.dat index af9b852..7a32a90 100644 --- a/html/cgi-bin/logs.cgi/firewalllogport.dat +++ b/html/cgi-bin/logs.cgi/firewalllogport.dat @@ -222,7 +222,7 @@ if ($errormessage) { &Header::closebox(); }
-&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:"); +&Header::openbox('100%', 'left', "$Lang::tr{'settings'}");
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> @@ -267,15 +267,15 @@ print <<END </td> <td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day before'}' value='<<' /></td> <td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day after'}' value='>>' /></td> -<td width='20%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> +<td width='20%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td> +</tr> +<tr> + <td colspan='3' align='left' valign="center">$Lang::tr{'Number of Ports for the pie chart'}:</td> + <td colspan='3' align='left' valign="center"><input type='text' name='pienumber' value='$pienumber' size='4'></td> + <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> -<table width='100%'> -<tr><td width='20%' align='right' valign="center">$Lang::tr{'Number of Ports for the pie chart'}:</td> - <td width='10%' align='left' valign="center"><input type='text' name='pienumber' value='$pienumber' size='4'></td> - <td width='20%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td></tr> - </table> - </form> +</form> END ;
@@ -406,12 +406,12 @@ if ($showpie != 2 && $pienumber <= 50 && $pienumber != 0) { }
print <<END -<TABLE WIDTH='100%'> +<TABLE WIDTH='100%' CLASS='tbl'> <TR> -<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'></TD> -<TD WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Port</B></TD> -<TD WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Count</B></TD> -<TD WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Percent</B></TD> +<TH WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'></TH> +<TH WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Port</B></TH> +<TH WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Count</B></TH> +<TH WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Percent</B></TH> </TR> END ; @@ -421,43 +421,45 @@ my $show=0;
my $s; my $percent; +my $col=""; + for($s=0;$s<$lines;$s++) { $show++; $percent = $value[$s] * 100 / $linesjc; $percent = sprintf("%.f", $percent); $total = $total + $value[$s]; - if ( ($color % 10) == 1 ){print "<TR BGCOLOR='$color{'color1'}'>\n";} - if ( ($color % 10) == 2 ){print "<TR BGCOLOR='$color{'color2'}'>\n";} - if ( ($color % 10) == 3 ){print "<TR BGCOLOR='$color{'color3'}'>\n";} - if ( ($color % 10) == 4 ){print "<TR BGCOLOR='$color{'color4'}'>\n";} - if ( ($color % 10) == 5 ){print "<TR BGCOLOR='$color{'color5'}'>\n";} - if ( ($color % 10) == 6 ){print "<TR BGCOLOR='$color{'color6'}'>\n";} - if ( ($color % 10) == 7 ){print "<TR BGCOLOR='$color{'color7'}'>\n";} - if ( ($color % 10) == 8 ){print "<TR BGCOLOR='$color{'color8'}'>\n";} - if ( ($color % 10) == 9 ){print "<TR BGCOLOR='$color{'color9'}'>\n";} - if ( ($color % 10) == 0 ){print "<TR BGCOLOR='$color{'color10'}'>\n";} + if ( ($color % 10) == 1 ){print "<TR>"; $col="BGCOLOR='$color{'color1'}'";} + if ( ($color % 10) == 2 ){print "<TR>"; $col="BGCOLOR='$color{'color2'}'";} + if ( ($color % 10) == 3 ){print "<TR>"; $col="BGCOLOR='$color{'color3'}'";} + if ( ($color % 10) == 4 ){print "<TR>"; $col="BGCOLOR='$color{'color4'}'";} + if ( ($color % 10) == 5 ){print "<TR>"; $col="BGCOLOR='$color{'color5'}'";} + if ( ($color % 10) == 6 ){print "<TR>"; $col="BGCOLOR='$color{'color6'}'";} + if ( ($color % 10) == 7 ){print "<TR>"; $col="BGCOLOR='$color{'color7'}'";} + if ( ($color % 10) == 8 ){print "<TR>"; $col="BGCOLOR='$color{'color8'}'";} + if ( ($color % 10) == 9 ){print "<TR>"; $col="BGCOLOR='$color{'color9'}'";} + if ( ($color % 10) == 0 ){print "<TR>"; $col="BGCOLOR='$color{'color10'}'";}
$color++; - print "<TD ALIGN='CENTER'><form method='post' action='showrequestfromport.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='port' value='$key[$s]'> <input type='submit' value='details'></form></TD>"; - print "<TD ALIGN='CENTER'>$key[$s]</TD>"; - print "<TD ALIGN='CENTER'>$value[$s]</TD>"; - print "<TD ALIGN='CENTER'>$percent</TD>"; + print "<TD ALIGN='CENTER' $col><form method='post' action='showrequestfromport.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='port' value='$key[$s]'> <input type='submit' value='details'></form></TD>"; + print "<TD ALIGN='CENTER' $col>$key[$s]</TD>"; + print "<TD ALIGN='CENTER' $col>$value[$s]</TD>"; + print "<TD ALIGN='CENTER' $col>$percent</TD>"; print "</TR>"; }
if($cgiparams{'otherspie'} == 2 ){} else{ -if ( ($color % 10) == 1 ){print "<TR BGCOLOR='$color{'color1'}'>\n";} -if ( ($color % 10) == 2 ){print "<TR BGCOLOR='$color{'color2'}'>\n";} -if ( ($color % 10) == 3 ){print "<TR BGCOLOR='$color{'color3'}'>\n";} -if ( ($color % 10) == 4 ){print "<TR BGCOLOR='$color{'color4'}'>\n";} -if ( ($color % 10) == 5 ){print "<TR BGCOLOR='$color{'color5'}'>\n";} -if ( ($color % 10) == 6 ){print "<TR BGCOLOR='$color{'color6'}'>\n";} -if ( ($color % 10) == 7 ){print "<TR BGCOLOR='$color{'color7'}'>\n";} -if ( ($color % 10) == 8 ){print "<TR BGCOLOR='$color{'color8'}'>\n";} -if ( ($color % 10) == 9 ){print "<TR BGCOLOR='$color{'color9'}'>\n";} -if ( ($color % 10) == 0 ){print "<TR BGCOLOR='$color{'color10'}'>\n";} +if ( ($color % 10) == 1 ){print "<TR>"; $col="BGCOLOR='$color{'color1'}'";} +if ( ($color % 10) == 2 ){print "<TR>"; $col="BGCOLOR='$color{'color2'}'";} +if ( ($color % 10) == 3 ){print "<TR>"; $col="BGCOLOR='$color{'color3'}'";} +if ( ($color % 10) == 4 ){print "<TR>"; $col="BGCOLOR='$color{'color4'}'";} +if ( ($color % 10) == 5 ){print "<TR>"; $col="BGCOLOR='$color{'color5'}'";} +if ( ($color % 10) == 6 ){print "<TR>"; $col="BGCOLOR='$color{'color6'}'";} +if ( ($color % 10) == 7 ){print "<TR>"; $col="BGCOLOR='$color{'color7'}'";} +if ( ($color % 10) == 8 ){print "<TR>"; $col="BGCOLOR='$color{'color8'}'";} +if ( ($color % 10) == 9 ){print "<TR>"; $col="BGCOLOR='$color{'color9'}'";} +if ( ($color % 10) == 0 ){print "<TR>"; $col="BGCOLOR='$color{'color10'}'";}
if ( $linesjc ne "0") { @@ -466,10 +468,10 @@ $dif = $linesjc - $total; $percent = $dif * 100 / $linesjc; $percent = sprintf("%.f", $percent); print <<END -<TD ALIGN='CENTER'></TD> -<TD ALIGN='CENTER'>$Lang::tr{'otherport'}</TD> -<TD ALIGN='CENTER'>$dif</TD> -<TD ALIGN='CENTER'>$percent</TD> +<TD ALIGN='CENTER' $col></TD> +<TD ALIGN='CENTER' $col>$Lang::tr{'otherport'}</TD> +<TD ALIGN='CENTER' $col>$dif</TD> +<TD ALIGN='CENTER' $col>$percent</TD> </TR> END ; diff --git a/html/cgi-bin/logs.cgi/log.dat b/html/cgi-bin/logs.cgi/log.dat index e2d0244..dacd518 100644 --- a/html/cgi-bin/logs.cgi/log.dat +++ b/html/cgi-bin/logs.cgi/log.dat @@ -354,11 +354,11 @@ if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; } if ($lines != 0) { &oldernewer(); }
print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> - <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td> - <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'section'}</b></td> - <td width='80%'> </td> + <th width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></th> + <th width='10%' align='center' class='boldbase'><b>$Lang::tr{'section'}</b></th> + <th width='80%'> </th> </tr> END ; @@ -383,13 +383,15 @@ foreach $_ (@log) $data = substr ($data,80); #permit correct display in table cell $d .= ' ' . substr ($data,0,80); } - + my $col="";
if ($lines % 2) { - print "<tr bgcolor='$color{'color20'}'>"; } + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color22'}'>"; } - print "<td>$time<td>$sec<td>" .&Header::cleanhtml ("$d", 'y') . "</td></tr>\n"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } + print "<td $col>$time<td $col>$sec<td $col>" .&Header::cleanhtml ("$d", 'y') . "</td></tr>\n"; $lines++; } #print '</tt>'; diff --git a/html/cgi-bin/logs.cgi/proxylog.dat b/html/cgi-bin/logs.cgi/proxylog.dat index da86f89..a1a05b2 100644 --- a/html/cgi-bin/logs.cgi/proxylog.dat +++ b/html/cgi-bin/logs.cgi/proxylog.dat @@ -437,22 +437,25 @@ if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; } print "<p><b>$Lang::tr{'web hits'} $daystr: $lines</b></p>"; if ($lines != 0) { &oldernewer(); } print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> -<td width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td> -<td width='15%' align='center' class='boldbase'><b>$Lang::tr{'source ip'}</b></td> -<td width='12%' align='center' class='boldbase'><b>$Lang::tr{'advproxy NCSA username'}</b></td> -<td width='63%' align='center' class='boldbase'><b>$Lang::tr{'website'}</b></td> +<th width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></th> +<th width='15%' align='center' class='boldbase'><b>$Lang::tr{'source ip'}</b></th> +<th width='12%' align='center' class='boldbase'><b>$Lang::tr{'advproxy NCSA username'}</b></th> +<th width='63%' align='center' class='boldbase'><b>$Lang::tr{'website'}</b></th> </tr> END ; my $ll = 0; +my $col=''; foreach $_ (@log) { if ($ll % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>\n"; } + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } my ($datetime,$ip,$so,$url) = split; my ($SECdt, $MINdt, $HOURdt, $DAYdt, $MONTHdt, $YEARdt) = localtime($datetime); $SECdt = sprintf ("%.02d",$SECdt); @@ -470,10 +473,10 @@ foreach $_ (@log) $DAYdt=''; } print <<END - <td align='center'>$DAYdt$HOURdt:$MINdt:$SECdt</td> - <td align='center'>$ip</td> - <td align='center'>$so</td> - <td align='left'><a href='$url' title='$url' target='_new'>$part</a></td> + <td align='center' $col>$DAYdt$HOURdt:$MINdt:$SECdt</td> + <td align='center' $col>$ip</td> + <td align='center' $col>$so</td> + <td align='left' $col><a href='$url' title='$url' target='_new'>$part</a></td> </tr> END ; diff --git a/html/cgi-bin/logs.cgi/urlfilter.dat b/html/cgi-bin/logs.cgi/urlfilter.dat index 7fb2ff9..ce642e1 100644 --- a/html/cgi-bin/logs.cgi/urlfilter.dat +++ b/html/cgi-bin/logs.cgi/urlfilter.dat @@ -309,18 +309,19 @@ if ($lines)
$lines = 0;
- print "<table width='100%'>\n"; + print "<table width='100%' class='tbl'>"; unless ($cgiparams{'LOGTYPE'} eq 'squidGuard') { print "<tr>\n"; - print "<td align='center'><b>$Lang::tr{'urlfilter time'}</b></td>\n"; - print "<td align='center'><b>$Lang::tr{'urlfilter category'}</b></td>\n"; - print "<td align='center'><b>$Lang::tr{'urlfilter client'}</b></td>\n"; - if ($filtersettings{'ENABLE_USERNAME_LOG'} eq 'on') { print "<td align='center'><b>$Lang::tr{'urlfilter username'}</b></td>\n"; } - print "<td align='center'><b>$Lang::tr{'urlfilter dst'}</b></td>\n"; + print "<th align='center'><b>$Lang::tr{'urlfilter time'}</b></th>\n"; + print "<th align='center'><b>$Lang::tr{'urlfilter category'}</b></th>\n"; + print "<th align='center'><b>$Lang::tr{'urlfilter client'}</b></th>\n"; + if ($filtersettings{'ENABLE_USERNAME_LOG'} eq 'on') { print "<th align='center'><b>$Lang::tr{'urlfilter username'}</b></th>\n"; } + print "<th align='center'><b>$Lang::tr{'urlfilter dst'}</b></th>\n"; print "</tr>\n"; }
+ my $col=""; foreach (@slice) { undef $attr1; undef $attr2; @@ -336,17 +337,23 @@ if ($lines) if (@loginfo[2] =~ /emergency/) { $attr1 .= "<b><font color='$Header::colourerr'>"; $attr2 .= "</font></b>"; } print "<tr>\n"; } else { - if ($lines % 2) { print "<tr bgcolor='$color{'color20'}'>\n"; } else { print "<tr bgcolor='$color{'color22'}'>\n"; } + if ($lines % 2) { + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; + }else { + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; + } } if ($cgiparams{'LOGTYPE'} eq 'squidGuard') { - print "<td nowrap>$time $pid $attr1@loginfo$attr2</td>\n"; + print "<td nowrap $col>$time $pid $attr1@loginfo$attr2</td>\n"; } else { - print "<td width='10%' align='center' nowrap>$time</td>\n"; - print "<td width='11%' align='center' nowrap>$category[1]</td>\n"; - print "<td width='15%' align='center' nowrap>$ip[0]</td>\n"; + print "<td width='10%' align='center' nowrap $col>$time</td>\n"; + print "<td width='11%' align='center' nowrap $col>$category[1]</td>\n"; + print "<td width='15%' align='center' nowrap $col>$ip[0]</td>\n"; if ($filtersettings{'ENABLE_USERNAME_LOG'} eq 'on') { - print "<td width='12%' align='center' nowrap>$loginfo[3]</td>\n"; + print "<td width='12%' align='center' nowrap $col>$loginfo[3]</td>\n"; $site = substr($dsturl,0,55); if (length($dsturl) > 55) { $site .= "..."; } } else { @@ -354,7 +361,7 @@ if ($lines) if (length($dsturl) > 69) { $site .= "..."; } } #print "<td>$site</td>\n"; - print "<td><a href='$dsturl' title='$dsturl' target='_blank'>$site</a></td>\n"; + print "<td $col><a href='$dsturl' title='$dsturl' target='_blank'>$site</a></td>\n"; } print "</tr>\n"; } diff --git a/html/cgi-bin/mac.cgi b/html/cgi-bin/mac.cgi index f95c0d8..1d34363 100644 --- a/html/cgi-bin/mac.cgi +++ b/html/cgi-bin/mac.cgi @@ -192,10 +192,11 @@ END print <<END </tr> <tr> - <td colspan="2"><hr /></td> + <td colspan="2"><br><hr /></td> </tr> <tr> - <td colspan="2"><div align="center"> + <td align='left'><img src='/blob.gif' alt='*' /> $Lang::tr{'this field may be blank'}</td><div align="right"></td> + <td align='right'> END ; if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) { @@ -232,11 +233,6 @@ END print <<END </div></td> </tr> - <tr> - <td colspan="2"align='left'> - <img src='/blob.gif' alt='*' /> $Lang::tr{'this field may be blank'}</td> - </tr> - </table>
END diff --git a/html/cgi-bin/optionsfw.cgi b/html/cgi-bin/optionsfw.cgi index 1893957..00fa1b4 100644 --- a/html/cgi-bin/optionsfw.cgi +++ b/html/cgi-bin/optionsfw.cgi @@ -11,7 +11,6 @@ # $Id: optionsfw.cgi,v 1.1.2.10 2005/10/03 00:34:10 gespinasse Exp $ # # - # enable only the following on debugging purpose #use warnings; #use CGI::Carp 'fatalsToBrowser'; @@ -22,38 +21,49 @@ require "${General::swroot}/header.pl";
my %checked =(); # Checkbox manipulations - -# File used -my $filename = "${General::swroot}/optionsfw/settings"; - our %settings=(); -$settings{'DISABLEPING'} = 'NO'; -$settings{'DROPNEWNOTSYN'} = 'on'; -$settings{'DROPINPUT'} = 'on'; -$settings{'DROPOUTPUT'} = 'on'; -$settings{'DROPPORTSCAN'} = 'on'; -$settings{'DROPWIRELESSINPUT'} = 'on'; -$settings{'DROPWIRELESSFORWARD'} = 'on'; +my %fwdfwsettings=(); +my %configfwdfw=(); +my %configoutgoingfw=();
+my $configfwdfw = "${General::swroot}/firewall/config"; +my $configoutgoing = "${General::swroot}/firewall/outgoing"; my $errormessage = ''; my $warnmessage = ''; +my $filename = "${General::swroot}/optionsfw/settings";
+&General::readhash("${General::swroot}/firewall/settings", %fwdfwsettings); &Header::showhttpheaders();
#Get GUI values &Header::getcgihash(%settings); - if ($settings{'ACTION'} eq $Lang::tr{'save'}) { - $errormessage = $Lang::tr{'new optionsfw later'}; - delete $settings{'__CGI__'};delete $settings{'x'};delete $settings{'y'}; - &General::writehash($filename, %settings); # Save good settings - } else { - &General::readhash($filename, %settings); # Get saved settings and reset to good if needed - } + if ($settings{'defpol'} ne '1'){ + $errormessage .= $Lang::tr{'new optionsfw later'}; + &General::writehash($filename, %settings); # Save good settings + system("/usr/local/bin/firewallctrl"); + }else{ + if ($settings{'POLICY'} ne ''){ + $fwdfwsettings{'POLICY'} = $settings{'POLICY'}; + } + if ($settings{'POLICY1'} ne ''){ + $fwdfwsettings{'POLICY1'} = $settings{'POLICY1'}; + } + my $MODE = $fwdfwsettings{'POLICY'}; + my $MODE1 = $fwdfwsettings{'POLICY1'}; + %fwdfwsettings = (); + $fwdfwsettings{'POLICY'} = "$MODE"; + $fwdfwsettings{'POLICY1'} = "$MODE1"; + &General::writehash("${General::swroot}/firewall/settings", %fwdfwsettings); + &General::readhash("${General::swroot}/firewall/settings", %fwdfwsettings); + system("/usr/local/bin/firewallctrl"); + } + &General::readhash($filename, %settings); # Load good settings +}
&Header::openpage($Lang::tr{'options fw'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); - +&General::readhash($filename, %settings); if ($errormessage) { &Header::openbox('100%', 'left', $Lang::tr{'warning messages'}); print "<font color='red'>$errormessage </font>"; @@ -66,9 +76,12 @@ $checked{'DROPNEWNOTSYN'}{$settings{'DROPNEWNOTSYN'}} = "checked='checked'"; $checked{'DROPINPUT'}{'off'} = ''; $checked{'DROPINPUT'}{'on'} = ''; $checked{'DROPINPUT'}{$settings{'DROPINPUT'}} = "checked='checked'"; -$checked{'DROPOUTPUT'}{'off'} = ''; -$checked{'DROPOUTPUT'}{'on'} = ''; -$checked{'DROPOUTPUT'}{$settings{'DROPOUTPUT'}} = "checked='checked'"; +$checked{'DROPFORWARD'}{'off'} = ''; +$checked{'DROPFORWARD'}{'on'} = ''; +$checked{'DROPFORWARD'}{$settings{'DROPFORWARD'}} = "checked='checked'"; +$checked{'DROPOUTGOING'}{'off'} = ''; +$checked{'DROPOUTGOING'}{'on'} = ''; +$checked{'DROPOUTGOING'}{$settings{'DROPOUTGOING'}} = "checked='checked'"; $checked{'DROPPORTSCAN'}{'off'} = ''; $checked{'DROPPORTSCAN'}{'on'} = ''; $checked{'DROPPORTSCAN'}{$settings{'DROPPORTSCAN'}} = "checked='checked'"; @@ -84,8 +97,23 @@ $checked{'DROPPROXY'}{$settings{'DROPPROXY'}} = "checked='checked'"; $checked{'DROPSAMBA'}{'off'} = ''; $checked{'DROPSAMBA'}{'on'} = ''; $checked{'DROPSAMBA'}{$settings{'DROPSAMBA'}} = "checked='checked'"; +$checked{'SHOWCOLORS'}{'off'} = ''; +$checked{'SHOWCOLORS'}{'on'} = ''; +$checked{'SHOWCOLORS'}{$settings{'SHOWCOLORS'}} = "checked='checked'"; +$checked{'SHOWREMARK'}{'off'} = ''; +$checked{'SHOWREMARK'}{'on'} = ''; +$checked{'SHOWREMARK'}{$settings{'SHOWREMARK'}} = "checked='checked'"; +$checked{'SHOWTABLES'}{'off'} = ''; +$checked{'SHOWTABLES'}{'on'} = ''; +$checked{'SHOWTABLES'}{$settings{'SHOWTABLES'}} = "checked='checked'"; +$checked{'SHOWDROPDOWN'}{'off'} = ''; +$checked{'SHOWDROPDOWN'}{'on'} = ''; +$checked{'SHOWDROPDOWN'}{$settings{'SHOWDROPDOWN'}} = "checked='checked'"; +$selected{'FWPOLICY'}{$settings{'FWPOLICY'}}= 'selected'; +$selected{'FWPOLICY1'}{$settings{'FWPOLICY1'}}= 'selected'; +$selected{'FWPOLICY2'}{$settings{'FWPOLICY2'}}= 'selected';
-&Header::openbox('100%', 'center', $Lang::tr{'options fw'}); +&Header::openbox('100%', 'center',); print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>";
print <<END @@ -96,8 +124,10 @@ print <<END <input type='radio' name='DROPNEWNOTSYN' value='off' $checked{'DROPNEWNOTSYN'}{'off'} /> off</td></tr> <tr><td align='left' width='60%'>$Lang::tr{'drop input'}</td><td align='left'>on <input type='radio' name='DROPINPUT' value='on' $checked{'DROPINPUT'}{'on'} />/ <input type='radio' name='DROPINPUT' value='off' $checked{'DROPINPUT'}{'off'} /> off</td></tr> -<tr><td align='left' width='60%'>$Lang::tr{'drop output'}</td><td align='left'>on <input type='radio' name='DROPOUTPUT' value='on' $checked{'DROPOUTPUT'}{'on'} />/ - <input type='radio' name='DROPOUTPUT' value='off' $checked{'DROPOUTPUT'}{'off'} /> off</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'drop forward'}</td><td align='left'>on <input type='radio' name='DROPFORWARD' value='on' $checked{'DROPFORWARD'}{'on'} />/ + <input type='radio' name='DROPFORWARD' value='off' $checked{'DROPFORWARD'}{'off'} /> off</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'drop outgoing'}</td><td align='left'>on <input type='radio' name='DROPOUTGOING' value='on' $checked{'DROPOUTGOING'}{'on'} />/ + <input type='radio' name='DROPOUTGOING' value='off' $checked{'DROPOUTGOING'}{'off'} /> off</td></tr> <tr><td align='left' width='60%'>$Lang::tr{'drop portscan'}</td><td align='left'>on <input type='radio' name='DROPPORTSCAN' value='on' $checked{'DROPPORTSCAN'}{'on'} />/ <input type='radio' name='DROPPORTSCAN' value='off' $checked{'DROPPORTSCAN'}{'off'} /> off</td></tr> <tr><td align='left' width='60%'>$Lang::tr{'drop wirelessinput'}</td><td align='left'>on <input type='radio' name='DROPWIRELESSINPUT' value='on' $checked{'DROPWIRELESSINPUT'}{'on'} />/ @@ -105,7 +135,8 @@ print <<END <tr><td align='left' width='60%'>$Lang::tr{'drop wirelessforward'}</td><td align='left'>on <input type='radio' name='DROPWIRELESSFORWARD' value='on' $checked{'DROPWIRELESSFORWARD'}{'on'} />/ <input type='radio' name='DROPWIRELESSFORWARD' value='off' $checked{'DROPWIRELESSFORWARD'}{'off'} /> off</td></tr> </table> -<br /> +<br/> + <table width='95%' cellspacing='0'> <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'fw blue'}</b></td></tr> <tr><td align='left' width='60%'>$Lang::tr{'drop proxy'}</td><td align='left'>on <input type='radio' name='DROPPROXY' value='on' $checked{'DROPPROXY'}{'on'} />/ @@ -113,15 +144,77 @@ print <<END <tr><td align='left' width='60%'>$Lang::tr{'drop samba'}</td><td align='left'>on <input type='radio' name='DROPSAMBA' value='on' $checked{'DROPSAMBA'}{'on'} />/ <input type='radio' name='DROPSAMBA' value='off' $checked{'DROPSAMBA'}{'off'} /> off</td></tr> </table> +<br> +<table width='95%' cellspacing='0'> +<tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'fw settings'}</b></td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'fw settings color'}</td><td align='left'>on <input type='radio' name='SHOWCOLORS' value='on' $checked{'SHOWCOLORS'}{'on'} />/ + <input type='radio' name='SHOWCOLORS' value='off' $checked{'SHOWCOLORS'}{'off'} /> off</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'fw settings remark'}</td><td align='left'>on <input type='radio' name='SHOWREMARK' value='on' $checked{'SHOWREMARK'}{'on'} />/ + <input type='radio' name='SHOWREMARK' value='off' $checked{'SHOWREMARK'}{'off'} /> off</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'fw settings ruletable'}</td><td align='left'>on <input type='radio' name='SHOWTABLES' value='on' $checked{'SHOWTABLES'}{'on'} />/ + <input type='radio' name='SHOWTABLES' value='off' $checked{'SHOWTABLES'}{'off'} /> off</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'fw settings dropdown'}</td><td align='left'>on <input type='radio' name='SHOWDROPDOWN' value='on' $checked{'SHOWDROPDOWN'}{'on'} />/ + <input type='radio' name='SHOWDROPDOWN' value='off' $checked{'SHOWDROPDOWN'}{'off'} /> off</td></tr> +</table> +<br /> +<table width='95%' cellspacing='0'> +<tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'fw default drop'}</b></td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'drop action'}</td><td><select name='FWPOLICY'> +<option value='DROP' $selected{'FWPOLICY'}{'DROP'}>DROP</option> +<option value='REJECT' $selected{'FWPOLICY'}{'REJECT'}>REJECT</option></select> +</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'drop action1'}</td><td><select name='FWPOLICY1'> +<option value='DROP' $selected{'FWPOLICY1'}{'DROP'}>DROP</option> +<option value='REJECT' $selected{'FWPOLICY1'}{'REJECT'}>REJECT</option></select> +</td></tr> +<tr><td align='left' width='60%'>$Lang::tr{'drop action2'}</td><td><select name='FWPOLICY2'> +<option value='DROP' $selected{'FWPOLICY2'}{'DROP'}>DROP</option> +<option value='REJECT' $selected{'FWPOLICY2'}{'REJECT'}>REJECT</option></select> +</td></tr> +</table> + <br /> -<table width='10%' cellspacing='0'> -<tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value=$Lang::tr{'save'} /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /></form></td></tr> +<table width='100%' cellspacing='0'> +<tr><td align='right'><form method='post' action='$ENV{'SCRIPT_NAME'}'> +<input type='submit' name='ACTION' value=$Lang::tr{'save'} /> +</form></td></tr> </table> </form> END ; &Header::closebox(); + +&Header::openbox('100%', 'center', $Lang::tr{'fwdfw pol title'}); + if ($fwdfwsettings{'POLICY'} eq 'MODE1'){ $selected{'POLICY'}{'MODE1'} = 'selected'; } else { $selected{'POLICY'}{'MODE1'} = ''; } + if ($fwdfwsettings{'POLICY'} eq 'MODE2'){ $selected{'POLICY'}{'MODE2'} = 'selected'; } else { $selected{'POLICY'}{'MODE2'} = ''; } + if ($fwdfwsettings{'POLICY1'} eq 'MODE1'){ $selected{'POLICY1'}{'MODE1'} = 'selected'; } else { $selected{'POLICY1'}{'MODE1'} = ''; } + if ($fwdfwsettings{'POLICY1'} eq 'MODE2'){ $selected{'POLICY1'}{'MODE2'} = 'selected'; } else { $selected{'POLICY1'}{'MODE2'} = ''; } +print <<END; + <form method='post' action='$ENV{'SCRIPT_NAME'}'> + <table width='100%' border='0'> + <tr><td colspan='3' style='font-weight:bold;color:red;' align='left'>FORWARD </td></tr> + <tr><td colspan='3' align='left'>$Lang::tr{'fwdfw pol text'}</td></tr> + <tr><td colspan='3'><hr /></td></tr> + <tr><td width='15%' align='left'> <select name='POLICY' style="width: 100px"> + <option value='MODE1' $selected{'POLICY'}{'MODE1'}>$Lang::tr{'fwdfw pol block'}</option> + <option value='MODE2' $selected{'POLICY'}{'MODE2'}>$Lang::tr{'fwdfw pol allow'}</option></select> + <input type='submit' name='ACTION' value=$Lang::tr{'save'} /><input type='hidden' name='defpol' value='1'></td> +END + print "</tr></table></form>"; + print"<br><br>"; + print <<END; + <form method='post' action='$ENV{'SCRIPT_NAME'}'> + <table width='100%' border='0'> + <tr><td colspan='3' style='font-weight:bold;color:red;' align='left'>OUTGOING </td></tr> + <tr><td colspan='3' align='left'>$Lang::tr{'fwdfw pol text1'}</td></tr> + <tr><td colspan='3'><hr /></td></tr> + <tr><td width='15%' align='left'> <select name='POLICY1' style="width: 100px"> + <option value='MODE1' $selected{'POLICY1'}{'MODE1'}>$Lang::tr{'fwdfw pol block'}</option> + <option value='MODE2' $selected{'POLICY1'}{'MODE2'}>$Lang::tr{'fwdfw pol allow'}</option></select> + <input type='submit' name='ACTION' value='$Lang::tr{'save'}' /><input type='hidden' name='defpol' value='1'></td> +END + print "</tr></table></form>"; + &Header::closebox(); + &Header::closebigbox(); &Header::closepage(); diff --git a/html/cgi-bin/outgoingfw.cgi b/html/cgi-bin/outgoingfw.cgi deleted file mode 100644 index b417817..0000000 --- a/html/cgi-bin/outgoingfw.cgi +++ /dev/null @@ -1,849 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2005-2010 IPFire Team # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -use strict; -# enable only the following on debugging purpose -#use warnings; -#use CGI::Carp 'fatalsToBrowser'; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -my %outfwsettings = (); -my %checked = (); -my %selected= () ; -my %netsettings = (); -my $errormessage = ""; -my $configentry = ""; -my @configs = (); -my @configline = (); -my $p2pentry = ""; -my @p2ps = (); -my @p2pline = (); - -my $configfile = "/var/ipfire/outgoing/rules"; -my $configpath = "/var/ipfire/outgoing/groups/"; -my $p2pfile = "/var/ipfire/outgoing/p2protocols"; -my $servicefile = "/var/ipfire/outgoing/defaultservices"; - -my %color = (); -my %mainsettings = (); -&General::readhash("${General::swroot}/main/settings", %mainsettings); -&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); - -&General::readhash("${General::swroot}/ethernet/settings", %netsettings); - -&Header::showhttpheaders(); - -### Values that have to be initialized -$outfwsettings{'ACTION'} = ''; -$outfwsettings{'VALID'} = 'yes'; -$outfwsettings{'EDIT'} = 'no'; -$outfwsettings{'NAME'} = ''; -$outfwsettings{'SNET'} = ''; -$outfwsettings{'SIP'} = ''; -$outfwsettings{'SPORT'} = ''; -$outfwsettings{'SMAC'} = ''; -$outfwsettings{'DIP'} = ''; -$outfwsettings{'DPORT'} = ''; -$outfwsettings{'PROT'} = ''; -$outfwsettings{'STATE'} = ''; -$outfwsettings{'DISPLAY_DIP'} = ''; -$outfwsettings{'DISPLAY_DPORT'} = ''; -$outfwsettings{'DISPLAY_SMAC'} = ''; -$outfwsettings{'DISPLAY_SIP'} = ''; -$outfwsettings{'POLICY'} = 'MODE0'; -$outfwsettings{'MODE1LOG'} = 'off'; - -$outfwsettings{'TIME_FROM'} = '00:00'; -$outfwsettings{'TIME_TO'} = '00:00'; - -&General::readhash("${General::swroot}/outgoing/settings", %outfwsettings); -&Header::getcgihash(%outfwsettings); - -############### -# DEBUG DEBUG -#&Header::openbox('100%', 'left', 'DEBUG'); -#my $debugCount = 0; -#foreach my $line (sort keys %outfwsettings) { -#print "$line = $outfwsettings{$line}<br />\n"; -# $debugCount++; -#} -#print " Count: $debugCount\n"; -#&Header::closebox(); -# DEBUG DEBUG -############### - -$selected{'TIME_FROM'}{$outfwsettings{'TIME_FROM'}} = "selected='selected'"; -$selected{'TIME_TO'}{$outfwsettings{'TIME_TO'}} = "selected='selected'"; - -$checked{'MODE1LOG'}{'off'} = ''; -$checked{'MODE1LOG'}{'on'} = ''; -$checked{'MODE1LOG'}{$outfwsettings{'MODE1LOG'}} = "checked='checked'"; -$checked{'TIME_MON'}{'off'} = ''; -$checked{'TIME_MON'}{'on'} = ''; -$checked{'TIME_MON'}{$outfwsettings{'TIME_MON'}} = "checked='checked'"; -$checked{'TIME_TUE'}{'off'} = ''; -$checked{'TIME_TUE'}{'on'} = ''; -$checked{'TIME_TUE'}{$outfwsettings{'TIME_TUE'}} = "checked='checked'"; -$checked{'TIME_WED'}{'off'} = ''; -$checked{'TIME_WED'}{'on'} = ''; -$checked{'TIME_WED'}{$outfwsettings{'TIME_WED'}} = "checked='checked'"; -$checked{'TIME_THU'}{'off'} = ''; -$checked{'TIME_THU'}{'on'} = ''; -$checked{'TIME_THU'}{$outfwsettings{'TIME_THU'}} = "checked='checked'"; -$checked{'TIME_FRI'}{'off'} = ''; -$checked{'TIME_FRI'}{'on'} = ''; -$checked{'TIME_FRI'}{$outfwsettings{'TIME_FRI'}} = "checked='checked'"; -$checked{'TIME_SAT'}{'off'} = ''; -$checked{'TIME_SAT'}{'on'} = ''; -$checked{'TIME_SAT'}{$outfwsettings{'TIME_SAT'}} = "checked='checked'"; -$checked{'TIME_SUN'}{'off'} = ''; -$checked{'TIME_SUN'}{'on'} = ''; -$checked{'TIME_SUN'}{$outfwsettings{'TIME_SUN'}} = "checked='checked'"; - -if ($outfwsettings{'POLICY'} eq 'MODE0'){ $selected{'POLICY'}{'MODE0'} = 'selected'; } else { $selected{'POLICY'}{'MODE0'} = ''; } -if ($outfwsettings{'POLICY'} eq 'MODE1'){ $selected{'POLICY'}{'MODE1'} = 'selected'; } else { $selected{'POLICY'}{'MODE1'} = ''; } -if ($outfwsettings{'POLICY'} eq 'MODE2'){ $selected{'POLICY'}{'MODE2'} = 'selected'; } else { $selected{'POLICY'}{'MODE2'} = ''; } - -# This is a little hack if poeple donŽt mark any date then all will be selected, because they might have forgotten to select -# a valid day. A Rule without any matching day will never work, because the timeranges are new feature people might not notice -# that they have to select a day for the rule. - -if ( $outfwsettings{'TIME_MON'} eq "" && - $outfwsettings{'TIME_TUE'} eq "" && - $outfwsettings{'TIME_WED'} eq "" && - $outfwsettings{'TIME_THU'} eq "" && - $outfwsettings{'TIME_FRI'} eq "" && - $outfwsettings{'TIME_SAT'} eq "" && - $outfwsettings{'TIME_SUN'} eq "" ) - { - $outfwsettings{'TIME_MON'} = "on"; - $outfwsettings{'TIME_TUE'} = "on"; - $outfwsettings{'TIME_WED'} = "on"; - $outfwsettings{'TIME_THU'} = "on"; - $outfwsettings{'TIME_FRI'} = "on"; - $outfwsettings{'TIME_SAT'} = "on"; - $outfwsettings{'TIME_SUN'} = "on"; - } - -&Header::openpage($Lang::tr{'outgoing firewall'}, 1, ''); -&Header::openbigbox('100%', 'left', '', $errormessage); - -############################################################################################################################ -############################################################################################################################ - -if ($outfwsettings{'ACTION'} eq $Lang::tr{'reset'}) -{ - $outfwsettings{'POLICY'}='MODE0'; - unlink $configfile; - system("/usr/bin/touch $configfile"); - my $MODE = $outfwsettings{'POLICY'}; - %outfwsettings = (); - $outfwsettings{'POLICY'} = "$MODE"; - &General::writehash("${General::swroot}/outgoing/settings", %outfwsettings); -} -if ($outfwsettings{'ACTION'} eq $Lang::tr{'save'}) -{ - my $MODE = $outfwsettings{'POLICY'}; - my $MODE1LOG = $outfwsettings{'MODE1LOG'}; - %outfwsettings = (); - $outfwsettings{'POLICY'} = "$MODE"; - $outfwsettings{'MODE1LOG'} = "$MODE1LOG"; - &General::writehash("${General::swroot}/outgoing/settings", %outfwsettings); - system("/usr/local/bin/outgoingfwctrl"); -} -if ($outfwsettings{'ACTION'} eq 'enable') -{ - open( FILE, "< $p2pfile" ) or die "Unable to read $p2pfile"; - @p2ps = <FILE>; - close FILE; - open( FILE, "> $p2pfile" ) or die "Unable to write $p2pfile"; - foreach $p2pentry (sort @p2ps) - { - @p2pline = split( /;/, $p2pentry ); - if ($p2pline[1] eq $outfwsettings{'P2PROT'}) { - print FILE "$p2pline[0];$p2pline[1];on;\n"; - } else { - print FILE "$p2pline[0];$p2pline[1];$p2pline[2];\n"; - } - } - close FILE; - system("/usr/local/bin/outgoingfwctrl"); -} -if ($outfwsettings{'ACTION'} eq 'disable') -{ - open( FILE, "< $p2pfile" ) or die "Unable to read $p2pfile"; - @p2ps = <FILE>; - close FILE; - open( FILE, "> $p2pfile" ) or die "Unable to write $p2pfile"; - foreach $p2pentry (sort @p2ps) - { - @p2pline = split( /;/, $p2pentry ); - if ($p2pline[1] eq $outfwsettings{'P2PROT'}) { - print FILE "$p2pline[0];$p2pline[1];off;\n"; - } else { - print FILE "$p2pline[0];$p2pline[1];$p2pline[2];\n"; - } - } - close FILE; - system("/usr/local/bin/outgoingfwctrl"); -} -if ($outfwsettings{'ACTION'} eq $Lang::tr{'edit'}) -{ - open( FILE, "< $configfile" ) or die "Unable to read $configfile"; - @configs = <FILE>; - close FILE; - open( FILE, "> $configfile" ) or die "Unable to write $configfile"; - foreach $configentry (sort @configs) - { - @configline = split( /;/, $configentry ); - - $configline[10] = "on" if not exists $configline[11]; - $configline[11] = "on" if not exists $configline[11]; - $configline[12] = "on" if not exists $configline[12]; - $configline[13] = "on" if not exists $configline[13]; - $configline[14] = "on" if not exists $configline[14]; - $configline[15] = "on" if not exists $configline[15]; - $configline[16] = "on" if not exists $configline[16]; - $configline[17] = "00:00" if not exists $configline[17]; - $configline[18] = "00:00" if not exists $configline[18]; - - unless (($configline[0] eq $outfwsettings{'STATE'}) && - ($configline[1] eq $outfwsettings{'ENABLED'}) && - ($configline[2] eq $outfwsettings{'SNET'}) && - ($configline[3] eq $outfwsettings{'PROT'}) && - ($configline[4] eq $outfwsettings{'NAME'}) && - ($configline[5] eq $outfwsettings{'SIP'}) && - ($configline[6] eq $outfwsettings{'SMAC'}) && - ($configline[7] eq $outfwsettings{'DIP'}) && - ($configline[9] eq $outfwsettings{'LOG'}) && - ($configline[8] eq $outfwsettings{'DPORT'}) && - ($configline[10] eq $outfwsettings{'TIME_MON'}) && - ($configline[11] eq $outfwsettings{'TIME_TUE'}) && - ($configline[12] eq $outfwsettings{'TIME_WED'}) && - ($configline[13] eq $outfwsettings{'TIME_THU'}) && - ($configline[14] eq $outfwsettings{'TIME_FRI'}) && - ($configline[15] eq $outfwsettings{'TIME_SAT'}) && - ($configline[16] eq $outfwsettings{'TIME_SUN'}) && - ($configline[17] eq $outfwsettings{'TIME_FROM'}) && - ($configline[18] eq $outfwsettings{'TIME_TO'})) - { - print FILE $configentry; - } - } - close FILE; - $selected{'SNET'}{"$outfwsettings{'SNET'}"} = 'selected'; - $selected{'PROT'}{"$outfwsettings{'PROT'}"} = 'selected'; - $selected{'LOG'}{"$outfwsettings{'LOG'}"} = 'selected'; - &addrule(); - &Header::closebigbox(); - &Header::closepage(); - exit - system("/usr/local/bin/outgoingfwctrl"); -} -if ($outfwsettings{'ACTION'} eq $Lang::tr{'delete'}) -{ - open( FILE, "< $configfile" ) or die "Unable to read $configfile"; - @configs = <FILE>; - close FILE; - open( FILE, "> $configfile" ) or die "Unable to write $configfile"; - foreach $configentry (sort @configs) - { - @configline = split( /;/, $configentry ); - - $configline[10] = "on" if not exists $configline[11]; - $configline[11] = "on" if not exists $configline[11]; - $configline[12] = "on" if not exists $configline[12]; - $configline[13] = "on" if not exists $configline[13]; - $configline[14] = "on" if not exists $configline[14]; - $configline[15] = "on" if not exists $configline[15]; - $configline[16] = "on" if not exists $configline[16]; - $configline[17] = "00:00" if not exists $configline[17]; - $configline[18] = "00:00" if not exists $configline[18]; - - unless (($configline[0] eq $outfwsettings{'STATE'}) && - ($configline[1] eq $outfwsettings{'ENABLED'}) && - ($configline[2] eq $outfwsettings{'SNET'}) && - ($configline[3] eq $outfwsettings{'PROT'}) && - ($configline[4] eq $outfwsettings{'NAME'}) && - ($configline[5] eq $outfwsettings{'SIP'}) && - ($configline[6] eq $outfwsettings{'SMAC'}) && - ($configline[7] eq $outfwsettings{'DIP'}) && - ($configline[9] eq $outfwsettings{'LOG'}) && - ($configline[8] eq $outfwsettings{'DPORT'}) && - ($configline[10] eq $outfwsettings{'TIME_MON'}) && - ($configline[11] eq $outfwsettings{'TIME_TUE'}) && - ($configline[12] eq $outfwsettings{'TIME_WED'}) && - ($configline[13] eq $outfwsettings{'TIME_THU'}) && - ($configline[14] eq $outfwsettings{'TIME_FRI'}) && - ($configline[15] eq $outfwsettings{'TIME_SAT'}) && - ($configline[16] eq $outfwsettings{'TIME_SUN'}) && - ($configline[17] eq $outfwsettings{'TIME_FROM'}) && - ($configline[18] eq $outfwsettings{'TIME_TO'})) - { - print FILE $configentry; - } - } - close FILE; - system("/usr/local/bin/outgoingfwctrl"); -} -if ($outfwsettings{'ACTION'} eq $Lang::tr{'add'}) -{ - if ( $outfwsettings{'VALID'} eq 'yes' ) { - - if ( $outfwsettings{'SNET'} eq "all" ) { - $outfwsettings{'SIP'} =""; - $outfwsettings{'SMAC'}=""; - } - open( FILE, ">> $configfile" ) or die "Unable to write $configfile"; - print FILE <<END -$outfwsettings{'STATE'};$outfwsettings{'ENABLED'};$outfwsettings{'SNET'};$outfwsettings{'PROT'};$outfwsettings{'NAME'};$outfwsettings{'SIP'};$outfwsettings{'SMAC'};$outfwsettings{'DIP'};$outfwsettings{'DPORT'};$outfwsettings{'LOG'};$outfwsettings{'TIME_MON'};$outfwsettings{'TIME_TUE'};$outfwsettings{'TIME_WED'};$outfwsettings{'TIME_THU'};$outfwsettings{'TIME_FRI'};$outfwsettings{'TIME_SAT'};$outfwsettings{'TIME_SUN'};$outfwsettings{'TIME_FROM'};$outfwsettings{'TIME_TO'}; -END -; - close FILE; - system("/usr/local/bin/outgoingfwctrl"); - } else { - $outfwsettings{'ACTION'} = 'Add rule'; - } -} -if ($outfwsettings{'ACTION'} eq $Lang::tr{'Add Rule'}) -{ - &addrule(); - exit -} - -&General::readhash("${General::swroot}/outgoing/settings", %outfwsettings); - -if ($errormessage) { - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<class name='base'>$errormessage\n"; - print " </class>\n"; - &Header::closebox(); -} - -############################################################################################################################ -############################################################################################################################ - -if ($outfwsettings{'POLICY'} ne 'MODE0'){ - &Header::openbox('100%', 'center', 'Rules'); - print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='submit' name='ACTION' value='$Lang::tr{'Add Rule'}' /> - </form> -END -; - open( FILE, "< $configfile" ) or die "Unable to read $configfile"; - @configs = <FILE>; - close FILE; - if (@configs) { - print <<END - <hr /> - <table border='0' width='100%' cellspacing='0'> - <tr bgcolor='$color{'color22'}'> - <td width='14%' align='center'><b>$Lang::tr{'protocol'}</b></td> - <td width='14%' align='center'><b>$Lang::tr{'network'}</b></td> - <td width='14%' align='center'><b>$Lang::tr{'destination'}</b></td> - <td width='14%' align='center'><b>$Lang::tr{'description'}</b></td> - <td width='14%' align='center'><b>$Lang::tr{'policy'}</b></td> - <td width='16%' align='center'><b>$Lang::tr{'logging'}</b></td> - <td width='14%' align='center'><b>$Lang::tr{'action'}</b></td> -END -; - foreach $configentry (sort @configs) - { - @configline = split( /;/, $configentry ); - $outfwsettings{'STATE'} = $configline[0]; - $outfwsettings{'ENABLED'} = $configline[1]; - $outfwsettings{'SNET'} = $configline[2]; - $outfwsettings{'PROT'} = $configline[3]; - $outfwsettings{'NAME'} = $configline[4]; - $outfwsettings{'SIP'} = $configline[5]; - $outfwsettings{'SMAC'} = $configline[6]; - $outfwsettings{'DIP'} = $configline[7]; - $outfwsettings{'DPORT'} = $configline[8]; - $outfwsettings{'LOG'} = $configline[9]; - - $configline[10] = "on" if not exists $configline[11]; - $configline[11] = "on" if not exists $configline[11]; - $configline[12] = "on" if not exists $configline[12]; - $configline[13] = "on" if not exists $configline[13]; - $configline[14] = "on" if not exists $configline[14]; - $configline[15] = "on" if not exists $configline[15]; - $configline[16] = "on" if not exists $configline[16]; - $configline[17] = "00:00" if not exists $configline[17]; - $configline[18] = "00:00" if not exists $configline[18]; - - $outfwsettings{'TIME_MON'} = $configline[10]; - $outfwsettings{'TIME_TUE'} = $configline[11]; - $outfwsettings{'TIME_WED'} = $configline[12]; - $outfwsettings{'TIME_THU'} = $configline[13]; - $outfwsettings{'TIME_FRI'} = $configline[14]; - $outfwsettings{'TIME_SAT'} = $configline[15]; - $outfwsettings{'TIME_SUN'} = $configline[16]; - $outfwsettings{'TIME_FROM'} = $configline[17]; - $outfwsettings{'TIME_TO'} = $configline[18]; - - if ($outfwsettings{'DIP'} eq ''){ $outfwsettings{'DISPLAY_DIP'} = 'ALL'; } else { $outfwsettings{'DISPLAY_DIP'} = $outfwsettings{'DIP'}; } - if ($outfwsettings{'DPORT'} eq ''){ $outfwsettings{'DISPLAY_DPORT'} = 'ALL'; } else { $outfwsettings{'DISPLAY_DPORT'} = $outfwsettings{'DPORT'}; } - if ($outfwsettings{'STATE'} eq 'DENY'){ $outfwsettings{'DISPLAY_STATE'} = "<img src='/images/stock_stop.png' alt='DENY' />"; } - if ($outfwsettings{'STATE'} eq 'ALLOW'){ $outfwsettings{'DISPLAY_STATE'} = "<img src='/images/stock_ok.png' alt='ALLOW' />"; } - if ((($outfwsettings{'POLICY'} eq 'MODE1') && ($outfwsettings{'STATE'} eq 'ALLOW')) || (($outfwsettings{'POLICY'} eq 'MODE2') && ($outfwsettings{'STATE'} eq 'DENY'))){ - if ( $outfwsettings{'ENABLED'} eq "on" ){ - print "<tr bgcolor='$color{'color20'}'>"; - } else { - print "<tr bgcolor='$color{'color18'}'>"; - } - print <<END - <td align='center'>$outfwsettings{'PROT'} - <td align='center'>$outfwsettings{'SNET'} - <td align='center'>$outfwsettings{'DISPLAY_DIP'}:$outfwsettings{'DISPLAY_DPORT'} - <td align='center'>$outfwsettings{'NAME'} - <td align='center'>$outfwsettings{'DISPLAY_STATE'} - <td align='center'>$outfwsettings{'LOG'} - <td align='center'> - <table border='0' cellpadding='0' cellspacing='0'><tr> - <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='PROT' value='$outfwsettings{'PROT'}' /> - <input type='hidden' name='STATE' value='$outfwsettings{'STATE'}' /> - <input type='hidden' name='SNET' value='$outfwsettings{'SNET'}' /> - <input type='hidden' name='DPORT' value='$outfwsettings{'DPORT'}' /> - <input type='hidden' name='DIP' value='$outfwsettings{'DIP'}' /> - <input type='hidden' name='SIP' value='$outfwsettings{'SIP'}' /> - <input type='hidden' name='NAME' value='$outfwsettings{'NAME'}' /> - <input type='hidden' name='SMAC' value='$outfwsettings{'SMAC'}' /> - <input type='hidden' name='ENABLED' value='$outfwsettings{'ENABLED'}' /> - <input type='hidden' name='LOG' value='$outfwsettings{'LOG'}' /> - <input type='hidden' name='TIME_MON' value='$outfwsettings{'TIME_MON'}' /> - <input type='hidden' name='TIME_TUE' value='$outfwsettings{'TIME_TUE'}' /> - <input type='hidden' name='TIME_WED' value='$outfwsettings{'TIME_WED'}' /> - <input type='hidden' name='TIME_THU' value='$outfwsettings{'TIME_THU'}' /> - <input type='hidden' name='TIME_FRI' value='$outfwsettings{'TIME_FRI'}' /> - <input type='hidden' name='TIME_SAT' value='$outfwsettings{'TIME_SAT'}' /> - <input type='hidden' name='TIME_SUN' value='$outfwsettings{'TIME_SUN'}' /> - <input type='hidden' name='TIME_FROM' value='$outfwsettings{'TIME_FROM'}' /> - <input type='hidden' name='TIME_TO' value='$outfwsettings{'TIME_TO'}' /> - <input type='hidden' name='ACTION' value=$Lang::tr{'edit'} /> - <input type='image' src='/images/edit.gif' width="20" height="20" alt=$Lang::tr{'edit'} /> - </form> - <td><form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='PROT' value='$outfwsettings{'PROT'}' /> - <input type='hidden' name='STATE' value='$outfwsettings{'STATE'}' /> - <input type='hidden' name='SNET' value='$outfwsettings{'SNET'}' /> - <input type='hidden' name='DPORT' value='$outfwsettings{'DPORT'}' /> - <input type='hidden' name='DIP' value='$outfwsettings{'DIP'}' /> - <input type='hidden' name='SIP' value='$outfwsettings{'SIP'}' /> - <input type='hidden' name='NAME' value='$outfwsettings{'NAME'}' /> - <input type='hidden' name='SMAC' value='$outfwsettings{'SMAC'}' /> - <input type='hidden' name='ENABLED' value='$outfwsettings{'ENABLED'}' /> - <input type='hidden' name='LOG' value='$outfwsettings{'LOG'}' /> - <input type='hidden' name='TIME_MON' value='$outfwsettings{'TIME_MON'}' /> - <input type='hidden' name='TIME_TUE' value='$outfwsettings{'TIME_TUE'}' /> - <input type='hidden' name='TIME_WED' value='$outfwsettings{'TIME_WED'}' /> - <input type='hidden' name='TIME_THU' value='$outfwsettings{'TIME_THU'}' /> - <input type='hidden' name='TIME_FRI' value='$outfwsettings{'TIME_FRI'}' /> - <input type='hidden' name='TIME_SAT' value='$outfwsettings{'TIME_SAT'}' /> - <input type='hidden' name='TIME_SUN' value='$outfwsettings{'TIME_SUN'}' /> - <input type='hidden' name='TIME_FROM' value='$outfwsettings{'TIME_FROM'}' /> - <input type='hidden' name='TIME_TO' value='$outfwsettings{'TIME_TO'}' /> - <input type='hidden' name='ACTION' value=$Lang::tr{'delete'} /> - <input type='image' src='/images/delete.gif' width="20" height="20" alt=$Lang::tr{'delete'} /> - </form></table> -END -; - if (($outfwsettings{'SIP'}) || ($outfwsettings{'SMAC'})) { - - unless ($outfwsettings{'SIP'}) { - $outfwsettings{'DISPLAY_SIP'} = 'ALL'; - } else { - $outfwsettings{'DISPLAY_SIP'} = $outfwsettings{'SIP'}; - } - - unless ($outfwsettings{'SMAC'}) { - $outfwsettings{'DISPLAY_SMAC'} = 'ALL'; - print "<tr><td /><td align='left'>$Lang::tr{'source ip or net'}: </td>"; - print "<td align='left' colspan='2'>$outfwsettings{'DISPLAY_SIP'}</td>"; - } else { - $outfwsettings{'DISPLAY_SMAC'} = $outfwsettings{'SMAC'}; - print "<tr><td /><td align='left'>$Lang::tr{'source'} $Lang::tr{'mac address'}: </td>"; - print "<td align='left' colspan='2'>$outfwsettings{'DISPLAY_SMAC'}</td>"; - } - } - print <<END - <tr><td width='14%' align='right'>$Lang::tr{'time'} - </td> - <td width='14%' align='left'> -END -; - if ($outfwsettings{'TIME_MON'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy monday'}</font>,"; - if ($outfwsettings{'TIME_TUE'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy tuesday'}</font>,"; - if ($outfwsettings{'TIME_WED'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy wednesday'}</font>,"; - if ($outfwsettings{'TIME_THU'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy thursday'}</font>,"; - if ($outfwsettings{'TIME_FRI'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy friday'}</font>,"; - if ($outfwsettings{'TIME_SAT'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy saturday'}</font>,"; - if ($outfwsettings{'TIME_SUN'} eq 'on') { print "<font color='$Header::colourgreen'>";} - else { print "<font color='$Header::colourred'>";} - print "$Lang::tr{'advproxy sunday'}</font>"; - print <<END - </td> - <td width='22%' align='center'>$Lang::tr{'advproxy from'} $outfwsettings{'TIME_FROM'}</td> - <td width='22%' align='center'>$Lang::tr{'advproxy to'} $outfwsettings{'TIME_TO'}</td> - </form> -END -; - } - } -if ($outfwsettings{'POLICY'} eq 'MODE1'){ -print <<END - <tr bgcolor='$color{'color20'}'><form method='post' action='$ENV{'SCRIPT_NAME'}'> - <td align='center'>all - <td align='center'>all - <td align='center'>ALL - <td align='center'>drop - <td align='center'><img src='/images/stock_stop.png' alt='DENY' /> - <td align='center'>on <input type='radio' name='MODE1LOG' value='on' $checked{'MODE1LOG'}{'on'} /><input type='radio' name='MODE1LOG' value='off' $checked{'MODE1LOG'}{'off'} /> off - <td align='center'><input type='hidden' name='ACTION' value=$Lang::tr{'save'} /><input type='image' src='/images/media-floppy.png' width="18" height="18" alt=$Lang::tr{'save'} /></form></tr> - <table border='0' cellpadding='0' cellspacing='0'><tr> - <td> - <td></table> -END -; -} - print <<END - </table> -END -; - - } - &Header::closebox(); -} - -if ($outfwsettings{'POLICY'} ne 'MODE0'){ - open( FILE, "< $p2pfile" ) or die "Unable to read $p2pfile"; - @p2ps = <FILE>; - close FILE; - &Header::openbox('100%', 'center', 'P2P-Block'); - print <<END - <table width='40%'> - <tr bgcolor='$color{'color22'}'><td width='66%' align=center><b>$Lang::tr{'protocol'}</b> - <td width='33%' align=center><b>$Lang::tr{'status'}</b> -END -; - my $id = 1; - foreach $p2pentry (sort @p2ps) - { - @p2pline = split( /;/, $p2pentry ); - print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> -END -; - print "\t\t\t<tr bgcolor='$color{'color20'}'>\n"; - print <<END - <td width='66%' align='center'>$p2pline[0]: - <td width='33%' align='center'><input type='hidden' name='P2PROT' value='$p2pline[1]' /> -END -; - if ($p2pline[2] eq 'on') { - print <<END - <input type='hidden' name='ACTION' value='disable' /> - <input type='image' name='submit' src='/images/stock_ok.png' alt='$Lang::tr{'outgoing firewall p2p allow'}' title='$Lang::tr{'outgoing firewall p2p allow'}'/> -END -; - } else { - print <<END - <input type='hidden' name='ACTION' value='enable' /> - <input type='image' name='submit' src='/images/stock_stop.png' alt='$Lang::tr{'outgoing firewall p2p deny'}' title='$Lang::tr{'outgoing firewall p2p deny'}' /> -END -; - } - print <<END - </form> -END -; - } - print <<END - </table> - <br />$Lang::tr{'outgoing firewall p2p description 1'} <img src='/images/stock_ok.png' align='absmiddle' alt='$Lang::tr{'outgoing firewall p2p deny'}'> $Lang::tr{'outgoing firewall p2p description 2'} <img src='/images/stock_stop.png' align='absmiddle' alt='$Lang::tr{'outgoing firewall p2p deny'}'> $Lang::tr{'outgoing firewall p2p description 3'} -END -; - &Header::closebox(); -} - -&Header::openbox('100%', 'center', 'Policy'); -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='100%'> - <tr><td width='10%' align='left'><b>$Lang::tr{'mode'} 0:</b><td width='90%' align='left' colspan='2'>$Lang::tr{'outgoing firewall mode0'}</td></tr> - <tr><td width='10%' align='left'><b>$Lang::tr{'mode'} 1:</b><td width='90%' align='left' colspan='2'>$Lang::tr{'outgoing firewall mode1'}</td></tr> - <tr><td width='10%' align='left'><b>$Lang::tr{'mode'} 2:</b><td width='90%' align='left' colspan='2'>$Lang::tr{'outgoing firewall mode2'}</td></tr> - <tr><td colspan='3'><hr /></td></tr> - <tr><td width='10%' align='left'> <select name='POLICY' style="width: 85px"><option value='MODE0' $selected{'POLICY'}{'MODE0'}>$Lang::tr{'mode'} 0</option><option value='MODE1' $selected{'POLICY'}{'MODE1'}>$Lang::tr{'mode'} 1</option><option value='MODE2' $selected{'POLICY'}{'MODE2'}>$Lang::tr{'mode'} 2</option></select> - <td width='45%' align='left'><input type='submit' name='ACTION' value=$Lang::tr{'save'} /> - <td width='45%' align='left'> -END -; - if ($outfwsettings{'POLICY'} ne 'MODE0') { - print <<END - $Lang::tr{'outgoing firewall reset'}: <input type='submit' name='ACTION' value=$Lang::tr{'reset'} /> -END -; - } -print <<END - </table> - </form> -END -; -&Header::closebox(); - -############################################################################################################################ -############################################################################################################################ - -sub addrule -{ - &Header::openbox('100%', 'center', $Lang::tr{'Add Rule'}); - if ($outfwsettings{'ENABLED'} eq 'on') { $selected{'ENABLED'} = 'checked'; } - $selected{'TIME_FROM'}{$outfwsettings{'TIME_FROM'}} = "selected='selected'"; - $selected{'TIME_TO'}{$outfwsettings{'TIME_TO'}} = "selected='selected'"; -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='80%'> - <tr> - <td width='20%' align='right'>$Lang::tr{'description'}: <img src='/blob.gif' /></td> - <td width='30%' align='left'><input type='text' name='NAME' maxlength='30' value='$outfwsettings{'NAME'}' /></td> - <td width='20%' align='right' colspan='2'>$Lang::tr{'active'}:</td> - <td width='30%' align='left' colspan='2'><input type='checkbox' name='ENABLED' $selected{'ENABLED'} /></td> - </tr> - <tr> - <td width='20%' align='right'>$Lang::tr{'protocol'}</td> - <td width='30%' align='left'> - <select name='PROT'> - <option value='all' $selected{'PROT'}{'all'}>All</option> - <option value='tcp' $selected{'PROT'}{'tcp'}>TCP</option> - <option value='udp' $selected{'PROT'}{'udp'}>UDP</option> - <option value='gre' $selected{'PROT'}{'gre'}>GRE</option> - <option value='esp' $selected{'PROT'}{'esp'}>ESP</option> - </select> - </td> - <td width='20%' align='right' colspan='2'>$Lang::tr{'policy'}:</td> - <td width='30%' align='left' colspan='2'> -END -; - if ($outfwsettings{'POLICY'} eq 'MODE1'){ - print "\t\t\t\tALLOW<input type='hidden' name='STATE' value='ALLOW' />\n"; - } elsif ($outfwsettings{'POLICY'} eq 'MODE2'){ - print "\t\t\t\tDENY<input type='hidden' name='STATE' value='DENY' />\n"; - } - print <<END - </td> - </tr> - <tr> - <td width='20%' align='right'>$Lang::tr{'source'}:</td> - <td width='30%' align='left'> - <select name='SNET'> - <optgroup label='---'> - <option value='all' $selected{'SNET'}{'ALL'}>$Lang::tr{'all'}</option> - <optgroup label='$Lang::tr{'mac address'}'> - <option value='mac' $selected{'SNET'}{'mac'}>$Lang::tr{'source'} $Lang::tr{'mac address'}</option> - </optgroup> - <optgroup label='$Lang::tr{'ip address'}'> - <option value='ip' $selected{'SNET'}{'ip'}>$Lang::tr{'source ip or net'}</option> - <option value='red' $selected{'SNET'}{'red'}>$Lang::tr{'red'} IP</option> - </optgroup> - <optgroup label='$Lang::tr{'alt vpn'}'> - <option value='ovpn' $selected{'SNET'}{'ovpn'}>OpenVPN $Lang::tr{'interface'}</option> - </optgroup> - <optgroup label='$Lang::tr{'network'}'> - <option value='green' $selected{'SNET'}{'green'}>$Lang::tr{'green'}</option> -END -; - if (&Header::blue_used()){ - print "\t\t\t\t\t<option value='blue' $selected{'SNET'}{'blue'}>$Lang::tr{'wireless'}</option>\n"; - } - if (&Header::orange_used()){ - print "\t\t\t\t\t<option value='orange' $selected{'SNET'}{'orange'}>$Lang::tr{'dmz'}</option>\n"; - } - print <<END - </optgroup> - <optgroup label='IP $Lang::tr{'advproxy NCSA group'}'> -END -; - my @ipgroups = qx(ls $configpath/ipgroups/); - foreach (sort @ipgroups){ - chomp($_); - print "\t\t\t\t\t<option value='$_' $selected{'SNET'}{$_}>$_</option>\n"; - } - print <<END - </optgroup> - <optgroup label='MAC $Lang::tr{'advproxy NCSA group'}'> -END -; - my @macgroups = qx(ls $configpath/macgroups/); - foreach (sort @macgroups){ - chomp($_); - print "\t\t\t\t\t<option value='$_' $selected{'SNET'}{$_}>$_</option>\n"; - } - print <<END - </optgroup> - </select> - </td> - <td align='right' colspan='4'><font color='red'>$Lang::tr{'outgoing firewall warning'}</font></td> - </tr> - <tr> - <td align='right' colspan='4' >$Lang::tr{'source ip or net'}<img src='/blob.gif' /></td> - <td align='left' colspan='4' ><input type='text' name='SIP' value='$outfwsettings{'SIP'}' /></td> - </tr> - <tr> - <td align='right' colspan='4' >$Lang::tr{'source'} $Lang::tr{'mac address'}: <img src='/blob.gif' /> - <td align='left' colspan='4' ><input type='text' name='SMAC' maxlength='23' value='$outfwsettings{'SMAC'}' /> - </tr> - <tr> - <td width='20%' align='right'>$Lang::tr{'logging'}:</td> - <td width='30%' align='left'> - <select name='LOG'> - <option value='$Lang::tr{'active'}' $selected{'LOG'}{$Lang::tr{'active'}}>$Lang::tr{'active'}</option> - <option value='$Lang::tr{'inactive'}' $selected{'LOG'}{$Lang::tr{'inactive'}}>$Lang::tr{'inactive'}</option> - </select> - </td> - <td width='20%' align='right' colspan='2' /> - <td width='30%' align='left' colspan='2' /> - <tr> - <td width='20%' align='right'>$Lang::tr{'destination ip or net'}: <img src='/blob.gif' /></td> - <td width='30%' align='left'><input type='text' name='DIP' value='$outfwsettings{'DIP'}' /></td> - <td width='20%' align='right' colspan='2'>$Lang::tr{'destination port'}(s) <img src='/blob.gif' /></td> - <td width='30%' align='left' colspan='2'><input type='text' name='DPORT' value='$outfwsettings{'DPORT'}' /></td> - </tr> - <tr> - <td width='20%' align='right'>$Lang::tr{'time'}:</td> - <td width='30%' align='left'>$Lang::tr{'advproxy monday'} $Lang::tr{'advproxy tuesday'} $Lang::tr{'advproxy wednesday'} $Lang::tr{'advproxy thursday'} $Lang::tr{'advproxy friday'} $Lang::tr{'advproxy saturday'} $Lang::tr{'advproxy sunday'}</td> - <td width='20%' align='right' colspan='2' /> - <td width='15%' align='left'>$Lang::tr{'advproxy from'}</td> - <td width='15%' align='left'>$Lang::tr{'advproxy to'}</td> - </tr> - <tr> - <td width='20%' align='right'></td> - <td width='30%' align='left'> - <input type='checkbox' name='TIME_MON' $checked{'TIME_MON'}{'on'} /> - <input type='checkbox' name='TIME_TUE' $checked{'TIME_TUE'}{'on'} /> - <input type='checkbox' name='TIME_WED' $checked{'TIME_WED'}{'on'} /> - <input type='checkbox' name='TIME_THU' $checked{'TIME_THU'}{'on'} /> - <input type='checkbox' name='TIME_FRI' $checked{'TIME_FRI'}{'on'} /> - <input type='checkbox' name='TIME_SAT' $checked{'TIME_SAT'}{'on'} /> - <input type='checkbox' name='TIME_SUN' $checked{'TIME_SUN'}{'on'} /> - </td> - <td width='20%' align='right' colspan='2' /> - <td width='15%' align='left'> - <select name='TIME_FROM'> -END -; -for (my $i=0;$i<=23;$i++) { - $i = sprintf("%02s",$i); - for (my $j=0;$j<=45;$j+=15) { - $j = sprintf("%02s",$j); - my $time = $i.":".$j; - print "\t\t\t\t\t<option $selected{'TIME_FROM'}{$time}>$i:$j</option>\n"; - } -} -print <<END - </select> - </td> - <td width='15%' align='left'><select name='TIME_TO'> -END -; -for (my $i=0;$i<=23;$i++) { - $i = sprintf("%02s",$i); - for (my $j=0;$j<=45;$j+=15) { - $j = sprintf("%02s",$j); - my $time = $i.":".$j; - print "\t\t\t\t\t<option $selected{'TIME_TO'}{$time}>$i:$j</option>\n"; - } -} -print <<END - </select> - </td> - </tr> - <tr> - <td colspan='6' /> - <tr> - <tr> - <td width='40%' align='right' colspan='2'><img src='/blob.gif' />$Lang::tr{'this field may be blank'}</td> - <td width='60%' align='left' colspan='4'><input type='submit' name='ACTION' value=$Lang::tr{'add'} /></td> - </table></form> -END -; - &Header::closebox(); - -if ($outfwsettings{'POLICY'} eq 'MODE1' || $outfwsettings{'POLICY'} eq 'MODE2') -{ -&Header::openbox('100%', 'center', 'Quick Add'); - - open( FILE, "< /var/ipfire/outgoing/defaultservices" ) or die "Unable to read default services"; - my @defservices = <FILE>; - close FILE; - -print "<table width='100%'><tr bgcolor='$color{'color20'}'><td><b>$Lang::tr{'service'}</b></td><td><b>$Lang::tr{'description'}</b></td><td><b>$Lang::tr{'port'}</b></td><td><b>$Lang::tr{'protocol'}</b></td><td><b>$Lang::tr{'source net'}</b></td><td><b>$Lang::tr{'logging'}</b></td><td><b>$Lang::tr{'action'}</b></td></tr>"; -foreach my $serviceline(@defservices) - { - my @service = split(/,/,$serviceline); - print <<END - <tr><form method='post' action='$ENV{'SCRIPT_NAME'}'> - <td>$service[0]<input type='hidden' name='NAME' value='@service[0]' /></td> - <td>$service[3]</td> - <td><a href='http://isc.sans.org/port_details.php?port=$service[1]' target='top'>$service[1]</a><input type='hidden' name='DPORT' value='@service[1]' /></td> - <td>$service[2]<input type='hidden' name='PROT' value='@service[2]' /></td> - <td><select name='SNET'><option value='all' $selected{'SNET'}{'ALL'}>$Lang::tr{'all'}</option><option value='green' $selected{'SNET'}{'green'}>$Lang::tr{'green'}</option> -END -; - if (&Header::blue_used()){ - print "<option value='blue' $selected{'SNET'}{'blue'}>$Lang::tr{'wireless'}</option>"; - } - if (&Header::orange_used()){ - print "<option value='orange' $selected{'SNET'}{'orange'}>$Lang::tr{'dmz'}</option>"; - } - print <<END - </select></td> - <td><select name='LOG'><option value='$Lang::tr{'active'}'>$Lang::tr{'active'}</option><option value='$Lang::tr{'inactive'}' 'selected'>$Lang::tr{'inactive'}</option></select></td><td> - <input type='hidden' name='ACTION' value=$Lang::tr{'add'} /> - <input type='image' alt='$Lang::tr{'add'}' src='/images/add.gif' /> - <input type='hidden' name='ENABLED' value='on' /> -END -; - if ($outfwsettings{'POLICY'} eq 'MODE1'){ print "<input type='hidden' name='STATE' value='ALLOW' /></form></td></tr>";} - elsif ($outfwsettings{'POLICY'} eq 'MODE2'){print "<input type='hidden' name='STATE' value='DENY' /></form></td></tr>";} - } - print "</table>"; - &Header::closebox(); - } -} - -&Header::closebigbox(); -&Header::closepage(); diff --git a/html/cgi-bin/outgoinggrp.cgi b/html/cgi-bin/outgoinggrp.cgi deleted file mode 100644 index 1c3d695..0000000 --- a/html/cgi-bin/outgoinggrp.cgi +++ /dev/null @@ -1,466 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2005-2010 IPFire Team # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -use strict; -# enable only the following on debugging purpose -#use warnings; -#use CGI::Carp 'fatalsToBrowser'; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -my %outgrpsettings = (); -my %netsettings = (); -my %selected= () ; -my $errormessage = ""; - -my $configpath = "/var/ipfire/outgoing/groups/"; -my $servicefile = "/var/ipfire/outgoing/defaultservices"; - -my %color = (); -my %mainsettings = (); -&General::readhash("${General::swroot}/main/settings", %mainsettings); -&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); - -&General::readhash("${General::swroot}/ethernet/settings", %netsettings); - -&Header::showhttpheaders(); - -### Values that have to be initialized -$outgrpsettings{'ACTION'} = ''; -$outgrpsettings{'ipgroup'} = 'none'; -$outgrpsettings{'macgroup'} = 'none'; - -&Header::getcgihash(%outgrpsettings); -delete $outgrpsettings{'__CGI__'};delete $outgrpsettings{'x'};delete $outgrpsettings{'y'}; - -$selected{'ipgroup'}{$outgrpsettings{'ipgroup'}} = "selected='selected'"; -$selected{'macgroup'}{$outgrpsettings{'macgroup'}} = "selected='selected'"; - -&Header::openpage($Lang::tr{'outgoing firewall groups'}, 1, ''); -&Header::openbigbox('100%', 'left', '', $errormessage); - -############### -# DEBUG DEBUG -# &Header::openbox('100%', 'left', 'DEBUG'); -# my $debugCount = 0; -# foreach my $line (sort keys %outgrpsettings) { -# print "$line = $outgrpsettings{$line}<br />\n"; -# $debugCount++; -# } -# print "Count: $debugCount\n"; -# &Header::closebox(); -# DEBUG DEBUG -############### - -############################################################################################################################ -############################################################################################################################ - -if ($outgrpsettings{'ACTION'} eq 'newipgroup') -{ - &newipgroup(); -}elsif ($outgrpsettings{'ACTION'} eq 'editipgroup') -{ - &editipgroup(); -} elsif ($outgrpsettings{'ACTION'} eq 'deleteipgroup' ) { - unlink("$configpath/ipgroups/$outgrpsettings{'ipgroup'}"); -} elsif ($outgrpsettings{'ACTION'} eq 'addipgroup') { - - if ( -e "$configpath/macgroups/$outgrpsettings{'ipgroup'}" ){ - $errormessage = "$Lang::tr{'outgoing firewall group error'}"; - } elsif ( $outgrpsettings{'ipgroup'} =~ /\W/ ){ - $errormessage = $Lang::tr{'name must only contain characters'}." - ".$outgrpsettings{'ipgroup'}; - } elsif ( $outgrpsettings{'ipgroup'} eq "all" || $outgrpsettings{'ipgroup'} eq "red" || $outgrpsettings{'ipgroup'} eq "blue" || - $outgrpsettings{'ipgroup'} eq "green" || $outgrpsettings{'ipgroup'} eq "orange" || $outgrpsettings{'ipgroup'} eq "ip" || - $outgrpsettings{'ipgroup'} eq "mac" || $outgrpsettings{'ipgroup'} eq "ovpn" || $outgrpsettings{'ipgroup'} eq "ipsec" ) { - $errormessage = "$Lang::tr{'outgoing firewall reserved groupname'}"; - } else { - open (FILE, ">$configpath/ipgroups/$outgrpsettings{'ipgroup'}") or die "Can't save $outgrpsettings{'ipgroup'} settings $!"; - $outgrpsettings{'ipgroupcontent'} =~ s/\s*$//; - flock (FILE, 2); - print FILE $outgrpsettings{'ipgroupcontent'}."\n"; - close FILE; - } -} - -if ($outgrpsettings{'ACTION'} eq 'newmacgroup') -{ - &newmacgroup(); -}elsif ($outgrpsettings{'ACTION'} eq 'editmacgroup') -{ - &editmacgroup(); -}elsif ($outgrpsettings{'ACTION'} eq 'deletemacgroup' ) { - unlink("$configpath/macgroups/$outgrpsettings{'macgroup'}"); -} elsif ($outgrpsettings{'ACTION'} eq 'addmacgroup') { - - if ( -e "$configpath/ipgroups/$outgrpsettings{'macgroup'}" ){ - $errormessage = "$Lang::tr{'outgoing firewall group error'}"; - } elsif ( $outgrpsettings{'macgroup'} =~ /\W/ ){ - $errormessage = $Lang::tr{'name must only contain characters'}." - ".$outgrpsettings{'macgroup'}; - } elsif ( $outgrpsettings{'macgroup'} eq "all" || $outgrpsettings{'macgroup'} eq "red" || $outgrpsettings{'macgroup'} eq "blue" || - $outgrpsettings{'macgroup'} eq "green" || $outgrpsettings{'macgroup'} eq "orange" || $outgrpsettings{'macgroup'} eq "ip" || - $outgrpsettings{'macgroup'} eq "mac" || $outgrpsettings{'macgroup'} eq "ovpn" || $outgrpsettings{'macgroup'} eq "ipsec" ) { - $errormessage = "$Lang::tr{'outgoing firewall reserved groupname'}"; - } else { - open (FILE, ">$configpath/macgroups/$outgrpsettings{'macgroup'}") or die "Can't save $outgrpsettings{'macgroup'} settings $!"; - $outgrpsettings{'macgroupcontent'} =~ s/\s*$//; - flock (FILE, 2); - print FILE $outgrpsettings{'macgroupcontent'}."\n"; - close FILE; - } -} - -if ($errormessage) -{ - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<class name='base'><font color=red>$errormessage\n</font>"; - print " </class>\n"; - &Header::closebox(); -} - -############################################################################################################################ -############################################################################################################################ - -my @ipgroups = qx(ls $configpath/ipgroups/); -if ($outgrpsettings{'ipgroup'} eq "none" and $#ipgroups >= 0 ){ $outgrpsettings{'ipgroup'} = $ipgroups[0];} - -my $ipgroupcontent = `cat $configpath/ipgroups/$outgrpsettings{'ipgroup'} 2>/dev/null`; -$ipgroupcontent =~ s/\n/<br />/g; - -&Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall ip groups'}); - -print <<END -<a name="outgoing showipgroup"></a> -<br /> -<form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showipgroup'> -<table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall ip groups'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'><select name='ipgroup' style="width: 200px"> -END -; -foreach my $member (@ipgroups) {chomp $member;print" <option value='$member' $selected{'ipgroup'}{$member}>$member</option>\n";} -print <<END - </select></td> - <td align='left'> - <input type='hidden' name='ACTION' value='showipgroup' /> - <input type='image' alt='$Lang::tr{'outgoing firewall view group'}' title='$Lang::tr{'outgoing firewall view group'}' src='/images/format-justify-fill.png' /> - </td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td colspan='3' align='left'><font size=1>$ipgroupcontent</font></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td colspan='3' align='center'><font size=1>$Lang::tr{'outgoing firewall ip groups'} - $outgrpsettings{'ipgroup'}</font></td> - </tr> -</table> -</form> -<table width='10%' cellspacing='0'> -<tr> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='editipgroup' /> - <input type='hidden' name='ipgroup' value='$outgrpsettings{'ipgroup'}' /> - <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='newipgroup' /> - <input type='image' alt='$Lang::tr{'new'}' title='$Lang::tr{'new'}' src='/images/list-add.png' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='saveipgroup' /> - <input type='hidden' name='ipgroup' value='$outgrpsettings{'ipgroup'}' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='deleteipgroup' /> - <input type='hidden' name='ipgroup' value='$outgrpsettings{'ipgroup'}' /> - <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' /> - </form> - </td> -</tr> -</table> - -END -; -&Header::closebox(); - -############################################################################################################################ -############################################################################################################################ - -my @macgroups = qx(ls $configpath/macgroups/); -if ($outgrpsettings{'macgroup'} eq "none" and $#macgroups >= 0 ){ $outgrpsettings{'macgroup'} = $macgroups[0];} - -my $macgroupcontent = `cat $configpath/macgroups/$outgrpsettings{'macgroup'} 2>/dev/null`; -$macgroupcontent =~ s/\n/<br />/g; - -&Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall mac groups'}); - -print <<END -<a name="outgoing showmacgroup"></a> -<br /> -<form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showmacgroup'> -<table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall mac groups'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'><select name='macgroup' style="width: 200px"> -END -; -foreach my $member (@macgroups) {chomp $member;print" <option value='$member' $selected{'macgroup'}{$member}>$member</option>\n";} -print <<END - </select></td> - <td align='left'> - <input type='hidden' name='ACTION' value='showmacgroup' /> - <input type='image' alt='$Lang::tr{'outgoing firewall view group'}' title='$Lang::tr{'outgoing firewall view group'}' src='/images/format-justify-fill.png' /> - </td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td colspan='3' align='left'><font size=1>$macgroupcontent</font></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td colspan='3' align='center'><font size=1>$Lang::tr{'outgoing firewall mac groups'} - $outgrpsettings{'macgroup'}</font></td> - </tr> -</table> -</form> -<table width='10%' cellspacing='0'> -<tr> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='editmacgroup' /> - <input type='hidden' name='macgroup' value='$outgrpsettings{'macgroup'}' /> - <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='newmacgroup' /> - <input type='image' alt='$Lang::tr{'new'}' title='$Lang::tr{'new'}' src='/images/list-add.png' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='savemacgroup' /> - <input type='hidden' name='macgroup' value='$outgrpsettings{'macgroup'}' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </form> - </td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='deletemacgroup' /> - <input type='hidden' name='macgroup' value='$outgrpsettings{'macgroup'}' /> - <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' /> - </form> - </td> -</tr> -</table> - -END -; -&Header::closebox(); - -&Header::closebigbox(); -&Header::closepage(); - - -############################################################################################################################ -############################################################################################################################ - - -sub newipgroup -{ - &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall add ip group'}); - -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showipgroup'> - <table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall add ip group'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'> - <input type='text' name='ipgroup' value='newipgroup' size="30" /> - </td> - <td align='left'> - <input type='hidden' name='ACTION' value='addipgroup' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </td> - </tr> - <tr> - <td align='left' colspan='3'> - <textarea name="ipgroupcontent" cols="40" rows="5" Wrap="off">192.168.1.0/24\n192.168.3.0/255.255.255.0\n192.168.0.1\n192.168.0.2\n</textarea> - </td> - </tr> - </table> - </form> -END -; - &Header::closebox(); - &Header::closebigbox(); - &Header::closepage(); - exit 0; -} - -sub editipgroup -{ -my $ipgroupcontent = `cat $configpath/ipgroups/$outgrpsettings{'ipgroup'} 2>/dev/null`; - - &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall edit ip group'}); - -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall edit ip group'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'> - <input type='text' name='ipgroup' value='$outgrpsettings{'ipgroup'}' size='30' readonly style='color:$color{'color20'}'/> - </td> - <td align='left'> - <input type='hidden' name='ACTION' value='addipgroup' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </td> - </tr> - <tr> - <td align='left' colspan='3'> - <textarea name="ipgroupcontent" cols="40" rows="5" Wrap="off">$ipgroupcontent</textarea> - </td> - </tr> - </table> - </form> -END -; - &Header::closebox(); - &Header::closebigbox(); - &Header::closepage(); - exit 0; -} - -sub newmacgroup -{ - &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall add mac group'}); - -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showmacgroup'> - <table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall add mac group'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'> - <input type='text' name='macgroup' value='newmacgroup' size="30" /> - </td> - <td align='left'> - <input type='hidden' name='ACTION' value='addmacgroup' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </td> - </tr> - <tr> - <td align='left' colspan='3'> - <textarea name="macgroupcontent" cols="20" rows="5" Wrap="off">00:24:F6:04:5F:2b\n14:26:36:5A:5F:2B\n</textarea> - </td> - </tr> - </table> - </form> -END -; - &Header::closebox(); - &Header::closebigbox(); - &Header::closepage(); - exit 0; -} - -sub editmacgroup -{ -my $macgroupcontent = `cat $configpath/macgroups/$outgrpsettings{'macgroup'} 2>/dev/null`; - - &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall edit mac group'}); - -print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing editmacgroup'> - <table width='95%' cellspacing='0'> - <tr> - <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall edit mac group'}</b></td> - </tr> - <tr> - <td colspan='3' align='left'><br /></td> - </tr> - <tr> - <td align='left' colspan='2'> - <input type='text' name='macgroup' value='$outgrpsettings{'macgroup'}' size='30' readonly style='color:$color{'color20'}'/> - </td> - <td align='left'> - <input type='hidden' name='ACTION' value='addmacgroup' /> - <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> - </td> - </tr> - <tr> - <td align='left' colspan='3'> - <textarea name="macgroupcontent" cols="20" rows="5" Wrap="off">$macgroupcontent</textarea> - </td> - </tr> - </table> - </form> -END -; - &Header::closebox(); - &Header::closebigbox(); - &Header::closepage(); - exit 0; -} diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi index 2f3ac4d..75b6c75 100644 --- a/html/cgi-bin/ovpnmain.cgi +++ b/html/cgi-bin/ovpnmain.cgi @@ -30,6 +30,7 @@ use File::Copy; use File::Temp qw/ tempfile tempdir /; use strict; use Archive::Zip qw(:ERROR_CODES :CONSTANTS); +use Sort::Naturally; require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; @@ -68,6 +69,7 @@ my $confighost="${General::swroot}/fwhosts/customhosts"; my $configgrp="${General::swroot}/fwhosts/customgroups"; my $customnet="${General::swroot}/fwhosts/customnetworks"; my $name; +my $col=""; &General::readhash("${General::swroot}/ethernet/settings", %netsettings); $cgiparams{'ENABLED'} = 'off'; $cgiparams{'ENABLED_BLUE'} = 'off'; @@ -165,49 +167,29 @@ sub deletebackupcert unlink ("${General::swroot}/ovpn/certs/$hexvalue.pem"); } } - sub checkportfw { - my $KEY2 = $_[0]; # key2 - my $SRC_PORT = $_[1]; # src_port - my $PROTOCOL = $_[2]; # protocol - my $SRC_IP = $_[3]; # sourceip - - my $pfwfilename = "${General::swroot}/portfw/config"; - open(FILE, $pfwfilename) or die 'Unable to open config file.'; - my @pfwcurrent = <FILE>; - close(FILE); - my $pfwkey1 = 0; # used for finding last sequence number used - foreach my $pfwline (@pfwcurrent) - { - my @pfwtemp = split(/,/,$pfwline); - - chomp ($pfwtemp[8]); - if ($KEY2 eq "0"){ # if key2 is 0 then it is a portfw addition - if ( $SRC_PORT eq $pfwtemp[3] && - $PROTOCOL eq $pfwtemp[2] && - $SRC_IP eq $pfwtemp[7]) - { - $errormessage = "$Lang::tr{'source port in use'} $SRC_PORT"; - } - # Check if key2 = 0, if it is then it is a port forward entry and we want the sequence number - if ( $pfwtemp[1] eq "0") { - $pfwkey1=$pfwtemp[0]; - } - # Darren Critchley - Duplicate or overlapping Port range check - if ($pfwtemp[1] eq "0" && - $PROTOCOL eq $pfwtemp[2] && - $SRC_IP eq $pfwtemp[7] && - $errormessage eq '') - { - &portchecks($SRC_PORT, $pfwtemp[5]); -# &portchecks($pfwtemp[3], $pfwtemp[5]); -# &portchecks($pfwtemp[3], $SRC_IP); + my $DPORT = shift; + my $DPROT = shift; + my %natconfig =(); + my $confignat = "${General::swroot}/firewall/config"; + $DPROT= uc ($DPROT); + &General::readhasharray($confignat, %natconfig); + foreach my $key (sort keys %natconfig){ + my @portarray = split (/|/,$natconfig{$key}[30]); + foreach my $value (@portarray){ + if ($value =~ /:/i){ + my ($a,$b) = split (":",$value); + if ($DPROT eq $natconfig{$key}[12] && $DPORT gt $a && $DPORT lt $b){ + $errormessage= "$Lang::tr{'source port in use'} $DPORT"; + } + }else{ + if ($DPROT eq $natconfig{$key}[12] && $DPORT eq $value){ + $errormessage= "$Lang::tr{'source port in use'} $DPORT"; + } + } } } - } -# $errormessage="$KEY2 $SRC_PORT $PROTOCOL $SRC_IP"; - - return; + return; }
sub checkportoverlap @@ -239,32 +221,6 @@ sub checkportinc return 0; } } -# Darren Critchley - Duplicate or overlapping Port range check -sub portchecks -{ - my $p1 = $_[0]; # New port range - my $p2 = $_[1]; # existing port range -# $_ = $_[0]; - our ($prtrange1, $prtrange2); - $prtrange1 = 0; -# if (m/:/ && $prtrange1 == 1) { # comparing two port ranges -# unless (&checkportoverlap($p1,$p2)) { -# $errormessage = "$Lang::tr{'source port overlaps'} $p1"; -# } -# } - if (m/:/ && $prtrange1 == 0 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($p2,$p1)) { - $errormessage = "$Lang::tr{'srcprt within existing'} $p1"; - } - } - $prtrange1 = 1; - if (! m/:/ && $prtrange1 == 1 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($p1,$p2)) { - $errormessage = "$Lang::tr{'srcprt range overlaps'} $p2"; - } - } - return; -}
# Darren Critchley - certain ports are reserved for IPFire # TCP 67,68,81,222,445 @@ -1144,7 +1100,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg
if ($cgiparams{'ENABLED'} eq 'on'){ - &checkportfw(0,$cgiparams{'DDEST_PORT'},$cgiparams{'DPROTOCOL'},'0.0.0.0'); + &checkportfw($cgiparams{'DDEST_PORT'},$cgiparams{'DPROTOCOL'}); } if ($errormessage) { goto SETTINGS_ERROR; } @@ -1207,6 +1163,12 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg $errormessage = $Lang::tr{'invalid port'}; goto SETTINGS_ERROR; } + + if ($cgiparams{'DDEST_PORT'} <= 1023) { + $errormessage = $Lang::tr{'ovpn port in root range'}; + goto SETTINGS_ERROR; + } + $vpnsettings{'ENABLED_BLUE'} = $cgiparams{'ENABLED_BLUE'}; $vpnsettings{'ENABLED_ORANGE'} =$cgiparams{'ENABLED_ORANGE'}; $vpnsettings{'ENABLED'} = $cgiparams{'ENABLED'}; @@ -2616,7 +2578,7 @@ END } print <<END - <table width='100%' border='0' cellpadding='0' cellspacing='1'> + <table width='100%' cellpadding='0' cellspacing='1'> <tr> <td class='boldbase' align='center' nowrap='nowrap' width='20%'><b>$Lang::tr{'ccd name'}</td><td class='boldbase' align='center' width='8%'><b>$Lang::tr{'network'}</td><td class='boldbase' width='8%' align='center' nowrap='nowrap'><b>$Lang::tr{'ccd used'}</td><td width='1%' align='center'></td><td width='1%' align='center'></td></tr> END @@ -2670,15 +2632,15 @@ END # <td><b>$Lang::tr{'protocol'}</b></td> # protocol temp removed print <<END - <table width='100%' border='0' cellpadding='2' cellspacing='0'> + <table width='100%' cellpadding='2' cellspacing='0' class='tbl'> <tr> - <td><b>$Lang::tr{'common name'}</b></td> - <td><b>$Lang::tr{'real address'}</b></td> - <td><b>$Lang::tr{'virtual address'}</b></td> - <td><b>$Lang::tr{'loged in at'}</b></td> - <td><b>$Lang::tr{'bytes sent'}</b></td> - <td><b>$Lang::tr{'bytes received'}</b></td> - <td><b>$Lang::tr{'last activity'}</b></td> + <th><b>$Lang::tr{'common name'}</b></th> + <th><b>$Lang::tr{'real address'}</b></th> + <th><b>$Lang::tr{'virtual address'}</b></th> + <th><b>$Lang::tr{'loged in at'}</b></th> + <th><b>$Lang::tr{'bytes sent'}</b></th> + <th><b>$Lang::tr{'bytes received'}</b></th> + <th><b>$Lang::tr{'last activity'}</b></th> </tr> END ; @@ -2729,22 +2691,23 @@ END } my $user2 = @users; if ($user2 >= 1){ - for (my $idx = 1; $idx <= $user2; $idx++){ + for (my $idx = 1; $idx <= $user2; $idx++){ if ($idx % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; - } else { - print "<tr bgcolor='$color{'color22'}'>\n"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; + } else { + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } - print "<td align='left'>$users[$idx-1]{'CommonName'}</td>"; - print "<td align='left'>$users[$idx-1]{'RealAddress'}</td>"; - print "<td align='left'>$users[$idx-1]{'VirtualAddress'}</td>"; - print "<td align='left'>$users[$idx-1]{'Since'}</td>"; - print "<td align='left'>$users[$idx-1]{'BytesSent'}</td>"; - print "<td align='left'>$users[$idx-1]{'BytesReceived'}</td>"; - print "<td align='left'>$users[$idx-1]{'LastRef'}</td>"; -# print "<td align='left'>$users[$idx-1]{'Proto'}</td>"; - } - } + print "<td align='left' $col>$users[$idx-1]{'CommonName'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'RealAddress'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'VirtualAddress'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'Since'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'BytesSent'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'BytesReceived'}</td>"; + print "<td align='left' $col>$users[$idx-1]{'LastRef'}</td>"; + } + } print "</table>"; print <<END @@ -3577,10 +3540,24 @@ if ($cgiparams{'TYPE'} eq 'net') { unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams{'NAME'}.conf") or die "Removing Configfile fail: $!"; rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Removing Directory fail: $!"; goto VPNCONF_ERROR; - } + } + + if ($cgiparams{'DEST_PORT'} <= 1023) { + $errormessage = $Lang::tr{'ovpn port in root range'}; + unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams{'NAME'}.conf") or die "Removing Configfile fail: $!"; + rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Removing Directory fail: $!"; + goto VPNCONF_ERROR; + }
- if ($cgiparams{'OVPN_MGMT'} eq '') { - $cgiparams{'OVPN_MGMT'} = $cgiparams{'DEST_PORT'}; + if ($cgiparams{'OVPN_MGMT'} eq '') { + $cgiparams{'OVPN_MGMT'} = $cgiparams{'DEST_PORT'}; + } + + if ($cgiparams{'OVPN_MGMT'} <= 1023) { + $errormessage = $Lang::tr{'ovpn mgmt in root range'}; + unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams{'NAME'}.conf") or die "Removing Configfile fail: $!"; + rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Removing Directory fail: $!"; + goto VPNCONF_ERROR; }
} @@ -3990,7 +3967,6 @@ if ($cgiparams{'TYPE'} eq 'net') { if ( -e "${General::swroot}/ovpn/ccd/$confighash{$key}[2]"){ unlink "${General::swroot}/ovpn/ccd/$cgiparams{'CERT_NAME'}"; } - $confighash{$key}[2] =~ s/ /_/gi; open ( CCDRWCONF,'>',"${General::swroot}/ovpn/ccd/$confighash{$key}[2]") or die "Unable to create clientconfigfile $!"; print CCDRWCONF "# OpenVPN clientconfig from ccd extension by Copymaster#\n\n"; if($cgiparams{'CHECK1'} eq 'dynamic'){ @@ -4579,7 +4555,7 @@ END
#default setzen if ($cgiparams{'DCIPHER'} eq '') { - $cgiparams{'DCIPHER'} = 'BF-CBC'; + $cgiparams{'DCIPHER'} = 'AES-256-CBC'; } if ($cgiparams{'DDEST_PORT'} eq '') { $cgiparams{'DDEST_PORT'} = '1194'; @@ -4619,6 +4595,9 @@ END $selected{'DCIPHER'}{'AES-128-CBC'} = ''; $selected{'DCIPHER'}{'AES-192-CBC'} = ''; $selected{'DCIPHER'}{'AES-256-CBC'} = ''; + $selected{'DCIPHER'}{'CAMELLIA-128-CBC'} = ''; + $selected{'DCIPHER'}{'CAMELLIA-192-CBC'} = ''; + $selected{'DCIPHER'}{'CAMELLIA-256-CBC'} = ''; $selected{'DCIPHER'}{$cgiparams{'DCIPHER'}} = 'SELECTED'; $checked{'DCOMPLZO'}{'off'} = ''; $checked{'DCOMPLZO'}{'on'} = ''; @@ -4687,19 +4666,24 @@ END <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'comp-lzo'}</td> <td><input type='checkbox' name='DCOMPLZO' $checked{'DCOMPLZO'}{'on'} /></td> <td class='boldbase' nowrap='nowrap'>$Lang::tr{'cipher'}</td> - <td><select name='DCIPHER'><option value='DES-CBC' $selected{'DCIPHER'}{'DES-CBC'}>DES-CBC</option> - <option value='DES-EDE-CBC' $selected{'DCIPHER'}{'DES-EDE-CBC'}>DES-EDE-CBC</option> - <option value='DES-EDE3-CBC' $selected{'DCIPHER'}{'DES-EDE3-CBC'}>DES-EDE3-CBC</option> - <option value='DESX-CBC' $selected{'DCIPHER'}{'DESX-CBC'}>DESX-CBC</option> - <option value='RC2-CBC' $selected{'DCIPHER'}{'RC2-CBC'}>RC2-CBC</option> - <option value='RC2-40-CBC' $selected{'DCIPHER'}{'RC2-40-CBC'}>RC2-40-CBC</option> - <option value='RC2-64-CBC' $selected{'DCIPHER'}{'RC2-64-CBC'}>RC2-64-CBC</option> - <option value='BF-CBC' $selected{'DCIPHER'}{'BF-CBC'}>BF-CBC</option> - <option value='CAST5-CBC' $selected{'DCIPHER'}{'CAST5-CBC'}>CAST5-CBC</option> - <option value='AES-128-CBC' $selected{'DCIPHER'}{'AES-128-CBC'}>AES-128-CBC</option> - <option value='AES-192-CBC' $selected{'DCIPHER'}{'AES-192-CBC'}>AES-192-CBC</option> - <option value='AES-256-CBC' $selected{'DCIPHER'}{'AES-256-CBC'}>AES-256-CBC</option></select></td></tr> - <tr><td colspan='4'><hr /></td></tr> + <td><select name='DCIPHER'> + <option value='CAMELLIA-256-CBC' $selected{'DCIPHER'}{'CAMELLIA-256-CBC'}>CAMELLIA-256-CBC</option> + <option value='CAMELLIA-192-CBC' $selected{'DCIPHER'}{'CAMELLIA-192-CBC'}>CAMELLIA-192-CBC</option> + <option value='CAMELLIA-128-CBC' $selected{'DCIPHER'}{'CAMELLIA-128-CBC'}>CAMELLIA-128-CBC</option> + <option value='AES-256-CBC' $selected{'DCIPHER'}{'AES-256-CBC'}>AES-256-CBC</option> + <option value='AES-192-CBC' $selected{'DCIPHER'}{'AES-192-CBC'}>AES-192-CBC</option> + <option value='AES-128-CBC' $selected{'DCIPHER'}{'AES-128-CBC'}>AES-128-CBC</option> + <option value='CAST5-CBC' $selected{'DCIPHER'}{'CAST5-CBC'}>CAST5-CBC</option> + <option value='RC2-64-CBC' $selected{'DCIPHER'}{'RC2-64-CBC'}>RC2-64-CBC</option> + <option value='RC2-40-CBC' $selected{'DCIPHER'}{'RC2-40-CBC'}>RC2-40-CBC</option> + <option value='RC2-CBC' $selected{'DCIPHER'}{'RC2-CBC'}>RC2-CBC</option> + <option value='BF-CBC' $selected{'DCIPHER'}{'BF-CBC'}>BF-CBC</option> + <option value='DES-CBC' $selected{'DCIPHER'}{'DES-CBC'}>DES-CBC</option> + <option value='DES-EDE-CBC' $selected{'DCIPHER'}{'DES-EDE-CBC'}>DES-EDE-CBC</option> + <option value='DES-EDE3-CBC' $selected{'DCIPHER'}{'DES-EDE3-CBC'}>DES-EDE3-CBC</option> + <option value='DESX-CBC' $selected{'DCIPHER'}{'DESX-CBC'}>DESX-CBC</option> + </select></td></tr> + <tr><td colspan='4'><br><br></td></tr> END ;
@@ -4726,45 +4710,46 @@ END } print "</form></table>"; &Header::closebox(); - &Header::openbox('100%', 'LEFT', "$Lang::tr{'certificate authorities'}:"); + &Header::openbox('100%', 'LEFT', "$Lang::tr{'certificate authorities'}"); print <<EOF#' - <table width='100%' border='0' cellspacing='1' cellpadding='0'> + <table width='100%' cellspacing='1' cellpadding='0' class='tbl'> <tr> - <td width='25%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></td> - <td width='65%' class='boldbase' align='center'><b>$Lang::tr{'subject'}</b></td> - <td width='10%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='25%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></th> + <th width='65%' class='boldbase' align='center'><b>$Lang::tr{'subject'}</b></th> + <th width='10%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></th> </tr> EOF ; + my $col1="bgcolor='$color{'color22'}'"; + my $col2="bgcolor='$color{'color20'}'"; if (-f "${General::swroot}/ovpn/ca/cacert.pem") { my $casubject = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/ca/cacert.pem`; $casubject =~ /Subject: (.*)[\n]/; $casubject = $1; $casubject =~ s+/Email+, E+; $casubject =~ s/ ST=/ S=/; - print <<END - <tr bgcolor='$color{'color22'}'> - <td class='base'>$Lang::tr{'root certificate'}</td> - <td class='base'>$casubject</td> - <form method='post' name='frmrootcrta'><td width='3%' align='center'> + <tr> + <td class='base' $col1>$Lang::tr{'root certificate'}</td> + <td class='base' $col1>$casubject</td> + <form method='post' name='frmrootcrta'><td width='3%' align='center' $col1> <input type='hidden' name='ACTION' value='$Lang::tr{'show root certificate'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/info.gif' alt='$Lang::tr{'show root certificate'}' title='$Lang::tr{'show root certificate'}' width='20' height='20' border='0' /> </td></form> - <form method='post' name='frmrootcrtb'><td width='3%' align='center'> + <form method='post' name='frmrootcrtb'><td width='3%' align='center' $col1> <input type='image' name='$Lang::tr{'download root certificate'}' src='/images/media-floppy.png' alt='$Lang::tr{'download root certificate'}' title='$Lang::tr{'download root certificate'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download root certificate'}' /> </td></form> - <td width='4%'> </td></tr> + <td width='4%' $col1> </td></tr> END ; } else { # display rootcert generation buttons print <<END - <tr bgcolor='$color{'color22'}'> - <td class='base'>$Lang::tr{'root certificate'}:</td> - <td class='base'>$Lang::tr{'not present'}</td> - <td colspan='3'> </td></tr> + <tr> + <td class='base' $col1>$Lang::tr{'root certificate'}:</td> + <td class='base' $col1>$Lang::tr{'not present'}</td> + <td colspan='3' $col1> </td></tr> END ; } @@ -4777,27 +4762,27 @@ END $hostsubject =~ s/ ST=/ S=/;
print <<END - <tr bgcolor='$color{'color20'}'> - <td class='base'>$Lang::tr{'host certificate'}</td> - <td class='base'>$hostsubject</td> - <form method='post' name='frmhostcrta'><td width='3%' align='center'> + <tr> + <td class='base' $col2>$Lang::tr{'host certificate'}</td> + <td class='base' $col2>$hostsubject</td> + <form method='post' name='frmhostcrta'><td width='3%' align='center' $col2> <input type='hidden' name='ACTION' value='$Lang::tr{'show host certificate'}' /> <input type='image' name='$Lang::tr{'show host certificate'}' src='/images/info.gif' alt='$Lang::tr{'show host certificate'}' title='$Lang::tr{'show host certificate'}' width='20' height='20' border='0' /> </td></form> - <form method='post' name='frmhostcrtb'><td width='3%' align='center'> - <input type='image' name='$Lang::tr{'download host certificate'}' src='/images/media-floppy.png' alt='$Lang::tr{'download host certificate'}' title='$Lang::tr{'download host certificate'}' border='0' /> - <input type='hidden' name='ACTION' value='$Lang::tr{'download host certificate'}' /> + <form method='post' name='frmhostcrtb'><td width='3%' align='center' $col2> + <input type='image' name="$Lang::tr{'download host certificate'}" src='/images/media-floppy.png' alt="$Lang::tr{'download host certificate'}" title="$Lang::tr{'download host certificate'}" border='0' /> + <input type='hidden' name='ACTION' value="$Lang::tr{'download host certificate'}" /> </td></form> - <td width='4%'> </td></tr> + <td width='4%' $col2> </td></tr> END ; } else { # Nothing print <<END - <tr bgcolor='$color{'color20'}'> - <td width='25%' class='base'>$Lang::tr{'host certificate'}:</td> - <td class='base'>$Lang::tr{'not present'}</td> - </td><td colspan='3'> </td></tr> + <tr> + <td width='25%' class='base' $col2>$Lang::tr{'host certificate'}:</td> + <td class='base' $col2>$Lang::tr{'not present'}</td> + </td><td colspan='3' $col2> </td></tr> END ; } @@ -4860,7 +4845,7 @@ print <<END <form method='post' enctype='multipart/form-data'> <table width='100%' border='0'> <tr><td class='base' nowrap='nowrap'>$Lang::tr{'ca name'}:</td><td nowrap='nowrap' width='8%'><input type='text' name='CA_NAME' value='$cgiparams{'CA_NAME'}' size='15' align='left'/></td><td nowrap='nowrap' align='right'><input type='file' name='FH' size='25' /><input type='submit' name='ACTION' value='$Lang::tr{'upload ca certificate'}' /></td></tr> -<tr><td colspan='4'><hr /></td></tr> +<tr><td colspan='4'><br></td></tr> <tr align='right'><td colspan='4' align='right' width='80%'><input type='submit' name='ACTION' value='$Lang::tr{'show crl'}' /></td></tr> </table> END @@ -4884,29 +4869,31 @@ END print <<END
- <table width='100%' border='0' cellspacing='1' cellpadding='0'> + <table width='100%' cellspacing='1' cellpadding='0' class='tbl'> <tr> - <td width='10%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></td> - <td width='15%' class='boldbase' align='center'><b>$Lang::tr{'type'}</b></td> - <td width='22%' class='boldbase' align='center'><b>$Lang::tr{'network'}</b></td> - <td width='20%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> - <td width='10%' class='boldbase' align='center'><b>$Lang::tr{'status'}</b></td> - <td width='5%' class='boldbase' colspan='6' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='10%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></th> + <th width='15%' class='boldbase' align='center'><b>$Lang::tr{'type'}</b></th> + <th width='22%' class='boldbase' align='center'><b>$Lang::tr{'network'}</b></th> + <th width='20%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></th> + <th width='10%' class='boldbase' align='center'><b>$Lang::tr{'status'}</b></th> + <th width='5%' class='boldbase' colspan='6' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; - my $id = 0; - my $gif; - foreach my $key (sort { uc($confighash{$a}[1]) cmp uc($confighash{$b}[1]) } keys %confighash) { - if ($confighash{$key}[0] eq 'on') { $gif = 'on.gif'; } else { $gif = 'off.gif'; } - + my $id = 0; + my $gif; + my $col1=""; + foreach my $key (sort { ncmp ($confighash{$a}[1],$confighash{$b}[1]) } keys %confighash) { + if ($confighash{$key}[0] eq 'on') { $gif = 'on.gif'; } else { $gif = 'off.gif'; } if ($id % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color22'}'>\n"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } - print "<td align='center' nowrap='nowrap'>$confighash{$key}[1]</td>"; - print "<td align='center' nowrap='nowrap'>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td>"; + print "<td align='center' nowrap='nowrap' $col>$confighash{$key}[1]</td>"; + print "<td align='center' nowrap='nowrap' $col>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td>"; #if ($confighash{$key}[4] eq 'cert') { #print "<td align='left' nowrap='nowrap'>$confighash{$key}[2]</td>"; #} else { @@ -4917,19 +4904,20 @@ END $cavalid = $1; if ($confighash{$key}[32] eq "" && $confighash{$key}[3] eq 'net' ){$confighash{$key}[32]="net-2-net";} if ($confighash{$key}[32] eq "" && $confighash{$key}[3] eq 'host' ){$confighash{$key}[32]="dynamic";} - print "<td align='center'>$confighash{$key}[32]</td>"; - print "<td align='center'>$confighash{$key}[25]</td>"; - - my $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; + print "<td align='center' $col>$confighash{$key}[32]</td>"; + print "<td align='center' $col>$confighash{$key}[25]</td>"; + $col1="bgcolor='${Header::colourred}'"; + my $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b>";
if ($confighash{$key}[0] eq 'off') { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourblue}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; + $col1="bgcolor='${Header::colourblue}'"; + $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b>"; } else {
### # m.a.d net2net -### - +### + if ($confighash{$key}[3] eq 'net') {
if (-e "/var/run/$confighash{$key}[1]n2n.pid") { @@ -4953,39 +4941,41 @@ END #EXITING -- A graceful exit is in progress. ####
- if ( $tustate[1] eq 'CONNECTED') { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></tr></td></table>"; - } else { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$tustate[1]</font></b></td></tr></table>"; + if ( $tustate[1] eq 'CONNECTED') { + $col1="bgcolor='${Header::colourgreen}'"; + $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b>"; + }else { + $col1="bgcolor='${Header::colourred}'"; + $active = "<b><font color='#FFFFFF'>$tustate[1]</font></b>"; + } } - } } - } else { - - my $cn; - my @match = (); - foreach my $line (@status) { - chomp($line); - if ( $line =~ /^(.+),(\d+.\d+.\d+.\d+:\d+),(\d+),(\d+),(.+)/) { - @match = split(m/^(.+),(\d+.\d+.\d+.\d+:\d+),(\d+),(\d+),(.+)/, $line); - if ($match[1] ne "Common Name") { - $cn = $match[1]; - } - $cn =~ s/[_]/ /g; - if ($cn eq "$confighash{$key}[2]") { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></td></tr></table>"; - } - } - + }else { + + my $cn; + my @match = (); + foreach my $line (@status) { + chomp($line); + if ( $line =~ /^(.+),(\d+.\d+.\d+.\d+:\d+),(\d+),(\d+),(.+)/) { + @match = split(m/^(.+),(\d+.\d+.\d+.\d+:\d+),(\d+),(\d+),(.+)/, $line); + if ($match[1] ne "Common Name") { + $cn = $match[1]; + } + $cn =~ s/[_]/ /g; + if ($cn eq "$confighash{$key}[2]") { + $col1="bgcolor='${Header::colourgreen}'"; + $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b>"; + } + } + } } } -}
print <<END - <td align='center'>$active</td> + <td align='center' $col1>$active</td> - <form method='post' name='frm${key}a'><td align='center'> + <form method='post' name='frm${key}a'><td align='center' $col> <input type='image' name='$Lang::tr{'dl client arch'}' src='/images/openvpn.png' alt='$Lang::tr{'dl client arch'}' title='$Lang::tr{'dl client arch'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'dl client arch'}' /> <input type='hidden' name='KEY' value='$key' /> @@ -4994,7 +4984,7 @@ END ; if ($confighash{$key}[4] eq 'cert') { print <<END - <form method='post' name='frm${key}b'><td align='center'> + <form method='post' name='frm${key}b'><td align='center' $col> <input type='image' name='$Lang::tr{'show certificate'}' src='/images/info.gif' alt='$Lang::tr{'show certificate'}' title='$Lang::tr{'show certificate'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'show certificate'}' /> <input type='hidden' name='KEY' value='$key' /> @@ -5005,7 +4995,7 @@ END } if ($confighash{$key}[4] eq 'cert' && -f "${General::swroot}/ovpn/certs/$confighash{$key}[1].p12") { print <<END - <form method='post' name='frm${key}c'><td align='center'> + <form method='post' name='frm${key}c'><td align='center' $col> <input type='image' name='$Lang::tr{'download pkcs12 file'}' src='/images/media-floppy.png' alt='$Lang::tr{'download pkcs12 file'}' title='$Lang::tr{'download pkcs12 file'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download pkcs12 file'}' /> <input type='hidden' name='KEY' value='$key' /> @@ -5013,7 +5003,7 @@ END END ; } elsif ($confighash{$key}[4] eq 'cert') { print <<END - <form method='post' name='frm${key}c'><td align='center'> + <form method='post' name='frm${key}c'><td align='center' $col> <input type='image' name='$Lang::tr{'download certificate'}' src='/images/media-floppy.png' alt='$Lang::tr{'download certificate'}' title='$Lang::tr{'download certificate'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download certificate'}' /> <input type='hidden' name='KEY' value='$key' /> @@ -5023,18 +5013,18 @@ END print "<td> </td>"; } print <<END - <form method='post' name='frm${key}d'><td align='center'> + <form method='post' name='frm${key}d'><td align='center' $col> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$Lang::tr{'toggle enable disable'}' title='$Lang::tr{'toggle enable disable'}' border='0' /> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='hidden' name='KEY' value='$key' /> </td></form>
- <form method='post' name='frm${key}e'><td align='center'> + <form method='post' name='frm${key}e'><td align='center' $col> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' width='20' height='20' border='0'/> <input type='hidden' name='KEY' value='$key' /> </td></form> - <form method='post' name='frm${key}f'><td align='center'> + <form method='post' name='frm${key}f'><td align='center' $col> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' width='20' height='20' border='0' /> <input type='hidden' name='KEY' value='$key' /> @@ -5070,7 +5060,7 @@ END <td> <img src='/images/openvpn.png' alt='?RELOAD'/></td> <td class='base'>$Lang::tr{'dl client arch'}</td> </tr> - </table><hr> + </table><br> END ; } diff --git a/html/cgi-bin/p2p-block.cgi b/html/cgi-bin/p2p-block.cgi new file mode 100644 index 0000000..eb5b8ab --- /dev/null +++ b/html/cgi-bin/p2p-block.cgi @@ -0,0 +1,154 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +# Author: Alexander Marx (Amarx@ipfire.org) # +############################################################################### + +use strict; +no warnings 'uninitialized'; +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +my $errormessage = ''; +my $notice; +my $p2pfile = "${General::swroot}/firewall/p2protocols"; + +my @p2ps = (); +my %fwdfwsettings = (); +my %color = (); +my %mainsettings = (); + +&General::readhash("${General::swroot}/main/settings", %mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); + +&Header::showhttpheaders(); +&Header::getcgihash(%fwdfwsettings); + +if ($fwdfwsettings{'ACTION'} eq 'togglep2p') { + open( FILE, "<$p2pfile") or die "Unable to read $p2pfile"; + @p2ps = <FILE>; + close FILE; + open( FILE, ">$p2pfile") or die "Unable to write $p2pfile"; + foreach my $p2pentry (sort @p2ps) { + my @p2pline = split( /;/, $p2pentry); + if ($p2pline[1] eq $fwdfwsettings{'P2PROT'}) { + if ($p2pline[2] eq 'on') { + $p2pline[2] = 'off'; + } else { + $p2pline[2] = 'on'; + } + } + print FILE "$p2pline[0];$p2pline[1];$p2pline[2];\n"; + } + close FILE; + + &General::firewall_config_changed(); + + $notice = $Lang::tr{'p2p block save notice'}; +} + +&Header::openpage($Lang::tr{'p2p block'}, 1, ''); +&Header::openbigbox('100%', 'center', $errormessage); + +if ($notice) { + &Header::openbox('100%', 'left', $Lang::tr{'notice'}); + print "<font class='base'>$notice</font>"; + &Header::closebox(); +} + +my $gif; + +open(FILE, "<$p2pfile") or die "Unable to read $p2pfile"; +@p2ps = <FILE>; +close FILE; + +&Header::openbox('100%', 'center',); +print <<END; + <table width='35%' class='tbl'> + <tr> + <th align=center colspan='2'bgcolor='$color{'color22'}' > + <b>$Lang::tr{'protocol'}</b> + </th> + <th align='center'bgcolor='$color{'color22'}' > + <b>$Lang::tr{'status'}</b> + </th> + </tr> +END +my $lines=0; +my $col=""; +foreach my $p2pentry (sort @p2ps) { + my @p2pline = split( /;/, $p2pentry); + if ($p2pline[2] eq 'on') { + $gif = "/images/on.gif" + } else { + $gif = "/images/off.gif" + } + if ($lines % 2) { + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } + else { + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } + print <<END; + <td align='center' colspan='2' $col> + $p2pline[0]: + </td> + <td align='center' $col> + <form method='post' action='$ENV{'SCRIPT_NAME'}'> + <input type='hidden' name='P2PROT' value='$p2pline[1]'> + <input type='image' img src='$gif' alt='$Lang::tr{'click to disable'}' title='$Lang::tr{'fwdfw toggle'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;'> + <input type='hidden' name='ACTION' value='togglep2p'> + </form> + </td> + </tr> +END +$lines++; +} + +print <<END; +</table><table> + <tr> + <td> + <img src='/images/on.gif'> + </td> + <td> + $Lang::tr{'outgoing firewall p2p allow'} + </td> + </tr> + <tr> + <td> + <img src='/images/off.gif'> + </td> + <td> + $Lang::tr{'outgoing firewall p2p deny'} + </td> + </tr> + </table> +END + +&Header::closebox(); + +&Header::closebigbox(); +&Header::closepage(); diff --git a/html/cgi-bin/portfw.cgi b/html/cgi-bin/portfw.cgi deleted file mode 100644 index 199682f..0000000 --- a/html/cgi-bin/portfw.cgi +++ /dev/null @@ -1,1177 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -use strict; - -# enable only the following on debugging purpose -#use warnings; -#use CGI::Carp 'fatalsToBrowser'; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -#workaround to suppress a warning when a variable is used only once -my @dummy = ( ${Header::colouryellow} ); -undef (@dummy); - -my %color = (); -my %mainsettings = (); -&General::readhash("${General::swroot}/main/settings", %mainsettings); -&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); - -my %cgiparams=(); -my %selected=(); -my %checked=(); -my $prtrange1=0; -my $prtrange2=0; -my $errormessage = ''; -my $filename = "${General::swroot}/portfw/config"; -my $aliasfile = "${General::swroot}/ethernet/aliases"; - -&Header::showhttpheaders(); - -$cgiparams{'ENABLED'} = 'off'; -$cgiparams{'KEY1'} = '0'; -$cgiparams{'KEY2'} = '0'; -$cgiparams{'PROTOCOL'} = ''; -$cgiparams{'SRC_PORT'} = ''; -$cgiparams{'DEST_IP'} = ''; -$cgiparams{'DEST_PORT'} = ''; -$cgiparams{'SRC_IP'} = ''; -$cgiparams{'ORIG_IP'} = ''; -$cgiparams{'REMARK'} = ''; -$cgiparams{'OVERRIDE'} = 'off'; -$cgiparams{'ACTION'} = ''; - -&Header::getcgihash(%cgiparams); - -my $disable_all = "0"; -my $enable_all = "0"; - -if ($cgiparams{'ACTION'} eq $Lang::tr{'add'}) -{ - &valaddupdate(); - - # Darren Critchley - if there is an error, don't waste any more time processing - if ($errormessage) { goto ERROR; } - - open(FILE, $filename) or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - my $key1 = 0; # used for finding last sequence number used - foreach my $line (@current) - { - my @temp = split(/,/,$line); - - chomp ($temp[8]); - if ($cgiparams{'KEY2'} eq "0"){ # if key2 is 0 then it is a portfw addition - if ( $cgiparams{'SRC_PORT'} eq $temp[3] && - $cgiparams{'PROTOCOL'} eq $temp[2] && - $cgiparams{'SRC_IP'} eq $temp[7]) - { - $errormessage = - "$Lang::tr{'source port in use'} $cgiparams{'SRC_PORT'}"; - } - # Check if key2 = 0, if it is then it is a port forward entry and we want the sequence number - if ( $temp[1] eq "0") { - $key1=$temp[0]; - } - # Darren Critchley - Duplicate or overlapping Port range check - if ($temp[1] eq "0" && - $cgiparams{'PROTOCOL'} eq $temp[2] && - $cgiparams{'SRC_IP'} eq $temp[7] && - $errormessage eq '') - { - &portchecks($temp[3], $temp[5]); - } - } else { - if ( $cgiparams{'KEY1'} eq $temp[0] && - $cgiparams{'ORIG_IP'} eq $temp[8]) - { - $errormessage = - "$Lang::tr{'source ip in use'} $cgiparams{'ORIG_IP'}"; - } - } - } - -ERROR: - unless ($errormessage) - { - # Darren Critchley - we only want to store ranges with Colons - $cgiparams{'SRC_PORT'} =~ tr/-/:/; - $cgiparams{'DEST_PORT'} =~ tr/-/:/; - - if ($cgiparams{'KEY1'} eq "0") { # 0 in KEY1 indicates it is a portfw add - $key1++; # Add one to last sequence number - open(FILE,">>$filename") or die 'Unable to open config file.'; - flock FILE, 2; - if ($cgiparams{'ORIG_IP'} eq '0.0.0.0/0') { - # if the default/all is taken, then write it to the rule - print FILE "$key1,0,$cgiparams{'PROTOCOL'},$cgiparams{'SRC_PORT'},$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'SRC_IP'},$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n"; - } else { # else create an extra record so it shows up - print FILE "$key1,0,$cgiparams{'PROTOCOL'},$cgiparams{'SRC_PORT'},$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'SRC_IP'},0,$cgiparams{'REMARK'}\n"; - print FILE "$key1,1,$cgiparams{'PROTOCOL'},0,$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},0,$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n"; - } - close(FILE); - undef %cgiparams; - &General::log($Lang::tr{'forwarding rule added'}); - system('/usr/local/bin/setportfw'); - } else { # else key1 eq 0 - my $insertpoint = ($cgiparams{'KEY2'} - 1); - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) { - chomp($line); - my @temp = split(/,/,$line); - if ($cgiparams{'KEY1'} eq $temp[0] && $insertpoint eq $temp[1]) { - if ($temp[1] eq "0") { # this is the first xtaccess rule, therefore modify the portfw rule - $temp[8] = '0'; - } - print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n"; - print FILE "$cgiparams{'KEY1'},$cgiparams{'KEY2'},$cgiparams{'PROTOCOL'},0,$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},0,$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n"; - } else { - print FILE "$line\n"; - } - } - close(FILE); - undef %cgiparams; - &General::log($Lang::tr{'external access rule added'}); - system('/usr/local/bin/setportfw'); - } # end if if KEY1 eq 0 - } # end unless($errormessage) -} - -if ($cgiparams{'ACTION'} eq $Lang::tr{'update'}) -{ - &valaddupdate(); - - # Darren Critchley - If there is an error don't waste any more processing time - if ($errormessage) { $cgiparams{'ACTION'} = $Lang::tr{'edit'}; goto UPD_ERROR; } - - open(FILE, $filename) or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - my $disabledpfw = '0'; - my $lastpfw = ''; - my $xtaccessdel = '0'; - - foreach my $line (@current) - { - my @temp = split(/,/,$line); - if ( $temp[1] eq "0" ) { # keep track of the last portfw and if it is enabled - $disabledpfw = $temp[6]; - $lastpfw = $temp[0]; - } - chomp ($temp[8]); - if ( $cgiparams{'SRC_PORT'} eq $temp[3] && - $cgiparams{'PROTOCOL'} eq $temp[2] && - $cgiparams{'SRC_IP'} eq $temp[7]) - { - if ($cgiparams{'KEY1'} ne $temp[0] && $cgiparams{'KEY2'} eq "0") - { - $errormessage = - "$Lang::tr{'source port in use'} $cgiparams{'SRC_PORT'}"; - } - } - if ($cgiparams{'ORIG_IP'} eq $temp[8]) - { - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} ne $temp[1]) - # If we have the same source ip within a portfw group, then we have a problem! - { - $errormessage = "$Lang::tr{'source ip in use'} $cgiparams{'ORIG_IP'}"; - $cgiparams{'ACTION'} = $Lang::tr{'edit'}; - } - } - - # Darren Critchley - Flag when a user disables an xtaccess - if ($cgiparams{'KEY1'} eq $temp[0] && - $cgiparams{'KEY2'} eq $temp[1] && - $cgiparams{'KEY2'} ne "0" && # if KEY2 is 0 then it is a portfw - $cgiparams{'ENABLED'} eq "off" && - $temp[6] eq "on") { # we have determined that someone has turned an xtaccess off - $xtaccessdel = "1"; - } - - # Darren Critchley - Portfw enabled, then enable xtaccess for all associated xtaccess records - if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'KEY2'} eq "0" && $cgiparams{'ENABLED'} ne $temp[6]) - { - $enable_all = "1"; - } else { - $enable_all = "0"; - } - # Darren Critchley - Portfw disabled, then disable xtaccess for all associated xtaccess records - if ($cgiparams{'ENABLED'} eq "off" && $cgiparams{'KEY2'} eq "0") - { - $disable_all = "1"; - } else { - $disable_all = "0"; - } - - # Darren Critchley - if we are enabling an xtaccess, only allow if the associated Portfw is enabled - if ($cgiparams{'KEY1'} eq $lastpfw && $cgiparams{'KEY2'} ne "0") { # identifies an xtaccess record in the group - if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'ENABLED'} ne $temp[6] ){ # a change has been made - if ($disabledpfw eq "off") - { - $errormessage = "$Lang::tr{'cant enable xtaccess'}"; - $cgiparams{'ACTION'} = $Lang::tr{'edit'}; - } - } - } - - # Darren Critchley - rule to stop someone from entering ALL into a external access rule, - # the portfw is the only place that ALL can be specified - if ($cgiparams{'KEY2'} ne "0" && $cgiparams{'ORIG_IP'} eq "0.0.0.0/0") { - $errormessage = "$Lang::tr{'xtaccess all error'}"; - $cgiparams{'ACTION'} = $Lang::tr{'edit'}; - } - - # Darren Critchley - Duplicate or overlapping Port range check - if ($temp[1] eq "0" && - $cgiparams{'KEY1'} ne $temp[0] && - $cgiparams{'PROTOCOL'} eq $temp[2] && - $cgiparams{'SRC_IP'} eq $temp[7] && - $errormessage eq '') - { - &portchecks($temp[3], $temp[5]); - } # end port testing - - } - - # Darren Critchley - if an xtaccess was disabled, now we need to check to see if it was the only xtaccess - if($xtaccessdel eq "1") { - my $xctr = 0; - foreach my $line (@current) - { - my @temp = split(/,/,$line); - if($temp[0] eq $cgiparams{'KEY1'} && - $temp[6] eq "on") { # we only want to count the enabled xtaccess's - $xctr++; - } - } - if ($xctr == 2){ - $disable_all = "1"; - } - } - -UPD_ERROR: - unless ($errormessage) - { - # Darren Critchley - we only want to store ranges with Colons - $cgiparams{'SRC_PORT'} =~ tr/-/:/; - $cgiparams{'DEST_PORT'} =~ tr/-/:/; - - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) { - chomp($line); - my @temp = split(/,/,$line); - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1]) { - print FILE "$cgiparams{'KEY1'},$cgiparams{'KEY2'},$cgiparams{'PROTOCOL'},$cgiparams{'SRC_PORT'},$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'SRC_IP'},$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n"; - } else { - # Darren Critchley - If it is a port forward record, then chances are good that a change was made to - # Destination Ip or Port, and we need to update all the associated external access records - if ($cgiparams{'KEY2'} eq "0" && $cgiparams{'KEY1'} eq $temp[0]) { - $temp[4] = $cgiparams{'DEST_IP'}; - $temp[5] = $cgiparams{'DEST_PORT'}; - $temp[2] = $cgiparams{'PROTOCOL'}; - } - - # Darren Critchley - If a Portfw has been disabled, then set all associated xtaccess as disabled - if ( $disable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) { - $temp[6] = 'off'; - } - if ( $enable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) { - $temp[6] = 'on'; - } - # Darren Critchley - Deal with the override to allow ALL - if ( $cgiparams{'OVERRIDE'} eq "on" && $temp[1] ne "0" && $cgiparams{'KEY1'} eq $temp[0] ) { - $temp[6] = 'off'; - } - print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n"; - } - } - close(FILE); - undef %cgiparams; - &General::log($Lang::tr{'forwarding rule updated'}); - system('/usr/local/bin/setportfw'); - } - if ($errormessage) { - $cgiparams{'ACTION'} = $Lang::tr{'edit'}; - } -} - -# Darren Critchley - Allows rules to be enabled and disabled -if ($cgiparams{'ACTION'} eq $Lang::tr{'toggle enable disable'}) -{ - open(FILE, $filename) or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - my $disabledpfw = '0'; - my $lastpfw = ''; - my $xtaccessdel = '0'; - - foreach my $line (@current) - { - my @temp = split(/,/,$line); - if ( $temp[1] eq "0" ) { # keep track of the last portfw and if it is enabled - $disabledpfw = $temp[6]; - $lastpfw = $temp[0]; - } - # Darren Critchley - Flag when a user disables an xtaccess - if ($cgiparams{'KEY1'} eq $temp[0] && - $cgiparams{'KEY2'} eq $temp[1] && - $cgiparams{'KEY2'} ne "0" && # if KEY2 is 0 then it is a portfw - $cgiparams{'ENABLED'} eq "off" && - $temp[6] eq "on") { # we have determined that someone has turned an xtaccess off - $xtaccessdel = "1"; - } - - # Darren Critchley - Portfw enabled, then enable xtaccess for all associated xtaccess records - if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'KEY2'} eq "0" && $cgiparams{'ENABLED'} ne $temp[6]) - { - $enable_all = "1"; - } else { - $enable_all = "0"; - } - # Darren Critchley - Portfw disabled, then disable xtaccess for all associated xtaccess records - if ($cgiparams{'ENABLED'} eq "off" && $cgiparams{'KEY2'} eq "0") - { - $disable_all = "1"; - } else { - $disable_all = "0"; - } - - # Darren Critchley - if we are enabling an xtaccess, only allow if the associated Portfw is enabled - if ($cgiparams{'KEY1'} eq $lastpfw && $cgiparams{'KEY2'} ne "0") { # identifies an xtaccess record in the group - if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'ENABLED'} ne $temp[6] ){ # a change has been made - if ($disabledpfw eq "off") - { - $errormessage = "$Lang::tr{'cant enable xtaccess'}"; - goto TOGGLEEXIT; - } - } - } - } - - # Darren Critchley - if an xtaccess was disabled, now we need to check to see if it was the only xtaccess - if($xtaccessdel eq "1") { - my $xctr = 0; - foreach my $line (@current) - { - my @temp = split(/,/,$line); - if($temp[0] eq $cgiparams{'KEY1'} && - $temp[6] eq "on") { # we only want to count the enabled xtaccess's - $xctr++; - } - } - if ($xctr == 2){ - $disable_all = "1"; - } - } - - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) { - chomp($line); - my @temp = split(/,/,$line); - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1]) { - print FILE "$cgiparams{'KEY1'},$cgiparams{'KEY2'},$temp[2],$temp[3],$temp[4],$temp[5],$cgiparams{'ENABLED'},$temp[7],$temp[8],$temp[9]\n"; - } else { - # Darren Critchley - If a Portfw has been disabled, then set all associated xtaccess as disabled - if ( $disable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) { - $temp[6] = 'off'; - } - if ( $enable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) { - $temp[6] = 'on'; - } - print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n"; - } - } - close(FILE); - &General::log($Lang::tr{'forwarding rule updated'}); - system('/usr/local/bin/setportfw'); -TOGGLEEXIT: - undef %cgiparams; -} - - -# Darren Critchley - broke out Edit routine from the delete routine - Edit routine now just puts values in fields -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) -{ - open(FILE, "$filename") or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - - unless ($errormessage) - { - foreach my $line (@current) - { - chomp($line); - my @temp = split(/,/,$line); - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] ) { - $cgiparams{'PROTOCOL'} = $temp[2]; - $cgiparams{'SRC_PORT'} = $temp[3]; - $cgiparams{'DEST_IP'} = $temp[4]; - $cgiparams{'DEST_PORT'} = $temp[5]; - $cgiparams{'ENABLED'} = $temp[6]; - $cgiparams{'SRC_IP'} = $temp[7]; - $cgiparams{'ORIG_IP'} = $temp[8]; - $cgiparams{'REMARK'} = $temp[9]; - } - - } - } -} - -# Darren Critchley - broke out Remove routine as the logic is getting too complex to be combined with the Edit -if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) -{ - open(FILE, "$filename") or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - - # If the record being deleted is an xtaccess record, and it is the only one for a portfw record - # then we need to adjust the portfw record to be open to ALL ip addressess or an error will occur - # in setportfw.c - my $fixportfw = '0'; - if ($cgiparams{'KEY2'} ne "0") { - my $counter = 0; - foreach my $line (@current) - { - chomp($line); - my @temp = split(/,/,$line); - if ($temp[0] eq $cgiparams{'KEY1'}) { - $counter++; - } - } - if ($counter eq 2) { - $fixportfw = '1'; - } - } - - unless ($errormessage) - { - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - my $linedeleted = 0; - foreach my $line (@current) - { - chomp($line); - my @temp = split(/,/,$line); - - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] || - $cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq "0" ) - { - $linedeleted = 1; - } else { - if ($temp[0] eq $cgiparams{'KEY1'} && $temp[1] eq "0" && $fixportfw eq "1") { - $temp[8] = '0.0.0.0/0'; - } - print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n"; -# print FILE "$line\n"; - } - } - close(FILE); - if ($linedeleted == 1) { - &General::log($Lang::tr{'forwarding rule removed'}); - undef %cgiparams; - } - system('/usr/local/bin/setportfw'); - } -} - -# Darren Critchley - Added routine to allow external access rules to be added -if ($cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'}) -{ - open(FILE, $filename) or die 'Unable to open config file.'; - my @current = <FILE>; - close(FILE); - my $key = 0; # used for finding last sequence number used - foreach my $line (@current) - { - my @temp = split(/,/,$line); - if ($temp[0] eq $cgiparams{'KEY1'}) { - $key = $temp[1] - } - if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] ) { - $cgiparams{'PROTOCOL'} = $temp[2]; - $cgiparams{'SRC_PORT'} = $temp[3]; - $cgiparams{'DEST_IP'} = $temp[4]; - $cgiparams{'DEST_PORT'} = $temp[5]; - $cgiparams{'ENABLED'} = $temp[6]; - $cgiparams{'SRC_IP'} = $temp[7]; - $cgiparams{'ORIG_IP'} = ''; - $cgiparams{'REMARK'} = $temp[9]; - } - } - $key++; - $cgiparams{'KEY2'} = $key; - # Until the ADD button is hit, there needs to be no change to portfw rules -} - -if ($cgiparams{'ACTION'} eq $Lang::tr{'reset'}) -{ - undef %cgiparams; -} - -if ($cgiparams{'ACTION'} eq '') -{ - $cgiparams{'PROTOCOL'} = 'tcp'; - $cgiparams{'ENABLED'} = 'on'; - $cgiparams{'SRC_IP'} = '0.0.0.0'; -} - -$selected{'PROTOCOL'}{'udp'} = ''; -$selected{'PROTOCOL'}{'tcp'} = ''; -$selected{'PROTOCOL'}{'gre'} = ''; -$selected{'PROTOCOL'}{$cgiparams{'PROTOCOL'}} = "selected='selected'"; - -$selected{'SRC_IP'}{$cgiparams{'SRC_IP'}} = "selected='selected'"; - -$checked{'ENABLED'}{'off'} = ''; -$checked{'ENABLED'}{'on'} = ''; -$checked{'ENABLED'}{$cgiparams{'ENABLED'}} = "checked='checked'"; - -&Header::openpage($Lang::tr{'port forwarding configuration'}, 1, ''); - -&Header::openbigbox('100%', 'left', '', $errormessage); - -if ($errormessage) { - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<class name='base'><font color='${Header::colourred}'>$errormessage\n</font>"; - print " </class>\n"; - &Header::closebox(); -} - -print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n"; - -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){ - &Header::openbox('100%', 'left', $Lang::tr{'edit a rule'}); -} else { - &Header::openbox('100%', 'left', $Lang::tr{'add a new rule'}); -} - -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY2'} ne "0" || $cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'}){ -# if it is not a port forward record, don't validate as the fields are disabled - my $PROT = "\U$cgiparams{'PROTOCOL'}\E"; - # Darren Critchley - Format the source and destination ports - my $dstprt = $cgiparams{'DEST_PORT'}; - $dstprt =~ s/-/ - /; - $dstprt =~ s/:/ - /; - -print <<END -<table> - <tr> - <td class='base'>$Lang::tr{'protocol'}: <b>$PROT</b></td> - <td width='20'> </td> - <td class='base' align='right'>$Lang::tr{'destination ip'}: </td> - <td><b>$cgiparams{'DEST_IP'}</b></td> - <td width='20'> </td> - <td class='base' align='right'>$Lang::tr{'destination port'}: </td> - <td><b>$dstprt</b></td> - </tr> -</table> - -<input type='hidden' name='PROTOCOL' value='$cgiparams{'PROTOCOL'}' /> -<input type='hidden' name='SRC_IP' value='$cgiparams{'SRC_IP'}' /> -<input type='hidden' name='SRC_PORT' value='$cgiparams{'SRC_PORT'}' /> -<input type='hidden' name='DEST_IP' value='$cgiparams{'DEST_IP'}' /> -<input type='hidden' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' /> -END -; -} else { -print <<END -<table width='100%'> - <tr> - <td width='10%'>$Lang::tr{'protocol'}: </td> - <td width='15%'> - <select name='PROTOCOL'> - <option value='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</option> - <option value='udp' $selected{'PROTOCOL'}{'udp'}>UDP</option> - <option value='gre' $selected{'PROTOCOL'}{'gre'}>GRE</option> - </select> - </td> - <td class='base' width='20%'><font color='${Header::colourred}'>$Lang::tr{'alias ip'}:</font></td> - <td> - <select name='SRC_IP'> - <option value='0.0.0.0' $selected{'SRC_IP'}{'0.0.0.0'}>DEFAULT IP</option> -END -; -open(ALIASES, "$aliasfile") or die 'Unable to open aliases file.'; -while (<ALIASES>) -{ - chomp($_); - my @temp = split(/,/,$_); - if ($temp[1] eq 'on') { - print "<option value='$temp[0]' $selected{'SRC_IP'}{$temp[0]}>$temp[0]"; - if (defined $temp[2] and ($temp[2] ne '')) { print " ($temp[2])"; } - print "</option>\n"; - } -} -close(ALIASES); -print <<END - </select> - </td> - <td class='base' width='20%'><font color='${Header::colourred}'>$Lang::tr{'source port'}:</font></td> - <td width='10%'><input type='text' name='SRC_PORT' value='$cgiparams{'SRC_PORT'}' size='8' /></td> - </tr> - <tr> - <td class='base'> </td> - <td> </td> - <td class='base'>$Lang::tr{'destination ip'}:</td> - <td><input type='text' name='DEST_IP' value='$cgiparams{'DEST_IP'}' size='15' /></td> - <td class='base'>$Lang::tr{'destination port'}:</td> - <td><input type='text' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' size='8' /></td> - </tr> -</table> -END -; -} - -print <<END -<table> - <tr> - <td class='base'>$Lang::tr{'remark title'} <img src='/blob.gif' alt='*' /> </td> - <td><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /></td> -END -; -unless ($cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'} && $cgiparams{'ENABLED'} eq "off") { - print "<td width='20'> </td>"; - print "<td>$Lang::tr{'enabled'} </td><td><input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td>\n"; -} -print <<END - </tr> -</table> -END -; - -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY2'} eq "0" && ($cgiparams{'ORIG_IP'} eq "0" || $cgiparams{'ORIG_IP'} eq "0.0.0.0/0")){ -# if it is a port forward rule with a 0 in the orig_port field, this means there are xtaccess records, and we -# don't want to allow a person to change the orig_ip field as it will mess other logic up - print "<input type='hidden' name='ORIG_IP' value='$cgiparams{'ORIG_IP'}' />\n"; -} else { -print <<END -<table> - <tr> - <td class='base'><font class='boldbase' color='${Header::colourred}'>$Lang::tr{'source network'}</font> <img src='/blob.gif' alt='*' /> </td> - <td><input type='text' name='ORIG_IP' value='$cgiparams{'ORIG_IP'}' size='15' /></td> - </tr> -</table> -END -; -} - -print <<END -<table width='100%'> - <hr /> - <tr> - <td class='base' width='25%'><img src='/blob.gif' alt ='*' align='top' /> <font class='base'>$Lang::tr{'this field may be blank'}</font></td> -END -; - - -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){ - if($cgiparams{'KEY2'} eq "0"){ - print "<td width='35%' align='right'>$Lang::tr{'open to all'}: </td><td width='5%'><input type='checkbox' name='OVERRIDE' $checked{'OVERRIDE'}{'on'} /></td>\n"; - } else { - print "<td width='40%'> </td>\n"; - } - print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' />"; - print "<input type='hidden' name='KEY1' value='$cgiparams{'KEY1'}' />"; - print "<input type='hidden' name='KEY2' value='$cgiparams{'KEY2'}' /></TD>"; - print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /></td>"; - # on an edit and an xtaccess add, for some reason the "Reset" button stops working, so I make it a submit button -} else { - print "<td width='30%'> </td>\n"; - print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'add'}' /></td>"; - if ($cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'}) { - print "<td align='center' width='15%'><input type='hidden' name='KEY1' value='$cgiparams{'KEY1'}' />"; - print "<input type='hidden' name='KEY2' value='$cgiparams{'KEY2'}' />"; - print "<input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /></td>"; - } elsif ($errormessage ne '') { - print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /></td>"; - } else { - print "<td align='center' width='15%'><input type='reset' name='ACTION' value='$Lang::tr{'reset'}' /></td>"; - } -} -print <<END - <td width='5%' align='right'> </td> - </tr> -</table> -END -; -&Header::closebox(); - -print "</form>\n"; - -&Header::openbox('100%', 'left', $Lang::tr{'current rules'}); -print <<END -<table width='100%'> -<tr> -<td width='7%' class='boldbase' align='center'><b>$Lang::tr{'proto'}</b></td> -<td width='31%' class='boldbase' align='center'><b>$Lang::tr{'source'}</b></td> -<td width='2%' class='boldbase' align='center'> </td> -<td width='31%' class='boldbase' align='center'><b>$Lang::tr{'destination'}</b></td> -<td width='24%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> -<td width='4%' class='boldbase' colspan='4' align='center'><b>$Lang::tr{'action'}</b></td> -</tr> -END -; - -my $id = 0; -my $xtaccesscolor = '#F6F4F4'; -open(RULES, "$filename") or die 'Unable to open config file.'; -while (<RULES>) -{ - my $protocol = ''; - my $gif = ''; - my $gdesc = ''; - my $toggle = ''; - chomp($_); - my @temp = split(/,/,$_); - $temp[9] ='' unless defined $temp[9];# Glles ESpinasse : suppress warning on page init - if ($temp[2] eq 'udp') { - $protocol = 'UDP'; } - elsif ($temp[2] eq 'gre') { - $protocol = 'GRE' } - else { - $protocol = 'TCP' } - # Change bgcolor when a new portfw rule is added - if ($temp[1] eq "0"){ - $id++; - } - # Darren Critchley highlight the row we are editing - if ( $cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] ) { - print "<tr bgcolor='${Header::colouryellow}'>\n"; - } else { - if ($id % 2) { - print "<tr bgcolor='$color{'color22'}'>\n"; - } - else { - print "<tr bgcolor='$color{'color20'}'>\n"; - } - } - - if ($temp[6] eq 'on') { $gif = 'on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};} - else { $gif = 'off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'}; } - - # Darren Critchley - this code no longer works - should we remove? - # catch for 'old-style' rules file - assume default ip if - # none exists - if (!&General::validip($temp[7]) || $temp[7] eq '0.0.0.0') { - $temp[7] = 'DEFAULT IP'; } - if ($temp[1] eq '0') { # Port forwarding entry - - # Darren Critchley - Format the source and destintation ports - my $srcprt = $temp[3]; - $srcprt =~ s/-/ - /; - $srcprt =~ s/:/ - /; - my $dstprt = $temp[5]; - $dstprt =~ s/-/ - /; - $dstprt =~ s/:/ - /; - - # Darren Critchley - Get Port Service Name if we can - code borrowed from firewalllog.dat - $_=$temp[3]; - if (/^\d+$/) { - my $servi = uc(getservbyport($temp[3], lc($temp[2]))); - if ($servi ne '' && $temp[3] < 1024) { - $srcprt = "$srcprt($servi)"; } - } - $_=$temp[5]; - if (/^\d+$/) { - my $servi = uc(getservbyport($temp[5], lc($temp[2]))); - if ($servi ne '' && $temp[5] < 1024) { - $dstprt = "$dstprt($servi)"; } - } - - # Darren Critchley - If the line is too long, wrap the port numbers - my $srcaddr = "$temp[7] : $srcprt"; - if (length($srcaddr) > 22) { - $srcaddr = "$temp[7] :<br /> $srcprt"; - } - my $dstaddr = "$temp[4] : $dstprt"; - if (length($dstaddr) > 26) { - $dstaddr = "$temp[4] :<br /> $dstprt"; - } -print <<END -<td align='center'>$protocol</td> -<td align='center'>$srcaddr</td> -<td align='center'><img src='/images/forward.gif' alt='=>' /></td> -<td align='center'>$dstaddr</td> -<td align='left'> $temp[9]</td> -<td align='center'> - <form method='post' name='frm$temp[0]c' action='$ENV{'SCRIPT_NAME'}'> - <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> - <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - <input type='hidden' name='ENABLED' value='$toggle' /> - </form> -</td> - -<td align='center'> - <form method='post' name='frm$temp[0]' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='$Lang::tr{'add xtaccess'}' /> - <input type='image' name='$Lang::tr{'add xtaccess'}' src='/images/add.gif' alt='$Lang::tr{'add xtaccess'}' title='$Lang::tr{'add xtaccess'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - </form> -</td> - -<td align='center'> - <form method='post' name='frm$temp[0]' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> - <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - </form> -</td> - -<td align='center'> - <form method='post' name='frm$temp[0]b' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> - <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - </form> -</td> - -</tr> -END - ; - } else { # external access entry -print <<END -<td align='center'> </td> - -<td align='left' colspan='4'> <font color='${Header::colourred}'>$Lang::tr{'access allowed'}</font> $temp[8] ($temp[9])</td> - -<td align='center'> - <form method='post' name='frm$temp[0]$temp[1]t' action='$ENV{'SCRIPT_NAME'}'> - <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$Lang::tr{'toggle enable disable'}' title='$Lang::tr{'toggle enable disable'}' /> - <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - <input type='hidden' name='ENABLED' value='$toggle' /> - </form> -</td> - -<td align='center'> </td> - -<td align='center'> - <form method='post' name='frm$temp[0]$temp[1]' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> - <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - </form> -</td> - -<td align='center'> - <form method='post' name='frm$temp[0]b$temp[1]b' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> - <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> - <input type='hidden' name='KEY1' value='$temp[0]' /> - <input type='hidden' name='KEY2' value='$temp[1]' /> - </form> -</td> - -</tr> -END - ; - } -} - -close(RULES); - -print "</table>"; - -# If the fixed lease file contains entries, print Key to action icons -if ( ! -z "$filename") { -print <<END -<table> -<tr> - <td class='boldbase'> <b>$Lang::tr{'legend'}: </b></td> - <td><img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td> - <td class='base'>$Lang::tr{'click to disable'}</td> - <td> </td> - <td><img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td> - <td class='base'>$Lang::tr{'click to enable'}</td> - <td> </td> - <td><img src='/images/add.gif' alt='$Lang::tr{'add xtaccess'}' /></td> - <td class='base'>$Lang::tr{'add xtaccess'}</td> - <td> </td> - <td><img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td> - <td class='base'>$Lang::tr{'edit'}</td> - <td> </td> - <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td> - <td class='base'>$Lang::tr{'remove'}</td> -</tr> -</table> -END -; -} - -&Header::closebox(); - -&Header::closebigbox(); - -&Header::closepage(); - -# Validate Field Entries -sub validateparams -{ - # Darren Critchley - Get rid of dashes in port ranges - $cgiparams{'DEST_PORT'}=~ tr/-/:/; - $cgiparams{'SRC_PORT'}=~ tr/-/:/; - - # Darren Critchley - code to substitue wildcards - if ($cgiparams{'SRC_PORT'} eq "*") { - $cgiparams{'SRC_PORT'} = "1:65535"; - } - if ($cgiparams{'SRC_PORT'} =~ /^(\D):(\d+)$/) { - $cgiparams{'SRC_PORT'} = "1:$2"; - } - if ($cgiparams{'SRC_PORT'} =~ /^(\d+):(\D)$/) { - $cgiparams{'SRC_PORT'} = "$1:65535"; - } - if ($cgiparams{'DEST_PORT'} eq "*") { - $cgiparams{'DEST_PORT'} = "1:65535"; - } - if ($cgiparams{'DEST_PORT'} =~ /^(\D):(\d+)$/) { - $cgiparams{'DEST_PORT'} = "1:$2"; - } - if ($cgiparams{'DEST_PORT'} =~ /^(\d+):(\D)$/) { - $cgiparams{'DEST_PORT'} = "$1:65535"; - } - - # Darren Critchley - Add code for GRE protocol - we want to ignore ports, but we need a place holder - if ($cgiparams{'PROTOCOL'} eq 'gre') { - $cgiparams{'SRC_PORT'} = "GRE"; - $cgiparams{'DEST_PORT'} = "GRE"; - } - - unless($cgiparams{'PROTOCOL'} =~ /^(tcp|udp|gre)$/) { $errormessage = $Lang::tr{'invalid input'}; } - # Darren Critchley - Changed how the error routine works a bit - for the validportrange check, we need to - # pass in src or dest to determine which side we are working with. - # the routine returns the complete error or '' - if ($cgiparams{'PROTOCOL'} ne 'gre') { - $errormessage = &General::validportrange($cgiparams{'SRC_PORT'}, 'src'); - } - if( ($cgiparams{'ORIG_IP'} ne "0" && $cgiparams{'KEY2'} ne "0") || $cgiparams{'ACTION'} eq $Lang::tr{'add'}) { - # if it is a port forward record with 0 in orig_ip then ignore checking this field - unless(&General::validipormask($cgiparams{'ORIG_IP'})) - { - if ($cgiparams{'ORIG_IP'} ne '') { - $errormessage = $Lang::tr{'source ip bad'}; } - else { - $cgiparams{'ORIG_IP'} = '0.0.0.0/0'; } - } - } - # Darren Critchey - New rule that sets destination same as source if dest_port is blank. - if ($cgiparams{'DEST_PORT'} eq ''){ - $cgiparams{'DEST_PORT'} = $cgiparams{'SRC_PORT'}; - } - # Darren Critchey - Just in case error message is already set, this routine would wipe it out if - # we don't do a test here - if ($cgiparams{'PROTOCOL'} ne 'gre') { - unless($errormessage) {$errormessage = &General::validportrange($cgiparams{'DEST_PORT'}, 'dest');} - } - unless(&General::validip($cgiparams{'DEST_IP'})) { $errormessage = $Lang::tr{'destination ip bad'}; } - return; -} - -# Darren Critchley - we want to make sure that a port range does not overlap another port range -sub checkportoverlap -{ - my $portrange1 = $_[0]; # New port range - my $portrange2 = $_[1]; # existing port range - my @tempr1 = split(/:/,$portrange1); - my @tempr2 = split(/:/,$portrange2); - - unless (&checkportinc($tempr1[0], $portrange2)){ return 0;} - unless (&checkportinc($tempr1[1], $portrange2)){ return 0;} - - unless (&checkportinc($tempr2[0], $portrange1)){ return 0;} - unless (&checkportinc($tempr2[1], $portrange1)){ return 0;} - - return 1; # Everything checks out! -} - -# Darren Critchley - we want to make sure that a port entry is not within an already existing range -sub checkportinc -{ - my $port1 = $_[0]; # Port - my $portrange2 = $_[1]; # Port range - my @tempr1 = split(/:/,$portrange2); - - if ($port1 < $tempr1[0] || $port1 > $tempr1[1]) { - return 1; - } else { - return 0; - } -} - -# Darren Critchley - certain ports are reserved for Ipcop -# TCP 67,68,81,222,445 -# UDP 67,68 -# Params passed in -> port, rangeyn, protocol -sub disallowreserved -{ - # port 67 and 68 same for tcp and udp, don't bother putting in an array - my $msg = ""; - my @tcp_reserved = (); - my $prt = $_[0]; # the port or range - my $ryn = $_[1]; # tells us whether or not it is a port range - my $prot = $_[2]; # protocol - my $srcdst = $_[3]; # source or destination - - if ($ryn) { # disect port range - if ($srcdst eq "src") { - $msg = "$Lang::tr{'rsvd src port overlap'}"; - } else { - $msg = "$Lang::tr{'rsvd dst port overlap'}"; - } - my @tmprng = split(/:/,$prt); - unless (67 < $tmprng[0] || 67 > $tmprng[1]) { $errormessage="$msg 67"; return; } - unless (68 < $tmprng[0] || 68 > $tmprng[1]) { $errormessage="$msg 68"; return; } - if ($prot eq "tcp") { - foreach my $prange (@tcp_reserved) { - unless ($prange < $tmprng[0] || $prange > $tmprng[1]) { $errormessage="$msg $prange"; return; } - } - } - } else { - if ($srcdst eq "src") { - $msg = "$Lang::tr{'reserved src port'}"; - } else { - $msg = "$Lang::tr{'reserved dst port'}"; - } - if ($prt == 67) { $errormessage="$msg 67"; return; } - if ($prt == 68) { $errormessage="$msg 68"; return; } - if ($prot eq "tcp") { - foreach my $prange (@tcp_reserved) { - if ($prange == $prt) { $errormessage="$msg $prange"; return; } - } - } - } - return; -} - -# Darren Critchley - Attempt to combine Add/Update validation as they are almost the same -sub valaddupdate -{ - if ($cgiparams{'KEY2'} eq "0"){ # if it is a port forward rule, then validate properly - &validateparams(); - } else { # it is an xtaccess rule, just check for a valid ip - unless(&General::validipormask($cgiparams{'ORIG_IP'})) - { - if ($cgiparams{'ORIG_IP'} ne '') { - $errormessage = $Lang::tr{'source ip bad'}; } - else { # this rule stops someone from adding an ALL xtaccess record - $errormessage = $Lang::tr{'xtaccess all error'}; - $cgiparams{'ACTION'} = $Lang::tr{'add xtaccess'}; - } - } - # Darren Critchley - check for 0.0.0.0/0 - not allowed for xtaccess - if ($cgiparams{'ORIG_IP'} eq "0.0.0.0/0" || $cgiparams{'ORIG_IP'} eq "0.0.0.0") { - $errormessage = $Lang::tr{'xtaccess all error'}; - $cgiparams{'ACTION'} = $Lang::tr{'add xtaccess'}; - } - } - # Darren Critchley - Remove commas from remarks - $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'}); - - # Darren Critchley - Check to see if we are working with port ranges - our ($prtrange1, $prtrange2); - $_ = $cgiparams{'SRC_PORT'}; - if ($cgiparams{'KEY2'} eq "0" && m/:/){ - $prtrange1 = 1; - } - if ($cgiparams{'SRC_IP'} eq '0.0.0.0') { # Dave Roberts - only check if using DEFAULT IP - if ($prtrange1 == 1){ # check for source ports reserved for Ipcop - &disallowreserved($cgiparams{'SRC_PORT'},1,$cgiparams{'PROTOCOL'},"src"); - if ($errormessage) { goto EXITSUB; } - } else { # check for source port reserved for Ipcop - &disallowreserved($cgiparams{'SRC_PORT'},0,$cgiparams{'PROTOCOL'},"src"); - if ($errormessage) { goto EXITSUB; } - } - } - - $_ = $cgiparams{'DEST_PORT'}; - if ($cgiparams{'KEY2'} eq "0" && m/:/){ - $prtrange2 = 1; - } - if ($cgiparams{'SRC_IP'} eq '0.0.0.0') { # Dave Roberts - only check if using DEFAULT IP - if ($prtrange2 == 1){ # check for destination ports reserved for IPFire - &disallowreserved($cgiparams{'DEST_PORT'},1,$cgiparams{'PROTOCOL'},"dst"); - if ($errormessage) { goto EXITSUB; } - } else { # check for destination port reserved for IPFire - &disallowreserved($cgiparams{'DEST_PORT'},0,$cgiparams{'PROTOCOL'},"dst"); - if ($errormessage) { goto EXITSUB; } - } - } - - -EXITSUB: - return; -} - -# Darren Critchley - Duplicate or overlapping Port range check -sub portchecks -{ - $_ = $_[0]; - our ($prtrange1, $prtrange2); - if (m/:/ && $prtrange1 == 1) { # comparing two port ranges - unless (&checkportoverlap($cgiparams{'SRC_PORT'},$_[0])) { - $errormessage = "$Lang::tr{'source port overlaps'} $_[0]"; - } - } - if (m/:/ && $prtrange1 == 0 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($cgiparams{'SRC_PORT'}, $_[0])) { - $errormessage = "$Lang::tr{'srcprt within existing'} $_[0]"; - } - } - if (! m/:/ && $prtrange1 == 1 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($_[0], $cgiparams{'SRC_PORT'})) { - $errormessage = "$Lang::tr{'srcprt range overlaps'} $_[0]"; - } - } - - if ($errormessage eq ''){ - $_ = $_[1]; - if (m/:/ && $prtrange2 == 1) { # if true then there is a port range - unless (&checkportoverlap($cgiparams{'DEST_PORT'},$_[1])) { - $errormessage = "$Lang::tr{'destination port overlaps'} $_[1]"; - } - } - if (m/:/ && $prtrange2 == 0 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($cgiparams{'DEST_PORT'}, $_[1])) { - $errormessage = "$Lang::tr{'dstprt within existing'} $_[1]"; - } - } - if (! m/:/ && $prtrange2 == 1 && $errormessage eq '') { # compare one port to a range - unless (&checkportinc($_[1], $cgiparams{'DEST_PORT'})) { - $errormessage = "$Lang::tr{'dstprt range overlaps'} $_[1]"; - } - } - } - return; -} diff --git a/html/cgi-bin/proxy.cgi b/html/cgi-bin/proxy.cgi index acb4f97..6f78deb 100644 --- a/html/cgi-bin/proxy.cgi +++ b/html/cgi-bin/proxy.cgi @@ -1678,8 +1678,8 @@ print <<END <td class='base'>$Lang::tr{'advproxy fake referer'}: <img src='/blob.gif' alt='*' /></td> </tr> <tr> - <td><input type='text' name='FAKE_USERAGENT' value='$proxysettings{'FAKE_USERAGENT'}' size='56' /></td> - <td><input type='text' name='FAKE_REFERER' value='$proxysettings{'FAKE_REFERER'}' size='56' /></td> + <td><input type='text' name='FAKE_USERAGENT' value='$proxysettings{'FAKE_USERAGENT'}' size='40%' /></td> + <td><input type='text' name='FAKE_REFERER' value='$proxysettings{'FAKE_REFERER'}' size='40%' /></td> </tr> </table> <hr size='1'> diff --git a/html/cgi-bin/qos.cgi b/html/cgi-bin/qos.cgi index de73284..b0b6006 100644 --- a/html/cgi-bin/qos.cgi +++ b/html/cgi-bin/qos.cgi @@ -699,7 +699,7 @@ if ($errormessage) { ############################################################################################################################ ############################################################################################################################
-&Header::openbox('100%', 'center', 'Quality of Service'); +&Header::openbox('100%', 'center', );
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> @@ -707,15 +707,18 @@ print <<END END ; if ( $message ne "" ) { - print "<tr><td colspan='2' align='center'><font color='red'>$message</font>"; + print "<tr><td colspan='2' align='center'><font color='red'>$message</font></tr>"; } print <<END - <tr><td width='50%' align='left'><b>Quality of Service:</b> - <td width='50%' align='center' bgcolor='$statuscolor'><font color='white'>$status</font> - <tr><td width='100%' align='center' colspan='2'> - <input type='submit' name='ACTION' value="$Lang::tr{'start'}" /> - <input type='submit' name='ACTION' value="$Lang::tr{'stop'}" /> - <input type='submit' name='ACTION' value="$Lang::tr{'restart'}" /></table></form> + <tr><td width='50%' align='left'><b>Quality of Service:</b></td> + <td width='50%' align='center' bgcolor='$statuscolor'><font color='white'>$status</font></td></tr> + <tr> + <td colspan='2'><br></td> + </tr> + <tr><td width='100%' align='right' colspan='2'> + <input type='submit' name='ACTION' value="$Lang::tr{'start'}"> + <input type='submit' name='ACTION' value="$Lang::tr{'stop'}"> + <input type='submit' name='ACTION' value="$Lang::tr{'restart'}" ></td></tr></table></form> END ; if (($qossettings{'OUT_SPD'} ne '') && ($qossettings{'INC_SPD'} ne '')) { diff --git a/html/cgi-bin/remote.cgi b/html/cgi-bin/remote.cgi index ed8a94d..84e0847 100644 --- a/html/cgi-bin/remote.cgi +++ b/html/cgi-bin/remote.cgi @@ -126,7 +126,7 @@ if ($errormessage) {
print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
-&Header::openbox('100%', 'left', 'SSH:'); +&Header::openbox('100%', 'left', $Lang::tr{'ssh'}); print <<END <table width='100%'> <tr> @@ -154,7 +154,7 @@ print <<END <td width='100%' class='base'>$Lang::tr{'ssh port'}</td> </tr> <tr> - <td align='center' colspan='3'><hr /> + <td align='right' colspan='3'> <input type='submit' name='ACTION' value='$Lang::tr{'ssh tempstart15'}' /> <input type='submit' name='ACTION' value='$Lang::tr{'ssh tempstart30'}' /> <input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> diff --git a/html/cgi-bin/routing.cgi b/html/cgi-bin/routing.cgi index 488705f..5798fb8 100644 --- a/html/cgi-bin/routing.cgi +++ b/html/cgi-bin/routing.cgi @@ -244,10 +244,10 @@ print <<END <td><input type='text' name='REMARK' value='$settings{'REMARK'}' size='25'/></td> </tr> </table> -<hr /> +<br> <table width='100%'> <tr> - <td width='50%' align='center'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> + <td width='50%' align='right'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td> </tr> </table> </form> @@ -257,13 +257,13 @@ END
&Header::openbox('100%', 'left', $Lang::tr{'routing table'}); print <<END -<hr /> -<table width='100%'> + +<table width='100%' class='tbl'> <tr> - <td width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'host ip'} / $Lang::tr{'network'}</b></a></td> - <td width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?GATEWAY'><b>$Lang::tr{'gateway'}</b></a></td> - <td width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?REMARK'><b>$Lang::tr{'remark'}</b></a></td> - <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'host ip'} / $Lang::tr{'network'}</b></a></th> + <th width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?GATEWAY'><b>$Lang::tr{'gateway'}</b></a></th> + <th width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?REMARK'><b>$Lang::tr{'remark'}</b></a></th> + <th width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -273,6 +273,7 @@ END #
my $key = 0; +my $col=""; foreach my $line (@current) { chomp($line); # remove newline my @temp=split(/,/,$line); @@ -294,15 +295,17 @@ foreach my $line (@current) { if ($settings{'KEY1'} eq $key) { print "<tr bgcolor='${Header::colouryellow}'>"; } elsif ($key % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } print <<END -<td align='center'>$temp[1]</td> -<td align='center'>$temp[2]</td> -<td align='center'>$temp[3]</td> -<td align='center'> +<td align='center' $col>$temp[1]</td> +<td align='center' $col>$temp[2]</td> +<td align='center' $col>$temp[3]</td> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> @@ -310,7 +313,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -318,7 +321,7 @@ foreach my $line (@current) { </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> diff --git a/html/cgi-bin/samba.cgi b/html/cgi-bin/samba.cgi index 74f10bd..d48edf8 100644 --- a/html/cgi-bin/samba.cgi +++ b/html/cgi-bin/samba.cgi @@ -886,27 +886,33 @@ my %shares = config("${General::swroot}/samba/shares"); print <<END <a name="$Lang::tr{'manage shares'}"></a> <br /> -<table width='95%' cellspacing='0'> -<tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'manage shares'}</b> -<tr><td align='left'><u>$Lang::tr{'sharename'}</u></td><td colspan='2' width="5%" align='center'><u>$Lang::tr{'options'}</u></td></tr> +<table width='95%' cellspacing='0' class='tbl'> +<tr><th bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'manage shares'}</b></th></tr> +<tr><th align='left'><u>$Lang::tr{'sharename'}</u></th><th colspan='2' width="5%" align='center'><u>$Lang::tr{'options'}</u></th></tr> END ;
my @Shares = keys(%shares); my $lines = 0; - +my $col=""; foreach my $shareentry (sort @Shares) { chomp $shareentry; - if ($lines % 2) {print "<tr bgcolor='$color{'color20'}'>";} else {print "<tr bgcolor='$color{'color22'}'>";} + if ($lines % 2) { + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; + } else { + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; + } print <<END - <td align='left'>$shareentry</td> - <td><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'> + <td align='left' $col>$shareentry</td> + <td $col><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'> <input type='hidden' name='NAME' value='$shareentry' /> <input type='hidden' name='ACTION' value='sharechange' /> <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' /> </form></td> - <td><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'> + <td $col><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'> <input type='hidden' name='NAME' value='$shareentry' /> <input type='hidden' name='ACTION' value='smbsharedel' /> <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' /> diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi index 131cad8..fbff41f 100644 --- a/html/cgi-bin/services.cgi +++ b/html/cgi-bin/services.cgi @@ -116,25 +116,33 @@ if ( $querry[0] =~ "processescpu"){ &Header::openbox('100%', 'left', $Lang::tr{'services'}); print <<END <div align='center'> -<table width='80%' cellspacing='1' border='0'> -<tr bgcolor='$color{'color20'}'><td align='left'><b>$Lang::tr{'services'}</b></td><td align='center' ><b>$Lang::tr{'status'}</b></td><td align='center'><b>PID</b></td><td align='center'><b>$Lang::tr{'memory'}</b></td></tr> +<table width='80%' cellspacing='1' class='tbl'> +<tr> + <th align='left'><b>$Lang::tr{'services'}</b></th> + <th align='center' ><b>$Lang::tr{'status'}</b></th> + <th align='center'><b>PID</b></th> + <th align='center'><b>$Lang::tr{'memory'}</b></th> +</tr> END ; my $key = ''; + my $col=""; foreach $key (sort keys %servicenames){ $lines++; if ($lines % 2){ - print "<tr bgcolor='$color{'color22'}'>\n<td align='left'>"; + $col="bgcolor='$color{'color22'}'"; + print "<tr><td align='left' $col>"; print $link{$key}; - print "</td>\n"; + print "</td>"; }else{ - print "<tr bgcolor='$color{'color20'}'>\n<td align='left'>"; + $col="bgcolor='$color{'color20'}'"; + print "<tr><td align='left' $col>"; print $link{$key}; - print "</td>\n"; + print "</td>"; }
my $shortname = $servicenames{$key}; - my $status = &isrunning($shortname); + my $status = &isrunning($shortname,$col);
print "$status\n"; print "</tr>\n"; @@ -152,14 +160,14 @@ END
print <<END <div align='center'> -<table width='80%' cellspacing='1' border='0'> -<tr bgcolor='$color{'color20'}'> -<td align='center'><b>Addon</b></td> -<td align='center'><b>Boot</b></td> -<td align='center' colspan=2><b>$Lang::tr{'action'}</b></td> -<td align='center'><b>$Lang::tr{'status'}</b></td> -<td align='center'><b>PID</b></td> -<td align='center'><b>$Lang::tr{'memory'}</b></td> +<table width='80%' cellspacing='1' class='tbl'> +<tr> + <th align='center'><b>Addon</b></th> + <th align='center'><b>Boot</b></th> + <th align='center' colspan=2><b>$Lang::tr{'action'}</b></th> + <th align='center'><b>$Lang::tr{'status'}</b></th> + <th align='center'><b>PID</b></th> + <th align='center'><b>$Lang::tr{'memory'}</b></th> </tr> END ; @@ -183,16 +191,18 @@ END if ( ($_ ne "alsa") && ($_ ne "mdadm") ) { $lines++; if ($lines % 2){ - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; }else{ - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } - print "<td align='left'>$_</td> "; - my $status = isautorun($_); + print "<td align='left' $col width='31%'>$_</td> "; + my $status = isautorun($_,$col); print "$status "; - print "<td align='center'><A HREF=services.cgi?$_!start><img alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' border='0' /></A></td>"; - print "<td align='center'><A HREF=services.cgi?$_!stop><img alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' border='0' /></A></td> "; - my $status = &isrunningaddon($_); + print "<td align='center' $col width='8%'><A HREF=services.cgi?$_!start><img alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' border='0' /></A></td>"; + print "<td align='center' $col width='8%'><A HREF=services.cgi?$_!stop><img alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' border='0' /></A></td> "; + my $status = &isrunningaddon($_,$col); $status =~ s/\[[0-1];[0-9]+m//g;
chomp($status); @@ -219,16 +229,17 @@ END
sub isautorun{ my $cmd = $_[0]; - my $status = "<td align='center'></td>"; + my $col = $_[1]; + my $status = "<td align='center' $col></td>"; my $init = `find /etc/rc.d/rc3.d/S??${cmd} 2>/dev/null`; chomp ($init); if ($init ne ''){ - $status = "<td align='center'><A HREF=services.cgi?$_!disable><img alt='$Lang::tr{'deactivate'}' title='$Lang::tr{'deactivate'}' src='/images/on.gif' border='0' width='16' height='16' /></A></td>"; + $status = "<td align='center' $col><A HREF=services.cgi?$_!disable><img alt='$Lang::tr{'deactivate'}' title='$Lang::tr{'deactivate'}' src='/images/on.gif' border='0' width='16' height='16' /></A></td>"; } $init = `find /etc/rc.d/rc3.d/off/S??${cmd} 2>/dev/null`; chomp ($init); if ($init ne ''){ - $status = "<td align='center'><A HREF=services.cgi?$_!enable><img alt='$Lang::tr{'activate'}' title='$Lang::tr{'activate'}' src='/images/off.gif' border='0' width='16' height='16' /></A></td>"; + $status = "<td align='center' $col><A HREF=services.cgi?$_!enable><img alt='$Lang::tr{'activate'}' title='$Lang::tr{'activate'}' src='/images/off.gif' border='0' width='16' height='16' /></A></td>"; }
return $status; @@ -236,7 +247,8 @@ sub isautorun{
sub isrunning{ my $cmd = $_[0]; - my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2'></td>"; + my $col = $_[1]; + my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>"; my $pid = ''; my $testcmd = ''; my $exename; @@ -267,7 +279,7 @@ sub isrunning{ close(FILE); } if ($testcmd =~ /$exename/){ - $status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td><td align='center'>$pid</td><td align='center'>$memory</td>"; + $status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td><td align='center' $col>$pid</td><td align='center' $col>$memory</td>"; } } return $status; @@ -275,7 +287,8 @@ sub isrunning{
sub isrunningaddon{ my $cmd = $_[0]; - my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2'></td>"; + my $col = $_[1]; + my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>"; my $pid = ''; my $testcmd = ''; my $exename; @@ -293,7 +306,7 @@ sub isrunningaddon{ $testcmd =~ s///gi;
my @pid = split(/\s/,$testcmd); - $status .="<td align='center'>$pid[0]</td>"; + $status .="<td align='center' $col>$pid[0]</td>";
my $memory = 0;
@@ -305,9 +318,9 @@ sub isrunningaddon{ } $memory+=$memory[0]; } - $status .="<td align='center'>$memory KB</td>"; + $status .="<td align='center' $col>$memory KB</td>"; }else{ - $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2'></td>"; + $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>"; } return $status; } diff --git a/html/cgi-bin/shutdown.cgi b/html/cgi-bin/shutdown.cgi new file mode 100644 index 0000000..dd6a03c --- /dev/null +++ b/html/cgi-bin/shutdown.cgi @@ -0,0 +1,88 @@ +#!/usr/bin/perl +# +# SmoothWall CGIs +# +# This code is distributed under the terms of the GPL +# +# (c) The SmoothWall Team +# + +use strict; + +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +my %cgiparams=(); +my $death = 0; +my $rebirth = 0; + +&Header::showhttpheaders(); + +$cgiparams{'ACTION'} = ''; +&Header::getcgihash(%cgiparams); + +if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'}) { + $death = 1; + &General::log($Lang::tr{'shutting down ipfire'}); + system '/usr/local/bin/ipfirereboot down'; +} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) { + $rebirth = 1; + &General::log($Lang::tr{'rebooting ipfire'}); + system '/usr/local/bin/ipfirereboot boot'; +} +if ($death == 0 && $rebirth == 0) { + + &Header::openpage($Lang::tr{'shutdown control'}, 1, ''); + + &Header::openbigbox('100%', 'left'); + + print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n"; + + &Header::openbox('100%', 'left', ); + print <<END +<table width='100%'> +<tr> + <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot'}' /></td> + <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown'}' /></td> +</tr> +</table> +END + ; + &Header::closebox(); + +} else { + my $message=''; + my $title=''; + my $refresh = "<meta http-equiv='refresh' content='5; URL=/cgi-bin/index.cgi' />"; + if ($death) { + $title = $Lang::tr{'shutting down'}; + $message = $Lang::tr{'ipfire has now shutdown'}; + } else { + $title = $Lang::tr{'rebooting'}; + $message = $Lang::tr{'ipfire has now rebooted'}; + } + &Header::openpage($title, 0, $refresh); + + &Header::openbigbox('100%', 'center'); + print <<END +<div align='center'> +<table width='100%' bgcolor='#ffffff'> +<tr><td align='center'> +<br /><br /><img src='/ipfire_big.gif' /><br /><br /><br /> +</td></tr> +</table> +<br /> +<font size='6'>$message</font> +</div> +END + ; +} + +&Header::closebigbox(); +&Header::closepage(); + diff --git a/html/cgi-bin/speed.cgi b/html/cgi-bin/speed.cgi index b714d67..4468abd 100644 --- a/html/cgi-bin/speed.cgi +++ b/html/cgi-bin/speed.cgi @@ -36,9 +36,8 @@ foreach $field (@fields) { } }
- -my $interface = `cat /var/ipfire/red/iface`; -my @data_now = `ip -s link show $interface`; +my $interface = `cat /var/ipfire/red/iface 2>/dev/null`; +my @data_now = `ip -s link show $interface 2>/dev/null`;
my $lastline; my $rxb_now = 0; diff --git a/html/cgi-bin/time.cgi b/html/cgi-bin/time.cgi index caa1718..39d71f8 100644 --- a/html/cgi-bin/time.cgi +++ b/html/cgi-bin/time.cgi @@ -233,14 +233,10 @@ if ($errormessage) {
print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
-&Header::openbox('100%', 'left', $Lang::tr{'network time'}); +&Header::openbox('100%', 'left', $Lang::tr{'ntp common settings'}); print <<END <table width='100%'> <tr> - <td colspan='2'><strong>$Lang::tr{'ntp common settings'}</strong></td> -</tr> - -<tr> <td><input type='checkbox' name='ENABLENTP' $checked{'ENABLENTP'}{'on'} /></td> <td width='100%' colspan='4' class='base'>$Lang::tr{'network time from'}</td> </tr> @@ -281,11 +277,13 @@ print <<END <td class='base' colspan='4'><input type='checkbox' name='ENABLESETONBOOT' $checked{'ENABLESETONBOOT'}{'on'} /> $Lang::tr{'Set time on boot'}</td> </tr> </table> +END +; +&Header::closebox(); +&Header::openbox('100%',1,$Lang::tr{'ntp sync'}); +print <<END <table width='100%'> <tr> - <td colspan='4'><hr /><strong>$Lang::tr{'ntp sync'}</strong></td> -</tr> -<tr> <td class='base'><input type='radio' name='UPDATE_METHOD' value='periodically' $checked{'UPDATE_METHOD'}{'periodically'} /></td> <td width='10%'>$Lang::tr{'every'}</td> <td width='45%'><input type='text' name='UPDATE_VALUE' size='3' maxlength='3' value='$timesettings{'UPDATE_VALUE'}' /> @@ -302,7 +300,7 @@ print <<END <td colspan='2'>$Lang::tr{'manually'}</td> </tr> <tr> - <td colspan='4'><hr /><strong>$Lang::tr{'update time'}</strong></td> + <td colspan='4'><br><br><strong>$Lang::tr{'update time'}</strong></td> </tr> <tr> <td> </td> @@ -322,9 +320,8 @@ print <<END <table width='100%'> <tr> <td width='30%'><img src='/blob.gif' alt='*' /> $Lang::tr{'this field may be blank'}</td> - <td width='40%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'set time now'}' /></td> - <td width='25%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> - <td width='5%' align='right'> </td> + <td width='65%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'set time now'}' /></td> + <td width='5%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> </table> END diff --git a/html/cgi-bin/tor.cgi b/html/cgi-bin/tor.cgi old mode 100755 new mode 100644 index befd508..228b5d4 --- a/html/cgi-bin/tor.cgi +++ b/html/cgi-bin/tor.cgi @@ -235,8 +235,8 @@ sub showMainBox() {
if ( ($memory != 0) && (@pid[0] ne "///") ){ - print "<table width='95%' cellspacing='0'>"; - print "<tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'tor service'}</strong></td></tr>"; + print "<table width='95%' cellspacing='0' class='tbl'>"; + print "<tr><th bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'tor service'}</strong></th></tr>"; print "<tr><td class='base'>$Lang::tr{'tor daemon'}</td>"; print "<td align='center' colspan='2' width='75%' bgcolor='${Header::colourgreen}'><font color='white'><strong>$Lang::tr{'running'}</strong></font></td></tr>"; print "<tr><td class='base'></td>"; @@ -247,8 +247,8 @@ if ( ($memory != 0) && (@pid[0] ne "///") ){ print "<td bgcolor='$color{'color22'}' align='center'>$memory KB</td></tr>"; print "</table>"; } else { - print "<table width='95%' cellspacing='0'>"; - print "<tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'tor service'}</strong></td></tr>"; + print "<table width='95%' cellspacing='0' class='tbl'>"; + print "<tr><th bgcolor='$color{'color20'}' colspan='3' align='left'><strong>$Lang::tr{'tor service'}</strong></th></tr>"; print "<tr><td class='base'>$Lang::tr{'tor daemon'}</td>"; print "<td align='center' width='75%' bgcolor='${Header::colourred}'><font color='white'><strong>$Lang::tr{'stopped'}</strong></font></td></tr>"; print "</table>"; diff --git a/html/cgi-bin/upnp.cgi b/html/cgi-bin/upnp.cgi index 8d2666e..2b03eff 100644 --- a/html/cgi-bin/upnp.cgi +++ b/html/cgi-bin/upnp.cgi @@ -82,7 +82,7 @@ if ($upnpsettings{'ACTION'} eq $Lang::tr{'save'}) debug_mode = $upnpsettings{'DEBUGMODE'} insert_forward_rules = $upnpsettings{'FORWARDRULES'} forward_chain_name = FORWARD -prerouting_chain_name = PORTFW +prerouting_chain_name = UPNPFW upstream_bitrate = $upnpsettings{'DOWNSTREAM'} downstream_bitrate = $upnpsettings{'UPSTREAM'} description_document_name = $upnpsettings{'DESCRIPTION'} diff --git a/html/cgi-bin/urlfilter.cgi b/html/cgi-bin/urlfilter.cgi index 1b40a3c..9f7e6ff 100644 --- a/html/cgi-bin/urlfilter.cgi +++ b/html/cgi-bin/urlfilter.cgi @@ -1170,7 +1170,7 @@ if (!($filtersettings{'ACTION'} eq $Lang::tr{'urlfilter manage repository'})) {
print "<form method='post' action='$ENV{'SCRIPT_NAME'}' enctype='multipart/form-data'>\n";
-&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter filter settings'}:"); +&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter filter settings'}"); print <<END <table width='100%'> <tr> @@ -1524,7 +1524,7 @@ print "</form>\n";
print "<form method='post' action='$ENV{'SCRIPT_NAME'}' enctype='multipart/form-data'>\n";
-&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter maintenance'}:"); +&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter maintenance'}");
print <<END <table width='100%'> diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi index a40894e..7e90649 100644 --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -23,7 +23,7 @@ use Net::DNS; use File::Copy; use File::Temp qw/ tempfile tempdir /; use strict; - +use Sort::Naturally; # enable only the following on debugging purpose #use warnings; #use CGI::Carp 'fatalsToBrowser'; @@ -69,6 +69,8 @@ if (&Header::orange_used() && $netsettings{'ORANGE_DEV'}) { $orange_cidr = &General::ipcidr("$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}"); }
+my $col=""; + $cgiparams{'ENABLED'} = 'off'; $cgiparams{'EDIT_ADVANCED'} = 'off'; $cgiparams{'ACTION'} = ''; @@ -104,7 +106,8 @@ $cgiparams{'ROOTCERT_OU'} = ''; $cgiparams{'ROOTCERT_CITY'} = ''; $cgiparams{'ROOTCERT_STATE'} = ''; $cgiparams{'RW_NET'} = ''; - +$cgiparams{'DPD_DELAY'} = '30'; +$cgiparams{'DPD_TIMEOUT'} = '120'; &Header::getcgihash(%cgiparams, {'wantfile' => 1, 'filevar' => 'FH'});
### @@ -384,9 +387,27 @@ sub writeipsecfiles { print CONF "\tcompress=yes\n" if ($lconfighash{$key}[13] eq 'on');
# Dead Peer Detection - print CONF "\tdpddelay=30\n"; - print CONF "\tdpdtimeout=120\n"; - print CONF "\tdpdaction=$lconfighash{$key}[27]\n"; + my $dpdaction = $lconfighash{$key}[27]; + print CONF "\tdpdaction=$dpdaction\n"; + + # If the dead peer detection is disabled and IKEv2 is used, + # dpddelay must be set to zero, too. + if ($dpdaction eq "none") { + if ($lconfighash{$key}[29] eq "ikev2") { + print CONF "\tdpddelay=0\n"; + } + } else { + my $dpddelay = $lconfighash{$key}[30]; + if (!$dpddelay) { + $dpddelay = 30; + } + print CONF "\tdpddelay=$dpddelay\n"; + my $dpdtimeout = $lconfighash{$key}[31]; + if (!$dpdtimeout) { + $dpdtimeout = 120; + } + print CONF "\tdpdtimeout=$dpdtimeout\n"; + }
# Build Authentication details: LEFTid RIGHTid : PSK psk my $psk_line; @@ -490,7 +511,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg ### } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'remove x509'}) { &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', $Lang::tr{'are you sure'}); print <<END @@ -586,7 +607,7 @@ END
if ( -f "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem") { &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', "$Lang::tr{'ca certificate'}:"); my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`; @@ -662,7 +683,7 @@ END } if ($assignedcerts) { &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', $Lang::tr{'are you sure'}); print <<END @@ -707,7 +728,7 @@ END $cgiparams{'ACTION'} eq $Lang::tr{'show host certificate'}) { my $output; &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); if ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'}) { &Header::openbox('100%', 'left', "$Lang::tr{'root certificate'}:"); @@ -1033,7 +1054,7 @@ END
ROOTCERT_ERROR: &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); if ($errormessage) { &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); @@ -1078,7 +1099,7 @@ END <b><font color='${Header::colourred}'>$Lang::tr{'capswarning'}</font></b>: $Lang::tr{'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient'} </td></tr> - <tr><td colspan='2'><hr /></td></tr> + <tr><td colspan='2'><hr></td></tr> <tr><td class='base' nowrap='nowrap'>$Lang::tr{'upload p12 file'}:</td> <td nowrap='nowrap'><input type='file' name='FH' size='32' /></td></tr> <tr><td class='base'>$Lang::tr{'pkcs12 file password'}: <img src='/blob.gif' alt='*' /></td> @@ -1120,7 +1141,7 @@ END
if ( -f "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem") { &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', "$Lang::tr{'cert'}:"); my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`; @@ -1210,7 +1231,7 @@ END ### } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'add'} && $cgiparams{'TYPE'} eq '') { &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', $Lang::tr{'connection type'}); print <<END @@ -1274,6 +1295,16 @@ END $cgiparams{'ONLY_PROPOSED'} = $confighash{$cgiparams{'KEY'}}[24]; $cgiparams{'PFS'} = $confighash{$cgiparams{'KEY'}}[28]; $cgiparams{'VHOST'} = $confighash{$cgiparams{'KEY'}}[14]; + $cgiparams{'DPD_TIMEOUT'} = $confighash{$cgiparams{'KEY'}}[30]; + $cgiparams{'DPD_DELAY'} = $confighash{$cgiparams{'KEY'}}[31]; + + if (!$cgiparams{'DPD_DELAY'}) { + $cgiparams{'DPD_DELAY'} = 30; + } + + if (!$cgiparams{'DPD_TIMEOUT'}) { + $cgiparams{'DPD_TIMEOUT'} = 120; + }
} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) { $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'}); @@ -1748,7 +1779,7 @@ END my $key = $cgiparams{'KEY'}; if (! $key) { $key = &General::findhasharraykey (%confighash); - foreach my $i (0 .. 28) { $confighash{$key}[$i] = "";} + foreach my $i (0 .. 31) { $confighash{$key}[$i] = "";} } $confighash{$key}[0] = $cgiparams{'ENABLED'}; $confighash{$key}[1] = $cgiparams{'NAME'}; @@ -1788,6 +1819,8 @@ END $confighash{$key}[24] = $cgiparams{'ONLY_PROPOSED'}; $confighash{$key}[28] = $cgiparams{'PFS'}; $confighash{$key}[14] = $cgiparams{'VHOST'}; + $confighash{$key}[30] = $cgiparams{'DPD_TIMEOUT'}; + $confighash{$key}[31] = $cgiparams{'DPD_DELAY'};
#free unused fields! $confighash{$key}[6] = 'off'; @@ -1823,9 +1856,17 @@ END
# choose appropriate dpd action if ($cgiparams{'TYPE'} eq 'host') { - $cgiparams{'DPD_ACTION'} = 'clear'; + $cgiparams{'DPD_ACTION'} = 'clear'; } else { - $cgiparams{'DPD_ACTION'} = 'restart'; + $cgiparams{'DPD_ACTION'} = 'restart'; + } + + if (!$cgiparams{'DPD_DELAY'}) { + $cgiparams{'DPD_DELAY'} = 30; + } + + if (!$cgiparams{'DPD_TIMEOUT'}) { + $cgiparams{'DPD_TIMEOUT'} = 120; }
# Default IKE Version to v2 @@ -1869,17 +1910,8 @@ END $checked{'AUTH'}{'auth-dn'} = ''; $checked{'AUTH'}{$cgiparams{'AUTH'}} = "checked='checked'";
- $selected{'DPD_ACTION'}{'clear'} = ''; - $selected{'DPD_ACTION'}{'hold'} = ''; - $selected{'DPD_ACTION'}{'restart'} = ''; - $selected{'DPD_ACTION'}{$cgiparams{'DPD_ACTION'}} = "selected='selected'"; - - $selected{'IKE_VERSION'}{'ikev1'} = ''; - $selected{'IKE_VERSION'}{'ikev2'} = ''; - $selected{'IKE_VERSION'}{$cgiparams{'IKE_VERSION'}} = "selected='selected'"; - &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); if ($errormessage) { &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); @@ -1898,6 +1930,7 @@ END print "<form method='post' enctype='multipart/form-data' action='$ENV{'SCRIPT_NAME'}'>"; print<<END <input type='hidden' name='TYPE' value='$cgiparams{'TYPE'}' /> + <input type='hidden' name='IKE_VERSION' value='$cgiparams{'IKE_VERSION'}' /> <input type='hidden' name='IKE_ENCRYPTION' value='$cgiparams{'IKE_ENCRYPTION'}' /> <input type='hidden' name='IKE_INTEGRITY' value='$cgiparams{'IKE_INTEGRITY'}' /> <input type='hidden' name='IKE_GROUPTYPE' value='$cgiparams{'IKE_GROUPTYPE'}' /> @@ -1910,23 +1943,30 @@ END <input type='hidden' name='ONLY_PROPOSED' value='$cgiparams{'ONLY_PROPOSED'}' /> <input type='hidden' name='PFS' value='$cgiparams{'PFS'}' /> <input type='hidden' name='VHOST' value='$cgiparams{'VHOST'}' /> + <input type='hidden' name='DPD_ACTION' value='$cgiparams{'DPD_ACTION'}' /> + <input type='hidden' name='DPD_DELAY' value='$cgiparams{'DPD_DELAY'}' /> + <input type='hidden' name='DPD_TIMEOUT' value='$cgiparams{'DPD_TIMEOUT'}' /> END ; if ($cgiparams{'KEY'}) { print "<input type='hidden' name='KEY' value='$cgiparams{'KEY'}' />"; + print "<input type='hidden' name='NAME' value='$cgiparams{'NAME'}' />"; print "<input type='hidden' name='AUTH' value='$cgiparams{'AUTH'}' />"; }
- &Header::openbox('100%', 'left', "$Lang::tr{'connection'}:"); + &Header::openbox('100%', 'left', "$Lang::tr{'connection'}: $cgiparams{'NAME'}"); print "<table width='100%'>"; - print "<tr><td width='25%' class='boldbase'>$Lang::tr{'name'}:</td>"; - if ($cgiparams{'KEY'}) { - print "<td width='25%' class='base'><input type='hidden' name='NAME' value='$cgiparams{'NAME'}' /><b>$cgiparams{'NAME'}</b></td>"; - } else { - print "<td width='25%'><input type='text' name='NAME' value='$cgiparams{'NAME'}' size='30' /></td>"; + if (!$cgiparams{'KEY'}) { + print <<EOF; + <tr> + <td width='20%'>$Lang::tr{'name'}:</td> + <td width='30%'> + <input type='text' name='NAME' value='$cgiparams{'NAME'}' size='25' /> + </td> + <td colspan="2"></td> + </tr> +EOF } - print "<td>$Lang::tr{'enabled'}</td><td><input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td></tr>"; - print '</tr><td><br /></td><tr>';
my $disabled; my $blob; @@ -1937,44 +1977,41 @@ END
print <<END <tr> - <td class='boldbase'>$Lang::tr{'remote host/ip'}: $blob</td> - <td> - <input type='text' name='REMOTE' value='$cgiparams{'REMOTE'}' size='30' /> - </td> - <td class='boldbase' nowrap='nowrap'>$Lang::tr{'remote subnet'}</td> - <td> - <input $disabled type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size='30' /> + <td width='20%'>$Lang::tr{'enabled'}</td> + <td width='30%'> + <input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /> + </td> + <td class='boldbase' nowrap='nowrap' width='20%'>$Lang::tr{'local subnet'}</td> + <td width='30%'> + <input type='text' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size="25" /> </td> </tr> <tr> - <td class='boldbase' nowrap='nowrap'>$Lang::tr{'local subnet'}</td> - <td colspan='3'> - <input type='text' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size='30' /> + <td class='boldbase' width='20%'>$Lang::tr{'remote host/ip'}: $blob</td> + <td width='30%'> + <input type='text' name='REMOTE' value='$cgiparams{'REMOTE'}' size="25" /> + </td> + <td class='boldbase' nowrap='nowrap' width='20%'>$Lang::tr{'remote subnet'}</td> + <td width='30%'> + <input $disabled type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size="25" /> </td> </tr> <tr> - <td class='boldbase'>$Lang::tr{'vpn local id'}:<br />($Lang::tr{'eg'} <tt>@xy.example.com</tt>)</td> - <td><input type='text' name='LOCAL_ID' value='$cgiparams{'LOCAL_ID'}' /></td> - <td class='boldbase'>$Lang::tr{'vpn remote id'}:</td> - <td><input type='text' name='REMOTE_ID' value='$cgiparams{'REMOTE_ID'}' /></td> - </tr><tr> - </tr><td><br /></td><tr> - <td>$Lang::tr{'vpn keyexchange'}:</td> - <td><select name='IKE_VERSION'> - <option value='ikev2' $selected{'IKE_VERSION'}{'ikev2'}>IKEv2</option> - <option value='ikev1' $selected{'IKE_VERSION'}{'ikev1'}>IKEv1</option> - </select> + <td class='boldbase' width='20%'>$Lang::tr{'vpn local id'}:</td> + <td width='30%'> + <input type='text' name='LOCAL_ID' value='$cgiparams{'LOCAL_ID'}' size="25" /> + </td> + <td class='boldbase' width='20%'>$Lang::tr{'vpn remote id'}:</td> + <td width='30%'> + <input type='text' name='REMOTE_ID' value='$cgiparams{'REMOTE_ID'}' size="25" /> </td> - <td>$Lang::tr{'dpd action'}:</td> - <td><select name='DPD_ACTION'> - <option value='clear' $selected{'DPD_ACTION'}{'clear'}>clear</option> - <option value='hold' $selected{'DPD_ACTION'}{'hold'}>hold</option> - <option value='restart' $selected{'DPD_ACTION'}{'restart'}>restart</option> - </select> + </tr> + <tr><td colspan="4"><br /></td></tr> + <tr> + <td class='boldbase' width='20%'>$Lang::tr{'remark title'} <img src='/blob.gif' alt='*' /></td> + <td colspan='3'> + <input type='text' name='REMARK' value='$cgiparams{'REMARK'}' maxlength='50' size="73" /> </td> - </tr><tr> - <td class='boldbase'>$Lang::tr{'remark title'} <img src='/blob.gif' alt='*' /></td> - <td colspan='3'><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /></td> </tr> END ; @@ -2101,7 +2138,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(aes256|aes192|aes128|3des)$/) { + if ($val !~ /^(aes256|aes192|aes128|3des|camellia256|camellia192|camellia128)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2123,7 +2160,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(e521|e384|e256|e224|e192|1024|1536|2048|3072|4096|6144|8192)$/) { + if ($val !~ /^(e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|1024|1536|2048|2048s256|2048s224|2048s160|3072|4096|6144|8192)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2142,7 +2179,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(aes256|aes192|aes128|3des)$/) { + if ($val !~ /^(aes256|aes192|aes128|3des|camellia256|camellia192|camellia128)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2159,8 +2196,8 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || } } if ($cgiparams{'ESP_GROUPTYPE'} ne '' && - $cgiparams{'ESP_GROUPTYPE'} !~ /^ecp(192|224|256|384|512)$/ && - $cgiparams{'ESP_GROUPTYPE'} !~ /^modp(1024|1536|2048|3072|4096|6144|8192)$/) { + $cgiparams{'ESP_GROUPTYPE'} !~ /^ecp(192|224|256|384|512)(bp)?$/ && + $cgiparams{'ESP_GROUPTYPE'} !~ /^modp(1024|1536|2048|2048s(256|224|160)|3072|4096|6144|8192)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2184,6 +2221,17 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; }
+ if ($cgiparams{'DPD_DELAY'} !~ /^\d+$/) { + $errormessage = $Lang::tr{'invalid input for dpd delay'}; + goto ADVANCED_ERROR; + } + + if ($cgiparams{'DPD_TIMEOUT'} !~ /^\d+$/) { + $errormessage = $Lang::tr{'invalid input for dpd timeout'}; + goto ADVANCED_ERROR; + } + + $confighash{$cgiparams{'KEY'}}[29] = $cgiparams{'IKE_VERSION'}; $confighash{$cgiparams{'KEY'}}[18] = $cgiparams{'IKE_ENCRYPTION'}; $confighash{$cgiparams{'KEY'}}[19] = $cgiparams{'IKE_INTEGRITY'}; $confighash{$cgiparams{'KEY'}}[20] = $cgiparams{'IKE_GROUPTYPE'}; @@ -2197,6 +2245,9 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $confighash{$cgiparams{'KEY'}}[24] = $cgiparams{'ONLY_PROPOSED'}; $confighash{$cgiparams{'KEY'}}[28] = $cgiparams{'PFS'}; $confighash{$cgiparams{'KEY'}}[14] = $cgiparams{'VHOST'}; + $confighash{$cgiparams{'KEY'}}[27] = $cgiparams{'DPD_ACTION'}; + $confighash{$cgiparams{'KEY'}}[30] = $cgiparams{'DPD_TIMEOUT'}; + $confighash{$cgiparams{'KEY'}}[31] = $cgiparams{'DPD_DELAY'}; &General::writehasharray("${General::swroot}/vpn/config", %confighash); &writeipsecfiles(); if (&vpnenabled) { @@ -2205,6 +2256,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || } goto ADVANCED_END; } else { + $cgiparams{'IKE_VERSION'} = $confighash{$cgiparams{'KEY'}}[29]; $cgiparams{'IKE_ENCRYPTION'} = $confighash{$cgiparams{'KEY'}}[18]; $cgiparams{'IKE_INTEGRITY'} = $confighash{$cgiparams{'KEY'}}[19]; $cgiparams{'IKE_GROUPTYPE'} = $confighash{$cgiparams{'KEY'}}[20]; @@ -2217,6 +2269,17 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $cgiparams{'ONLY_PROPOSED'} = $confighash{$cgiparams{'KEY'}}[24]; $cgiparams{'PFS'} = $confighash{$cgiparams{'KEY'}}[28]; $cgiparams{'VHOST'} = $confighash{$cgiparams{'KEY'}}[14]; + $cgiparams{'DPD_ACTION'} = $confighash{$cgiparams{'KEY'}}[27]; + $cgiparams{'DPD_TIMEOUT'} = $confighash{$cgiparams{'KEY'}}[30]; + $cgiparams{'DPD_DELAY'} = $confighash{$cgiparams{'KEY'}}[31]; + + if (!$cgiparams{'DPD_DELAY'}) { + $cgiparams{'DPD_DELAY'} = 30; + } + + if (!$cgiparams{'DPD_TIMEOUT'}) { + $cgiparams{'DPD_TIMEOUT'} = 120; + }
if ($confighash{$cgiparams{'KEY'}}[3] eq 'net' || $confighash{$cgiparams{'KEY'}}[10]) { $cgiparams{'VHOST'} = 'off'; @@ -2228,6 +2291,9 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $checked{'IKE_ENCRYPTION'}{'aes192'} = ''; $checked{'IKE_ENCRYPTION'}{'aes128'} = ''; $checked{'IKE_ENCRYPTION'}{'3des'} = ''; + $checked{'IKE_ENCRYPTION'}{'camellia256'} = ''; + $checked{'IKE_ENCRYPTION'}{'camellia192'} = ''; + $checked{'IKE_ENCRYPTION'}{'camellia128'} = ''; my @temp = split('|', $cgiparams{'IKE_ENCRYPTION'}); foreach my $key (@temp) {$checked{'IKE_ENCRYPTION'}{$key} = "selected='selected'"; } $checked{'IKE_INTEGRITY'}{'sha2_512'} = ''; @@ -2256,6 +2322,9 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $checked{'ESP_ENCRYPTION'}{'aes192'} = ''; $checked{'ESP_ENCRYPTION'}{'aes128'} = ''; $checked{'ESP_ENCRYPTION'}{'3des'} = ''; + $checked{'ESP_ENCRYPTION'}{'camellia256'} = ''; + $checked{'ESP_ENCRYPTION'}{'camellia192'} = ''; + $checked{'ESP_ENCRYPTION'}{'camellia128'} = ''; @temp = split('|', $cgiparams{'ESP_ENCRYPTION'}); foreach my $key (@temp) {$checked{'ESP_ENCRYPTION'}{$key} = "selected='selected'"; } $checked{'ESP_INTEGRITY'}{'sha2_512'} = ''; @@ -2273,8 +2342,18 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $checked{'PFS'} = $cgiparams{'PFS'} eq 'on' ? "checked='checked'" : '' ; $checked{'VHOST'} = $cgiparams{'VHOST'} eq 'on' ? "checked='checked'" : '' ;
+ $selected{'IKE_VERSION'}{'ikev1'} = ''; + $selected{'IKE_VERSION'}{'ikev2'} = ''; + $selected{'IKE_VERSION'}{$cgiparams{'IKE_VERSION'}} = "selected='selected'"; + + $selected{'DPD_ACTION'}{'clear'} = ''; + $selected{'DPD_ACTION'}{'hold'} = ''; + $selected{'DPD_ACTION'}{'restart'} = ''; + $selected{'DPD_ACTION'}{'none'} = ''; + $selected{'DPD_ACTION'}{$cgiparams{'DPD_ACTION'}} = "selected='selected'"; + &Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage);
if ($errormessage) { @@ -2298,96 +2377,191 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || <input type='hidden' name='KEY' value='$cgiparams{'KEY'}' />
<table width='100%'> - <tr><td class='boldbase' align='right' valign='top'>$Lang::tr{'ike encryption'}</td><td class='boldbase' valign='top'> - <select name='IKE_ENCRYPTION' multiple='multiple' size='4'> - <option value='aes256' $checked{'IKE_ENCRYPTION'}{'aes256'}>AES (256 bit)</option> - <option value='aes192' $checked{'IKE_ENCRYPTION'}{'aes192'}>AES (192 bit)</option> - <option value='aes128' $checked{'IKE_ENCRYPTION'}{'aes128'}>AES (128 bit)</option> - <option value='3des' $checked{'IKE_ENCRYPTION'}{'3des'}>3DES</option> - </select></td> - - <td class='boldbase' align='right' valign='top'>$Lang::tr{'ike integrity'}</td><td class='boldbase' valign='top'> - <select name='IKE_INTEGRITY' multiple='multiple' size='4'> - <option value='sha2_512' $checked{'IKE_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option> - <option value='sha2_384' $checked{'IKE_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option> - <option value='sha2_256' $checked{'IKE_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option> - <option value='sha' $checked{'IKE_INTEGRITY'}{'sha'}>SHA1</option> - <option value='md5' $checked{'IKE_INTEGRITY'}{'md5'}>MD5</option> - <option value='aesxcbc' $checked{'IKE_INTEGRITY'}{'aesxcbc'}>AES XCBC</option> - </select></td> - - <td class='boldbase' align='right' valign='top'>$Lang::tr{'ike grouptype'}</td><td class='boldbase' valign='top'> - <select name='IKE_GROUPTYPE' multiple='multiple' size='4'> - <option value='e521' $checked{'IKE_GROUPTYPE'}{'e521'}>ECP-521</option> - <option value='e384' $checked{'IKE_GROUPTYPE'}{'e384'}>ECP-384</option> - <option value='e256' $checked{'IKE_GROUPTYPE'}{'e256'}>ECP-256</option> - <option value='e224' $checked{'IKE_GROUPTYPE'}{'e224'}>ECP-224</option> - <option value='e192' $checked{'IKE_GROUPTYPE'}{'e192'}>ECP-192</option> - <option value='8192' $checked{'IKE_GROUPTYPE'}{'8192'}>MODP-8192</option> - <option value='6144' $checked{'IKE_GROUPTYPE'}{'6144'}>MODP-6144</option> - <option value='4096' $checked{'IKE_GROUPTYPE'}{'4096'}>MODP-4096</option> - <option value='3072' $checked{'IKE_GROUPTYPE'}{'3072'}>MODP-3072</option> - <option value='2048' $checked{'IKE_GROUPTYPE'}{'2048'}>MODP-2048</option> - <option value='1536' $checked{'IKE_GROUPTYPE'}{'1536'}>MODP-1536</option> - <option value='1024' $checked{'IKE_GROUPTYPE'}{'1024'}>MODP-1024</option> - </select></td> - </tr><tr> - <td class='boldbase' align='right' valign='top'>$Lang::tr{'ike lifetime'}</td><td class='boldbase' valign='top'> - <input type='text' name='IKE_LIFETIME' value='$cgiparams{'IKE_LIFETIME'}' size='5' /> $Lang::tr{'hours'}</td> - - </tr><tr> - <td colspan='1'><hr /></td> - </tr><tr> - <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp encryption'}</td><td class='boldbase' valign='top'> - <select name='ESP_ENCRYPTION' multiple='multiple' size='4'> - <option value='aes256' $checked{'ESP_ENCRYPTION'}{'aes256'}>AES (256 bit)</option> - <option value='aes192' $checked{'ESP_ENCRYPTION'}{'aes192'}>AES (192 bit)</option> - <option value='aes128' $checked{'ESP_ENCRYPTION'}{'aes128'}>AES (128 bit)</option> - <option value='3des' $checked{'ESP_ENCRYPTION'}{'3des'}>3DES</option> - - <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp integrity'}</td><td class='boldbase' valign='top'> - <select name='ESP_INTEGRITY' multiple='multiple' size='4'> - <option value='sha2_512' $checked{'ESP_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option> - <option value='sha2_384' $checked{'ESP_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option> - <option value='sha2_256' $checked{'ESP_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option> - <option value='sha1' $checked{'ESP_INTEGRITY'}{'sha1'}>SHA1</option> - <option value='md5' $checked{'ESP_INTEGRITY'}{'md5'}>MD5</option> - <option value='aesxcbc' $checked{'ESP_INTEGRITY'}{'aesxcbc'}>AES XCBC</option> - </select></td> - - <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp grouptype'}</td><td class='boldbase' valign='top'> - <select name='ESP_GROUPTYPE'> - <option value=''>$Lang::tr{'phase1 group'}</option></select></td> - </tr><tr> - <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp keylife'}</td><td class='boldbase' valign='top'> - <input type='text' name='ESP_KEYLIFE' value='$cgiparams{'ESP_KEYLIFE'}' size='5' /> $Lang::tr{'hours'}</td> - </tr><tr> - <td colspan='1'><hr /></td> - </tr><tr> - <td colspan='5'><input type='checkbox' name='ONLY_PROPOSED' $checked{'ONLY_PROPOSED'} /> - IKE+ESP: $Lang::tr{'use only proposed settings'}</td> - </tr><tr> - <td colspan='5'><input type='checkbox' name='PFS' $checked{'PFS'} /> - $Lang::tr{'pfs yes no'}</td> - <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> - </tr><tr> - <td colspan='5'><input type='checkbox' name='COMPRESSION' $checked{'COMPRESSION'} /> - $Lang::tr{'vpn payload compression'}</td> - <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'cancel'}' /></td> + <thead> + <tr> + <th width="15%"></th> + <th>IKE</th> + <th>ESP</th> + </tr> + </thead> + <tbody> + <tr> + <td>$Lang::tr{'vpn keyexchange'}:</td> + <td> + <select name='IKE_VERSION'> + <option value='ikev2' $selected{'IKE_VERSION'}{'ikev2'}>IKEv2</option> + <option value='ikev1' $selected{'IKE_VERSION'}{'ikev1'}>IKEv1</option> + </select> + </td> + <td></td> + </tr> + <tr> + <td class='boldbase' width="15%">$Lang::tr{'encryption'}</td> + <td class='boldbase'> + <select name='IKE_ENCRYPTION' multiple='multiple' size='6' style='width: 100%'> + <option value='aes256' $checked{'IKE_ENCRYPTION'}{'aes256'}>AES (256 bit)</option> + <option value='aes192' $checked{'IKE_ENCRYPTION'}{'aes192'}>AES (192 bit)</option> + <option value='aes128' $checked{'IKE_ENCRYPTION'}{'aes128'}>AES (128 bit)</option> + <option value='3des' $checked{'IKE_ENCRYPTION'}{'3des'}>3DES</option> + <option value='camellia256' $checked{'IKE_ENCRYPTION'}{'camellia256'}>Camellia (256 bit)</option> + <option value='camellia192' $checked{'IKE_ENCRYPTION'}{'camellia192'}>Camellia (192 bit)</option> + <option value='camellia128' $checked{'IKE_ENCRYPTION'}{'camellia128'}>Camellia (128 bit)</option> + </select> + </td> + <td class='boldbase'> + <select name='ESP_ENCRYPTION' multiple='multiple' size='6' style='width: 100%'> + <option value='aes256' $checked{'ESP_ENCRYPTION'}{'aes256'}>AES (256 bit)</option> + <option value='aes192' $checked{'ESP_ENCRYPTION'}{'aes192'}>AES (192 bit)</option> + <option value='aes128' $checked{'ESP_ENCRYPTION'}{'aes128'}>AES (128 bit)</option> + <option value='3des' $checked{'ESP_ENCRYPTION'}{'3des'}>3DES</option> + <option value='camellia256' $checked{'ESP_ENCRYPTION'}{'camellia256'}>Camellia (256 bit)</option> + <option value='camellia192' $checked{'ESP_ENCRYPTION'}{'camellia192'}>Camellia (192 bit)</option> + <option value='camellia128' $checked{'ESP_ENCRYPTION'}{'camellia128'}>Camellia (128 bit)</option> + </select> + </td> + </tr> + + <tr> + <td class='boldbase' width="15%">$Lang::tr{'integrity'}</td> + <td class='boldbase'> + <select name='IKE_INTEGRITY' multiple='multiple' size='6' style='width: 100%'> + <option value='sha2_512' $checked{'IKE_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option> + <option value='sha2_384' $checked{'IKE_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option> + <option value='sha2_256' $checked{'IKE_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option> + <option value='sha' $checked{'IKE_INTEGRITY'}{'sha'}>SHA1</option> + <option value='md5' $checked{'IKE_INTEGRITY'}{'md5'}>MD5</option> + <option value='aesxcbc' $checked{'IKE_INTEGRITY'}{'aesxcbc'}>AES XCBC</option> + </select> + </td> + <td class='boldbase'> + <select name='ESP_INTEGRITY' multiple='multiple' size='6' style='width: 100%'> + <option value='sha2_512' $checked{'ESP_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option> + <option value='sha2_384' $checked{'ESP_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option> + <option value='sha2_256' $checked{'ESP_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option> + <option value='sha1' $checked{'ESP_INTEGRITY'}{'sha1'}>SHA1</option> + <option value='md5' $checked{'ESP_INTEGRITY'}{'md5'}>MD5</option> + <option value='aesxcbc' $checked{'ESP_INTEGRITY'}{'aesxcbc'}>AES XCBC</option> + </select> + </td> + </tr> + <tr> + <td class='boldbase' width="15%">$Lang::tr{'lifetime'}</td> + <td class='boldbase'> + <input type='text' name='IKE_LIFETIME' value='$cgiparams{'IKE_LIFETIME'}' size='5' /> $Lang::tr{'hours'} + </td> + <td class='boldbase'> + <input type='text' name='ESP_KEYLIFE' value='$cgiparams{'ESP_KEYLIFE'}' size='5' /> $Lang::tr{'hours'} + </td> + </tr> + <tr> + <td class='boldbase' width="15%">$Lang::tr{'grouptype'}</td> + <td class='boldbase'> + <select name='IKE_GROUPTYPE' multiple='multiple' size='6' style='width: 100%'> + <option value='e521' $checked{'IKE_GROUPTYPE'}{'e521'}>ECP-521 (NIST)</option> + <option value='e384' $checked{'IKE_GROUPTYPE'}{'e384'}>ECP-384 (NIST)</option> + <option value='e256' $checked{'IKE_GROUPTYPE'}{'e256'}>ECP-256 (NIST)</option> + <option value='e224' $checked{'IKE_GROUPTYPE'}{'e224'}>ECP-224 (NIST)</option> + <option value='e192' $checked{'IKE_GROUPTYPE'}{'e192'}>ECP-192 (NIST)</option> + <option value='e512bp' $checked{'IKE_GROUPTYPE'}{'e512bp'}>ECP-512 (Brainpool)</option> + <option value='e384bp' $checked{'IKE_GROUPTYPE'}{'e384bp'}>ECP-384 (Brainpool)</option> + <option value='e256bp' $checked{'IKE_GROUPTYPE'}{'e256bp'}>ECP-256 (Brainpool)</option> + <option value='e224bp' $checked{'IKE_GROUPTYPE'}{'e224bp'}>ECP-224 (Brainpool)</option> + <option value='8192' $checked{'IKE_GROUPTYPE'}{'8192'}>MODP-8192</option> + <option value='6144' $checked{'IKE_GROUPTYPE'}{'6144'}>MODP-6144</option> + <option value='4096' $checked{'IKE_GROUPTYPE'}{'4096'}>MODP-4096</option> + <option value='3072' $checked{'IKE_GROUPTYPE'}{'3072'}>MODP-3072</option> + <option value='2048s256' $checked{'IKE_GROUPTYPE'}{'2048s256'}>MODP-2048/256</option> + <option value='2048s224' $checked{'IKE_GROUPTYPE'}{'2048s224'}>MODP-2048/224</option> + <option value='2048s160' $checked{'IKE_GROUPTYPE'}{'2048s160'}>MODP-2048/160</option> + <option value='2048' $checked{'IKE_GROUPTYPE'}{'2048'}>MODP-2048</option> + <option value='1536' $checked{'IKE_GROUPTYPE'}{'1536'}>MODP-1536</option> + <option value='1024' $checked{'IKE_GROUPTYPE'}{'1024'}>MODP-1024</option> + </select> + </td> + <td></td> + </tr> + </tbody> + </table> + + <br><br> + + <h2>$Lang::tr{'dead peer detection'}</h2> + + <table width="100%"> + <tr> + <td width="15%">$Lang::tr{'dpd action'}:</td> + <td> + <select name='DPD_ACTION'> + <option value='none' $selected{'DPD_ACTION'}{'none'}>- $Lang::tr{'disabled'} -</option> + <option value='clear' $selected{'DPD_ACTION'}{'clear'}>clear</option> + <option value='hold' $selected{'DPD_ACTION'}{'hold'}>hold</option> + <option value='restart' $selected{'DPD_ACTION'}{'restart'}>restart</option> + </select> + </td> + </tr> + <tr> + <td width="15%">$Lang::tr{'dpd timeout'}:</td> + <td> + <input type='text' name='DPD_TIMEOUT' size='5' value='$cgiparams{'DPD_TIMEOUT'}' /> + </td> + </tr> + <tr> + <td width="15%">$Lang::tr{'dpd delay'}:</td> + <td> + <input type='text' name='DPD_DELAY' size='5' value='$cgiparams{'DPD_DELAY'}' /> + </td> + </tr> + </table> + + <hr> + + <table width="100%"> + <tr> + <td> + <label> + <input type='checkbox' name='ONLY_PROPOSED' $checked{'ONLY_PROPOSED'} /> + IKE+ESP: $Lang::tr{'use only proposed settings'}</td> + </label> + </td> + </tr> + <tr> + <td> + <label> + <input type='checkbox' name='PFS' $checked{'PFS'} /> + $Lang::tr{'pfs yes no'} + </label> + </td> + </tr> + <tr> + <td> + <label> + <input type='checkbox' name='COMPRESSION' $checked{'COMPRESSION'} /> + $Lang::tr{'vpn payload compression'} + </label> + </td> </tr> EOF ; if ($confighash{$cgiparams{'KEY'}}[3] eq 'net') { print "<tr><td><input type='hidden' name='VHOST' value='off' /></td></tr>"; } elsif ($confighash{$cgiparams{'KEY'}}[10]) { - print "<tr><td colspan='5'><input type='checkbox' name='VHOST' $checked{'VHOST'} disabled='disabled' />"; - print " $Lang::tr{'vpn vhost'}</td></tr>"; + print "<tr><td><label><input type='checkbox' name='VHOST' $checked{'VHOST'} disabled='disabled' />"; + print " $Lang::tr{'vpn vhost'}</label></td></tr>"; } else { - print "<tr><td colspan='5'><input type='checkbox' name='VHOST' $checked{'VHOST'} />"; - print " $Lang::tr{'vpn vhost'}</td></tr>"; + print "<tr><td><label><input type='checkbox' name='VHOST' $checked{'VHOST'} />"; + print " $Lang::tr{'vpn vhost'}</label></td></tr>"; }
- print "</table></form>"; + print <<EOF; + <tr> + <td align='right' colspan='2'> + <input type='submit' name='ACTION' value='$Lang::tr{'save'}' /> + <input type='submit' name='ACTION' value='$Lang::tr{'cancel'}' /> + </td> + </tr> + </table></form> +EOF + &Header::closebox(); &Header::closebigbox(); &Header::closepage(); @@ -2428,7 +2602,7 @@ EOF $checked{'ENABLED'} = $cgiparams{'ENABLED'} eq 'on' ? "checked='checked'" : '';
&Header::showhttpheaders(); - &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); + &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage);
if ($errormessage) { @@ -2458,17 +2632,18 @@ print <<END <td class='base' nowrap='nowrap'>$Lang::tr{'host to net vpn'}: <img src='/blob.gif' alt='*' /></td> <td ><input type='text' name='RW_NET' value='$cgiparams{'RW_NET'}' /></td> </tr> - </table> +</table> +<br> <hr /> <table width='100%'> <tr> <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> - <td width='70%' class='base' valign='top'>$Lang::tr{'this field may be blank'}</td> + <td width='70%' class='base' valign='top'>$Lang::tr{'this field may be blank'}</td><td width='30%' align='right' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> </tr> <tr> <td class='base' valign='top' nowrap='nowrap'><img src='/blob.gif' alt='*' /><img src='/blob.gif' alt='*' /> </td> <td class='base'> <font class='base'>$Lang::tr{'vpn delayed start help'}</font></td> - <td width='30%' align='center' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> + <td></td> </tr> </table> END @@ -2478,53 +2653,58 @@ END
&Header::openbox('100%', 'left', $Lang::tr{'connection status and controlc'}); print <<END - <table width='100%' border='0' cellspacing='1' cellpadding='0'> + <table width='100%' cellspacing='1' cellpadding='0' class='tbl'> <tr> - <td width='10%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></td> - <td width='22%' class='boldbase' align='center'><b>$Lang::tr{'type'}</b></td> - <td width='23%' class='boldbase' align='center'><b>$Lang::tr{'common name'}</b></td> - <td width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> - <td width='10%' class='boldbase' align='center'><b>$Lang::tr{'status'}</b></td> - <td class='boldbase' align='center' colspan='6'><b>$Lang::tr{'action'}</b></td> + <th width='10%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></th> + <th width='22%' class='boldbase' align='center'><b>$Lang::tr{'type'}</b></th> + <th width='23%' class='boldbase' align='center'><b>$Lang::tr{'common name'}</b></th> + <th width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></th> + <th width='10%' class='boldbase' align='center'><b>$Lang::tr{'status'}</b></th> + <th class='boldbase' align='center' colspan='6'><b>$Lang::tr{'action'}</b></th> </tr> END ; my $id = 0; my $gif; - foreach my $key (keys %confighash) { + foreach my $key (sort { ncmp ($confighash{$a}[1],$confighash{$b}[1]) } keys %confighash) { if ($confighash{$key}[0] eq 'on') { $gif = 'on.gif'; } else { $gif = 'off.gif'; }
if ($id % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color22'}'>\n"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; } - print "<td align='center' nowrap='nowrap'>$confighash{$key}[1]</td>"; - print "<td align='center' nowrap='nowrap'>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ") $confighash{$key}[29]</td>"; + print "<td align='center' nowrap='nowrap' $col>$confighash{$key}[1]</td>"; + print "<td align='center' nowrap='nowrap' $col>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ") $confighash{$key}[29]</td>"; if ($confighash{$key}[2] eq '%auth-dn') { - print "<td align='left' nowrap='nowrap'>$confighash{$key}[9]</td>"; + print "<td align='left' nowrap='nowrap' $col>$confighash{$key}[9]</td>"; } elsif ($confighash{$key}[4] eq 'cert') { - print "<td align='left' nowrap='nowrap'>$confighash{$key}[2]</td>"; + print "<td align='left' nowrap='nowrap' $col>$confighash{$key}[2]</td>"; } else { - print "<td align='left'> </td>"; + print "<td align='left' $col> </td>"; } - print "<td align='center'>$confighash{$key}[25]</td>"; + print "<td align='center' $col>$confighash{$key}[25]</td>"; + my $col1="bgcolor='${Header::colourred}'"; # get real state - my $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; + my $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b>"; foreach my $line (@status) { if (($line =~ /"$confighash{$key}[1]".*IPsec SA established/) || ($line =~ /$confighash{$key}[1]{.*INSTALLED/)) { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></td></tr></table>"; + $col1="bgcolor='${Header::colourgreen}'"; + $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b>"; } } # move to blueif really down - if ($confighash{$key}[0] eq 'off' && $active =~ /${Header::colourred}/ ) { - $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourblue}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>"; + if ($confighash{$key}[0] eq 'off' && $col1 =~ /${Header::colourred}/ ) { + $col1="bgcolor='${Header::colourblue}'"; + $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b>"; } print <<END - <td align='center'>$active</td> - <td align='center'> + <td align='center' $col1>$active</td> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'restart'}' src='/images/reload.gif' alt='$Lang::tr{'restart'}' title='$Lang::tr{'restart'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'restart'}' /> @@ -2535,7 +2715,7 @@ END ; if (($confighash{$key}[4] eq 'cert') && ($confighash{$key}[2] ne '%auth-dn')) { print <<END - <td align='center'> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'show certificate'}' src='/images/info.gif' alt='$Lang::tr{'show certificate'}' title='$Lang::tr{'show certificate'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'show certificate'}' /> @@ -2544,11 +2724,11 @@ END </td> END ; } else { - print "<td width='2%'> </td>"; + print "<td width='2%' $col> </td>"; } if ($confighash{$key}[4] eq 'cert' && -f "${General::swroot}/certs/$confighash{$key}[1].p12") { print <<END - <td align='center'> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'download pkcs12 file'}' src='/images/floppy.gif' alt='$Lang::tr{'download pkcs12 file'}' title='$Lang::tr{'download pkcs12 file'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download pkcs12 file'}' /> @@ -2558,7 +2738,7 @@ END END ; } elsif (($confighash{$key}[4] eq 'cert') && ($confighash{$key}[2] ne '%auth-dn')) { print <<END - <td align='center'> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'download certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download certificate'}' title='$Lang::tr{'download certificate'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download certificate'}' /> @@ -2567,10 +2747,10 @@ END </td> END ; } else { - print "<td width='2%'> </td>"; + print "<td width='2%' $col> </td>"; } print <<END - <td align='center'> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$Lang::tr{'toggle enable disable'}' title='$Lang::tr{'toggle enable disable'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> @@ -2578,14 +2758,14 @@ END </form> </td>
- <td align='center'> + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> <input type='hidden' name='KEY' value='$key' /> </form> </td> - <td align='center' > + <td align='center' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> @@ -2630,7 +2810,7 @@ END
print <<END <table width='100%'> - <tr><td align='center' colspan='9'> + <tr><td align='right' colspan='9'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='submit' name='ACTION' value='$Lang::tr{'add'}' /> </form> @@ -2640,45 +2820,46 @@ END ; &Header::closebox();
- &Header::openbox('100%', 'left', "$Lang::tr{'certificate authorities'}:"); + &Header::openbox('100%', 'left', "$Lang::tr{'certificate authorities'}"); print <<EOF - <table width='100%' border='0' cellspacing='1' cellpadding='0'> + <table width='100%' cellspacing='1' cellpadding='0' class='tbl'> <tr> - <td width='25%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></td> - <td width='65%' class='boldbase' align='center'><b>$Lang::tr{'subject'}</b></td> - <td width='10%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td> + <th width='25%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></th> + <th width='65%' class='boldbase' align='center'><b>$Lang::tr{'subject'}</b></th> + <th width='10%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></th> </tr> EOF ; + my $col1="bgcolor='$color{'color22'}'"; + my $col2="bgcolor='$color{'color20'}'"; if (-f "${General::swroot}/ca/cacert.pem") { my $casubject = &Header::cleanhtml(getsubjectfromcert ("${General::swroot}/ca/cacert.pem")); - print <<END - <tr bgcolor='$color{'color22'}'> - <td class='base'>$Lang::tr{'root certificate'}</td> - <td class='base'>$casubject</td> - <td width='3%' align='center'> + <tr> + <td class='base' $col1>$Lang::tr{'root certificate'}</td> + <td class='base' $col1>$casubject</td> + <td width='3%' align='center' $col1> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'show root certificate'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/info.gif' alt='$Lang::tr{'show root certificate'}' title='$Lang::tr{'show root certificate'}' /> </form> </td> - <td width='3%' align='center'> + <td width='3%' align='center' $col1> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'download root certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download root certificate'}' title='$Lang::tr{'download root certificate'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download root certificate'}' /> </form> </td> - <td width='4%'> </td></tr> + <td width='4%' $col1> </td></tr> END ; } else { # display rootcert generation buttons print <<END - <tr bgcolor='$color{'color22'}'> - <td class='base'>$Lang::tr{'root certificate'}:</td> - <td class='base'>$Lang::tr{'not present'}</td> - <td colspan='3'> </td></tr> + <tr> + <td class='base' $col1>$Lang::tr{'root certificate'}:</td> + <td class='base' $col1>$Lang::tr{'not present'}</td> + <td colspan='3' $col1> </td></tr> END ; } @@ -2687,61 +2868,63 @@ END my $hostsubject = &Header::cleanhtml(getsubjectfromcert ("${General::swroot}/certs/hostcert.pem"));
print <<END - <tr bgcolor='$color{'color20'}'> - <td class='base'>$Lang::tr{'host certificate'}</td> - <td class='base'>$hostsubject</td> - <td width='3%' align='center'> + <tr> + <td class='base' $col2>$Lang::tr{'host certificate'}</td> + <td class='base' $col2>$hostsubject</td> + <td width='3%' align='center' $col2> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'show host certificate'}' /> <input type='image' name='$Lang::tr{'show host certificate'}' src='/images/info.gif' alt='$Lang::tr{'show host certificate'}' title='$Lang::tr{'show host certificate'}' /> </form> </td> - <td width='3%' align='center'> + <td width='3%' align='center' $col2> <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='image' name='$Lang::tr{'download host certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download host certificate'}' title='$Lang::tr{'download host certificate'}' /> - <input type='hidden' name='ACTION' value='$Lang::tr{'download host certificate'}' /> + <input type='image' name="$Lang::tr{'download host certificate'}" src='/images/floppy.gif' alt="$Lang::tr{'download host certificate'}" title="$Lang::tr{'download host certificate'}" /> + <input type='hidden' name='ACTION' value="$Lang::tr{'download host certificate'}" /> </form> </td> - <td width='4%'> </td></tr> + <td width='4%' $col2> </td></tr> END ; } else { # Nothing print <<END - <tr bgcolor='$color{'color20'}'> - <td width='25%' class='base'>$Lang::tr{'host certificate'}:</td> - <td class='base'>$Lang::tr{'not present'}</td> - <td colspan='3'> </td></tr> + <tr> + <td width='25%' class='base' $col2>$Lang::tr{'host certificate'}:</td> + <td class='base' $col2>$Lang::tr{'not present'}</td> + <td colspan='3' $col2> </td></tr> END ; }
- my $rowcolor = 0; - if (keys %cahash > 0) { - foreach my $key (keys %cahash) { - if ($rowcolor++ % 2) { - print "<tr bgcolor='$color{'color20'}'>\n"; - } else { - print "<tr bgcolor='$color{'color22'}'>\n"; - } - print "<td class='base'>$cahash{$key}[0]</td>\n"; - print "<td class='base'>$cahash{$key}[1]</td>\n"; + my $rowcolor = 0; + if (keys %cahash > 0) { + foreach my $key (keys %cahash) { + if ($rowcolor++ % 2) { + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; + } else { + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; + } + print "<td class='base' $col>$cahash{$key}[0]</td>\n"; + print "<td class='base' $col>$cahash{$key}[1]</td>\n"; print <<END - <td align='center'> + <td align='center' $col> <form method='post' name='cafrm${key}a' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'show ca certificate'}' src='/images/info.gif' alt='$Lang::tr{'show ca certificate'}' title='$Lang::tr{'show ca certificate'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'show ca certificate'}' /> <input type='hidden' name='KEY' value='$key' /> </form> </td> - <td align='center'> + <td align='center' $col> <form method='post' name='cafrm${key}b' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'download ca certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download ca certificate'}' title='$Lang::tr{'download ca certificate'}' /> <input type='hidden' name='ACTION' value='$Lang::tr{'download ca certificate'}' /> <input type='hidden' name='KEY' value='$key' /> </form> </td> - <td align='center'> + <td align='center' $col> <form method='post' name='cafrm${key}c' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove ca certificate'}' /> <input type='image' name='$Lang::tr{'remove ca certificate'}' src='/images/delete.gif' alt='$Lang::tr{'remove ca certificate'}' title='$Lang::tr{'remove ca certificate'}' /> @@ -2770,6 +2953,7 @@ END } my $createCA = -f "${General::swroot}/ca/cacert.pem" ? '' : "<tr><td colspan='3'></td><td><input type='submit' name='ACTION' value='$Lang::tr{'generate root/host certificates'}' /></td></tr>"; print <<END + <br> <hr /> <form method='post' enctype='multipart/form-data' action='$ENV{'SCRIPT_NAME'}'> <table width='100%' border='0' cellspacing='1' cellpadding='0'> @@ -2782,7 +2966,7 @@ END </tr> <tr> <td colspan='3'>$Lang::tr{'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections'}:</td> - <td><input type='submit' name='ACTION' value='$Lang::tr{'remove x509'}' /></td> + <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'remove x509'}' /></td> </tr> </table> </form> diff --git a/html/cgi-bin/wakeonlan.cgi b/html/cgi-bin/wakeonlan.cgi index 8ea4ae0..4a7fc84 100644 --- a/html/cgi-bin/wakeonlan.cgi +++ b/html/cgi-bin/wakeonlan.cgi @@ -260,12 +260,12 @@ print <<END <td colspan='4' align='left'><input type='text' name='CLIENT_COMMENT' value='$cgiparams{'CLIENT_COMMENT'}' size='40' /></td> </tr> </table> +<br> <hr /> <table width='100%'> <tr> - <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> - <td width='55%' class='base'>$Lang::tr{'this field may be blank'}</td> - <td width='40%' align='center'> + <td class='base' valign='top'><img src='/blob.gif' alt='*' />$Lang::tr{'this field may be blank'}</td> + <td width='40%' align='right'> END ;
@@ -292,16 +292,17 @@ print "</form>\n"; &Header::openbox('100%', 'left', "$Lang::tr{'current devices'}");
print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> -<td align='center' width='20%'><b>$Lang::tr{'mac address'}</b></td> -<td align='center' width='10%'><b>$Lang::tr{'interface'}</b></td> -<td align='center' width='60%'><b>$Lang::tr{'remark'}</b></td> -<td align='center' colspan='2'><b>$Lang::tr{'action'}</b></td> +<th align='center' width='20%'><b>$Lang::tr{'mac address'}</b></th> +<th align='center' width='10%'><b>$Lang::tr{'interface'}</b></th> +<th align='center' width='60%'><b>$Lang::tr{'remark'}</b></th> +<th align='center' colspan='2'><b>$Lang::tr{'action'}</b></th> +<th></th> </tr> END ; - +my $col=""; for $i ( 0 .. $#wol_devices ) { my $wol_mac = $wol_devices[$i]{'MAC'}; @@ -310,22 +311,25 @@ for $i ( 0 .. $#wol_devices )
if ( (($cgiparams{'ACTION'} eq 'edit') || ($cgiparams{'ACTION'} eq 'update')) && ($i == $cgiparams{'ID'}) ) { - print "<tr bgcolor='${Header::colouryellow}'>"; + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ( $i % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } - else + else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; }
print <<END -<td align='center'>$wol_mac</td> -<td align='center'>$Lang::tr{"$wol_iface"}</td> -<td align='left'>$wol_txt</td> -<td align='center'> +<td align='center' $col>$wol_mac</td> +<td align='center' $col>$Lang::tr{"$wol_iface"}</td> +<td align='left' $col>$wol_txt</td> +<td align='center' $col> END ; if ( (($wol_iface eq 'blue') && ! &haveBlueNet()) @@ -347,14 +351,14 @@ END } print <<END </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frmb$i' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='edit' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> <input type='hidden' name='ID' value='$i' /> </form> </td> -<td align='center'> +<td align='center' $col> <form method='post' name='frmc$i' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='remove' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> diff --git a/html/cgi-bin/wireless.cgi b/html/cgi-bin/wireless.cgi index ecff179..358f318 100644 --- a/html/cgi-bin/wireless.cgi +++ b/html/cgi-bin/wireless.cgi @@ -225,16 +225,15 @@ print <<END <td colspan='3'><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='40' /></td> </tr> </table> -<hr /> +<br> +<hr> <table width='100%'> <tr> - <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td> - <td width='55%' class='base'>$Lang::tr{'this field may be blank'}</td> - <td width='40%' align='center'> + <td class='base' valign='top'><img src='/blob.gif' alt='*' /> $Lang::tr{'this field may be blank'}</td> + <td width='40%' align='right'> <input type='hidden' name='ACTION' value='add' /> <input type='submit' name='SUBMIT' value='$buttontext' /> </td> - <td width='5%' align='right'> </td> </tr> </table> END @@ -260,13 +259,13 @@ my @current = <FILE>; close (FILE);
print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> -<td align='center' width='20%'><b>$Lang::tr{'hostname'}</b></td> -<td align='center' width='20%'><b>$Lang::tr{'source ip'}</b></td> -<td align='center' width='20%'><b>$Lang::tr{'mac address'}</b></td> -<td align='center' width='35%'><b>$Lang::tr{'remark'}</b></td> -<td align='center' colspan='3'><b>$Lang::tr{'action'}</b></td> +<th align='center' width='20%'><b>$Lang::tr{'hostname'}</b></th> +<th align='center' width='20%'><b>$Lang::tr{'source ip'}</b></th> +<th align='center' width='20%'><b>$Lang::tr{'mac address'}</b></t> +<th align='center' width='35%'><b>$Lang::tr{'remark'}</b></th> +<th align='center' colspan='3'><b>$Lang::tr{'action'}</b></th> </tr> END ; @@ -333,20 +332,24 @@ foreach my $line (@current) else { $gif = 'off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'};}
my $remark = &Header::cleanhtml($temp[4]); + my $col="";
if ($cgiparams{'ACTION'} eq 'edit' && $cgiparams{'ID'} eq $id) { - print "<tr bgcolor='${Header::colouryellow}'>\n"; + print "<tr>"; + $col="bgcolor='${Header::colouryellow}'"; } elsif ($id % 2) { - print "<tr bgcolor='${Header::table1colour}'>\n"; + print "<tr>"; + $col="bgcolor='${Header::table1colour}'"; } else { - print "<tr bgcolor='${Header::table2colour}'>\n"; + print "<tr>"; + $col="bgcolor='${Header::table2colour}'"; } - print "<td align='center'>$hname</td>\n"; - print "<td align='center'>$sourceip</td>\n"; - print "<td align='center'>$sourcemac</td>\n"; - print "<td align='center'>$remark</td>\n"; + print "<td align='center' $col>$hname</td>\n"; + print "<td align='center' $col>$sourceip</td>\n"; + print "<td align='center' $col>$sourcemac</td>\n"; + print "<td align='center' $col>$remark</td>\n"; print<<END -<td align='center'> +<td align='center' $col> <form method='post' name='frma$id' action='$ENV{'SCRIPT_NAME'}'> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> <input type='hidden' name='ACTION' value='toggle'}' /> @@ -355,7 +358,7 @@ print<<END </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='edit' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> @@ -363,7 +366,7 @@ print<<END </form> </td>
-<td align='center'> +<td align='center' $col> <form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='remove' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> @@ -405,12 +408,13 @@ sub printblueleases
&Header::openbox('100%', 'left', "$Lang::tr{'current dhcp leases on blue'}"); print <<END -<table width='100%'> +<table width='100%' class='tbl'> <tr> -<td width='25%' align='center'><b>$Lang::tr{'ip address'}</b></td> -<td width='25%' align='center'><b>$Lang::tr{'mac address'}</b></td> -<td width='20%' align='center'><b>$Lang::tr{'hostname'}</b></td> -<td width='30%' align='center'><b>$Lang::tr{'lease expires'} (local time d/m/y)</b></td> +<th width='25%' align='center'><b>$Lang::tr{'ip address'}</b></th> +<th width='25%' align='center'><b>$Lang::tr{'mac address'}</b></th> +<th width='20%' align='center'><b>$Lang::tr{'hostname'}</b></th> +<th width='30%' align='center'><b>$Lang::tr{'lease expires'} (local time d/m/y)</b></th> +<th></th> </tr> END ; @@ -459,18 +463,21 @@ END foreach my $key (sort blueleasesort keys %entries) {
my $hostname = &Header::cleanhtml($entries{$key}->{HOSTNAME},"y"); + my $col="";
if ($id % 2) { - print "<tr bgcolor='$Header::table2colour'>"; + print "<tr>"; + $col="bgcolor='$Header::table2colour'"; } else { - print "<tr bgcolor='$Header::table1colour'>"; + print "<tr>"; + $col="bgcolor='$Header::table1colour'"; }
print <<END -<td align='center'>$entries{$key}->{IPADDR}</td> -<td align='center'>$entries{$key}->{ETHER}</td> -<td align='center'> $hostname </td> -<td align='center'> +<td align='center' $col>$entries{$key}->{IPADDR}</td> +<td align='center' $col>$entries{$key}->{ETHER}</td> +<td align='center' $col> $hostname </td> +<td align='center' $col> END ;
@@ -493,7 +500,7 @@ END }
print <<END -<td align='center'> +<td align='center' $col> <form method='post' name='frmd$id' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='add' /> <input type='hidden' name='SOURCE_IP' value='' /> diff --git a/html/cgi-bin/wirelessclient.cgi b/html/cgi-bin/wirelessclient.cgi index 3c52803..a2d0273 100644 --- a/html/cgi-bin/wirelessclient.cgi +++ b/html/cgi-bin/wirelessclient.cgi @@ -258,11 +258,14 @@ sub showMainBox() {
<br><hr><br>
- <table width="100%"> + <table width="100%" class='tbl'> <tr> <th align='center'>$Lang::tr{'wlan client ssid'}</th> <th align='center'>$Lang::tr{'wlan client encryption'}</th> <th align='center'>$Lang::tr{'priority'}</th> + <th></th> + <th></th> + <th></th> </tr> END
@@ -271,6 +274,7 @@ END #
my $key = 0; + my $col=""; foreach my $line (@configs) { # Skip commented lines. my $firstchar = substr($line, 0, 1); @@ -292,9 +296,11 @@ END
# Colorize each line if ($key % 2) { - print "<tr bgcolor='$color{'color22'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color20'}'"; } else { - print "<tr bgcolor='$color{'color20'}'>"; + print "<tr>"; + $col="bgcolor='$color{'color22'}'"; }
my $encryption_mode = $Lang::tr{'unknown'}; @@ -332,24 +338,24 @@ END }
print <<END; - <td align='center'>$config[5]</td> - <td align='center'>$encryption_mode</td> - <td align='center'>$config[7]</td> - <td align='center' width='5%'> + <td align='center' $col>$config[5]</td> + <td align='center' $col>$encryption_mode</td> + <td align='center' $col>$config[7]</td> + <td align='center' width='5%' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' /> <input type='hidden' name='ID' value='$config[0]' /> </form> </td> - <td align='center' width='5%'> + <td align='center' width='5%' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' /> <input type='hidden' name='ID' value='$config[0]' /> </form> </td> - <td align='center' width='5%'> + <td align='center' width='5%' $col> <form method='post' action='$ENV{'SCRIPT_NAME'}'> <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /> diff --git a/html/cgi-bin/xtaccess.cgi b/html/cgi-bin/xtaccess.cgi deleted file mode 100644 index 3fc2190..0000000 --- a/html/cgi-bin/xtaccess.cgi +++ /dev/null @@ -1,377 +0,0 @@ -#!/usr/bin/perl -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -use strict; - -# enable only the following on debugging purpose -#use warnings; -#use CGI::Carp 'fatalsToBrowser'; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -#workaround to suppress a warning when a variable is used only once -my @dummy = ( ${Header::colouryellow} ); -undef (@dummy); - -my %cgiparams=(); -my %checked=(); -my %selected=(); -my $errormessage = ''; -my $filename = "${General::swroot}/xtaccess/config"; -my $aliasfile = "${General::swroot}/ethernet/aliases"; -my $changed = 'no'; - -my %color = (); -my %mainsettings = (); -&General::readhash("${General::swroot}/main/settings", %mainsettings); -&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); - -&Header::showhttpheaders(); - -$cgiparams{'ENABLED'} = 'off'; -$cgiparams{'ACTION'} = ''; -$cgiparams{'SRC'} = ''; -$cgiparams{'DEST_PORT'} = ''; -$cgiparams{'REMARK'} =''; -&Header::getcgihash(%cgiparams); -open(FILE, $filename) or die 'Unable to open config file.'; -my @current = <FILE>; -close(FILE); - -if ($cgiparams{'ACTION'} eq $Lang::tr{'add'}) -{ - unless($cgiparams{'PROTOCOL'} =~ /^(tcp|udp)$/) { $errormessage = $Lang::tr{'invalid input'}; } - unless(&General::validipormask($cgiparams{'SRC'})) - { - if ($cgiparams{'SRC'} ne '') { - $errormessage = $Lang::tr{'source ip bad'}; } - else { - $cgiparams{'SRC'} = '0.0.0.0/0'; } - } - unless($errormessage){ $errormessage = &General::validportrange($cgiparams{'DEST_PORT'},'dst'); } - if ( ! $errormessage) - { - $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'}); - - if($cgiparams{'EDITING'} eq 'no') { - open(FILE,">>$filename") or die 'Unable to open config file.'; - flock FILE, 2; - print FILE "$cgiparams{'PROTOCOL'},$cgiparams{'SRC'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'DEST'},$cgiparams{'REMARK'}\n"; - } else { - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - my $id = 0; - foreach my $line (@current) - { - $id++; - if ($cgiparams{'EDITING'} eq $id) { - print FILE "$cgiparams{'PROTOCOL'},$cgiparams{'SRC'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'DEST'},$cgiparams{'REMARK'}\n"; - } else { print FILE "$line"; } - } - } - close(FILE); - undef %cgiparams; - $changed = 'yes'; - &General::log($Lang::tr{'external access rule added'}); - system('/usr/local/bin/setxtaccess'); - } else { - # stay on edit mode if an error occur - if ($cgiparams{'EDITING'} ne 'no') - { - $cgiparams{'ACTION'} = $Lang::tr{'edit'}; - $cgiparams{'ID'} = $cgiparams{'EDITING'}; - } - } -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) -{ - my $id = 0; - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - foreach my $line (@current) - { - $id++; - unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; } - } - close(FILE); - system('/usr/local/bin/setxtaccess'); - &General::log($Lang::tr{'external access rule removed'}); -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'toggle enable disable'}) -{ - open(FILE, ">$filename") or die 'Unable to open config file.'; - flock FILE, 2; - my $id = 0; - foreach my $line (@current) - { - $id++; - unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; } - else - { - chomp($line); - my @temp = split(/,/,$line); - print FILE "$temp[0],$temp[1],$temp[2],$cgiparams{'ENABLE'},$temp[4],$temp[5]\n"; - } - } - close(FILE); - system('/usr/local/bin/setxtaccess'); -} -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) -{ - my $id = 0; - foreach my $line (@current) - { - $id++; - if ($cgiparams{'ID'} eq $id) - { - chomp($line); - my @temp = split(/,/,$line); - $cgiparams{'PROTOCOL'} = $temp[0]; - $cgiparams{'SRC'} = $temp[1]; - $cgiparams{'DEST_PORT'} = $temp[2]; - $cgiparams{'ENABLED'} = $temp[3]; - $cgiparams{'DEST'} = $temp[4]; - $cgiparams{'REMARK'} = $temp[5]; - } - } -} - -if ($cgiparams{'ACTION'} eq '') -{ - $cgiparams{'PROTOCOL'} = 'tcp'; - $cgiparams{'DEST'} = '0.0.0.0'; - $cgiparams{'ENABLED'} = 'on'; -} - -$selected{'PROTOCOL'}{'udp'} = ''; -$selected{'PROTOCOL'}{'tcp'} = ''; -$selected{'PROTOCOL'}{$cgiparams{'PROTOCOL'}} = "selected='selected'"; - -$selected{'DEST'}{$cgiparams{'DEST'}} = "selected='selected'"; - -$checked{'ENABLED'}{'off'} = ''; -$checked{'ENABLED'}{'on'} = ''; -$checked{'ENABLED'}{$cgiparams{'ENABLED'}} = "checked='checked'"; - -&Header::openpage($Lang::tr{'external access configuration'}, 1, ''); - -&Header::openbigbox('100%', 'left', '', $errormessage); - -if ($errormessage) { - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "<class name='base'>$errormessage\n"; - print " </class>\n"; - &Header::closebox(); -} - -print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n"; - -my $buttontext = $Lang::tr{'add'}; -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) { - &Header::openbox('100%', 'left', $Lang::tr{'edit a rule'}); - $buttontext = $Lang::tr{'update'}; -} else { - &Header::openbox('100%', 'left', $Lang::tr{'add a new rule'}); -} -print <<END -<table width='100%'> -<tr> -<td width='10%'> -<select name='PROTOCOL'> -<option value='udp' $selected{'PROTOCOL'}{'udp'}>UDP</option> -<option value='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</option> -</select> -</td> -<td class='base'><font color='${Header::colourred}'>$Lang::tr{'source network'}</font></td> -<td><input type='text' name='SRC' value='$cgiparams{'SRC'}' size='32' /></td> -<td class='base'><font color='${Header::colourred}'>$Lang::tr{'destination port'}:</font></td> -<td><input type='text' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' size='5' /></td> -</tr> -</table> -<table width='100%'> -<tr> -<td width='10%' class='base'>$Lang::tr{'enabled'}<input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td> -<td class='base'><font color='${Header::colourred}'>$Lang::tr{'destination ip'}: </font> -<select name='DEST'> -<option value='0.0.0.0' $selected{'DEST'}{'0.0.0.0'}>DEFAULT IP</option> -END -; - -open(ALIASES, "$aliasfile") or die 'Unable to open aliases file.'; -while (<ALIASES>) -{ - chomp($_); - my @temp = split(/,/,$_); - if ($temp[1] eq 'on') { - print "<option value='$temp[0]' $selected{'DEST'}{$temp[0]}>$temp[0]"; - if (defined $temp[2] and ($temp[2] ne '')) { print " ($temp[2])"; } - print "</option>\n"; - } -} -close(ALIASES); -print <<END -</select> -</td> -</tr> -</table> -<table width='100%'> -<tr> -<td width ='10%' class='base'> -<font class='boldbase'>$Lang::tr{'remark'}:</font> <img src='/blob.gif' alt='*' /> -</td> -<td width='65%'> -<input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /> -</td> -<td width='25%' align='center'> -<input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /> -<input type='submit' name='SUBMIT' value='$buttontext' /> -</td> -</tr> -</table> -<table width='100%'> -<tr> -<td class='base' width='30%'><img src='/blob.gif' alt ='*' align='top' /> <font class='base'>$Lang::tr{'this field may be blank'}</font> -</td> -</tr> -</table> -END -; -if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) { - print "<input type='hidden' name='EDITING' value='$cgiparams{'ID'}' />\n"; -} else { - print "<input type='hidden' name='EDITING' value='no' />\n"; -} - -&Header::closebox(); -print "</form>\n"; - -&Header::openbox('100%', 'left', $Lang::tr{'current rules'}); -print <<END -<table width='100%'> -<tr> -<td width='10%' class='boldbase' align='center'><b>$Lang::tr{'proto'}</b></td> -<td width='20%' class='boldbase' align='center'><b>$Lang::tr{'source ip'}</b></td> -<td width='20%' class='boldbase' align='center'><b>$Lang::tr{'destination ip'}</b></td> -<td width='15%' class='boldbase' align='center'><b>$Lang::tr{'destination port'}</b></td> -<td width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td> -<td width='5%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td> -</tr> -END -; - -# If something has happened re-read config -if($cgiparams{'ACTION'} ne '' or $changed ne 'no') -{ - open(FILE, $filename) or die 'Unable to open config file.'; - @current = <FILE>; - close(FILE); -} -my $id = 0; -foreach my $line (@current) -{ - $id++; - chomp($line); - my @temp = split(/,/,$line); - my $protocol = ''; - my $gif = ''; - my $gdesc = ''; - my $toggle = ''; - if ($temp[0] eq 'udp') { - $protocol = 'UDP'; } - else { - $protocol = 'TCP' } - if($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'ID'} eq $id) { - print "<tr bgcolor='${Header::colouryellow}'>\n"; } - elsif ($id % 2) { - print "<tr bgcolor='$color{'color22'}'>\n"; } - else { - print "<tr bgcolor='$color{'color20'}'>\n"; } - if ($temp[3] eq 'on') { $gif='on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};} - else { $gif='off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'}; } - if ($temp[1] eq '0.0.0.0/0') { - $temp[1] = $Lang::tr{'caps all'}; } - # catch for 'old-style' rules file - assume default ip if - # none exists - if (!&General::validip($temp[4]) || $temp[4] eq '0.0.0.0') { - $temp[4] = 'DEFAULT IP'; } - $temp[5] = '' unless defined $temp[5]; -print <<END -<td align='center'>$protocol</td> -<td align='center'>$temp[1]</td> -<td align='center'>$temp[4]</td> -<td align='center'>$temp[2]</td> -<td align='left'> $temp[5]</td> -<td align='center'> -<form method='post' name='frma$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' title='$gdesc' alt='$gdesc' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ENABLE' value='$toggle' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' /> -</form> -</td> -<td align='center'> -<form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' title='$Lang::tr{'edit'}' alt='$Lang::tr{'edit'}' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' /> -</form> -</td> -<td align='center'> -<form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'> -<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}' /> -<input type='hidden' name='ID' value='$id' /> -<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' /> -</form> -</td> - -</tr> -END - ; -} -print "</table>\n"; - -# If the xt access file contains entries, print Key to action icons -if ( ! -z "$filename") { -print <<END -<table> -<tr> - <td class='boldbase'> <b>$Lang::tr{'legend'}:</b></td> - <td> <img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td> - <td class='base'>$Lang::tr{'click to disable'}</td> - <td> <img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td> - <td class='base'>$Lang::tr{'click to enable'}</td> - <td> <img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td> - <td class='base'>$Lang::tr{'edit'}</td> - <td> <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td> - <td class='base'>$Lang::tr{'remove'}</td> -</tr> -</table> -END -; -} - -&Header::closebox(); - -&Header::closebigbox(); - -&Header::closepage(); diff --git a/html/html/include/jquery-1.9.1.min.js b/html/html/include/jquery-1.9.1.min.js deleted file mode 100644 index 006e953..0000000 --- a/html/html/include/jquery-1.9.1.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license -//@ sourceMappingURL=jquery.min.map -*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*/?>(?:</\1>|)$/,k=/^[],:{}\s]*$/,E=/(?:^|:|,)(?:\s*[)+/g,S=/\(?:["\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\r\n]*"|true|false|null|-?(?:\d+.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e) {if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:funct ion(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:fun ction(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;r eturn!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},node Name:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r &&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEv entListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function( ){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r ={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):-- i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,check On:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bub bles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1 %;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:{[\s\S]*}|[[\s\S]*])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s; if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[ b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data -"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>a rguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend( {attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&& (n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null== o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length| |(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",col span:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specif ied?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e ){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.eve nts={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort (),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\.)"+h.join("\.(?:.*\.|)")+"(\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\.) "+m.join("\.(?:.*\.|)")+"(\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c =b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,han dlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documen tElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.r emoveEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagati on()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj; -return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add (this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r ,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1=== arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\x20\t\r\n\f]",F="(?:\\.|[\w-]|[^\x00-\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['"])((?:\\.|[^\\])*?)\3|("+O+")|)|)"+_+"*\]",R=":("+F+")(?:\(((['"])((?:\\.|[^\\])*?)\3|((?:\\.|[^\\()[\]]|"+P.replace(3,8)+")*)|.*)\)|)",W=RegExp("^"+_+"+|((?:^|[^\\])(?:\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\x20\t\r\n\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\.("+F +")"),NAME:RegExp("^\[name=['"]?("+F+")['"]?\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\("+_+"*(even|odd|(([+-]|)(\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\d+)|))"+_+"*\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\("+_+"*((?:-\d)?\d*)"+_+"*\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+{\s*[native code/,J=/^(?:#([\w-]+)|(\w+)|.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\/g,Z=/=[\x20\t\r\n\f]*([^'"]]*)[\x20\t\r\n\f]*]/g,et=/\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){re turn t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m =V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'>< /a><div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!= =A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:""|'')"),e.querySelectorAll(":enabled").leng th||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l =[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expressi on: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{ },relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttr ibute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x] ={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+ e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},bu tton:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)) ,i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&>(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)), o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[ 1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#[.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++ )b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentD ocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){retur n b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|/(?:java|ecma)script/i,Et=/^true/(.*)/,St=/^\s*<!(?:[CDATA[|--)|(?:]]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></tab le>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b .isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n )));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode; n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return thi s}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)& &(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.supp ort.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i =o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l) -}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha([^)]*)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+ ")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n. length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px" ),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle },Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parse Float(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":" "},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/[]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArra y(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^///,En=/^([\w.+-]+:)(?://([^/?#:]*)(?::(\d+)|)|)/,Sn=b.fn .load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({ url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML} ,flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.d one,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader( "Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="er ror",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*" !==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readySta te))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)?(?=&|$)|??/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0 ]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.n oop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat (Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.tim er(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overfl ow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this .prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scroll Top=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].ele m!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.i sFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.leng th)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offse tParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=argu ments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window); \ No newline at end of file diff --git a/html/html/themes/darkdos/images/IPFire.png b/html/html/themes/darkdos/images/IPFire.png new file mode 100644 index 0000000..ec56b7a Binary files /dev/null and b/html/html/themes/darkdos/images/IPFire.png differ diff --git a/html/html/themes/darkdos/images/b1.gif b/html/html/themes/darkdos/images/b1.gif new file mode 100644 index 0000000..123ff91 Binary files /dev/null and b/html/html/themes/darkdos/images/b1.gif differ diff --git a/html/html/themes/darkdos/images/b2.gif b/html/html/themes/darkdos/images/b2.gif new file mode 100644 index 0000000..0172874 Binary files /dev/null and b/html/html/themes/darkdos/images/b2.gif differ diff --git a/html/html/themes/darkdos/images/b3.gif b/html/html/themes/darkdos/images/b3.gif new file mode 100644 index 0000000..8c8fba3 Binary files /dev/null and b/html/html/themes/darkdos/images/b3.gif differ diff --git a/html/html/themes/darkdos/images/b4.gif b/html/html/themes/darkdos/images/b4.gif new file mode 100644 index 0000000..5964fa7 Binary files /dev/null and b/html/html/themes/darkdos/images/b4.gif differ diff --git a/html/html/themes/darkdos/images/b5.gif b/html/html/themes/darkdos/images/b5.gif new file mode 100644 index 0000000..a032242 Binary files /dev/null and b/html/html/themes/darkdos/images/b5.gif differ diff --git a/html/html/themes/darkdos/images/b6.gif b/html/html/themes/darkdos/images/b6.gif new file mode 100644 index 0000000..ed1781c Binary files /dev/null and b/html/html/themes/darkdos/images/b6.gif differ diff --git a/html/html/themes/darkdos/images/spacer.gif b/html/html/themes/darkdos/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/html/html/themes/darkdos/images/spacer.gif differ diff --git a/html/html/themes/darkdos/include/colors.txt b/html/html/themes/darkdos/include/colors.txt new file mode 100644 index 0000000..6efefc5 --- /dev/null +++ b/html/html/themes/darkdos/include/colors.txt @@ -0,0 +1,25 @@ +color1=#CD0000 +color2=#FF0000 +color3=#CD0000 +color4=#FA1818 +color5=#CD0000 +color6=#FF0000 +color7=#FF2424 +color8=#FF5050 +color9=#EE0F0F +color10=#EE0000 +color11=#0000FF +color12=#00FF00 +color13=#FF0000 +color14=#F32020 +color15=#CCCCCC +color16=#40E0D0 +color17=#90EE90 +color18=#F4A460 +color19=#EAE9EE +color20=#1C1C1C +color21=#CD6600 +color22=#4F4F4F +color23=#FF00FF +color24=#6464FF +color25=#FF6464 diff --git a/html/html/themes/darkdos/include/functions.pl b/html/html/themes/darkdos/include/functions.pl new file mode 100644 index 0000000..737e051 --- /dev/null +++ b/html/html/themes/darkdos/include/functions.pl @@ -0,0 +1,404 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +sub showmenu() { + print <<EOF + <div id="menu"> + <ul> +EOF +; + foreach my $k1 ( sort keys %$menu ) { + if (! $menu->{$k1}{'enabled'}) { + next; + } + my $link = getlink($menu->{$k1}); + if ($link eq '') { + next; + } + if (! is_menu_visible($link)) { + next; + } + if ($menu->{$k1}->{'selected'}) { + print "<li><a href="$link" class="active">$menu->{$k1}{'caption'}</a></li>"; + } else { + print "<li><a href="$link">$menu->{$k1}{'caption'}</a></li>"; + } + } + print <<EOF + </ul> + </div> +EOF +; +} + +sub getselected($) { + my $root = shift; + if (!$root) { + return 0; + } + + foreach my $item (%$root) { + if ($root->{$item}{'selected'}) { + return $root->{$item}; + } + } +} + +sub showsubsection($$) { + my $root = shift; + + if (! $root) { + return; + } + my $selected = getselected($root); + if (! $selected) { + return; + } + my $submenus = $selected->{'subMenu'}; + if (! $submenus) { + return; + } + + print <<EOF + <h4><span>Side</span>menu</h4> + <ul class="links"> +EOF +; + foreach my $item (sort keys %$submenus) { + my $hash = $submenus->{$item}; + if (! $hash->{'enabled'}) { + next; + } + my $link = getlink($hash); + if ($link eq '') { + next; + } + if (! is_menu_visible($link)) { + next; + } + if ($hash->{'selected'}) { + print '<li class="selected">'; + } else { + print '<li>'; + } + + print "<a href="$link">$hash->{'caption'}</a></li>"; + } + + print <<EOF + </ul> +EOF +; +} + + +sub showsubsubsection($) { + my $root = shift; + if (!$root) { + return; + } + my $selected = getselected($root); + if (! $selected) { + return + } + if (! $selected->{'subMenu'}) { + return + } + + showsubsection($selected->{'subMenu'}, 'menu-subtop'); +} + +sub openpage { + my $title = shift; + my $boh = shift; + my $extrahead = shift; + + @URI=split ('?', $ENV{'REQUEST_URI'} ); + &General::readhash("${swroot}/main/settings", %settings); + &genmenu(); + + my $h2 = gettitle($menu); + + $title = "-= IPFire - $title =-"; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; + } + + print <<END +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html xmlns='http://www.w3.org/1999/xhtml'> +<head> + <title>$title</title> + $extrahead + <link rel="shortcut icon" href="/favicon.ico" /> + <link rel="stylesheet" type="text/css" href="/themes/darkdos/include/style.css" /> + <script language="javascript" type="text/javascript"> + + function swapVisibility(id) { + el = document.getElementById(id); + if(el.style.display != 'block') { + el.style.display = 'block' + } + else { + el.style.display = 'none' + } + } + </script> +END +; +if ($settings{'SPEED'} ne 'off') { +print <<END + <script type="text/javascript" src="/include/jquery.js"></script> + <script type="text/javascript"> + var t_current; + var t_last; + var rxb_current; + var rxb_last; + var txb_current; + var txb_last; + function refreshInetInfo() { + $.ajax({ + url: '/cgi-bin/speed.cgi', + success: function(xml){ + t_current = new Date(); + var t_diff = t_current - t_last; + t_last = t_current; + + rxb_current = $("rxb",xml).text(); + var rxb_diff = rxb_current - rxb_last; + rxb_last = rxb_current; + + var rx_kbs = rxb_diff/t_diff; + rx_kbs = Math.round(rx_kbs*10)/10; + + txb_current = $("txb",xml).text(); + var txb_diff = txb_current - txb_last; + txb_last = txb_current; + + var tx_kbs = txb_diff/t_diff; + tx_kbs = Math.round(tx_kbs*10)/10; + + $("#rx_kbs").text(rx_kbs + ' kb/s'); + $("#tx_kbs").text(tx_kbs + ' kb/s'); + } + }); + window.setTimeout("refreshInetInfo()", 3000); + } + $(document).ready(function(){ + refreshInetInfo(); + }); + </script> + </head> + <body> +END +; +} +else { +print "</head>\n<body>";} +print <<END +<!-- IPFIRE HEADER --> + +<div id="header"> + + <div id="header_inner" class="fixed"> + + <div id="logo"> +END +; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + print "<h1><span>$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}</span></h1><br />"; + } else { + print "<h1><span>-= IPFire =-</span></h1><br />"; + } + print <<END + <h2>+ $h2 +</h2> + </div> + +END +; + &showmenu(); + +print <<END + </div> +</div> + +<div id="main"> + <div id="main_inner" class="fixed"> + <div id="primaryContent_2columns"> + <div id="columnA_2columns"> +END +; +} + +sub openpagewithoutmenu { + my $title = shift; + my $boh = shift; + my $extrahead = shift; + + @URI=split ('?', $ENV{'REQUEST_URI'} ); + &General::readhash("${swroot}/main/settings", %settings); + &genmenu(); + + my $h2 = gettitle($menu); + + $title = "-= IPFire - $title =-"; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; + } + + print <<END +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html xmlns='http://www.w3.org/1999/xhtml'> +<head> + <title>$title</title> + $extrahead +END +; + if ($settings{'FX'} ne 'off') { + print <<END + <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" /> + <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" /> +END +; + } + print <<END + <link rel="shortcut icon" href="/favicon.ico" /> + <link rel="stylesheet" type="text/css" href="/include/style.css" /> + <script language="javascript" type="text/javascript"> + + function swapVisibility(id) { + el = document.getElementById(id); + if(el.style.display != 'block') { + el.style.display = 'block' + } + else { + el.style.display = 'none' + } + } + </script> + + </head> + <body> +<!-- IPFIRE HEADER --> + +<div id="header"> + + <div id="header_inner" class="fixed"> + + <div id="logo"> + <h1><span>-= IPFire =-</span></h1> + <h2>+ $h2 +</h2> + </div> + </div> +</div> + +<div id="main"> + <div id="main_inner" class="fixed"> + <div id="primaryContent_2columns"> + <div id="columnA_2columns"> +END +; +} + +sub closepage () { + my $status = &connectionstatus(); + my $uptime = `/usr/bin/uptime|cut -d " " -f 4-`; + $uptime =~ s/year(s|)/$Lang::tr{'year'}/; + $uptime =~ s/month(s|)/$Lang::tr{'month'}/; + $uptime =~ s/day(s|)/$Lang::tr{'day'}/; + $uptime =~ s/user(s|)/$Lang::tr{'user'}/; + $uptime =~ s/load average/$Lang::tr{'uptime load average'}/; + + print <<END + </div> + </div> + + <div id="secondaryContent_2columns"> + + <div id="columnC_2columns"> +END +; + &showsubsection($menu); + &showsubsubsection($menu); + + print <<END + </div> + </div> + <br class="clear" /> + <div id="footer" class="fixed"> + <b>Status:</b> $status <b>Uptime:</b> $uptime +END +; +if ($settings{'SPEED'} ne 'off') { +print <<END + <br /> + <b>$Lang::tr{'bandwidth usage'}:</b> + $Lang::tr{'incoming'}: <span id="rx_kbs"></span> $Lang::tr{'outgoing'}: <span id="tx_kbs"></span> + +END +; +} +print <<END + </div> + </div> +</div> +</body> +</html> +END +; +} + +sub openbigbox +{ +} + +sub closebigbox +{ +} + +sub openbox +{ + $width = $_[0]; + $align = $_[1]; + $caption = $_[2]; + + print <<END +<!-- openbox --> + <div class="post" align="$align"> +END +; + + if ($caption) { print "<h3>$caption</h3>\n"; } else { print " "; } +} + +sub closebox +{ + print <<END + </div> + <br class="clear" /> + <!-- closebox --> +END +; +} + +1; diff --git a/html/html/themes/darkdos/include/style.css b/html/html/themes/darkdos/include/style.css new file mode 100644 index 0000000..e7140cd --- /dev/null +++ b/html/html/themes/darkdos/include/style.css @@ -0,0 +1,464 @@ +/*darkdos theme by d4rkd0s*/ + +/* This controls the width of the fluid width layouts */ + +div.fluid +{ +width: 90% !important; +} + +/* This controls the width of the fixed width layouts */ + +div.fixed +{ +width: 950px !important; +} + +/* Basic Stuff */ + +* +{ +margin: 0em; +padding: 0em; +} + +body +{ +background-color: #000000; +color: rgb(255,128,0); +font-size: 10pt; +font-family: "trebuchet ms", helvetica, sans-serif; +} + +h1,h2,h3,h4,h5,h6 +{ +background-color: #000000; +font-weight: normal; +letter-spacing: -1px; +text-transform: lowercase; +text-align: left; +} + +h3,h4,h5,h6 +{ +background-color: #000000; +color: silver; +} + +h1 span +{ +font-weight: bold; +color: rgb(255,58,58); +} + +h3 span +{ +background-color: #000000; +font-weight: bold; +} + +h4 span +{ +background-color: #000000; +font-weight: bold; +} + +br.clear +{ +background-color: #000000; +clear: both; +} + +img +{ +} + +img.floatTL +{ +float: left; +margin-right: 1.5em; +margin-bottom: 1.5em; +margin-top: 0.5em; +} + +a +{ +text-decoration: underline; +color: white; +} + +a:hover +{ +text-decoration: none; +} + +ul.links +{ +list-style: none; +} + +ul.links li +{ +line-height: 2em; +} + +ul.links li.first +{ +} + +p +{ +line-height: 1.8em; +} + +/* Header */ + +#header +{ +width:100%; +height:100px; +background: #000000 url('/themes/darkdos/images/b1.gif') repeat-x; +} + +#header_inner +{ +position: relative; +width: 700px; +height:110px; +margin: 0 auto; +} + +/* Logo */ + +#logo +{ +position: absolute; +bottom: 0.6em; +} + +#logo h1 +{ +display: inline; +color: #fff; +font-size: 2.6em; +} + +#logo h2 +{ +display: inline; +padding-left: 0.5em; +color: white; +font-size: 1.0em; +} + +/* Menu */ + +#menu +{ +position: absolute; +right: 0em; +bottom: 0em; +} + +#menu ul +{ +list-style: none; +} + +#menu li +{ +float: left; +} + +#menu li a +{ +margin-left: 0.5em; +display: block; +padding: 1.1em 1.4em 1.0em 1.4em; +background: url('/themes/darkdos/images/b4.gif') repeat-x; +border: solid 1px #fff; +color: #616161; +font-weight: bold; +font-size: 1.0em; +text-transform: lowercase; +text-decoration: none; +} + +#menu li a.active +{ +background: url('/themes/darkdos/images/b3.gif') repeat-x; +color: #fff; +border: solid 1px silver; +} + +/* Main */ + +#main +{ +background: #000000 url('/themes/darkdos/images/b2.gif') 0px 1px repeat-x; +} + +#main_inner p +{ +text-align: justify; +margin-bottom: 2.0em; +} + +#main_inner ul +{ +margin-bottom: 2.0em; +} + +#main_inner +{ +position: relative; +width: 950px; +margin: 0 auto; +padding-top: 3.5em; +} + +#main_inner h3,h4 +{ +border-bottom: dotted 1px #E1E1E1; +position: relative; +padding-bottom: 0.4em; +} + +#main_inner h3 +{ +font-size: 2.1em; +padding-bottom: 0.1em; +} + +#main_inner h4 +{ +font-size: 1.2em; +padding-bottom: 0.175em; +margin-bottom: 1.4em; +margin-top: 0.95em; +} + +#main_inner .post +{ +position: relative; +} + +#main_inner .post h3 +{ +position: relative; +font-size: 1.7em; +padding-bottom: 0.4em; +} + +#main_inner .post ul.post_info +{ +list-style: none; +position: absolute; +top: 3em; +font-size: 0.8em; +} + +#main_inner .post ul.post_info li +{ +background-position: 0em 0.2em; +background-repeat: no-repeat; +display: inline; +padding-left: 18px; +} + +#main_inner .post ul.post_info li.date +{ +background-image: url('/themes/darkdos/images/b5.gif'); +} + +#main_inner .post ul.post_info li.comments +{ +background-image: url('/themes/darkdos/images/b6.gif'); +margin-left: 1.1em; +} + +/* Footer */ + +#footer +{ +width: 950px; +margin: 0 auto; +text-align: center; +clear: both; +border-top: dotted 1px #E1E1E1; +margin-top: 1.0em; +margin-bottom: 1.0em; +padding-top: 1.0em; +text-transform: lowercase; +} + +/* Search */ + +select +{ +margin: 0.2em; +background-color: rgb(255,58,58); color:black; border:1px solid silver; +} + +textarea +{ +margin: 0.2em; +background-color: rgb(255,58,58); color:black; border:1px solid silver; +} + +checkbox +{ +margin: 0.2em; +background-color: rgb(255,58,58); color:black; border:1px solid silver; +} + +radio +{ +margin: 0.2em; +background-color: rgb(255,58,58); color:black; border:1px solid silver; +} + +input +{ +margin: 0.2em; +background-color: rgb(255,58,58); color:black; border:1px solid silver; +} + +input.button +{ +background: #CA2F2F url('/themes/darkdos/images/b3.gif') repeat-x; +color: #fff; +border: solid 1px #2941BC; +font-weight: bold; +text-transform: lowercase; +font-size: 0.8em; +height: 2.0em; +} + +input.text +{ +border: solid 1px #F1F1F1; +font-size: 1.0em; +padding: 0.25em 0.25em 0.25em 0.25em; +} + +#search +{ +position: relative; +width: 100%; +margin-bottom: 2.0em; +} + +#search input.text +{ +position: absolute; +top: 0em; +left: 0em; +width: 9.5em; +} + +#search input.button +{ +position: absolute; +top: 0em; +right: 0em; +min-width: 2.0em; +max-width: 2.5em; +} + +/* LAYOUT - 3 COLUMNS */ + + /* Primary content */ + + #primaryContent_3columns + { + position: relative; + margin-right: 34em; + } + + #columnA_3columns + { + position: relative; + float: left; + width: 100%; + margin-right: -34em; + padding-right: 2em; + } + + /* Secondary Content */ + + #secondaryContent_3columns + { + float: right; + } + + #columnB_3columns + { + width: 13.0em; + float: left; + padding: 0em 2em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + + #columnC_3columns + { + width: 13.0em; + float: left; + padding: 0em 0em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + +/* LAYOUT - 2 COLUMNS */ + + /* Primary content */ + + #primaryContent_2columns + { + position: relative; + margin-right: 17em; + } + + #columnA_2columns + { + position: relative; + float: left; + width: 100%; + margin-right: -17em; + padding-right: 2em; + } + + /* Secondary Content */ + + #secondaryContent_2columns + { + float: right; + } + + #columnC_2columns + { + width: 13.0em; + float: left; + padding: 0em 0em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + +/* LAYOUT - COLUMNLESS */ + + /* Primary content */ + + #primaryContent_columnless + { + position: relative; + } + + #columnA_columnless + { + position: relative; + width: 100%; + } + +/* FOOTER COLORIZE BANDWIDTH */ + +#rx_kbs { color: green; } + +#tx_kbs { color: red; } diff --git a/html/html/themes/ipfire-legacy/images/n1.gif b/html/html/themes/ipfire-legacy/images/n1.gif new file mode 100644 index 0000000..6eb5161 Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n1.gif differ diff --git a/html/html/themes/ipfire-legacy/images/n2.gif b/html/html/themes/ipfire-legacy/images/n2.gif new file mode 100644 index 0000000..b92a19d Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n2.gif differ diff --git a/html/html/themes/ipfire-legacy/images/n3.gif b/html/html/themes/ipfire-legacy/images/n3.gif new file mode 100644 index 0000000..6627c91 Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n3.gif differ diff --git a/html/html/themes/ipfire-legacy/images/n4.gif b/html/html/themes/ipfire-legacy/images/n4.gif new file mode 100644 index 0000000..8698525 Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n4.gif differ diff --git a/html/html/themes/ipfire-legacy/images/n5.gif b/html/html/themes/ipfire-legacy/images/n5.gif new file mode 100644 index 0000000..a032242 Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n5.gif differ diff --git a/html/html/themes/ipfire-legacy/images/n6.gif b/html/html/themes/ipfire-legacy/images/n6.gif new file mode 100644 index 0000000..ed1781c Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n6.gif differ diff --git a/html/html/themes/ipfire-legacy/images/spacer.gif b/html/html/themes/ipfire-legacy/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/spacer.gif differ diff --git a/html/html/themes/ipfire-legacy/include/colors.txt b/html/html/themes/ipfire-legacy/include/colors.txt new file mode 100644 index 0000000..6d7dd1c --- /dev/null +++ b/html/html/themes/ipfire-legacy/include/colors.txt @@ -0,0 +1,25 @@ +color1=#CD5B45 +color2=#EE6A50 +color3=#FF7256 +color4=#EE9572 +color5=#FFA07A +color6=#CDAF95 +color7=#EECBAD +color8=#FFDAB9 +color9=#FFE4C4 +color10=#FFCCCC +color11=#0000FF +color12=#00FF00 +color13=#FF0000 +color14=#FFD700 +color15=#CCCCCC +color16=#40E0D0 +color17=#90EE90 +color18=#F4A460 +color19=#EAE9EE +color20=#D6D6D6 +color21=#FFFFFF +color22=#F0F0F0 +color23=#FF00FF +color24=#6464FF +color25=#FF6464 diff --git a/html/html/themes/ipfire-legacy/include/functions.pl b/html/html/themes/ipfire-legacy/include/functions.pl new file mode 100644 index 0000000..1401030 --- /dev/null +++ b/html/html/themes/ipfire-legacy/include/functions.pl @@ -0,0 +1,404 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +sub showmenu() { + print <<EOF + <div id="menu"> + <ul> +EOF +; + foreach my $k1 ( sort keys %$menu ) { + if (! $menu->{$k1}{'enabled'}) { + next; + } + my $link = getlink($menu->{$k1}); + if ($link eq '') { + next; + } + if (! is_menu_visible($link)) { + next; + } + if ($menu->{$k1}->{'selected'}) { + print "<li><a href="$link" class="active">$menu->{$k1}{'caption'}</a></li>"; + } else { + print "<li><a href="$link">$menu->{$k1}{'caption'}</a></li>"; + } + } + print <<EOF + </ul> + </div> +EOF +; +} + +sub getselected($) { + my $root = shift; + if (!$root) { + return 0; + } + + foreach my $item (%$root) { + if ($root->{$item}{'selected'}) { + return $root->{$item}; + } + } +} + +sub showsubsection($$) { + my $root = shift; + + if (! $root) { + return; + } + my $selected = getselected($root); + if (! $selected) { + return; + } + my $submenus = $selected->{'subMenu'}; + if (! $submenus) { + return; + } + + print <<EOF + <h4><span>Side</span>menu</h4> + <ul class="links"> +EOF +; + foreach my $item (sort keys %$submenus) { + my $hash = $submenus->{$item}; + if (! $hash->{'enabled'}) { + next; + } + my $link = getlink($hash); + if ($link eq '') { + next; + } + if (! is_menu_visible($link)) { + next; + } + if ($hash->{'selected'}) { + print '<li class="selected">'; + } else { + print '<li>'; + } + + print "<a href="$link">$hash->{'caption'}</a></li>"; + } + + print <<EOF + </ul> +EOF +; +} + + +sub showsubsubsection($) { + my $root = shift; + if (!$root) { + return; + } + my $selected = getselected($root); + if (! $selected) { + return + } + if (! $selected->{'subMenu'}) { + return + } + + showsubsection($selected->{'subMenu'}, 'menu-subtop'); +} + +sub openpage { + my $title = shift; + my $boh = shift; + my $extrahead = shift; + + @URI=split ('?', $ENV{'REQUEST_URI'} ); + &General::readhash("${swroot}/main/settings", %settings); + &genmenu(); + + my $h2 = gettitle($menu); + + $title = "IPFire - $title"; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; + } + + print <<END +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html xmlns='http://www.w3.org/1999/xhtml'> +<head> + <title>$title</title> + $extrahead + <link rel="shortcut icon" href="/favicon.ico" /> + <link rel="stylesheet" type="text/css" href="/themes/ipfire-legacy/include/style.css" /> + <script language="javascript" type="text/javascript"> + + function swapVisibility(id) { + el = document.getElementById(id); + if(el.style.display != 'block') { + el.style.display = 'block' + } + else { + el.style.display = 'none' + } + } + </script> +END +; +if ($settings{'SPEED'} ne 'off') { +print <<END + <script type="text/javascript" src="/include/jquery.js"></script> + <script type="text/javascript"> + var t_current; + var t_last; + var rxb_current; + var rxb_last; + var txb_current; + var txb_last; + function refreshInetInfo() { + $.ajax({ + url: '/cgi-bin/speed.cgi', + success: function(xml){ + t_current = new Date(); + var t_diff = t_current - t_last; + t_last = t_current; + + rxb_current = $("rxb",xml).text(); + var rxb_diff = rxb_current - rxb_last; + rxb_last = rxb_current; + + var rx_kbs = rxb_diff/t_diff; + rx_kbs = Math.round(rx_kbs*10)/10; + + txb_current = $("txb",xml).text(); + var txb_diff = txb_current - txb_last; + txb_last = txb_current; + + var tx_kbs = txb_diff/t_diff; + tx_kbs = Math.round(tx_kbs*10)/10; + + $("#rx_kbs").text(rx_kbs + ' kb/s'); + $("#tx_kbs").text(tx_kbs + ' kb/s'); + } + }); + window.setTimeout("refreshInetInfo()", 3000); + } + $(document).ready(function(){ + refreshInetInfo(); + }); + </script> + </head> + <body> +END +; +} +else { +print "</head><body>";} +print <<END +<!-- IPFIRE HEADER --> + +<div id="header"> + + <div id="header_inner" class="fixed"> + + <div id="logo"> +END +; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + print "<h1><span>$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}</span></h1><br />"; + } else { + print "<h1><span>IPFire</span></h1><br />"; + } + print <<END + <h2>$h2</h2> + </div> + +END +; + &showmenu(); + +print <<END + </div> +</div> + +<div id="main"> + <div id="main_inner" class="fixed"> + <div id="primaryContent_2columns"> + <div id="columnA_2columns"> +END +; +} + +sub openpagewithoutmenu { + my $title = shift; + my $boh = shift; + my $extrahead = shift; + + @URI=split ('?', $ENV{'REQUEST_URI'} ); + &General::readhash("${swroot}/main/settings", %settings); + &genmenu(); + + my $h2 = gettitle($menu); + + $title = "IPFire - $title"; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; + } + + print <<END +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html xmlns='http://www.w3.org/1999/xhtml'> +<head> + <title>$title</title> + $extrahead +END +; + if ($settings{'FX'} ne 'off') { + print <<END + <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" /> + <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" /> +END +; + } + print <<END + <link rel="shortcut icon" href="/favicon.ico" /> + <link rel="stylesheet" type="text/css" href="/include/style.css" /> + <script language="javascript" type="text/javascript"> + + function swapVisibility(id) { + el = document.getElementById(id); + if(el.style.display != 'block') { + el.style.display = 'block' + } + else { + el.style.display = 'none' + } + } + </script> + + </head> + <body> +<!-- IPFIRE HEADER --> + +<div id="header"> + + <div id="header_inner" class="fixed"> + + <div id="logo"> + <h1><span>IPFire</span></h1> + <h2>$h2</h2> + </div> + </div> +</div> + +<div id="main"> + <div id="main_inner" class="fixed"> + <div id="primaryContent_2columns"> + <div id="columnA_2columns"> +END +; +} + +sub closepage () { + my $status = &connectionstatus(); + my $uptime = `/usr/bin/uptime|cut -d " " -f 4-`; + $uptime =~ s/year(s|)/$Lang::tr{'year'}/; + $uptime =~ s/month(s|)/$Lang::tr{'month'}/; + $uptime =~ s/day(s|)/$Lang::tr{'day'}/; + $uptime =~ s/user(s|)/$Lang::tr{'user'}/; + $uptime =~ s/load average/$Lang::tr{'uptime load average'}/; + + print <<END + </div> + </div> + + <div id="secondaryContent_2columns"> + + <div id="columnC_2columns"> +END +; + &showsubsection($menu); + &showsubsubsection($menu); + + print <<END + </div> + </div> + <br class="clear" /> + <div id="footer" class="fixed"> + <b>Status:</b> $status <b>Uptime:</b> $uptime +END +; +if ($settings{'SPEED'} ne 'off') { +print <<END + <br /> + <b>$Lang::tr{'bandwidth usage'}:</b> + $Lang::tr{'incoming'}: <span id="rx_kbs"></span> $Lang::tr{'outgoing'}: <span id="tx_kbs"></span> + +END +; +} +print <<END + </div> + </div> +</div> +</body> +</html> +END +; +} + +sub openbigbox +{ +} + +sub closebigbox +{ +} + +sub openbox +{ + $width = $_[0]; + $align = $_[1]; + $caption = $_[2]; + + print <<END +<!-- openbox --> + <div class="post" align="$align"> +END +; + + if ($caption) { print "<h3>$caption</h3>\n"; } else { print " "; } +} + +sub closebox +{ + print <<END + </div> + <br class="clear" /> + <!-- closebox --> +END +; +} + +1; diff --git a/html/html/themes/ipfire-legacy/include/style.css b/html/html/themes/ipfire-legacy/include/style.css new file mode 100644 index 0000000..d2c458e --- /dev/null +++ b/html/html/themes/ipfire-legacy/include/style.css @@ -0,0 +1,441 @@ +/* + + Nonzero1.0 by nodethirtythree design + http://www.nodethirtythree.com + missing in a maze + +*/ + +/* This controls the width of the fluid width layouts */ + +div.fluid +{ +width: 90% !important; +} + +/* This controls the width of the fixed width layouts */ + +div.fixed +{ +width: 950px !important; +} + +/* Basic Stuff */ + +* +{ +margin: 0em; +padding: 0em; +} + +body +{ +background-color: #fff; +color: #585858; +font-size: 9pt; +font-family: "trebuchet ms", helvetica, sans-serif; +} + +h1,h2,h3,h4,h5,h6 +{ +font-weight: normal; +letter-spacing: -1px; +text-transform: lowercase; +text-align: left; +} + +h3,h4,h5,h6 +{ +color: #66000F; +} + +h1 span +{ +font-weight: bold; +} + +h3 span +{ +font-weight: bold; +} + +h4 span +{ +font-weight: bold; +} + +br.clear +{ +clear: both; +} + +img +{ +padding: 3px; +#border: solid 1px #e1e1e1; +} + +img.floatTL +{ +float: left; +margin-right: 1.5em; +margin-bottom: 1.5em; +margin-top: 0.5em; +} + +a +{ +text-decoration: underline; +color: #D90000; +} + +a:hover +{ +text-decoration: none; +} + +ul.links +{ +list-style: none; +} + +ul.links li +{ +line-height: 2em; +} + +ul.links li.first +{ +} + +p +{ +line-height: 1.8em; +} + +/* Header */ + +#header +{ +width:100%; +height:122px; +background: #440000 url('../images/n1.gif') repeat-x; +} + +#header_inner +{ +position: relative; +width: 950px; +height:122px; +margin: 0 auto; +} + +/* Logo */ + +#logo +{ +position: absolute; +bottom: 0.6em; +} + +#logo h1 +{ +display: inline; +color: #fff; +font-size: 2.6em; +} + +#logo h2 +{ +display: inline; +padding-left: 0.5em; +color: #E5CCD0; +font-size: 1.0em; +} + +/* Menu */ + +#menu +{ +position: absolute; +right: 0em; +bottom: 0em; +} + +#menu ul +{ +list-style: none; +} + +#menu li +{ +float: left; +} + +#menu li a +{ +margin-left: 0.5em; +display: block; +padding: 1.1em 1.4em 1.0em 1.4em; +background: #fff url('../images/n4.gif') repeat-x; +border: solid 1px #fff; +color: #616161; +font-weight: bold; +font-size: 1.0em; +text-transform: lowercase; +text-decoration: none; +} + +#menu li a.active +{ +background: #CA2F2F url('../images/n3.gif') repeat-x; +color: #fff; +border: solid 1px #A94B4B; +} + +/* Main */ + +#main +{ +background: #fff url('../images/n2.gif') 0px 1px repeat-x; +} + +#main_inner p +{ +text-align: justify; +margin-bottom: 2.0em; +} + +#main_inner ul +{ +margin-bottom: 2.0em; +} + +#main_inner +{ +position: relative; +width: 950px; +margin: 0 auto; +padding-top: 3.5em; +} + +#main_inner h3,h4 +{ +border-bottom: dotted 1px #E1E1E1; +position: relative; +} + +#main_inner h3 +{ +font-size: 2.1em; +padding-bottom: 0.1em; +margin-bottom: 0.8em; +} + +#main_inner h4 +{ +font-size: 1.2em; +padding-bottom: 0.175em; +margin-bottom: 1.4em; +margin-top: 0.95em; +} + +#main_inner .post +{ +position: relative; +} + +#main_inner .post h3 +{ +position: relative; +font-size: 1.7em; +padding-bottom: 0.4em; +} + +#main_inner .post ul.post_info +{ +list-style: none; +position: absolute; +top: 3em; +font-size: 0.8em; +} + +#main_inner .post ul.post_info li +{ +background-position: 0em 0.2em; +background-repeat: no-repeat; +display: inline; +padding-left: 18px; +} + +#main_inner .post ul.post_info li.date +{ +background-image: url('../images/n5.gif'); +} + +#main_inner .post ul.post_info li.comments +{ +background-image: url('../images/n6.gif'); +margin-left: 1.1em; +} + +/* Footer */ + +#footer +{ +width: 950px; +margin: 0 auto; +text-align: center; +clear: both; +border-top: dotted 1px #E1E1E1; +margin-top: 1.0em; +margin-bottom: 1.0em; +padding-top: 1.0em; +text-transform: lowercase; +} + +/* Search */ + +input +{ +margin: 0.2em; +} + +input.button +{ +background: #CA2F2F url('../images/n3.gif') repeat-x; +color: #fff; +border: solid 1px #A94B4B; +font-weight: bold; +text-transform: lowercase; +font-size: 0.8em; +height: 2.0em; +} + +input.text +{ +border: solid 1px #F1F1F1; +font-size: 1.0em; +padding: 0.25em 0.25em 0.25em 0.25em; +} + +#search +{ +position: relative; +width: 100%; +margin-bottom: 2.0em; +} + +#search input.text +{ +position: absolute; +top: 0em; +left: 0em; +width: 9.5em; +} + +#search input.button +{ +position: absolute; +top: 0em; +right: 0em; +min-width: 2.0em; +max-width: 2.5em; +} + +/* LAYOUT - 3 COLUMNS */ + + /* Primary content */ + + #primaryContent_3columns + { + position: relative; + margin-right: 34em; + } + + #columnA_3columns + { + position: relative; + float: left; + width: 100%; + margin-right: -34em; + padding-right: 2em; + } + + /* Secondary Content */ + + #secondaryContent_3columns + { + float: right; + } + + #columnB_3columns + { + width: 13.0em; + float: left; + padding: 0em 2em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + + #columnC_3columns + { + width: 13.0em; + float: left; + padding: 0em 0em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + +/* LAYOUT - 2 COLUMNS */ + + /* Primary content */ + + #primaryContent_2columns + { + position: relative; + margin-right: 17em; + } + + #columnA_2columns + { + position: relative; + float: left; + width: 100%; + margin-right: -17em; + padding-right: 2em; + } + + /* Secondary Content */ + + #secondaryContent_2columns + { + float: right; + } + + #columnC_2columns + { + width: 13.0em; + float: left; + padding: 0em 0em 0.5em 2em; + border-left: dotted 1px #E1E1E1; + } + +/* LAYOUT - COLUMNLESS */ + + /* Primary content */ + + #primaryContent_columnless + { + position: relative; + } + + #columnA_columnless + { + position: relative; + width: 100%; + } + +/* FOOTER COLORIZE BANDWIDTH */ + +#rx_kbs { color: green; } + +#tx_kbs { color: red; } diff --git a/html/html/themes/ipfire/images/n1.gif b/html/html/themes/ipfire/images/n1.gif deleted file mode 100644 index 6eb5161..0000000 Binary files a/html/html/themes/ipfire/images/n1.gif and /dev/null differ diff --git a/html/html/themes/ipfire/images/n4.gif b/html/html/themes/ipfire/images/n4.gif deleted file mode 100644 index 8698525..0000000 Binary files a/html/html/themes/ipfire/images/n4.gif and /dev/null differ diff --git a/html/html/themes/ipfire/images/spacer.gif b/html/html/themes/ipfire/images/spacer.gif deleted file mode 100644 index 5bfd67a..0000000 Binary files a/html/html/themes/ipfire/images/spacer.gif and /dev/null differ diff --git a/html/html/themes/ipfire/images/tux2.png b/html/html/themes/ipfire/images/tux2.png new file mode 100644 index 0000000..cd84ad5 Binary files /dev/null and b/html/html/themes/ipfire/images/tux2.png differ diff --git a/html/html/themes/ipfire/include/css/style-rounded.css b/html/html/themes/ipfire/include/css/style-rounded.css new file mode 100644 index 0000000..886d61f --- /dev/null +++ b/html/html/themes/ipfire/include/css/style-rounded.css @@ -0,0 +1,82 @@ + +.bigbox { + margin-top: 1em; + border-radius: 8px 8px 8px 8px; + -webkit-border-radius: 8px 8px 8px 8px; +} + +#main_inner .post { + border-radius: 8px 8px 8px 8px; + -webkit-border-radius: 8px 8px 8px 8px; +} + +#cssmenu a { + border-radius: 8px 8px 8px 8px; + -webkit-border-radius: 8px 8px 8px 8px; +} + +#cssmenu .has-sub ul li a { + border-radius: 7px 7px 7px 7px; +} + +#cssmenu .has-sub ul li:hover a { + box-shadow: inset 0 5px 1px rgba(0, 0, 0, 0.15); + -webkit-box-shadow: inset 0 5px 1px rgba(0, 0, 0, 0.15); +} + +/* Table */ +/* when using class='bordered' after tabletag */ + +.tbl th:first-child { + -moz-border-radius: 6px 0 0 0; + -webkit-border-radius: 6px 0 0 0; + border-radius: 6px 0 0 0; +} + +.tbl th:last-child { + -moz-border-radius: 0 6px 0 0; + -webkit-border-radius: 0 6px 0 0; + border-radius: 0 6px 0 0; +} + +.tbl th:only-child { + -moz-border-radius: 6px 6px 0 0; + -webkit-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.tbl tr:first-child td:first-child { + -moz-border-radius: 6px 0 0 0; + -webkit-border-radius: 6px 0 0 0; + border-radius: 6px 0 0 0; +} + +.tbl tr:first-child td:last-child { + -moz-border-radius: 0 6px 0 0; + -webkit-border-radius: 0 6px 0 0; + border-radius: 0 6px 0 0; +} + +.tbl tr:first-child td:only-child { + -moz-border-radius: 6px 6px 0 0; + -webkit-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.tbl tr:last-child td:first-child { + -moz-border-radius: 0 0 0 6px; + -webkit-border-radius: 0 0 0 6px; + border-radius: 0 0 0 6px; +} + +.tbl tr:last-child td:last-child { + -moz-border-radius: 0 0 6px 0; + -webkit-border-radius: 0 0 6px 0; + border-radius: 0 0 6px 0; +} + +.tbl tr:last-child td:only-child { + -moz-border-radius: 0 0 6px 6px; + -webkit-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css new file mode 100644 index 0000000..9f3e25b --- /dev/null +++ b/html/html/themes/ipfire/include/css/style.css @@ -0,0 +1,321 @@ + +/* This controls the width of the fixed width layouts */ + +.fixed { + width: 960px !important; +} + +/* Basic Stuff */ + +* { + margin: 0; + padding: 0; +} + +html { + height: 100%; +} + +body { + /* SVG as background image (IE9/Chrome/Safari/Opera) */ + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc2ODQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTAwJSIgeTE9IjEwMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMDAwMDAwIiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjODgwNDAwIiBvZmZzZXQ9IjU3JSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2c2ODQpIiAvPgo8L3N2Zz4=); + + background-image: linear-gradient( + bottom, + #000000 0%, + #880400 57% + ); + background-image: -o-linear-gradient( + bottom, + #000000 0%, + #880400 57% + ); + background-image: -moz-linear-gradient( + bottom, + #000000 0%, + #880400 57% + ); + background-image: -webkit-linear-gradient( + bottom, + #000000 0%, + #880400 57 + ); + background-image: -ms-linear-gradient( + bottom, + #000000 0%, + #880400 57% + ); + background-image: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0, #000000), + color-stop(0.57, #880400) + ); + background-attachment: fixed; + + font-size: 9pt; + font-family: "DejaVu Sans", Helvetica, sans-serif; +} + + +h1, h2, h3, h4, h5, h6 { + font-size: 20px; + font-weight: normal; + letter-spacing: -1px; + text-align: left; +} + +h1 { + color: #66000F; +} + +br.clear { + clear: both; +} + +img { + padding: 3px; +} + +a { + text-decoration: underline; + color: #d90000; +} + +a:hover { + text-decoration: none; +} + +p { + line-height: 1.8em; +} + +hr { + margin: 0.3em 0 0.3em 0; +} + +iframe { + border: 0; +} + +.pull-right { + float: right !important; +} + +/* Header */ + +#header { + height: 70px; + margin: 0 auto; +} + +/* Logo */ + +#logo { + height: 65px; + margin-top: 1em; + background: url('../../images/tux2.png') no-repeat; +} + +#logo h1 { + color: #fff; + font-size: 3.6em; + font-weight: bold; + padding-top: 0.2em; + padding-left: 1.7em; +} + +/* Main */ + +.bigbox { + margin: 0 auto; + margin-top: 0.5em; + padding: 1.5em 2em 0 2em; + background: #fff url('../../images/n2.gif') 0px 0px repeat-x; + border: 1px solid black; + + border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; +} + +#main_inner { + padding-bottom: 1.5em; +} + +#main_inner p { + text-align: justify; + margin-bottom: 2em; +} + +#main_inner ul { + margin-bottom: 2em; +} + +#main_inner h1 { + font-size: 1.8em; + margin-bottom: 1em; +} + +#main_inner .post { + border: 1px solid silver; + padding: 1em 2em 1em 2em; + margin-bottom: 1em; + clear: both; +} + +#main_inner .post h2 { + border-bottom: dotted 1px #e1e1e1; + font-size: 1.6em; + margin-bottom: 1em; +} + +#footer { + height: 2.5em; + margin-bottom: 1em; +} + +#footer a { + color: inherit; + text-decoration: none; +} + +#footer a:hover { + text-decoration: underline; +} + +input { + margin: 0.2em; +} + +input.button { + background: #ca2f2f url('../../images/n3.gif') repeat-x; + color: #fff; + border: solid 1px #a94b4b; + font-weight: bold; + font-size: 0.8em; + height: 2.0em; +} + +input.text { + border: solid 1px #f1f1f1; + padding: 0.25em; +} + +#traffic { + float: right; + min-width: 20em; + line-height: 32px; +} + +/* Menu */ +#cssmenu { + margin: 0 auto; + margin-top: 0; + padding-top: 0; + font-weight: 600; + height: 32px; + border: 1px solid black; +} + +#cssmenu a { + color: #111111; + display: inline-block; + line-height: 32px; + padding: 0 1em; + text-decoration: none; +} + +#cssmenu ul { + list-style: none; +} + +#cssmenu > ul > li { + display: inline-block; +} + +#cssmenu > ul > li.active a, #cssmenu > ul > li:hover > a { + color: white; + background: #aaaaaa; +} + +#cssmenu .has-sub:hover > ul { + display: block; +} + +#cssmenu .has-sub ul { + display: none; + position: absolute; +} + +#cssmenu .has-sub ul li a { + min-width: 12em; + background: #ffffff; + color: grey; + display: block; + line-height: 40%; + padding: 12px 5px; + border: 1px solid black; +} + +#cssmenu .has-sub ul li:hover a { + background: #dddddd; +} + +/* This decorates all tables with class="tbl" */ + +table { + *border-collapse: collapse; /* IE7 and lower */ + border-spacing: 0; +} + +.tbl th { + color: #000000; + border-top: 1px solid lightgrey; + border-bottom: 1px solid lightgrey; + background: #cccccc; +} + +.tbl th:first-child { + border-left: 1px solid lightgrey; + border-top: 1px solid lightgrey; + border-bottom: 1px solid lightgrey; +} + +.tbl th:last-child { + border-right: 1px solid lightgrey; + border-top: 1px solid lightgrey; + border-bottom: 1px solid lightgrey; +} + +.tbl th:only-child { + border: 1px solid lightgrey; +} + +.tbl tr td:first-child { + border-left: 1px solid lightgrey; +} + +.tbl tr td:last-child { + border-right: 1px solid lightgrey; +} + +.tbl tr:first-child td { + border-top: 1px solid lightgrey; +} + +.tbl tr:last-child td:only-child { + border-bottom: 1px solid lightgrey; +} + +.tbl tr:last-child td:first-child { + border-bottom: 1px solid lightgrey; +} + +.tbl tr:last-child td:last-child { + border-bottom: 1px solid lightgrey; +} + +.tbl tr:last-child td { + border-bottom: 1px solid lightgrey; +} diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index c557e8b..44ed9b7 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -18,397 +18,232 @@ # along with this program. If not, see http://www.gnu.org/licenses/. # # # ############################################################################### +# # +# Theme file for IPfire (based on ipfire theme) # +# Author kay-michael köhler kmk michael@koehler.tk # +# # +# Version 1.0 March, 6th 2013 # +############################################################################### +# # +# Modyfied theme by a.marx@ipfire.org January 2014 # +# # +# Cleanup code, deleted unused code and rewrote the rest to get a new working # +# IPFire default theme. # +###############################################################################
-sub showmenu() { - print <<EOF - <div id="menu"> - <ul> -EOF -; - foreach my $k1 ( sort keys %$menu ) { - if (! $menu->{$k1}{'enabled'}) { - next; - } - my $link = getlink($menu->{$k1}); - if ($link eq '') { - next; - } - if (! is_menu_visible($link)) { - next; - } - if ($menu->{$k1}->{'selected'}) { - print "<li><a href="$link" class="active">$menu->{$k1}{'caption'}</a></li>"; - } else { - print "<li><a href="$link">$menu->{$k1}{'caption'}</a></li>"; - } - } - print <<EOF - </ul> - </div> -EOF -; -} +require "${General::swroot}/lang.pl";
-sub getselected($) { - my $root = shift; - if (!$root) { - return 0; - } - - foreach my $item (%$root) { - if ($root->{$item}{'selected'}) { - return $root->{$item}; - } - } +############################################################################### +# +# print menu html elements for submenu entries +# @param submenu entries +sub showsubmenu() { + my $submenus = shift; + + print "<ul>"; + foreach my $item (sort keys %$submenus) { + $link = getlink($submenus->{$item}); + next if (!is_menu_visible($link) or $link eq ''); + + my $subsubmenus = $submenus->{$item}->{'subMenu'}; + + if ($subsubmenus) { + print '<li class="has-sub ">'; + } else { + print '<li>'; + } + print '<a href="'.$link.'">'.$submenus->{$item}->{'caption'}.'</a>'; + + &showsubmenu($subsubmenus) if ($subsubmenus); + print '</li>'; + } + print "</ul>" }
-sub showsubsection($$) { - my $root = shift; - - if (! $root) { - return; - } - my $selected = getselected($root); - if (! $selected) { - return; - } - my $submenus = $selected->{'subMenu'}; - if (! $submenus) { - return; - } - - print <<EOF - <h4><span>Side</span>menu</h4> - <ul class="links"> -EOF -; - foreach my $item (sort keys %$submenus) { - my $hash = $submenus->{$item}; - if (! $hash->{'enabled'}) { - next; - } - my $link = getlink($hash); - if ($link eq '') { - next; - } - if (! is_menu_visible($link)) { - next; - } - if ($hash->{'selected'}) { - print '<li class="selected">'; - } else { - print '<li>'; - } - - print "<a href="$link">$hash->{'caption'}</a></li>"; - } - - print <<EOF - </ul> +############################################################################### +# +# print menu html elements +sub showmenu() { + print '<div id="cssmenu" class="bigbox fixed">'; + + if ($settings{'SPEED'} ne 'off') { + print <<EOF; + <div id='traffic'> + <strong>Traffic:</strong> + In <span id='rx_kbs'>--.-- Bit/s</span> + Out <span id='tx_kbs'>--.-- Bit/s</span> + </div> EOF -; -} + }
+ print "<ul>"; + foreach my $k1 ( sort keys %$menu ) { + $link = getlink($menu->{$k1}); + next if (!is_menu_visible($link) or $link eq ''); + print '<li class="has-sub "><a><span>'.$menu->{$k1}->{'caption'}.'</span></a>'; + my $submenus = $menu->{$k1}->{'subMenu'}; + &showsubmenu($submenus) if ($submenus); + print "</li>"; + }
-sub showsubsubsection($) { - my $root = shift; - if (!$root) { - return; - } - my $selected = getselected($root); - if (! $selected) { - return - } - if (! $selected->{'subMenu'}) { - return - } - - showsubsection($selected->{'subMenu'}, 'menu-subtop'); + print "</ul></div>"; }
+############################################################################### +# +# print page opening html layout +# @param page title +# @param boh +# @param extra html code for html head section +# @param suppress menu option, can be numeric 1 or nothing. +# menu will be suppressed if param is 1 sub openpage { - my $title = shift; - my $boh = shift; - my $extrahead = shift; - - @URI=split ('?', $ENV{'REQUEST_URI'} ); - &General::readhash("${swroot}/main/settings", %settings); - &genmenu(); - - my $h2 = gettitle($menu); - - $title = "IPFire - $title"; - if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { - $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; - } - - print <<END -<?xml version='1.0' encoding='UTF-8'?> -<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> -<html xmlns='http://www.w3.org/1999/xhtml'> -<head> - <title>$title</title> - $extrahead -END -; - if ($settings{'FX'} ne 'off') { - print <<END - <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" /> - <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" /> -END -; - } - print <<END - <link rel="shortcut icon" href="/favicon.ico" /> - <link rel="stylesheet" type="text/css" href="/themes/ipfire/include/style.css" /> - <script language="javascript" type="text/javascript"> - - function swapVisibility(id) { - el = document.getElementById(id); - if(el.style.display != 'block') { - el.style.display = 'block' - } - else { - el.style.display = 'none' - } - } - </script> + my $title = shift; + my $boh = shift; + my $extrahead = shift; + my $suppressMenu = shift; + my @tmp = split(/./, basename($0)); + my $scriptName = @tmp[0]; + + @URI=split ('?', $ENV{'REQUEST_URI'} ); + &General::readhash("${swroot}/main/settings", %settings); + &genmenu(); + + my $headline = "IPFire"; + if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { + $headline = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}"; + } + + my @stylesheets = ("style.css"); + if ($THEME_NAME eq "ipfire-rounded") { + push(@stylesheets, "style-rounded.css"); + } + +print <<END; +<!DOCTYPE html> +<html> + <head> + <title>$headline - $title</title> + $extrahead + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> + <link rel="shortcut icon" href="/favicon.ico" /> + <script type="text/javascript" src="/include/jquery.js"></script> END -; + + foreach my $stylesheet (@stylesheets) { + print "<link href="/themes/ipfire/include/css/$stylesheet" rel="stylesheet" type="text/css" />\n"; + } + if ($settings{'SPEED'} ne 'off') { print <<END - <script type="text/javascript" src="/include/jquery-1.9.1.min.js"></script> - <script type="text/javascript"> - var t_current; - var t_last; - var rxb_current; - var rxb_last; - var txb_current; - var txb_last; - function refreshInetInfo() { - $.ajax({ - url: '/cgi-bin/speed.cgi', - success: function(xml){ - t_current = new Date(); - var t_diff = t_current - t_last; - t_last = t_current; - - rxb_current = $("rxb",xml).text(); - var rxb_diff = rxb_current - rxb_last; - rxb_last = rxb_current; - - var rx_kbs = rxb_diff/t_diff; - rx_kbs = Math.round(rx_kbs*10)/10; - - txb_current = $("txb",xml).text(); - var txb_diff = txb_current - txb_last; - txb_last = txb_current; - - var tx_kbs = txb_diff/t_diff; - tx_kbs = Math.round(tx_kbs*10)/10; - - $("#rx_kbs").text(rx_kbs + ' kb/s'); - $("#tx_kbs").text(tx_kbs + ' kb/s'); - } - }); - window.setTimeout("refreshInetInfo()", 3000); - } - $(document).ready(function(){ - refreshInetInfo(); - }); - </script> - </head> - <body> + <script type="text/javascript" src="/themes/ipfire/include/js/refreshInetInfo.js"></script> END ; } -else { -print "</head><body>";} -print <<END -<!-- IPFIRE HEADER -->
-<div id="header"> - - <div id="header_inner" class="fixed"> - - <div id="logo"> +print <<END + </head> + <body> + <div id="header" class="fixed"> + <div id="logo"> END ; - if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { - print "<h1><span>$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}</span></h1><br />"; - } else { - print "<h1><span>IPFire</span></h1><br />"; - } - print <<END - <h2>$h2</h2> - </div> + if ($settings{'WINDOWWITHHOSTNAME'} ne 'off') { + print "<h1>$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}</h1>"; + } else { + print "<h1>IPFire</h1>"; + }
+print <<END + </div> + </div> END ; - &showmenu();
-print <<END - </div> -</div> +&showmenu() if ($suppressMenu != 1);
-<div id="main"> - <div id="main_inner" class="fixed"> - <div id="primaryContent_2columns"> - <div id="columnA_2columns"> +print <<END + <div class="bigbox fixed"> + <div id="main_inner" class="fixed"> + <h1>$title</h1> END ; }
+############################################################################### +# +# print page opening html layout without menu +# @param page title +# @param boh +# @param extra html code for html head section sub openpagewithoutmenu { - my $title = shift; - my $boh = shift; - my $extrahead = shift; - - @URI=split ('?', $ENV{'REQUEST_URI'} ); - &General::readhash("${swroot}/main/settings", %settings); - &genmenu(); - - my $h2 = gettitle($menu); - - $title = "IPFire - $title"; - if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') { - $title = "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; - } - - print <<END -<?xml version='1.0' encoding='UTF-8'?> -<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> -<html xmlns='http://www.w3.org/1999/xhtml'> -<head> - <title>$title</title> - $extrahead -END -; - if ($settings{'FX'} ne 'off') { - print <<END - <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" /> - <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" /> -END -; - } - print <<END - <link rel="shortcut icon" href="/favicon.ico" /> - <link rel="stylesheet" type="text/css" href="/include/style.css" /> - <script language="javascript" type="text/javascript"> - - function swapVisibility(id) { - el = document.getElementById(id); - if(el.style.display != 'block') { - el.style.display = 'block' - } - else { - el.style.display = 'none' - } - } - </script> - - </head> - <body> -<!-- IPFIRE HEADER --> - -<div id="header"> - - <div id="header_inner" class="fixed"> - - <div id="logo"> - <h1><span>IPFire</span></h1> - <h2>$h2</h2> - </div> - </div> -</div> - -<div id="main"> - <div id="main_inner" class="fixed"> - <div id="primaryContent_2columns"> - <div id="columnA_2columns"> -END -; + openpage(shift,shift,shift,1); + return; }
-sub closepage () { - my $status = &connectionstatus(); - my $uptime = `/usr/bin/uptime|cut -d " " -f 4-`; - $uptime =~ s/year(s|)/$Lang::tr{'year'}/; - $uptime =~ s/month(s|)/$Lang::tr{'month'}/; - $uptime =~ s/day(s|)/$Lang::tr{'day'}/; - $uptime =~ s/user(s|)/$Lang::tr{'user'}/; - $uptime =~ s/load average/$Lang::tr{'uptime load average'}/; - - print <<END - </div> - </div> - - <div id="secondaryContent_2columns"> - - <div id="columnC_2columns"> -END -; - &showsubsection($menu); - &showsubsubsection($menu); - - print <<END - </div> - </div> - <br class="clear" /> - <div id="footer" class="fixed"> - <b>Status:</b> $status <b>Uptime:</b> $uptime -END -; -if ($settings{'SPEED'} ne 'off') { -print <<END - <br /> - <b>$Lang::tr{'bandwidth usage'}:</b> - $Lang::tr{'incoming'}: <span id="rx_kbs"></span> $Lang::tr{'outgoing'}: <span id="tx_kbs"></span> +############################################################################### +# +# print page closing html layout
-END -; -} -print <<END - </div> - </div> -</div> +sub closepage () { + open(FILE, "</etc/system-release"); + my $system_release = <FILE>; + $system_release =~ s/core/Core Update/; + close(FILE); + +print <<END; + </div> + </div> + + <div id="footer" class='bigbox fixed'> + <span class="pull-right"> + <a href="http://www.ipfire.org/" target="_blank"><strong>IPFire.org</strong></a> • + <a href="http://www.ipfire.org/donate" target="_blank">$Lang::tr{'support donation'}</a> + </span> + + <strong>$system_release</strong> + </div> </body> </html> END ; }
-sub openbigbox -{ +############################################################################### +# +# print big box opening html layout +sub openbigbox { }
-sub closebigbox -{ +############################################################################### +# +# print big box closing html layout +sub closebigbox { }
-sub openbox -{ - $width = $_[0]; - $align = $_[1]; - $caption = $_[2]; - - print <<END -<!-- openbox --> - <div class="post" align="$align"> -END -; - - if ($caption) { print "<h3>$caption</h3>\n"; } else { print " "; } +############################################################################### +# +# print box opening html layout +# @param page width +# @param page align +# @param page caption +sub openbox { + $width = $_[0]; + $align = $_[1]; + $caption = $_[2]; + + print "<div class='post' align='$align'>\n"; + + if ($caption) { + print "<h2>$caption</h2>\n"; + } }
-sub closebox -{ - print <<END - </div> - <br class="clear" /> - <!-- closebox --> -END -; +############################################################################### +# +# print box closing html layout +sub closebox { + print "</div>"; }
1; diff --git a/html/html/themes/ipfire/include/js/refreshInetInfo.js b/html/html/themes/ipfire/include/js/refreshInetInfo.js new file mode 100644 index 0000000..259f86e --- /dev/null +++ b/html/html/themes/ipfire/include/js/refreshInetInfo.js @@ -0,0 +1,69 @@ +/* refreshInetInfo.js +* functions for retrieving status information via jQuery +* Modified: March 6th, 2013 by michael@koehler.tk +* Authors: IPFire Team (info@ipfire.org) + Kay-Michael Köhler (michael@koehler.tk) +* Visit http://www.ipfire.org/ +*/ + +var t_current; +var t_last = 0; +var rxb_current; +var rxb_last = 0; +var txb_current; +var txb_last = 0; + +$(document).ready(function(){ + refreshInetInfo(); +}); + +function refreshInetInfo() { + $.ajax({ + url: '/cgi-bin/speed.cgi', + success: function(xml) { + t_current = new Date(); + var t_diff = t_current - t_last; + + rxb_current = $("rxb", xml).text(); + var rxb_diff = rxb_current - rxb_last; + rxb_last = rxb_current; + + var rx_bits = rxb_diff * 8192 / t_diff; + var rx_fmt = format_bytes(rx_bits); + + txb_current = $("txb", xml).text(); + var txb_diff = txb_current - txb_last; + txb_last = txb_current; + + var tx_bits = txb_diff * 8192 / t_diff; + var tx_fmt = format_bytes(tx_bits); + + if (t_last != 0) { + $("#rx_kbs").text(rx_fmt); + $("#tx_kbs").text(tx_fmt); + } + + t_last = t_current; + } + }); + + window.setTimeout("refreshInetInfo()", 2000); +} + +function format_bytes(bytes) { + var units = ["Bit/s", "kBit/s", "MBit/s", "GBit/s", "TBit/s"]; + + var unit = units[0]; + for (var i = 1; i < units.length; i++) { + if (bytes < 1024) + break; + + unit = units[i]; + bytes /= 1024; + } + + // Round the output. + bytes = bytes.toFixed(2); + + return bytes + " " + unit; +} diff --git a/html/html/themes/ipfire/include/style.css b/html/html/themes/ipfire/include/style.css deleted file mode 100644 index 2461a14..0000000 --- a/html/html/themes/ipfire/include/style.css +++ /dev/null @@ -1,441 +0,0 @@ -/* - - Nonzero1.0 by nodethirtythree design - http://www.nodethirtythree.com - missing in a maze - -*/ - -/* This controls the width of the fluid width layouts */ - -div.fluid -{ -width: 90% !important; -} - -/* This controls the width of the fixed width layouts */ - -div.fixed -{ -width: 950px !important; -} - -/* Basic Stuff */ - -* -{ -margin: 0em; -padding: 0em; -} - -body -{ -background-color: #fff; -color: #585858; -font-size: 9pt; -font-family: "trebuchet ms", helvetica, sans-serif; -} - -h1,h2,h3,h4,h5,h6 -{ -font-weight: normal; -letter-spacing: -1px; -text-transform: lowercase; -text-align: left; -} - -h3,h4,h5,h6 -{ -color: #66000F; -} - -h1 span -{ -font-weight: bold; -} - -h3 span -{ -font-weight: bold; -} - -h4 span -{ -font-weight: bold; -} - -br.clear -{ -clear: both; -} - -img -{ -padding: 3px; -#border: solid 1px #e1e1e1; -} - -img.floatTL -{ -float: left; -margin-right: 1.5em; -margin-bottom: 1.5em; -margin-top: 0.5em; -} - -a -{ -text-decoration: underline; -color: #D90000; -} - -a:hover -{ -text-decoration: none; -} - -ul.links -{ -list-style: none; -} - -ul.links li -{ -line-height: 2em; -} - -ul.links li.first -{ -} - -p -{ -line-height: 1.8em; -} - -/* Header */ - -#header -{ -width:100%; -height:122px; -background: #440000 url('/themes/ipfire/images/n1.gif') repeat-x; -} - -#header_inner -{ -position: relative; -width: 950px; -height:122px; -margin: 0 auto; -} - -/* Logo */ - -#logo -{ -position: absolute; -bottom: 0.6em; -} - -#logo h1 -{ -display: inline; -color: #fff; -font-size: 2.6em; -} - -#logo h2 -{ -display: inline; -padding-left: 0.5em; -color: #E5CCD0; -font-size: 1.0em; -} - -/* Menu */ - -#menu -{ -position: absolute; -right: 0em; -bottom: 0em; -} - -#menu ul -{ -list-style: none; -} - -#menu li -{ -float: left; -} - -#menu li a -{ -margin-left: 0.5em; -display: block; -padding: 1.1em 1.4em 1.0em 1.4em; -background: #fff url('/themes/ipfire/images/n4.gif') repeat-x; -border: solid 1px #fff; -color: #616161; -font-weight: bold; -font-size: 1.0em; -text-transform: lowercase; -text-decoration: none; -} - -#menu li a.active -{ -background: #CA2F2F url('/themes/ipfire/images/n3.gif') repeat-x; -color: #fff; -border: solid 1px #A94B4B; -} - -/* Main */ - -#main -{ -background: #fff url('/themes/ipfire/images/n2.gif') 0px 1px repeat-x; -} - -#main_inner p -{ -text-align: justify; -margin-bottom: 2.0em; -} - -#main_inner ul -{ -margin-bottom: 2.0em; -} - -#main_inner -{ -position: relative; -width: 950px; -margin: 0 auto; -padding-top: 3.5em; -} - -#main_inner h3,h4 -{ -border-bottom: dotted 1px #E1E1E1; -position: relative; -} - -#main_inner h3 -{ -font-size: 2.1em; -padding-bottom: 0.1em; -margin-bottom: 0.8em; -} - -#main_inner h4 -{ -font-size: 1.2em; -padding-bottom: 0.175em; -margin-bottom: 1.4em; -margin-top: 0.95em; -} - -#main_inner .post -{ -position: relative; -} - -#main_inner .post h3 -{ -position: relative; -font-size: 1.7em; -padding-bottom: 0.4em; -} - -#main_inner .post ul.post_info -{ -list-style: none; -position: absolute; -top: 3em; -font-size: 0.8em; -} - -#main_inner .post ul.post_info li -{ -background-position: 0em 0.2em; -background-repeat: no-repeat; -display: inline; -padding-left: 18px; -} - -#main_inner .post ul.post_info li.date -{ -background-image: url('/themes/ipfire/images/n5.gif'); -} - -#main_inner .post ul.post_info li.comments -{ -background-image: url('/themes/ipfire/images/n6.gif'); -margin-left: 1.1em; -} - -/* Footer */ - -#footer -{ -width: 950px; -margin: 0 auto; -text-align: center; -clear: both; -border-top: dotted 1px #E1E1E1; -margin-top: 1.0em; -margin-bottom: 1.0em; -padding-top: 1.0em; -text-transform: lowercase; -} - -/* Search */ - -input -{ -margin: 0.2em; -} - -input.button -{ -background: #CA2F2F url('/themes/ipfire/images/n3.gif') repeat-x; -color: #fff; -border: solid 1px #A94B4B; -font-weight: bold; -text-transform: lowercase; -font-size: 0.8em; -height: 2.0em; -} - -input.text -{ -border: solid 1px #F1F1F1; -font-size: 1.0em; -padding: 0.25em 0.25em 0.25em 0.25em; -} - -#search -{ -position: relative; -width: 100%; -margin-bottom: 2.0em; -} - -#search input.text -{ -position: absolute; -top: 0em; -left: 0em; -width: 9.5em; -} - -#search input.button -{ -position: absolute; -top: 0em; -right: 0em; -min-width: 2.0em; -max-width: 2.5em; -} - -/* LAYOUT - 3 COLUMNS */ - - /* Primary content */ - - #primaryContent_3columns - { - position: relative; - margin-right: 34em; - } - - #columnA_3columns - { - position: relative; - float: left; - width: 100%; - margin-right: -34em; - padding-right: 2em; - } - - /* Secondary Content */ - - #secondaryContent_3columns - { - float: right; - } - - #columnB_3columns - { - width: 13.0em; - float: left; - padding: 0em 2em 0.5em 2em; - border-left: dotted 1px #E1E1E1; - } - - #columnC_3columns - { - width: 13.0em; - float: left; - padding: 0em 0em 0.5em 2em; - border-left: dotted 1px #E1E1E1; - } - -/* LAYOUT - 2 COLUMNS */ - - /* Primary content */ - - #primaryContent_2columns - { - position: relative; - margin-right: 17em; - } - - #columnA_2columns - { - position: relative; - float: left; - width: 100%; - margin-right: -17em; - padding-right: 2em; - } - - /* Secondary Content */ - - #secondaryContent_2columns - { - float: right; - } - - #columnC_2columns - { - width: 13.0em; - float: left; - padding: 0em 0em 0.5em 2em; - border-left: dotted 1px #E1E1E1; - } - -/* LAYOUT - COLUMNLESS */ - - /* Primary content */ - - #primaryContent_columnless - { - position: relative; - } - - #columnA_columnless - { - position: relative; - width: 100%; - } - -/* FOOTER COLORIZE BANDWIDTH */ - -#rx_kbs { color: green; } - -#tx_kbs { color: red; } diff --git a/html/html/themes/maniac/include/functions.pl b/html/html/themes/maniac/include/functions.pl index 62bbf10..47dbcb0 100644 --- a/html/html/themes/maniac/include/functions.pl +++ b/html/html/themes/maniac/include/functions.pl @@ -149,16 +149,6 @@ sub openpage { <head> <title>$title</title> $extrahead -END -; - if ($settings{'FX'} ne 'off') { - print <<END - <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" /> - <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" /> -END -; - } - print <<END <link rel="shortcut icon" href="/favicon.ico" /> <link rel="stylesheet" type="text/css" href="/themes/maniac/include/style.css" /> <script language="javascript" type="text/javascript"> @@ -177,7 +167,7 @@ END ; if ($settings{'SPEED'} ne 'off') { print <<END - <script type="text/javascript" src="/include/jquery-1.9.1.min.js"></script> + <script type="text/javascript" src="/include/jquery.js"></script> <script type="text/javascript"> var t_current; var t_last; diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index d85981f..b4753a6 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -71,14 +71,14 @@ 'action' => 'Aktion', 'activate' => 'aktivieren', 'activate user' => 'Benutzer aktivieren', -'active' => 'aktiv', +'active' => 'Aktiv', 'add' => 'HinzufÃŒgen', -'add a host' => 'Host hinzufÃŒgen:', +'add a host' => 'Host hinzufÃŒgen', 'add a new rule' => 'Neue Regel hinzufÃŒgen:', 'add cron' => 'Cronjob hinzufÃŒgen', 'add device' => 'GerÀt hinzufÃŒgen', 'add network' => 'Netzwerk hinzufÃŒgen', -'add new alias' => 'Neue Alias-Adresse hinzufÃŒgen:', +'add new alias' => 'Neue Alias-Adresse hinzufÃŒgen', 'add new lease' => 'Neue Zuordnung definieren', 'add new ovpn' => 'OpenVPN-Einstellungen', 'add printer' => 'Drucker hinzufÃŒgen', @@ -89,6 +89,7 @@ 'add xtaccess' => 'Externen Zugang hinzugefÃŒgt', 'add-route' => 'Additional push route', 'added from dhcp lease list' => 'hinzugefÃŒgt von der DHCP-Zuordnungsliste', +'addon' => 'Addons', 'admin user password has been changed' => 'Passwort fÃŒr Benutzer admin wurde geÀndert.', 'admin users' => 'Liste der Benutzer mit Super User Rechten', 'administrator user password' => 'Passwort fÃŒr Benutzer "admin":', @@ -187,7 +188,6 @@ 'advproxy banned mac clients' => 'Gesperrte MAC-Adressen (eine pro Zeile)', 'advproxy cache management' => 'Cacheverwaltung', 'advproxy cache replacement policy' => 'Cache Ersetzungsrichtlinie', -'advproxy cache-digest' => 'Cache-Digest-Erstellung aktivieren', 'advproxy chgwebpwd ERROR' => 'F E H L E R :', 'advproxy chgwebpwd SUCCESS' => 'E R F O L G :', 'advproxy chgwebpwd change password' => 'Passwort Àndern', @@ -357,7 +357,7 @@ 'april' => 'April', 'archive not exist' => 'Konfigurationsarchiv existiert nicht', 'are you sure' => 'Sind Sie sicher?', -'arp table entries' => 'EintrÀge der ARP-Tabelle:', +'arp table entries' => 'EintrÀge der ARP-Tabelle', 'artist' => 'KÃŒnstler', 'attemps' => 'Versuche', 'attention' => 'ACHTUNG', @@ -541,8 +541,8 @@ 'connection' => 'Verbindung', 'connection closed' => 'Nicht Verbunden...', 'connection debugging' => 'Verbindungs-Debugging', -'connection status and controlc' => 'Verbindungsstatus und -kontrolle:', -'connection tracking' => 'IPTables-Verbindungsverfolgung', +'connection status and controlc' => 'Verbindungsstatus und -kontrolle', +'connection tracking' => 'iptables-Verbindungsverfolgung', 'connection type' => 'Verbindungstyp', 'connection type is invalid' => 'Verbindungstyp ist ungÃŒltig', 'connections' => 'Verbindungen', @@ -580,13 +580,13 @@ 'crl' => 'Certificate Revocation List', 'cron server' => 'Cron-Server', 'current' => 'Aktuell', -'current aliases' => 'Aktuelle Alias-Adresse:', +'current aliases' => 'Aktuelle Alias-Adresse', 'current class' => 'Aktuelle Klasse', 'current devices' => 'Schnittstellen', 'current dhcp leases on blue' => 'Aktuelle DHCP-Zuordnungen auf Blau', 'current dynamic leases' => 'Aktuelle dynamische Zuordnungen', 'current fixed leases' => 'Aktuelle feste Zuordnungen', -'current hosts' => 'Aktuelle Hosts:', +'current hosts' => 'Aktuelle Hosts', 'current media' => 'Aktuelles Medium', 'current ovpn' => 'Aktive OVPN-Verbindung', 'current playlist' => 'Aktuelle Playlist', @@ -618,6 +618,7 @@ 'december' => 'Dezember', 'deep scan directories' => 'rekursiv scannen', 'def lease time' => 'Standardzeit fÃŒr Zuordnung', +'default ip' => 'Standard IP-Adresse', 'default lease time' => 'Haltezeit-Voreinstellung in min:', 'default networks' => 'Standard Netzwerke', 'default renewal time' => 'Standard-Aktualisierungszeit', @@ -697,6 +698,7 @@ 'dmz pinhole rule added' => 'Regel fÃŒr DMZ-Schlupfloch hinzugefÃŒgt; Starte DMZ-Schlupfloch neu', 'dmz pinhole rule removed' => 'Regel fÃŒr DMZ-Schlupfloch entfernt; Starte DMZ-Schlupfloch neu', 'dmzpinholes for same net not necessary' => 'DMZ-Schlupflöcher werden im gleichen Netz nicht benötigt. WÀhlen Sie ein anderes Quell- oder Ziel-Netz.', +'dnat address' => 'Externe IP-Adresse', 'dns address deleted' => 'Erfolgreich gelöscht! ', 'dns address deleted txt' => 'DNS Server Adressen wurden erfolgreich gelöscht. Ãnderungen werden jedoch erst nach einem Neustart oder einer Wiederverbindung ÃŒbernommen.', 'dns address done' => 'Die DNS-Server Adressen Einstellungen werden ÃŒbernommen.', @@ -717,10 +719,10 @@ 'dns server' => 'DNS Server', 'dns title' => 'Domain Name System', 'dnsforward' => 'DNS-Weiterleitung', -'dnsforward add a new entry' => 'Neuen Eintrag hinzufÃŒgen:', +'dnsforward add a new entry' => 'Neuen Eintrag hinzufÃŒgen', 'dnsforward configuration' => 'Einstellungen fÃŒr DNS Weiterleitung', -'dnsforward edit an entry' => 'Existierenden Eintrag bearbeiten:', -'dnsforward entries' => 'Aktuelle EintrÀge:', +'dnsforward edit an entry' => 'Existierenden Eintrag bearbeiten', +'dnsforward entries' => 'Aktuelle EintrÀge', 'dnsforward forward_server' => 'DNS-Server', 'dnsforward zone' => 'Zone', 'do not log this port list' => 'Verwerfe diese Port-Liste kurz bevor sie protokolliert werden (reduziert ProtokollgröÃe)', @@ -748,13 +750,19 @@ 'download pkcs12 file' => 'PKCS12-Datei herunterladen', 'download root certificate' => 'Root-Zertifikat herunterladen', 'dpd action' => 'Aktion fÃŒr Dead Peer Detection', +'dpd delay' => 'Verzögerung', +'dpd timeout' => 'ZeitÃŒberschreitung', 'driver' => 'Treiber', -'drop input' => 'Verworfene Input-Pakete loggen', +'drop action' => 'Standardverhalten der (Forward) Firewall in Modus "Blocked"', +'drop action1' => 'Standardverhalten der (Outgoing) Firewall in Modus "Blocked"', +'drop action2' => 'Standardverhalten der (Input) Firewall', +'drop forward' => 'Verworfene (Forward) Firewall-Pakete loggen', +'drop input' => 'Verworfene Input Pakete loggen', 'drop newnotsyn' => 'Verworfene New Not Syn Pakete loggen', -'drop output' => 'Verworfene Output-Pakete loggen', -'drop portscan' => 'Verworfene Portscan-Pakete loggen', -'drop proxy' => 'Alle Pakete verwerfen, die nicht direkt an den Proxy gerichtet sind', -'drop samba' => 'Alle Microsoft-Pakete verwerfen, Ports 135,137,138,139,445,1025', +'drop outgoing' => 'Verworfene (Outgoing) Firewall-Pakete loggen', +'drop portscan' => 'Verworfene Portscan Pakete loggen', +'drop proxy' => 'Alle Pakete verwerfen die nicht direkt an den Proxy gerichtet sind', +'drop samba' => 'Alle Microsoft Pakete verwerfen, Ports 135,137,138,139,445,1025', 'drop wirelessforward' => 'Verworfene Wireless Forward Pakete loggen', 'drop wirelessinput' => 'Verworfene Wireless Input Pakete loggen', 'dst port' => 'Ziel-Port', @@ -796,6 +804,7 @@ 'enabledtitle' => 'Aktiviert', 'encapsulation' => 'Encapsulation', 'encrypted' => 'VerschlÃŒsselt', +'encryption' => 'VerschlÃŒsselung:', 'end address' => 'Endadresse:', 'enter ack class' => 'Legen Sie hier die ACK-Klasse fest <br /> und klicken Sie danach auf <i>Speichern</i>.', 'enter data' => 'Geben Sie die Daten ein <br /> und klicken Sie danach auf <i>Speichern</i>.', @@ -811,7 +820,7 @@ 'err rs 8 untar' => 'Fehler beim un-tar-en des Archivs', 'error config' => 'Kann /var/ipfire/ovpn/config/ZERINA.ovpn nicht öffnen!', 'error external access' => 'Kann /var/ipfire/xtaccess/config nicht öffnen (external acccess could not be granted)!', -'error messages' => 'Fehlermeldungen:', +'error messages' => 'Fehlermeldungen', 'esp encryption' => 'ESP VerschlÃŒsselung:', 'esp grouptype' => 'ESP Gruppentyp:', 'esp integrity' => 'ESP IntegritÀt:', @@ -835,7 +844,7 @@ 'extrahd' => 'ExtraHD', 'extrahd because there is already a device mounted' => ' mounten, weil bereits ein GerÀt gemountet ist', 'extrahd cant umount' => 'Konnte', -'extrahd detected drives' => 'gefundene Laufwerke', +'extrahd detected drives' => 'Gefundene Laufwerke', 'extrahd install or load driver' => 'Wenn Ihre Festplatte nicht angezeigt wird, mÃŒssen Sie zuerst den Treiber laden oder ggf. auch nachinstallieren. Wenn diese jedoch angezeigt wird, aber keine Partitionen zu sehen sind, mÃŒssen diese erst angelegt werden.', 'extrahd maybe the device is in use' => 'nicht mounten. Vielleicht wird das GerÀt bereits verwendet', 'extrahd to' => 'nicht nach', @@ -876,6 +885,7 @@ 'firewall logs' => 'Firewall-Logdateien', 'firewall logs ip' => 'Fw-Logdiagramme (IP)', 'firewall logs port' => 'Fw-Logdiagramme (Port)', +'firewall rules' => 'Firewallregeln', 'firewallhits' => 'Firewalltreffer', 'firmware' => 'Firmware', 'firmware upload' => 'Hochladen der Firmware/Treiber', @@ -884,6 +894,7 @@ 'fixed ip lease removed' => 'Feste IP-Zuordnung gelöscht', 'force update' => 'Aktualisierung erzwingen', 'force user' => 'Standardbenutzer fÃŒr das UNIX Dateisystem', +'forward firewall' => 'Firewall', 'forwarding rule added' => 'Weiterleitungsregel hinzugefÃŒgt. Starte Weiterleitung neu', 'forwarding rule removed' => 'Weiterleitungsregel entfernt. Starte Weiterleitung neu', 'forwarding rule updated' => 'Weiterleitungsregel aktualisiert; starte Weiterleitung neu', @@ -901,7 +912,177 @@ 'from email user' => 'Von Email Benutzer', 'from warn email bad' => 'Von Email Adresse ist nicht gÃŒltig', 'fw blue' => 'Firewall-Optionen fÃŒr das Blaue Interface', +'fw default drop' => 'Firewall Policy', 'fw logging' => 'Firewall-Logging', +'fw settings' => 'Firewall-Einstellungen', +'fw settings color' => 'Farben in Regeltabelle anzeigen', +'fw settings dropdown' => 'Alle Netzwerke auf Regelerstellungsseite anzeigen', +'fw settings remark' => 'Anmerkungen in Regeltabelle anzeigen', +'fw settings ruletable' => 'Leere Regeltabellen anzeigen', +'fwdfw ACCEPT' => 'Akzeptieren (ACCEPT)', +'fwdfw DROP' => 'Verwerfen (DROP)', +'fwdfw MODE1' => 'Alle Pakete verwerfen', +'fwdfw MODE2' => 'Alle Pakete annehmen', +'fwdfw REJECT' => 'Verweigern (REJECT)', +'fwdfw action' => 'Aktion', +'fwdfw additional' => 'Weitere Einstellungen', +'fwdfw addrule' => 'Regel hinzufÃŒgen/Àndern:', +'fwdfw all icmp' => 'Alle ICMP-Typen', +'fwdfw change' => 'Aktualisieren', +'fwdfw copy' => 'Kopieren', +'fwdfw delete' => 'Löschen', +'fwdfw dnat' => 'Destination-NAT (Port-Weiterleitung)', +'fwdfw dnat error' => 'FÃŒr Destination-NAT muss ein einzelner Host als Ziel ausgewÀhlt werden. Gruppen oder Netzwerke sind nicht erlaubt', +'fwdfw dnat porterr' => 'FÃŒr NAT-Regeln muss ein einzelner Port oder Portbereich angegeben werden', +'fwdfw dnat porterr2' => 'Externer Port (NAT) darf nur angegeben werden, wenn ein Ziel-Port definiert ist.', +'fwdfw edit' => 'Bearbeiten', +'fwdfw err nosrc' => 'Keine Quelle ausgewÀhlt', +'fwdfw err nosrcip' => 'Bitte Quell-IP-Adresse angeben', +'fwdfw err notgt' => 'Kein Ziel ausgewÀhlt', +'fwdfw err notgtip' => 'Bitte Ziel-IP-Adresse angeben', +'fwdfw err prot_port' => 'Bei dem gewÀhlten Protokoll sind Quell- und Zielport nicht erlaubt', +'fwdfw err prot_port1' => 'Bei Nutzung von Quell- oder Zielport muss als Protokoll TCP oder UDP gewÀhlt werden.', +'fwdfw err remark' => 'Die Bemerkung enthÀlt ungÃŒltige Zeichen', +'fwdfw err ruleexists' => 'Eine identische Regel existiert bereits', +'fwdfw err same' => 'Quelle und Ziel sind identisch', +'fwdfw err samesub' => 'Quell- und Ziel-IP-Adresse befinden sich im selben Subnetz', +'fwdfw err src_addr' => 'Quell-MAC/IP-Adresse ungÃŒltig', +'fwdfw err tgt_addr' => 'UngÃŒltige Ziel-IP-Adresse', +'fwdfw err tgt_grp' => 'Die Ziel-Dienstgruppe ist leer', +'fwdfw err tgt_mac' => 'MAC-Adressen können nicht als Ziel defininert werden', +'fwdfw err tgt_port' => 'UngÃŒltiger Zielport', +'fwdfw err time' => 'Es muss mindestens ein Tag ausgewÀhlt werden', +'fwdfw external port nat' => 'Externer Port (NAT)', +'fwdfw final_rule' => 'Letzte Regel: ', +'fwdfw from' => 'Von:', +'fwdfw hint ip1' => 'Die zuletzt erzeugte Regel mag eventuell niemals zutreffen, da sich Quelle und Ziel ÃŒberlappen.', +'fwdfw hint ip2' => 'Bitte ÃŒberprÃŒfen Sie, ob diese Regel Sinn macht: ', +'fwdfw iface' => 'Interface', +'fwdfw ipsec network' => 'IPsec-Netzwerke:', +'fwdfw log' => 'Log', +'fwdfw log rule' => 'Logging aktivieren', +'fwdfw man port' => 'Port(s):', +'fwdfw menu' => 'Firewall', +'fwdfw movedown' => 'Herunter', +'fwdfw moveup' => 'Herauf', +'fwdfw natport used' => 'Der eingegebene Port wird bereits von einer anderen DNAT-Regel benutzt.', +'fwdfw newrule' => 'Neue Regel erstellen', +'fwdfw p2p txt' => 'P2P-Netzwerke erlauben/verbieten.', +'fwdfw pol allow' => 'Zugelassen', +'fwdfw pol block' => 'Blockiert', +'fwdfw pol text' => 'Firewall-Standardverhalten fÃŒr Verbindungen aus lokalen Netzwerken: Alle Verbindungen können entweder zugelassen oder geblockt werden, wenn keine Ausnahmeregel zutrifft. "Blockiert" trennt ebenfalls die Kommunikation zwischen den lokalen Netzwerken.', +'fwdfw pol text1' => 'Firewall-Standardverhalten fÃŒr von der Firewall selbst initiierte Verbindungen.', +'fwdfw pol title' => 'Standardverhalten der Firewall', +'fwdfw prot41' => 'IPv6 Encapsulation (Protokoll 41)', +'fwdfw prot41 short' => 'IPv6 Encap', +'fwdfw red' => 'ROT', +'fwdfw reread' => 'Ãnderungen ÃŒbernehmen', +'fwdfw rule action' => 'Regelaktion:', +'fwdfw rule activate' => 'Regel aktivieren', +'fwdfw rulepos' => 'Regelposition', +'fwdfw rules' => 'Regeln', +'fwdfw snat' => 'Source-NAT', +'fwdfw source' => 'Quelle', +'fwdfw sourceip' => 'Quelladresse (IP/MAC-Adresse oder Netzwerk):', +'fwdfw std network' => 'Standard Netzwerke:', +'fwdfw target' => 'Ziel', +'fwdfw targetip' => 'Zieladresse (IP/MAC-Adresse oder Netzwerk):', +'fwdfw till' => 'Bis:', +'fwdfw time' => 'Zeitrahmen', +'fwdfw timeframe' => 'Zeitrahmen hinzufÃŒgen', +'fwdfw toggle' => 'Aktivieren oder deaktivieren', +'fwdfw togglelog' => 'Log aktivieren oder deaktivieren', +'fwdfw use nat' => 'Network Address Translation (NAT) benutzen', +'fwdfw use srcport' => 'Quellport:', +'fwdfw use srv' => 'Zielport:', +'fwdfw useless rule' => 'Diese Regel ist nicht sinnvoll.', +'fwdfw wd_fri' => 'Fr', +'fwdfw wd_mon' => 'Mo', +'fwdfw wd_sat' => 'Sa', +'fwdfw wd_sun' => 'So', +'fwdfw wd_thu' => 'Do', +'fwdfw wd_tue' => 'Di', +'fwdfw wd_wed' => 'Mi', +'fwdfw xt access' => 'Input', +'fwhost addgrp' => 'Neue Gruppe hinzufÃŒgen', +'fwhost addgrpname' => 'Gruppenname:', +'fwhost addhost' => 'Neuen Host hinzufÃŒgen', +'fwhost addnet' => 'Neues Netzwerk hinzufÃŒgen', +'fwhost addservice' => 'Neuen Dienst hinzufÃŒgen', +'fwhost addservicegrp' => 'Neue Dienstgruppe hinzufÃŒgen', +'fwhost any' => 'Alle', +'fwhost attention' => 'ACHTUNG', +'fwhost back' => 'ZurÃŒck', +'fwhost blue' => 'Blau', +'fwhost ccdhost' => 'OpenVPN-Clients:', +'fwhost ccdnet' => 'OpenVPN-Netzwerke:', +'fwhost change' => 'Ãndern', +'fwhost changeremark' => 'Es wurde nur die Bemerkung angepasst.', +'fwhost cust addr' => 'Hosts', +'fwhost cust grp' => 'Gruppen', +'fwhost cust net' => 'Netzwerke', +'fwhost cust service' => 'Dienste', +'fwhost cust srvgrp' => 'Dienstgruppen', +'fwhost deleted' => 'Gelöscht', +'fwhost empty' => 'Keine Regeln definiert', +'fwhost err addr' => 'IP-Adresse oder Subnetzmaske ungÃŒltig', +'fwhost err addrgrp' => 'Bitte Gruppennamen angeben', +'fwhost err empty' => 'Bitte alle Felder ausfÃŒllen', +'fwhost err emptytable' => 'Keine EintrÀge in Gruppe', +'fwhost err groupempty' => 'Die gewÀhlte Gruppe ist leer', +'fwhost err grpexist' => 'Eine Gruppe mit diesem Namen existiert bereits', +'fwhost err hostexist' => 'Ein Host mit diesem Namen existiert bereits', +'fwhost err hostorip' => 'Name oder IP-Adresse ungÃŒltig', +'fwhost err ip' => 'IP-Adresse ungÃŒltig', +'fwhost err ipcheck' => 'Diese IP-Adresse wird bereits verwendet', +'fwhost err ipmac' => 'UngÃŒltige IP/MAC-Addresse', +'fwhost err ipwithsub' => 'Bitte nur eine IP-Adresse (ohne Subnetzmaske) eingeben', +'fwhost err isccdhost' => 'Dieser Name wird bereits fÃŒr einen OpenVPN-Host verwendet', +'fwhost err isccdiphost' => 'Diese IP-Adresse wird bereits fÃŒr einen OpenVPN-Host verwendet', +'fwhost err isccdipnet' => 'Diese IP-Adresse wird bereits fÃŒr einen OpenVPN-Netzwerk verwendet', +'fwhost err isccdnet' => 'Dieser Name wird bereits fÃŒr einen OpenVPN-Netzwerk verwendet', +'fwhost err isingrp' => 'Dieser Eintrag existiert bereits in der Gruppe', +'fwhost err mac' => 'UngÃŒltige MAC-Adresse', +'fwhost err maxservicetcp' => 'Die maximale Anzahl von 15 TCP-Diensten in einer Gruppe wurde erreicht (Portranges zÀhlen zweifach)', +'fwhost err maxserviceudp' => 'Die maximale Anzahl von 15 UDP-Diensten in einer Gruppe wurde erreicht (Portranges zÀhlen zweifach)', +'fwhost err name' => 'UngÃŒltiger Name. Erlaubte Zeichen: Klein- und GroÃbuchstaben, Leerzeichen und Bindestrich.', +'fwhost err name1' => 'Der Name muss ausgefÃŒllt sein', +'fwhost err net' => 'Netzwerk/IP-Adresse existiert bereits', +'fwhost err netexist' => 'Ein Netz mit diesem Namen existiert bereits', +'fwhost err partofnet' => 'Dieses Netzwerk ist ein Subnetz eines bereits existierenden Netzwerks', +'fwhost err port' => 'Port muss gefÃŒllt sein', +'fwhost err remark' => 'UngÃŒltige Bemerkung. Erlaubte Zeichen: Klein- und GroÃbuchstaben, Bindestrich, Unterstrich, Runde Klammern, Semikolon, Punkt.', +'fwhost err srv exists' => 'Ein Service mit diesem Namen existiert bereits', +'fwhost err srvexist' => 'Dieser Dienst ist bereits in der Gruppe', +'fwhost err sub32' => 'Bitte einen einzelnen Host hinzufÃŒgen, keine Netzwerke', +'fwhost green' => 'GrÃŒn', +'fwhost hint' => 'Hinweis', +'fwhost hosts' => 'Firewall-Hosts', +'fwhost icmptype' => 'ICMP-Typ:', +'fwhost ip_mac' => 'IP/MAC-Adresse', +'fwhost ipadr' => 'IP-Adresse:', +'fwhost ipsec host' => 'IPsec-Clients:', +'fwhost ipsec net' => 'IPsec-Netzwerke:', +'fwhost menu' => 'Firewallgruppen', +'fwhost netaddress' => 'Netzwerkadresse', +'fwhost newgrp' => 'Netzwerk-/Hostgruppen', +'fwhost newhost' => 'Hosts', +'fwhost newnet' => 'Netzwerke', +'fwhost newservice' => 'Dienst', +'fwhost newservicegrp' => 'Dienstgruppen', +'fwhost orange' => 'Orange', +'fwhost ovpn_n2n' => 'OpenVPN Net-to-Net', +'fwhost port' => 'Port(s)', +'fwhost prot' => 'Protokoll', +'fwhost reread' => 'Die Firewallregeln mÃŒssen neu eingelesen werden.', +'fwhost reset' => 'Abbrechen', +'fwhost services' => 'Dienste', +'fwhost srv_name' => 'Dienstname', +'fwhost stdnet' => 'Standard-Netzwerke:', +'fwhost type' => 'Typ', +'fwhost used' => 'Genutzt', +'fwhost welcome' => 'Hier können einzelne Hosts, Netzwerke oder Dienste zu Gruppen zusammengefasst werden, was das erstellen von Firewallregeln einfacher und schneller macht.', +'fwhost wo subnet' => '(Ohne Subnetz)', 'gateway' => 'Gateway', 'gateway ip' => 'Gateway-IP', 'gen static key' => 'Statischen SchlÃŒssel erzeugen', @@ -925,6 +1106,7 @@ 'graph per' => 'pro', 'green' => 'GRÃN', 'green interface' => 'GrÃŒnes Interface', +'grouptype' => 'Gruppentyp:', 'guaranteed bandwith' => 'Garantierte Bandbreite', 'guardian alertfile' => 'Alertfile', 'guardian configuration' => 'Guardian Konfiguration', @@ -938,7 +1120,7 @@ 'hangup' => 'Trennen', 'hangup string' => 'Auflegen:', 'harddisk temperature' => 'Festplattentemperatur', -'harddisk temperature graphs' => 'HDD-Temperatur-Diagramme', +'harddisk temperature graphs' => 'HDD-Diagramme', 'hardware graphs' => 'Hardware-Diagramme', 'hdd temperature in' => 'Festplattentemperatur in', 'help' => 'Hilfe', @@ -1001,6 +1183,7 @@ 'installed' => 'Installiert', 'installed updates' => 'Installierte Updates:', 'instant update' => 'Sofortiges Update', +'integrity' => 'IntegritÀt:', 'interface' => 'Schnittstelle', 'interfaces' => 'Interfaces', 'internet' => 'INTERNET', @@ -1028,6 +1211,8 @@ 'invalid input for dhcp dns' => 'UngÃŒltige Eingabe fÃŒr DHCP DNS', 'invalid input for dhcp domain' => 'UngÃŒltige Eingabe fÃŒr DHCP Domain', 'invalid input for dhcp wins' => 'UngÃŒltige Eingabe fÃŒr DHCP WINS', +'invalid input for dpd delay' => 'UngÃŒltige Eingabe fÃŒr DPD-Verzögerung', +'invalid input for dpd timeout' => 'UngÃŒltige Eingabe fÃŒr DPD-ZeitÃŒberschreitung', 'invalid input for e-mail address' => 'UngÃŒltige Eingabe fÃŒr die E-mail Adresse', 'invalid input for esp keylife' => 'UngÃŒltige Eingabe fÃŒr ESP SchlÃŒssel-Lebensdauer', 'invalid input for hostname' => 'UngÃŒltige Eingabe fÃŒr Hostname', @@ -1086,8 +1271,10 @@ 'ipinfo' => 'IP-Info', 'iptable rules' => 'IPTable-Regeln', 'iptmangles' => 'IPTable Mangles', +'ipsec' => 'IPsec', +'ipsec network' => 'IPsec-Netzwerke', 'iptnats' => 'IPTable Network Address Translation', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'ZusÀtzliche ISDN-Einstellungen:', 'isdn1' => 'Einfaches ISDN', @@ -1112,6 +1299,7 @@ 'least preferred' => 'weniger prÀferiert', 'legend' => 'Legende', 'length' => 'LÀnge', +'lifetime' => 'Lebensdauer:', 'line' => 'Leitung', 'linkq' => 'Antwortzeit', 'load printer' => 'Load Printer', @@ -1124,7 +1312,7 @@ 'local vpn hostname/ip' => 'Lokaler VPN Hostname/IP', 'localkey' => 'Localkey', 'localkeyfile' => 'Localkeyfile', -'log' => 'Protokoll:', +'log' => 'Protokoll', 'log enabled' => 'Log aktiviert', 'log level' => 'Log Level', 'log lines per page' => 'Zeilen pro Seite', @@ -1167,7 +1355,7 @@ 'mac address recon' => 'Es wird neu Verbunden!', 'mac address saved' => 'Erfolgreich gespeichert!', 'mac address saved txt' => 'Die MAC-Adresse wurde erfolgreich gespeichert. Ãnderungen werden jedoch erst nach einem Neustart oder einer Wiederverbindung ÃŒbernommen.', -'mac address title' => 'Medium Access Control Adresse', +'mac address title' => 'MAC Adresse zuweisen', 'mac desc' => 'Sie können an dieser Stelle die MAC-Adresse von red0 Àndern. Die Adresse muss in hexadezimal (0-9,a-f) eingegeben werden, eine gÃŒltige Eingaben ist z.B. 00-01-02-0e-b8-d6 oder 00:01:02:0e:b8:d6.', 'mac new' => 'Neue MAC-Adresse:', 'mac1 new' => 'Neue MAC-Adresse 1 (vdsl-inet):', @@ -1285,7 +1473,7 @@ 'network red' => 'Netzwerk (extern)', 'network removed' => 'Benutzerdefiniertes Netzwerk entfernt', 'network status information' => 'Netzwerk-Statusinformationen', -'network time' => 'Benutze NTP-Server:', +'network time' => 'Benutze NTP-Server', 'network time from' => 'Uhrzeit von einem Netzwerk Zeitserver ermitteln', 'network traffic graphs' => 'Diagramme zur Netzwerkauslastung', 'network traffic graphs external' => 'Net-Traffic-Diagramme (extern)', @@ -1293,7 +1481,7 @@ 'network traffic graphs others' => 'Netzwerk (sonstige)', 'network updated' => 'Benutzerdefiniertes Netzwerk aktualisiert', 'networks settings' => 'Firewall - Netzwerkeinstellungen', -'new optionsfw later' => 'Ihre Modifikation(en) wird (werden) beim nÀchsten Neustart aktiv werden', +'new optionsfw later' => 'Einige Einstellungen werden erst nach einem Neustart aktiv', 'new optionsfw must boot' => 'Sie mÃŒssen Ihren IPFire neu starten', 'newer' => 'Neuer', 'next' => 'NÀchster', @@ -1317,9 +1505,10 @@ 'not present' => '<B>Nicht</B> vorhanden', 'not running' => 'nicht gestartet', 'not set' => 'nicht gesetzt', +'notice' => 'Hinweis', 'november' => 'November', 'ntp common settings' => 'Allgemeine Einstellungen', -'ntp configuration' => 'NTP-Konfiguration', +'ntp configuration' => 'Zeitserver-Konfiguration', 'ntp must be enabled to have clients' => 'Um Clients annehmen zu können, muà NTP vorher aktiviert sein.', 'ntp server' => 'NTP-Server', 'ntp sync' => 'Synchronisation', @@ -1349,6 +1538,7 @@ 'openvpn fragment allowed with udp' => '"fragment" kann nur in Kombination mit dem UDP-Protokoll genutzt werden.', 'openvpn log' => 'OpenVPN Log', 'openvpn mssfix allowed with udp' => '"mssfix" kann nur in Kombination mit dem UDP-Protokoll genutzt werden.', +'openvpn network' => 'OpenVPN-Netzwerke', 'openvpn prefix local subnet' => 'Die Prefix-Notation wird nicht unterstÃŒtzt. Bitte geben Sie eine Subnetzmaske beim lokalen Subnetz ein wie z.B. 255.255.255.0.', 'openvpn prefix openvpn subnet' => 'Die Prefix-Notation wird nicht unterstÃŒtzt. Bitte geben Sie eine Subnetzmaske beim OpenVPN-Subnetz ein wie z.B. 255.255.255.0.', 'openvpn prefix remote subnet' => 'Die Prefix-Notation wird nicht unterstÃŒtzt. Bitte geben Sie eine Subnetzmaske beim entfernten Subnetz ein wie z.B. 255.255.255.0.', @@ -1357,7 +1547,7 @@ 'optional at cmd' => 'zusÀtzlicher Modembefehl', 'optional data' => '3. Optionale Einstellungen', 'options' => 'Optionen', -'options fw' => 'Firewall Optionen', +'options fw' => 'Firewall-Optionen', 'optionsfw portlist hint' => 'Die Liste der Ports muss durch ein Komma getrennt werden (z.B. 137,138). Sie können maximal bis zu 15 Ports pro Protokoll angeben.', 'optionsfw warning' => 'VerÀndern dieser Optionen bedingt einen Neustart der Firewall', 'or' => 'oder', @@ -1388,8 +1578,8 @@ 'outgoing firewall mode1' => 'In diesem Modus werden nur Verbindungen nach den oben definierten Regeln zugelassen.', 'outgoing firewall mode2' => 'In diesem Modus werden sÀmtliche Verbindungen erlaubt, bis auf die oben definierten Block-Regeln.', 'outgoing firewall outgoing firewall reserved groupname' => 'Bitte einen anderen Gruppennamen verwenden, dieser ist ein reserviertes Wort.', -'outgoing firewall p2p allow' => 'P2P-Protokoll ist erlaubt!', -'outgoing firewall p2p deny' => 'P2P-Protokoll ist gesperrt!', +'outgoing firewall p2p allow' => 'P2P-Protokollnutzung ist erlaubt', +'outgoing firewall p2p deny' => 'P2P-Protokollnutzung ist gesperrt', 'outgoing firewall p2p description 1' => 'Das Symbol', 'outgoing firewall p2p description 2' => 'bedeutet, dass das P2P-Protokoll erlaubt wird oder', 'outgoing firewall p2p description 3' => 'das P2P-Protokoll gesperrt wird.', @@ -1416,6 +1606,8 @@ 'ovpn on blue' => 'OpenVPN auf BLAU', 'ovpn on orange' => 'OpenVPN auf ORANGE', 'ovpn on red' => 'OpenVPN auf ROT', +'ovpn mgmt in root range' => 'Ein Port von 1024 oder höher ist erforderlich.', +'ovpn port in root range' => 'Ein Port von 1024 oder höher ist erforderlich.', 'ovpn routes push' => 'Routen (eine pro Zeile) z.b. 192.168.10.0/255.255.255.0 192.168.20.0/24', 'ovpn routes push options' => 'Route push Optionen', 'ovpn server status' => 'OpenVPN-Server-Status', @@ -1438,6 +1630,8 @@ 'ovpn_processprioVH' => 'Sehr Hoch', 'ovpnstatus log' => 'OVPN-Status-Log', 'ovpnsys log' => 'OVPN-System-Log', +'p2p block' => 'P2P-Netzwerke', +'p2p block save notice' => 'Bitte lesen Sie die Firewallregeln neu ein, damit die Ãnderungen aktiv werden.', 'package failed to install' => 'Programmpaket konnte nicht installiert werden.', 'pagerefresh' => 'Seite wird aktualisiert. Bitte warten.', 'pakfire accept all' => 'Möchten Sie der Installation aller Pakete zustimmen?', @@ -1524,7 +1718,7 @@ 'proxy admin password' => 'Cache Administrator Passwort', 'proxy cachemgr' => 'Cachemanager aktivieren', 'proxy errmsg filedescriptors' => 'UngÃŒltiger Anzahl Filedescriptoren', -'proxy filedescriptors' => 'Anzahl Fildescriptoren', +'proxy filedescriptors' => 'Anzahl Filedescriptoren', 'proxy log viewer' => 'Ansicht Proxy-Log', 'proxy logs' => 'Proxy-Logdateien', 'proxy no proxy extend' => 'oder geben Sie eine Liste von Zielen an, welche nicht ÃŒber den Proxy angesprochen werden sollen', @@ -1557,6 +1751,7 @@ 'reconnect' => 'Neu Verbinden', 'reconnection' => 'Wiederverbindung', 'red' => 'Internet', +'red1' => 'ROT', 'references' => 'Referenzen', 'refresh' => 'Aktualisieren', 'refresh index page while connected' => 'Aktualisere index.cgi Seite wÀhrend der Verbindung', @@ -1603,7 +1798,7 @@ 'root user password' => 'Root Passwort', 'route subnet is invalid' => 'Additional push route subnet is invalid', 'router ip' => 'IP-Adresse des Routers:', -'routing table entries' => 'EintrÀge der Routing-Tabelle:', +'routing table entries' => 'EintrÀge der Routing-Tabelle', 'rsvd dst port overlap' => 'Dieser Zielportbereich ÃŒberlappt mit einem Port, der fÃŒr die ausschlieÃliche Benutzung durch IPFire reserviert ist:', 'rsvd src port overlap' => 'Dieser Quellportbereich ÃŒberlappt mit einem Port, der fÃŒr die ausschlieÃliche Benutzung durch IPFire reserviert ist:', 'rules already up to date' => 'Regeln sind schon aktuell', @@ -1684,6 +1879,7 @@ 'smbstop' => 'Samba Dienste beenden', 'smtphost' => 'Smtp Host', 'smtpport' => 'Smtp Port', +'snat new source ip address' => 'Neue Quell-IP-Adresse', 'snort hits' => 'Gesamtanzahl der aktivierten Intrusion-Regeln fÃŒr', 'snort working' => 'Snort fÃŒhrt gerade eine Aufgabe aus... Bitte warten Sie, bis diese erfolgreich beendet wurde.', 'socket options' => 'Socket Options', @@ -1711,6 +1907,7 @@ 'srcprt range overlaps' => 'Quell-Port-Bereich ÃŒberlappt mit einem bereits definierten Port.', 'srcprt within existing' => 'Quell-Port befindet sich innnerhalb eines bereits definierten Port-Bereichs.', 'ssdmz pinholes' => 'DMZ-Schlupflöcher', +'ssh' => 'SSH', 'ssh access' => 'SSH-Zugriff', 'ssh access tip' => 'IPFire SSH lÀuft auf dem nicht-standard Port 222!', 'ssh fingerprint' => 'Fingerabdruck', @@ -1759,6 +1956,7 @@ 'successfully refreshed updates list' => 'Update-Liste erfolgreich aktualisiert.', 'summaries kept' => 'Zusammenfassungen aufheben fÃŒr', 'sunday' => 'Sonntag', +'support donation' => 'UnterstÃŒtzen Sie das IPFire-Projekt mit Ihrer Spende', 'swap' => 'Swap', 'swap usage per' => 'Nutzung von Auslagerungsspeicher (Swap) pro', 'system' => 'System', @@ -1873,7 +2071,7 @@ 'trafficorange' => 'DMZ', 'trafficout' => 'Ausgehend', 'trafficred' => 'Internet', -'traffics' => 'TrafficÃŒbersicht:', +'traffics' => 'TrafficÃŒbersicht', 'trafficsum' => 'Total', 'trafficto' => 'Nach', 'transfer limits' => 'TransferbeschrÀnkungen', @@ -2107,7 +2305,7 @@ 'urlfilter log summary' => 'Gesamtanzahl der URL-Filter-Treffer fÃŒr', 'urlfilter log viewer' => 'Ansicht URL-Filter-Log', 'urlfilter logs' => 'URL-Filter-Logdateien', -'urlfilter maintenance' => 'URL-Filter-Wartung', +'urlfilter maintenance' => 'URL-Filter Wartung', 'urlfilter manage local file repository' => 'Lokale Dateiablage verwalten', 'urlfilter manage repository' => 'Ablage verwalten', 'urlfilter minutes' => 'Minuten', @@ -2236,7 +2434,7 @@ 'vpn aggrmode' => 'IKE Aggressive Mode zugelassen. Wenn möglich, vermeiden (preshared SchlÃŒssel wird im Klartext ÃŒbertragen)!', 'vpn altname syntax' => 'Der Subjekt Alternativ Name ist eine durch Komma getrennte Liste von Email, DNS, URI, RID und IP Objekten. <br />Email: eine Email Adresse. Syntax Email: 'copy' benutzt die Email Adresse aus dem Zertifikatfeld. <br />DNS: ein gÃŒltiger Domain Name.<br />URI: eine gÃŒltige URI.<br />RID: Registriertes Objekt Identifikation.<br />IP: eine IP Adresse.<br />Bitte beachten: der Zeichensatz ist eingeschrÀnkt und die GroÃ-/Kleinschreibung ist entscheidend.<br />Beispiel:<br /><b>email:</b>info@ipfire.org<b>,email:</b>copy<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/nach/irgendwo', 'vpn auth-dn' => 'Peer wird identifiziert durch entweder ein IPV4_ADDR, FQDN, USER_FQDN oder DER_ASN1_DN string in Remote ID Feld', -'vpn configuration main' => 'VPN-Konfiguration - Ãbersicht', +'vpn configuration main' => 'VPN-Konfiguration', 'vpn delayed start' => 'Verzögerung bevor VPN gestartet wird (Sekunden)', 'vpn delayed start help' => 'Falls notwendig, kann diese Verzögerung dazu verwendet werden, um Dynamic-DNS-Updates ordnungsgemÀà anzuwenden. 60 ist ein gÀngiger Wert, wenn ROT (RED) eine dynamische IP Adresse ist.', 'vpn incompatible use of defaultroute' => 'Hostname=%defaultroute nicht zulÀssig', @@ -2314,7 +2512,7 @@ 'wlanap encryption' => 'VerschlÃŒsselung', 'wlanap informations' => 'Informationen', 'wlanap interface' => 'Interface ÃŒbernehmen', -'wlanap invalid wpa' => 'UngÃŒltige LÀnge in WPA-Passphrase. Muss zwischen 8 und 63 ASCII-Zeichen lang sein.', +'wlanap invalid wpa' => 'UngÃŒltige LÀnge in WPA-Passphrase. Muss zwischen 8 und 63 Zeichen lang sein.', 'wlanap link dhcp' => 'Wireless Lan DHCP-Einstellungen', 'wlanap link wireless' => 'Wireless Lan Clients freischalten', 'wlanap no interface' => 'AusgewÀhltes Interface ist keine WLAN-Karte!', diff --git a/langs/de/install/lang_de.c b/langs/de/install/lang_de.c index 85db867..8c93586 100644 --- a/langs/de/install/lang_de.c +++ b/langs/de/install/lang_de.c @@ -591,4 +591,10 @@ char *de_tr[] = { "Beim Herunterladen ist ein Fehler aufgetreten!", /* TR_DHCP_FORCE_MTU */ "DHCP MTU setzen:", +/* TR_IDENTIFY */ +"Identifizieren", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Die Leds dieses Netzwerkports sollten jetzt blinken ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Dieser Netzwerkport untestÃŒtzt die Funktion leider nicht.", }; diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index d6ccfaf..3d9a5eb 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -73,12 +73,12 @@ 'activate user' => 'Activate user', 'active' => 'Active', 'add' => 'Add', -'add a host' => 'Add a host:', +'add a host' => 'Add a host', 'add a new rule' => 'Add a new rule:', 'add cron' => 'add cronjob', 'add device' => 'Add device', 'add network' => 'Add network', -'add new alias' => 'Add a new alias:', +'add new alias' => 'Add a new alias', 'add new lease' => 'Add a new fixed lease', 'add new ovpn' => 'OpenVPN Settings:', 'add printer' => 'Add printer', @@ -89,6 +89,7 @@ 'add xtaccess' => 'Add External Access', 'add-route' => 'Additional push route', 'added from dhcp lease list' => 'Added from DHCP lease list', +'addons' => 'Addons', 'admin user password has been changed' => 'Admin user password has been changed.', 'admin users' => 'User with superuser rights', 'administrator user password' => 'Admin user password:', @@ -187,7 +188,6 @@ 'advproxy banned mac clients' => 'Banned MAC addresses (one per line)', 'advproxy cache management' => 'Cache management', 'advproxy cache replacement policy' => 'Cache replacement policy', -'advproxy cache-digest' => 'Enable Cache-Digest Generation', 'advproxy chgwebpwd ERROR' => 'E R R O R :', 'advproxy chgwebpwd SUCCESS' => 'S U C C E S S :', 'advproxy chgwebpwd change password' => 'Change password', @@ -359,7 +359,7 @@ 'april' => 'April', 'archive not exist' => 'Configuration archive does not exist', 'are you sure' => 'Are you sure?', -'arp table entries' => 'ARP Table Entries:', +'arp table entries' => 'ARP Table Entries', 'artist' => 'Artist', 'attemps' => 'Attempts', 'attention' => 'ATTENTION', @@ -561,8 +561,8 @@ 'connection' => 'Connection', 'connection closed' => 'Not connected...', 'connection debugging' => 'Connection debugging', -'connection status and controlc' => 'Connection status and control:', -'connection tracking' => 'IPTables Connection Tracking', +'connection status and controlc' => 'Connection status and control', +'connection tracking' => 'iptables Connection Tracking', 'connection type' => 'Connection Type', 'connection type is invalid' => 'Connection type is invalid.', 'connections' => 'Connections', @@ -601,13 +601,13 @@ 'crl' => 'Certificate Revocation List', 'cron server' => 'CRON Server', 'current' => 'Current', -'current aliases' => 'Current aliases:', +'current aliases' => 'Current aliases', 'current class' => 'Current class', 'current devices' => 'Current devices', 'current dhcp leases on blue' => 'Current DHCP leases on BLUE', 'current dynamic leases' => 'Current dynamic leases', 'current fixed leases' => 'Current fixed leases', -'current hosts' => 'Current hosts:', +'current hosts' => 'Current hosts', 'current media' => 'Current media', 'current ovpn' => 'Active OVPN-Connection:', 'current playlist' => 'Current Playlist', @@ -635,10 +635,12 @@ 'ddns noip prefix' => 'To use no-ip in group mode, prefix hostname with <b>%</b>', 'deactivate' => 'deactivate', 'deactivate user' => 'deactivate user', +'dead peer detection' => 'Dead Peer Detection', 'debugme' => 'Not yet implemented', 'december' => 'December', 'deep scan directories' => 'Scan recursive', 'def lease time' => 'Default Lease Time', +'default ip' => 'Default IP address', 'default lease time' => 'Default lease time (mins):', 'default networks' => 'Default networks', 'default renewal time' => 'Default Renewal Time', @@ -720,6 +722,7 @@ 'dmz pinhole rule added' => 'DMZ pinhole rule added; restarting DMZ pinhole', 'dmz pinhole rule removed' => 'DMZ pinhole rule removed; restarting DMZ pinhole', 'dmzpinholes for same net not necessary' => 'DMZ Pinholes are not necessary for same net. Select different source or destination net.', +'dnat address' => 'External IP address', 'dns address deleted' => 'Successfully deleted!', 'dns address deleted txt' => 'The DNS-Server addresses have been successfully deleted.<br />You have to reboot or reconnect that the changes have effect!', 'dns address done' => 'The DNS-Server address settings are going to be saved.', @@ -739,11 +742,11 @@ 'dns saved txt' => 'The two entered DNS server addresses have been saved successfully.<br />You have to reboot or reconnect that the changes have effect!', 'dns server' => 'DNS Server', 'dns title' => 'Domain Name System', -'dnsforward' => 'DNS forwarding', -'dnsforward add a new entry' => 'Add a new entry:', +'dnsforward' => 'DNS Forwarding', +'dnsforward add a new entry' => 'Add a new entry', 'dnsforward configuration' => 'DNS forward configuration', -'dnsforward edit an entry' => 'Edit an existing entry:', -'dnsforward entries' => 'Current entries:', +'dnsforward edit an entry' => 'Edit an existing entry', +'dnsforward entries' => 'Current entries', 'dnsforward forward_server' => 'Nameserver', 'dnsforward zone' => 'Zone', 'do not log this port list' => 'Drop this port list just before they are logged (reduces log size)', @@ -771,11 +774,17 @@ 'download new ruleset' => 'Download new ruleset', 'download pkcs12 file' => 'Download PKCS12 file', 'download root certificate' => 'Download root certificate', -'dpd action' => 'Dead Peer Detection action', +'dpd action' => 'Action', +'dpd delay' => 'Delay', +'dpd timeout' => 'Timeout', 'driver' => 'Driver', +'drop action' => 'Default behaviour of (forward) firewall in mode "Blocked"', +'drop action1' => 'Default behaviour of (outgoing) firewall in mode "Blocked"', +'drop action2' => 'Default behaviour of (input) firewall', +'drop forward' => 'Log dropped forward packets', 'drop input' => 'Log dropped input packets', 'drop newnotsyn' => 'Log dropped new not syn packets', -'drop output' => 'Log dropped output packets', +'drop outgoing' => 'Log dropped outgoing packets', 'drop portscan' => 'Log dropped portscan packets', 'drop proxy' => 'Drop all packets not addressed to proxy', 'drop samba' => 'Drop all Microsoft ports 135,137,138,139,445,1025', @@ -821,6 +830,7 @@ 'enabledtitle' => 'Enabled', 'encapsulation' => 'Encapsulation', 'encrypted' => 'Encrypted', +'encryption' => 'Encryption:', 'end address' => 'End address:', 'enter ack class' => 'Enter the ACK- Class <br /> and then press <i>Save</i>.', 'enter data' => 'Enter your settings <br /> and then press <i>Save</i>.', @@ -836,7 +846,7 @@ 'err rs 8 untar' => 'Error untarring archive', 'error config' => 'Could not open /var/ipfire/ovpn/config/ZERINA.ovpn !', 'error external access' => 'Could not open /var/ipfire/xtaccess/config (external acccess could not be granted)!', -'error messages' => 'Error messages:', +'error messages' => 'Error messages', 'esp encryption' => 'ESP Encryption:', 'esp grouptype' => 'ESP Grouptype:', 'esp integrity' => 'ESP Integrity:', @@ -901,6 +911,7 @@ 'firewall logs' => 'Firewall Logs', 'firewall logs ip' => 'Fw-Loggraphs (IP)', 'firewall logs port' => 'Fw-Loggraphs (Port)', +'firewall rules' => 'Firewall Rules', 'firewallhits' => 'firewallhits', 'firmware' => 'Firmware', 'firmware upload' => 'Upload Firmware/Drivers', @@ -909,6 +920,7 @@ 'fixed ip lease removed' => 'Fixed IP lease removed', 'force update' => 'Force update', 'force user' => 'force all new file to user', +'forward firewall' => 'Firewall', 'forwarding rule added' => 'Forwarding rule added; restarting forwarder', 'forwarding rule removed' => 'Forwarding rule removed; restarting forwarder', 'forwarding rule updated' => 'Forwarding rule updated; restarting forwarder', @@ -926,7 +938,177 @@ 'from email user' => 'From e-mail user', 'from warn email bad' => 'From e-mail address is not valid', 'fw blue' => 'Firewall options for BLUE interface', +'fw default drop' => 'Firewall policy', 'fw logging' => 'Firewall logging', +'fw settings' => 'Firewall settings', +'fw settings color' => 'Show colors in ruletable', +'fw settings dropdown' => 'Show all networks on rulecreation site', +'fw settings remark' => 'Show remarks in ruletable', +'fw settings ruletable' => 'Show empty ruletables', +'fwdfw ACCEPT' => 'ACCEPT', +'fwdfw DROP' => 'DROP', +'fwdfw MODE1' => 'Drop all packets', +'fwdfw MODE2' => 'Accept all packets', +'fwdfw REJECT' => 'REJECT', +'fwdfw action' => 'Action', +'fwdfw additional' => 'Additional settings', +'fwdfw addrule' => 'Add/Edit rule:', +'fwdfw all icmp' => 'All ICMP types', +'fwdfw change' => 'Update', +'fwdfw copy' => 'Copy', +'fwdfw delete' => 'Delete', +'fwdfw dnat' => 'Destination NAT (Port forwarding)', +'fwdfw dnat error' => 'You have to select a single host for DNAT. Groups or networks are not allowed.', +'fwdfw dnat porterr' => 'You have to select a single port or portrange (tcp/udp) for NAT', +'fwdfw dnat porterr2' => 'Cannot use external port (NAT) when no destination port is defined.', +'fwdfw edit' => 'Edit', +'fwdfw err nosrc' => 'No source selected.', +'fwdfw err nosrcip' => 'Please provide a source IP address.', +'fwdfw err notgt' => 'No destination selected.', +'fwdfw err notgtip' => 'Please provide a destination IP address.', +'fwdfw err prot_port' => 'Source- or targetport are not allowed with selected protocol', +'fwdfw err prot_port1' => 'When using Source- or targetport you have to select TCP or UDP for protocol', +'fwdfw err remark' => 'Invalid characters in remark.', +'fwdfw err ruleexists' => 'This rule already exists.', +'fwdfw err same' => 'Source and destination are identical.', +'fwdfw err samesub' => 'Source and destination IP addresses are from the same subnet.', +'fwdfw err src_addr' => 'Invalid source MAC/IP address.', +'fwdfw err tgt_addr' => 'Invalid destination IP address.', +'fwdfw err tgt_grp' => 'The destination service group is empty', +'fwdfw err tgt_mac' => 'A MAC addresses cannot be used as destination.', +'fwdfw err tgt_port' => 'Invalid destination port.', +'fwdfw err time' => 'You have to select at least one day.', +'fwdfw external port nat' => 'External port (NAT)', +'fwdfw final_rule' => 'Last rule: ', +'fwdfw from' => 'From:', +'fwdfw hint ip1' => 'The last generated rule may never match, because source and destination subnets may overlap.', +'fwdfw hint ip2' => 'Please double-check if this rule makes sense: ', +'fwdfw iface' => 'Interface', +'fwdfw ipsec network' => 'IPsec networks:', +'fwdfw log' => 'Log', +'fwdfw log rule' => 'Log rule', +'fwdfw man port' => 'Port(s):', +'fwdfw menu' => 'Firewall', +'fwdfw movedown' => 'Move down', +'fwdfw moveup' => 'Move up', +'fwdfw natport used' => 'The given port for NAPT is already in use by an other DNAT rule.', +'fwdfw newrule' => 'New rule', +'fwdfw p2p txt' => 'Grant/deny access to P2P networks.', +'fwdfw pol allow' => 'Allowed', +'fwdfw pol block' => 'Blocked', +'fwdfw pol text' => 'Sets the default firewall behaviour for connections from local networks. You may either allow all new connections or block them by default. Connections between the local networks are also blocked in the latter mode.', +'fwdfw pol text1' => 'Sets the default firewall behaviour for connections initiated by the firewall itself. Attention! You may lock yourself out.', +'fwdfw pol title' => 'Default firewall behaviour', +'fwdfw prot41' => 'IPv6 Encapsulation (Protocol 41)', +'fwdfw prot41 short' => 'IPv6 Encap', +'fwdfw red' => 'RED', +'fwdfw reread' => 'Apply changes', +'fwdfw rule action' => 'Rule action:', +'fwdfw rule activate' => 'Activate rule', +'fwdfw rulepos' => 'Rule position', +'fwdfw rules' => 'Rules', +'fwdfw snat' => 'Source NAT', +'fwdfw source' => 'Source', +'fwdfw sourceip' => 'Source address (MAC/IP address or network):', +'fwdfw std network' => 'Standard networks:', +'fwdfw target' => 'Destination', +'fwdfw targetip' => 'Destination address (MAC/IP address or network):', +'fwdfw till' => 'Until:', +'fwdfw time' => 'Time Constraints', +'fwdfw timeframe' => 'Use time constraints', +'fwdfw toggle' => 'Activate or deactivate', +'fwdfw togglelog' => 'Activate or deactivate logging', +'fwdfw use nat' => 'Use Network Address Translation (NAT)', +'fwdfw use srcport' => 'Source port:', +'fwdfw use srv' => 'Destination port:', +'fwdfw useless rule' => 'This rule is useless.', +'fwdfw wd_fri' => 'Fri', +'fwdfw wd_mon' => 'Mon', +'fwdfw wd_sat' => 'Sat', +'fwdfw wd_sun' => 'Sun', +'fwdfw wd_thu' => 'Thu', +'fwdfw wd_tue' => 'Tue', +'fwdfw wd_wed' => 'Wed', +'fwdfw xt access' => 'Input', +'fwhost addgrp' => 'Add new network/host group', +'fwhost addgrpname' => 'Group name:', +'fwhost addhost' => 'Add new host', +'fwhost addnet' => 'Add new network', +'fwhost addservice' => 'Add service', +'fwhost addservicegrp' => 'Add new service group', +'fwhost any' => 'Any', +'fwhost attention' => 'ATTENTION', +'fwhost back' => 'Back', +'fwhost blue' => 'Blue', +'fwhost ccdhost' => 'OpenVPN clients:', +'fwhost ccdnet' => 'OpenVPN networks:', +'fwhost change' => 'Modify', +'fwhost changeremark' => 'You modified just the remark', +'fwhost cust addr' => 'Hosts', +'fwhost cust grp' => 'Network/Host Groups', +'fwhost cust net' => 'Networks', +'fwhost cust service' => 'Services', +'fwhost cust srvgrp' => 'Service Groups', +'fwhost deleted' => 'Deleted', +'fwhost empty' => 'No rules defined', +'fwhost err addr' => 'Invalid IP address or subnet', +'fwhost err addrgrp' => 'Please provide a group name', +'fwhost err empty' => 'Please fill in all input fields', +'fwhost err emptytable' => 'No entries in this group', +'fwhost err groupempty' => 'The selected group is empty', +'fwhost err grpexist' => 'A group with the same name already exists', +'fwhost err hostexist' => 'A host with the same name already exists', +'fwhost err hostorip' => 'Invalid name or IP address', +'fwhost err ip' => 'IP address invalid', +'fwhost err ipcheck' => 'This IP address is already in use', +'fwhost err ipmac' => 'IP/MAC address invalid', +'fwhost err ipwithsub' => 'Please provide only an IP address (without subnet mask)', +'fwhost err isccdhost' => 'This name is already used by an OpenVPN client connection', +'fwhost err isccdiphost' => 'This IP address is already used by an OpenVPN client connection', +'fwhost err isccdipnet' => 'This IP address is already used by an OpenVPN network connection', +'fwhost err isccdnet' => 'This name is already used by an OpenVPN network', +'fwhost err isingrp' => 'This entry already exists in the group', +'fwhost err mac' => 'Invalid MAC address', +'fwhost err maxservicetcp' => 'The maximal number of 15 TCP services has been reached in this group (port ranges count twice)', +'fwhost err maxserviceudp' => 'The maximal number of 15 UDP services has been reached in this group (port ranges count twice)', +'fwhost err name' => 'Invalid name. Allowed characters: Upper- and lowercase letters, digits, space and dash.', +'fwhost err name1' => 'Empty name.', +'fwhost err net' => 'Network/IP address already exists', +'fwhost err netexist' => 'A network with the same name already exists', +'fwhost err partofnet' => 'The network is a subnet of an already existing network.', +'fwhost err port' => 'Port is empty', +'fwhost err remark' => 'Invalid remark. Allowed characters: Upper- and lowercase letters, digits, space, dash, braces, semicolon, pipe and dot.', +'fwhost err srv exists' => 'A service with the same name already exists', +'fwhost err srvexist' => 'This service already exists in the group', +'fwhost err sub32' => 'Please add a single host, not a network.', +'fwhost green' => 'Green', +'fwhost hint' => 'Note', +'fwhost hosts' => 'Firewall Hosts', +'fwhost icmptype' => 'ICMP type:', +'fwhost ip_mac' => 'IP/MAC address', +'fwhost ipadr' => 'IP address:', +'fwhost ipsec host' => 'IPsec clients:', +'fwhost ipsec net' => 'IPsec networks:', +'fwhost menu' => 'Firewall Groups', +'fwhost netaddress' => 'Network address', +'fwhost newgrp' => 'Network/Host Groups', +'fwhost newhost' => 'Hosts', +'fwhost newnet' => 'Networks', +'fwhost newservice' => 'Services', +'fwhost newservicegrp' => 'Service Groups', +'fwhost orange' => 'Orange', +'fwhost ovpn_n2n' => 'OpenVPN Net-to-Net', +'fwhost port' => 'Port(s)', +'fwhost prot' => 'Protocol', +'fwhost reread' => 'Firewall rules need to be updated.', +'fwhost reset' => 'Cancel', +'fwhost services' => 'Services:', +'fwhost srv_name' => 'Service name', +'fwhost stdnet' => 'Standard networks:', +'fwhost type' => 'Type', +'fwhost used' => 'Used', +'fwhost welcome' => 'Over here, you can group single hosts, networks and services together, which will creating new rules more easy and faster.', +'fwhost wo subnet' => '(without subnet)', 'g.dtm' => 'TO BE REMOVED', 'g.lite' => 'TO BE REMOVED', 'gateway' => 'Gateway', @@ -952,6 +1134,7 @@ 'graph per' => 'per', 'green' => 'GREEN', 'green interface' => 'Green Interface', +'grouptype' => 'Grouptype:', 'guaranteed bandwith' => 'Guaranteed bandwith', 'guardian alertfile' => 'Alertfile', 'guardian configuration' => 'Guardian Configuration', @@ -964,8 +1147,8 @@ 'gz with key' => 'Only an encrypted archive can be restored on this machine.', 'hangup' => 'Disconnect', 'hangup string' => 'Hangup:', -'harddisk temperature' => 'Harddisk temperature', -'harddisk temperature graphs' => 'hdd temperature graphs', +'harddisk temperature' => 'Harddisk Temperature', +'harddisk temperature graphs' => 'HDD Graphs', 'hardware graphs' => 'Hardware Graphs', 'hdd temperature in' => 'Harddisk temperature in', 'help' => 'Help', @@ -986,7 +1169,7 @@ 'hostname not set' => 'Hostname not set.', 'hosts config added' => 'Hosts config added', 'hosts config changed' => 'Hosts config changed', -'hour' => 'hour', +'hour' => 'Hour', 'hour-graph' => 'Hour', 'hours' => 'hours', 'hours2' => 'Hours', @@ -1029,6 +1212,7 @@ 'installed' => 'Installed', 'installed updates' => 'Installed updates:', 'instant update' => 'Instant Update', +'integrity' => 'Integrity:', 'interface' => 'Interface', 'interfaces' => 'Interfaces', 'internet' => 'INTERNET', @@ -1056,6 +1240,8 @@ 'invalid input for dhcp dns' => 'Invalid input for DHCP DNS', 'invalid input for dhcp domain' => 'Invalid input for DHCP domain', 'invalid input for dhcp wins' => 'Invalid input for DHCP WINS', +'invalid input for dpd delay' => 'Invalid input for DPD delay', +'invalid input for dpd timeout' => 'Invalid input for DPD timeout', 'invalid input for e-mail address' => 'Invalid input for e-mail address.', 'invalid input for esp keylife' => 'Invalid input for ESP Keylife', 'invalid input for hostname' => 'Invalid input for hostname.', @@ -1112,10 +1298,12 @@ 'ipfire side is invalid' => 'IPFire side is invalid.', 'ipfires hostname' => 'IPFire's Hostname', 'ipinfo' => 'IP info', +'ipsec' => 'IPsec', +'ipsec network' => 'IPsec network', 'iptable rules' => 'IPTable rules', 'iptmangles' => 'IPTable Mangles', 'iptnats' => 'IPTable Network Address Translation', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Additional ISDN settings:', 'isdn1' => 'Single ISDN', @@ -1140,6 +1328,7 @@ 'least preferred' => 'least preferred', 'legend' => 'Legend', 'length' => 'Length', +'lifetime' => 'Lifetime:', 'line' => 'Line', 'linkq' => 'Link Quality', 'load printer' => 'Load Printer', @@ -1152,7 +1341,7 @@ 'local vpn hostname/ip' => 'Local VPN Hostname/IP', 'localkey' => 'Localkey', 'localkeyfile' => 'Localkeyfile', -'log' => 'Log:', +'log' => 'Log', 'log enabled' => 'Log Enabled', 'log level' => 'Log Level', 'log lines per page' => 'Lines per page', @@ -1191,11 +1380,11 @@ 'mac address error not valid' => 'MAC addresse not valid!', 'mac address header' => 'MAC address on red0', 'mac address in use' => 'MAC address already in use', -'mac address menu' => 'Assign MAC-address', +'mac address menu' => 'Assign MAC-Address', 'mac address recon' => 'Trying to reconnect!', 'mac address saved' => 'Successfully saved!', 'mac address saved txt' => 'The MAC address has been successfully saved, but changes will only take effect after reboot or reconnection.', -'mac address title' => 'Medium Access Control Address', +'mac address title' => 'Assign MAC Address', 'mac desc' => 'Here you are able to change the MAC address on red0. The address must be entered in hexadecimal (0-9,a-f), a valid entry is <br />e.g. 00-01-02-0e-b8-d6 or 00:01:02:0e:b8:d6.', 'mac new' => 'new MAC address:', 'mac1 new' => 'new MAC address 1 (vdsl-inet):', @@ -1237,10 +1426,10 @@ 'mbmon volt' => 'Voltage', 'meaning' => 'meaning', 'media' => 'Media', -'media information' => 'media information', +'media information' => 'Media information', 'medium' => 'Medium', 'memory' => 'Memory', -'memory information' => 'memory information', +'memory information' => 'Memory information', 'memory usage per' => 'Memory Usage per', 'messages logging' => 'Logsettings for /var/log/messages', 'method' => 'Method:', @@ -1313,7 +1502,7 @@ 'network red' => 'Network (external)', 'network removed' => 'Custom network removed', 'network status information' => 'Network Status Information', -'network time' => 'Use a network time server:', +'network time' => 'Use a network time server', 'network time from' => 'Obtain time from a network time server', 'network traffic graphs' => 'Network traffic graphs', 'network traffic graphs external' => 'Net-Traffic graphs (external)', @@ -1321,7 +1510,7 @@ 'network traffic graphs others' => 'Network (others)', 'network updated' => 'Custom Network updated', 'networks settings' => 'Firewall - Network settings', -'new optionsfw later' => 'Your modification(s) will be active on next restart', +'new optionsfw later' => 'Some options need a reboot to take effect', 'new optionsfw must boot' => 'You must reboot your IPFire', 'newer' => 'Newer', 'next' => 'next', @@ -1346,9 +1535,10 @@ 'not running' => 'not running', 'not set' => 'not set', 'notes' => 'Notes', +'notice' => 'Notice', 'november' => 'November', 'ntp common settings' => 'Common settings', -'ntp configuration' => 'NTP configuration', +'ntp configuration' => 'NTP Configuration', 'ntp must be enabled to have clients' => 'NTP must be enabled to have clients.', 'ntp server' => 'NTP Server', 'ntp sync' => 'Synchronization', @@ -1378,6 +1568,7 @@ 'openvpn fragment allowed with udp' => 'Using fragment is only allowed when using the UDP protocol.', 'openvpn log' => 'OpenVPN Log', 'openvpn mssfix allowed with udp' => 'Using "mssfix" is only allowed when using the UDP protocol.', +'openvpn network' => 'OpenVPN networks', 'openvpn prefix local subnet' => 'Using the prefix notation is not supported for the local subnet. Please enter a subnet mask like 255.255.255.0.', 'openvpn prefix openvpn subnet' => 'Using the prefix notation is not supported for the OpenVPN subnet. Please enter a subnet mask like 255.255.255.0.', 'openvpn prefix remote subnet' => 'Using the prefix notation is not supported for the remote subnet. Please enter a subnet mask like 255.255.255.0.', @@ -1417,8 +1608,8 @@ 'outgoing firewall mode1' => 'Using this mode, only connections based on the defined rules are allowed.', 'outgoing firewall mode2' => 'Using this mode, all connections are allowed despited off the defined ones.', 'outgoing firewall outgoing firewall reserved groupname' => 'Please use another group name, this name is reserved.', -'outgoing firewall p2p allow' => 'p2p protocol is allowed', -'outgoing firewall p2p deny' => 'p2p protocol is denied', +'outgoing firewall p2p allow' => 'Using the P2P protocol is allowed', +'outgoing firewall p2p deny' => 'Using the P2P protocol is forbidden', 'outgoing firewall p2p description 1' => 'The button', 'outgoing firewall p2p description 2' => 'means that the p2p protocol is allowed or', 'outgoing firewall p2p description 3' => 'that the p2p protocol is denied.', @@ -1445,6 +1636,8 @@ 'ovpn on blue' => 'OpenVPN on BLUE', 'ovpn on orange' => 'OpenVPN on ORANGE', 'ovpn on red' => 'OpenVPN on RED', +'ovpn mgmt in root range' => 'A port number of 1024 or higher is required.', +'ovpn port in root range' => 'A port number of 1024 or higher is required.', 'ovpn routes push' => 'Routes (one per line) e.g. 192.168.10.0/255.255.255.0 192.168.20.0/24', 'ovpn routes push options' => 'Route push options', 'ovpn server status' => 'Current OpenVPN server status:', @@ -1467,6 +1660,8 @@ 'ovpn_processprioVH' => 'Very high', 'ovpnstatus log' => 'OVPN-Status-Log', 'ovpnsys log' => 'OVPN-System-Log', +'p2p block' => 'P2P networks', +'p2p block save notice' => 'Please reload the firewall ruleset in order to apply your changes.', 'package failed to install' => 'Package failed to install.', 'pagerefresh' => 'Page is beeing refreshed, please wait.', 'pakfire accept all' => 'Do you want to install all packages?', @@ -1547,13 +1742,13 @@ 'profile saved' => 'Profile saved: ', 'profiles' => 'Profiles:', 'proto' => 'Proto', -'protocol' => 'Protocol:', +'protocol' => 'Protocol', 'proxy' => 'Proxy', 'proxy access graphs' => 'Proxy access graphs', 'proxy admin password' => 'Cache administrator password', 'proxy cachemgr' => 'Activate cachemanager', 'proxy errmsg filedescriptors' => 'Wrong amount of filedescriptors', -'proxy filedescriptors' => 'Amount of fildescriptors', +'proxy filedescriptors' => 'Amount of filedescriptors', 'proxy log viewer' => 'Proxy log viewer', 'proxy logs' => 'Proxy Logs', 'proxy no proxy extend' => 'or specify a list of not proxied destination', @@ -1588,6 +1783,7 @@ 'reconnect' => 'Reconnect', 'reconnection' => 'Reconnection', 'red' => 'Internet', +'red1' => 'RED', 'references' => 'References', 'refresh' => 'Refresh', 'refresh index page while connected' => 'Refresh index.cgi page while connected', @@ -1634,7 +1830,7 @@ 'root user password' => 'Root password', 'route subnet is invalid' => 'Additional push route subnet is invalid', 'router ip' => 'Router IP address:', -'routing table entries' => 'Routing Table Entries:', +'routing table entries' => 'Routing Table Entries', 'rsvd dst port overlap' => 'Destination Port Range overlaps a port reserved for IPFire:', 'rsvd src port overlap' => 'Source Port Range overlaps a port reserved for IPFire:', 'rules already up to date' => 'Rules already up to date', @@ -1718,6 +1914,7 @@ 'smbstop' => 'Stop samba', 'smtphost' => 'SMTP host', 'smtpport' => 'SMTP port', +'snat new source ip address' => 'New source IP address', 'snort hits' => 'Total of number of Intrusion rules activated for', 'snort working' => 'Snort is working ... Please wait until all operations have completed successfully.', 'socket options' => 'Socket options', @@ -1745,6 +1942,7 @@ 'srcprt range overlaps' => 'Source port range overlaps an already defined port.', 'srcprt within existing' => 'Source port is within an already defined port range.', 'ssdmz pinholes' => 'DMZ Pinholes', +'ssh' => 'SSH', 'ssh access' => 'SSH Access', 'ssh access tip' => 'IPFire SSH is not using default port 222!', 'ssh fingerprint' => 'Fingerprint', @@ -1776,10 +1974,10 @@ 'start ovpn server' => 'Start OpenVPN Server', 'state or province' => 'State or Province', 'static ip' => 'Static IP', -'static routes' => 'Static routes', +'static routes' => 'Static Routes', 'status' => 'Status', 'status information' => 'Status information', -'status ovpn' => '4. OpenVPN Status / Configuration:', +'status ovpn' => 'OpenVPN', 'std classes' => 'Standardclasses', 'stop' => 'Stop', 'stop ovpn server' => 'Stop OpenVPN Server', @@ -1793,11 +1991,12 @@ 'successfully refreshed updates list' => 'Successfully refreshed updates list.', 'summaries kept' => 'Keep summaries for', 'sunday' => 'Sunday', +'support donation' => 'Support the IPFire project with your donation', 'swap' => 'Swap', 'swap usage per' => 'Swap usage per', 'system' => 'System', 'system graphs' => 'System Graphs', -'system information' => 'System information', +'system information' => 'System Information', 'system log viewer' => 'System Log Viewer', 'system logs' => 'System Logs', 'system status information' => 'System Status Information', @@ -1909,7 +2108,7 @@ 'trafficorange' => 'DMZ', 'trafficout' => 'Output', 'trafficred' => 'Internet', -'traffics' => 'Utilization-overview:', +'traffics' => 'Utilization-overview', 'trafficsum' => 'Totals', 'trafficto' => 'To', 'transfer limits' => 'Transfer limits', @@ -2038,7 +2237,7 @@ 'uptime' => 'Uptime', 'uptime and users' => 'Uptime and users:', 'uptime load average' => 'Load average', -'url filter' => 'Content Filter', +'url filter' => 'URL Filter', 'urlfilter access' => 'Access', 'urlfilter activity detection' => 'Activity detection', 'urlfilter add new time constraint rule' => 'Add new time constraint rule', @@ -2274,7 +2473,7 @@ 'vpn aggrmode' => 'IKE aggressive mode allowed. Avoid if possible (preshared key is transmitted in clear text)!', 'vpn altname syntax' => 'SubjectAltName is a comma separated list of e-mail, dns, uri, rid and ip objects.<br />email:an email address. Syntax email:copy takes the email field from the cert to be used.<br />DNS:a valid domain name.<br />URI:any valid uri.<br />RID:registered object identifier.<br />IP:an IP address.<br />Note:charset is limited and case is significant.<br />Example:<br /><b>e-mail:</b>ipfire@foo.org<b>,email:</b>copy<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/to/something', 'vpn auth-dn' => 'Peer is identified by either IPV4_ADDR, FQDN, USER_FQDN or DER_ASN1_DN string in remote ID field', -'vpn configuration main' => 'VPN configuration - Main', +'vpn configuration main' => 'VPN Configuration', 'vpn delayed start' => 'Delay before launching VPN (seconds)', 'vpn delayed start help' => 'If required, this delay can be used to allow dynamic DNS updates to propagate properly. 60 is a common value when RED is a dynamic IP.', 'vpn incompatible use of defaultroute' => 'hostname=%defaultroute not allowed', @@ -2352,7 +2551,7 @@ 'wlanap encryption' => 'Encryption', 'wlanap informations' => 'Informations', 'wlanap interface' => 'Select interface', -'wlanap invalid wpa' => 'Invalid length in WPA Passphrase. Must be between 8 and 63 ascii characters.', +'wlanap invalid wpa' => 'Invalid length in WPA Passphrase. Must be between 8 and 63 characters.', 'wlanap link dhcp' => 'Wireless lan DHCP configuration', 'wlanap link wireless' => 'Activate wireless lan clients', 'wlanap no interface' => 'Selected interface is not a wirless lan card!', diff --git a/langs/en/install/lang_en.c b/langs/en/install/lang_en.c index 87f8d2f..12ac4b5 100644 --- a/langs/en/install/lang_en.c +++ b/langs/en/install/lang_en.c @@ -587,4 +587,10 @@ char *en_tr[] = { "Error while downloading!", /* TR_DHCP_FORCE_MTU */ "Force DHCP mtu:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl index 1c43e33..edb8be0 100644 --- a/langs/es/cgi-bin/es.pl +++ b/langs/es/cgi-bin/es.pl @@ -512,7 +512,7 @@ 'connection closed' => 'No conectadoâŠ', 'connection debugging' => 'Depurado de conexión', 'connection status and controlc' => 'Control y Status de conexión:', -'connection tracking' => 'Rastreo de conexión IPTables', +'connection tracking' => 'Rastreo de conexión iptables', 'connection type' => 'Tipo de conexión', 'connection type is invalid' => 'Tipo de conexión no es válido', 'connections' => 'Conexiones', @@ -1038,8 +1038,8 @@ 'ipinfo' => 'Información IP', 'iptable rules' => 'Reglas de IPTable', 'iptmangles' => 'IPTable Mangles', -'iptnats' => 'IPTables NAT', -'ipts' => 'IPTables', +'iptnats' => 'iptables NAT', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Configuraciones adicionales ISDN:', 'isdn1' => 'ISDN simple', diff --git a/langs/es/install/lang_es.c b/langs/es/install/lang_es.c index a1808fe..4a08748 100644 --- a/langs/es/install/lang_es.c +++ b/langs/es/install/lang_es.c @@ -583,4 +583,10 @@ char *es_tr[] = { "Error while downloading!", /* TR_DHCP_FORCE_MTU */ "Force DHCP mtu:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl index e91191d..9f2e785 100644 --- a/langs/fr/cgi-bin/fr.pl +++ b/langs/fr/cgi-bin/fr.pl @@ -514,7 +514,7 @@ 'connection closed' => 'Non connecté...', 'connection debugging' => 'Déboggage de la connexion', 'connection status and controlc' => 'Etat et contrÃŽle de connexion :', -'connection tracking' => 'Surveillance des connexions IPTables', +'connection tracking' => 'Surveillance des connexions iptables', 'connection type' => 'Type de Connexion', 'connection type is invalid' => 'Le type de connexion est non valide.', 'connections' => 'Connexions', @@ -1040,7 +1040,7 @@ 'iptable rules' => 'RÚgles IPTable', 'iptmangles' => 'Mangles IPTable', 'iptnats' => 'Traduction d'adresses réseaux IPTable', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Réglages ISDN supplémentaires :', 'isdn1' => 'ISDN unique', diff --git a/langs/fr/install/lang_fr.c b/langs/fr/install/lang_fr.c index 03fa9be..188e0fd 100644 --- a/langs/fr/install/lang_fr.c +++ b/langs/fr/install/lang_fr.c @@ -583,4 +583,10 @@ char *fr_tr[] = { "Erreur pendant le téléchargement!", /* TR_DHCP_FORCE_MTU */ "Force DHCP mtu:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl index 427dba6..43d76eb 100644 --- a/langs/nl/cgi-bin/nl.pl +++ b/langs/nl/cgi-bin/nl.pl @@ -553,7 +553,7 @@ 'connection closed' => 'Niet verbonden...', 'connection debugging' => 'Connectie debugging', 'connection status and controlc' => 'Verbindingsstatus en controle:', -'connection tracking' => 'IPTables verbindingen volgen', +'connection tracking' => 'iptables verbindingen volgen', 'connection type' => 'Verbindingstype', 'connection type is invalid' => 'Verbindingstype is ongeldig.', 'connections' => 'Verbindingen', @@ -1099,7 +1099,7 @@ 'iptable rules' => 'IPTable regels', 'iptmangles' => 'IPTable Mangles', 'iptnats' => 'IPTable Network Adrestranslatie', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Extra ISDN instellingen:', 'isdn1' => 'Single ISDN', diff --git a/langs/nl/install/lang_nl.c b/langs/nl/install/lang_nl.c index b9a8ec4..aa0fa2f 100644 --- a/langs/nl/install/lang_nl.c +++ b/langs/nl/install/lang_nl.c @@ -587,4 +587,10 @@ char *nl_tr[] = { "Fout tijdens downloaden!", /* TR_DHCP_FORCE_MTU */ "Forceer DHCP mtu:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/pl/cgi-bin/pl.pl b/langs/pl/cgi-bin/pl.pl index 19f68e4..80da6d6 100644 --- a/langs/pl/cgi-bin/pl.pl +++ b/langs/pl/cgi-bin/pl.pl @@ -513,7 +513,7 @@ 'connection closed' => 'Brak poÅÄ czenia...', 'connection debugging' => 'Debugowanie poÅÄ czenia', 'connection status and controlc' => 'Stan i kontrola poÅÄ czenia:', -'connection tracking' => 'Åledzenie poÅÄ czeÅ IPTables', +'connection tracking' => 'Åledzenie poÅÄ czeÅ iptables', 'connection type' => 'Rodzaj poÅÄ czenia', 'connection type is invalid' => 'NieprawidÅowy rodzaj poÅÄ czenia.', 'connections' => 'PoÅÄ czenia', @@ -1048,7 +1048,7 @@ 'iptable rules' => 'ReguÅy IPTable', 'iptmangles' => 'IPTable Mangles', 'iptnats' => 'IPTable Network Address Translation', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Dodatkowe ustawienia ISDN:', 'isdn1' => 'Pojedynczy ISDN', diff --git a/langs/pl/install/lang_pl.c b/langs/pl/install/lang_pl.c index eb428d5..dddf551 100644 --- a/langs/pl/install/lang_pl.c +++ b/langs/pl/install/lang_pl.c @@ -583,4 +583,10 @@ char *pl_tr[] = { "BÅÄ d podczas pobierania!", /* TR_DHCP_FORCE_MTU */ "WymuÅ mtu DHCP:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/ru/cgi-bin/ru.pl b/langs/ru/cgi-bin/ru.pl index 69c4599..c1729b8 100644 --- a/langs/ru/cgi-bin/ru.pl +++ b/langs/ru/cgi-bin/ru.pl @@ -511,7 +511,7 @@ 'connection closed' => 'Ðе пПЎклÑÑÑÐœ...', 'connection debugging' => 'Connection debugging', 'connection status and controlc' => 'СÑаÑÑÑ Ðž ÑпÑавлеМОе пПЎклÑÑеМОÑЌО:', -'connection tracking' => 'ÐÑПÑЌПÑÑ ÑПеЎОМеМОй ÑеÑез IPTables', +'connection tracking' => 'ÐÑПÑЌПÑÑ ÑПеЎОМеМОй ÑеÑез iptables', 'connection type' => 'Connection Type', 'connection type is invalid' => 'Connection type is invalid.', 'connections' => 'СПеЎОМеМОÑ', @@ -1041,7 +1041,7 @@ 'iptable rules' => 'IPTable rules', 'iptmangles' => 'IPTable Mangles', 'iptnats' => 'IPTable Network Address Translation', -'ipts' => 'IPTables', +'ipts' => 'iptables', 'isdn' => 'ISDN', 'isdn settings' => 'Additional ISDN settings:', 'isdn1' => 'Single ISDN', diff --git a/langs/ru/install/lang_ru.c b/langs/ru/install/lang_ru.c index 1e96b61..40293a2 100644 --- a/langs/ru/install/lang_ru.c +++ b/langs/ru/install/lang_ru.c @@ -581,4 +581,10 @@ char *ru_tr[] = { "ÐП вÑÐµÐŒÑ Ð·Ð°Ð³ÑÑзкО пÑПОзПÑла ПÑОбка!", /* TR_DHCP_FORCE_MTU */ "ЀПÑÑОÑПваÑÑ DHCP mtu:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/langs/tr/install/lang_tr.c b/langs/tr/install/lang_tr.c index 3a959b7..3131dd1 100644 --- a/langs/tr/install/lang_tr.c +++ b/langs/tr/install/lang_tr.c @@ -587,4 +587,10 @@ char *tr_tr[] = { "Ä°ndirirken hata!", /* TR_DHCP_FORCE_MTU */ "DHCP mtu zorla:", +/* TR_IDENTIFY */ +"Identify", +/* TR_IDENTIFY_SHOULD_BLINK */ +"Selected port should blink now ...", +/* TR_IDENTIFY_NOT_SUPPORTED */ +"Function is not supported by this port.", }; diff --git a/lfs/Net_SSLeay b/lfs/Net_SSLeay index 7c12d2c..e807e0d 100644 --- a/lfs/Net_SSLeay +++ b/lfs/Net_SSLeay @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.36 +VER = 1.55
THISAPP = Net-SSLeay-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 54061638720dd6a325395331c77f21d8 +$(DL_FILE)_MD5 = 473b8d66ca69d5784bb0e428721f58e0
install : $(TARGET)
@@ -70,9 +70,12 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && sed -i "s%,'y'%,'n'%" Makefile.PL cd $(DIR_APP) && yes 'n' | perl Makefile.PL + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/apache2 b/lfs/apache2 index f50332b..50c94a6 100644 --- a/lfs/apache2 +++ b/lfs/apache2 @@ -98,9 +98,10 @@ ifeq "$(PASS)" "C" chmod -R 755 /srv/web/ipfire/cgi-bin chmod -R 644 /srv/web/ipfire/html chmod 755 /srv/web/ipfire/html /srv/web/ipfire/html/{index.cgi,redirect.cgi,dial.cgi,images,include,themes,themes/*,themes/*/*} + ln -svf ipfire /srv/web/ipfire/html/themes/ipfire-rounded
- # Reset permissions of redirect templates directories - find /srv/web/ipfire/html/redirect-templates -type d | xargs chmod -v 755 + # Reset permissions of redirect templates and theme directories + find /srv/web/ipfire/html/{redirect-templates,themes} -type d | xargs chmod -v 755 else @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 -i $(DIR_DL)/httpd-2.2.2-config-1.patch diff --git a/lfs/as86 b/lfs/as86 deleted file mode 100644 index 0acc340..0000000 --- a/lfs/as86 +++ /dev/null @@ -1,77 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0.16.17 - -THISAPP = as86-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -SUP_ARCH = i586 - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 69bca69aec7a272362bc9e050d289d12 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/binutils b/lfs/binutils index 791483f..08bc7c9 100644 --- a/lfs/binutils +++ b/lfs/binutils @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -114,6 +114,12 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/binutils-2.22-pt-pax-flags-20111121.patch + + # texinfo 5 syntax-fix. + cd $(DIR_APP) && sed -i -e "s/@colophon/@@colophon/" \ + -e "s/doc@cygnus/doc@@cygnus/" bfd/doc/bfd.texinfo + @mkdir $(DIR_SRC)/binutils-build
# Prevent installing libiberty to lib64. diff --git a/lfs/bluetooth b/lfs/bluetooth index 33e126c..dc5eec7 100644 --- a/lfs/bluetooth +++ b/lfs/bluetooth @@ -109,6 +109,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_SRC)/bluez-hcidump-1.42 && make $(MAKETUNING) cd $(DIR_SRC)/bluez-hcidump-1.42 && make install mv -f /etc/udev/bluetooth.rules /lib/udev/rules.d/24-bluetooth.rules + # Patch udev rules for new udev version + sed -i -e "s/SYSFS{/ATTRS{/g" /lib/udev/rules.d/24-bluetooth.rules + sed -i -e "s/BUS==/SUBSYSTEMS==/g" /lib/udev/rules.d/24-bluetooth.rules # Change bluetooth peername to Hostname-devicenumber sed -i -e 's|name "BlueZ (%d)";|name "%h-%d";|g' /etc/bluetooth/hcid.conf # Create empty config files diff --git a/lfs/bridge-utils b/lfs/bridge-utils index 7ada05d..c7bc8a8 100644 --- a/lfs/bridge-utils +++ b/lfs/bridge-utils @@ -70,6 +70,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bridge-utils-1.5-compile-fix-1.patch + cd $(DIR_APP) && find . -name Makefile.in | xargs sed -i -e "s/^KERNEL_HEADERS/#&/g" cd $(DIR_APP) && autoreconf -vfi cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) diff --git a/lfs/cdrom b/lfs/cdrom index ede343e..5a85002 100644 --- a/lfs/cdrom +++ b/lfs/cdrom @@ -52,6 +52,10 @@ md5 : ###############################################################################
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + # Update /etc/system-release, because the string might have changed + # since stage2 has been executed.. + echo "$(SYSTEM_RELEASE)" > /etc/system-release + rm -rf /install/cdrom /tmp/* mkdir -p /install/cdrom/doc
@@ -113,4 +117,5 @@ else cd /install/cdrom && mkisofs -J -r -V "$(NAME)_$(VERSION)" \ -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table \ -c boot/isolinux/boot.catalog . > /install/images/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso + isohybrid /install/images/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso endif diff --git a/lfs/clamav b/lfs/clamav index bae350c..51febd9 100644 --- a/lfs/clamav +++ b/lfs/clamav @@ -24,7 +24,7 @@
include Config
-VER = 0.97.8 +VER = 0.98
THISAPP = clamav-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,10 +32,14 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = clamav -PAK_VER = 22 +PAK_VER = 23
DEPS = ""
+ifeq "$(MACHINE_TYPE)" "arm" +CONFIGURE_FLAGS = --disable-fanotify +endif + ############################################################################### # Top-level Rules ############################################################################### @@ -44,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ac52bcbad3ea72eac08fedb9772f648b +$(DL_FILE)_MD5 = ca0b8c930efcb8be1d47592d268006c5
install : $(TARGET)
@@ -77,7 +81,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/var/ipfire/clamav + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --sysconfdir=/var/ipfire/clamav \ + $(CONFIGURE_FLAGS) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install mkdir -p /usr/share/clamav/ @@ -86,5 +93,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) rm -rfv /usr/share/clamav/*.cvd mkdir -p /var/run/clamav chown clamav:clamav /var/run/clamav + + # Disable PaX mprotect for clamd and freshclam + paxctl -cm /usr/sbin/clamd + paxctl -cm /usr/bin/freshclam + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/configroot b/lfs/configroot index 1260ceb..98e7af3 100644 --- a/lfs/configroot +++ b/lfs/configroot @@ -50,59 +50,65 @@ $(TARGET) : @$(PREBUILD)
# Create all directories - for i in addon-lang auth backup ca certs connscheduler crls ddns dhcp dhcpc dmzholes dns dnsforward \ - ethernet extrahd/bin fwlogs isdn key langs logging mac main menu.d modem net-traffic \ - net-traffic/templates nfs optionsfw outgoing/bin outgoing/groups outgoing/groups/ipgroups \ - outgoing/groups/macgroups ovpn patches pakfire portfw ppp private proxy/advanced/cre \ + for i in addon-lang auth backup ca certs connscheduler crls ddns dhcp dhcpc dns dnsforward \ + ethernet extrahd/bin fwlogs fwhosts firewall firewall/bin isdn key langs logging mac main \ + menu.d modem net-traffic net-traffic/templates nfs optionsfw \ + ovpn patches pakfire portfw ppp private proxy/advanced/cre \ proxy/calamaris/bin qos/bin red remote sensors snort time tripwire/report \ updatexlrator/bin updatexlrator/autocheck urlfilter/autoupdate urlfilter/bin upnp vpn \ - wakeonlan wireless xtaccess ; do \ + wakeonlan wireless ; do \ mkdir -p $(CONFIG_ROOT)/$$i; \ done
# Touch empty files for i in auth/users backup/include.user backup/exclude.user \ certs/index.txt ddns/config ddns/noipsettings ddns/settings ddns/ipcache dhcp/settings \ - dhcp/fixleases dhcp/advoptions dhcp/dhcpd.conf.local dmzholes/config dns/settings dnsforward/config ethernet/aliases ethernet/settings ethernet/known_nics ethernet/scanned_nics \ - ethernet/wireless extrahd/scan extrahd/devices extrahd/partitions extrahd/settings fwlogs/ipsettings fwlogs/portsettings \ - isdn/settings mac/settings main/disable_nf_sip main/hosts main/routing main/settings net-traffic/settings optionsfw/settings outgoing/settings outgoing/rules \ + dhcp/fixleases dhcp/advoptions dhcp/dhcpd.conf.local dns/settings dnsforward/config ethernet/aliases ethernet/settings ethernet/known_nics ethernet/scanned_nics \ + ethernet/wireless extrahd/scan extrahd/devices extrahd/partitions extrahd/settings firewall/settings firewall/config firewall/input firewall/outgoing \ + fwhosts/customnetworks fwhosts/customhosts fwhosts/customgroups fwhosts/customservicegrp fwlogs/ipsettings fwlogs/portsettings \ + isdn/settings mac/settings main/disable_nf_sip main/hosts main/routing main/settings net-traffic/settings optionsfw/settings \ ovpn/ccd.conf ovpn/ccdroute ovpn/ccdroute2 pakfire/settings portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \ ppp/settings-5 ppp/settings proxy/settings proxy/squid.conf proxy/advanced/settings proxy/advanced/cre/enable remote/settings qos/settings qos/classes qos/subclasses qos/level7config qos/portconfig \ qos/tosconfig snort/settings tripwire/settings upnp/settings vpn/config vpn/settings vpn/ipsec.conf \ vpn/ipsec.secrets vpn/caconfig wakeonlan/clients.conf wireless/config wireless/settings; do \ - touch $(CONFIG_ROOT)/$$i; \ + touch $(CONFIG_ROOT)/$$i; \ done
# Copy initial configfiles cp $(DIR_SRC)/config/cfgroot/header.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/general-functions.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/lang.pl $(CONFIG_ROOT)/ - cp $(DIR_SRC)/config/cfgroot/countries.pl $(CONFIG_ROOT)/ + cp $(DIR_SRC)/config/cfgroot/countries.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/graphs.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/advoptions-list $(CONFIG_ROOT)/dhcp/advoptions-list cp $(DIR_SRC)/config/cfgroot/connscheduler-lib.pl $(CONFIG_ROOT)/connscheduler/lib.pl cp $(DIR_SRC)/config/cfgroot/connscheduler.conf $(CONFIG_ROOT)/connscheduler cp $(DIR_SRC)/config/extrahd/* $(CONFIG_ROOT)/extrahd/bin/ cp $(DIR_SRC)/config/cfgroot/sensors-settings $(CONFIG_ROOT)/sensors/settings - cp $(DIR_SRC)/config/menu/* $(CONFIG_ROOT)/menu.d/ + cp $(DIR_SRC)/config/menu/* $(CONFIG_ROOT)/menu.d/ cp $(DIR_SRC)/config/cfgroot/modem-defaults $(CONFIG_ROOT)/modem/defaults cp $(DIR_SRC)/config/cfgroot/modem-settings $(CONFIG_ROOT)/modem/settings cp $(DIR_SRC)/config/cfgroot/net-traffic-lib.pl $(CONFIG_ROOT)/net-traffic/net-traffic-lib.pl - cp $(DIR_SRC)/config/cfgroot/net-traffic-admin.pl $(CONFIG_ROOT)/net-traffic/net-traffic-admin.pl + cp $(DIR_SRC)/config/cfgroot/net-traffic-admin.pl $(CONFIG_ROOT)/net-traffic/net-traffic-admin.pl cp $(DIR_SRC)/config/cfgroot/nfs-server $(CONFIG_ROOT)/nfs/nfs-server - cp $(DIR_SRC)/config/cfgroot/p2protocols $(CONFIG_ROOT)/outgoing/p2protocols - cp $(DIR_SRC)/config/outgoingfw/outgoingfw.pl $(CONFIG_ROOT)/outgoing/bin/ - cp $(DIR_SRC)/config/outgoingfw/defaultservices $(CONFIG_ROOT)/outgoing/ cp $(DIR_SRC)/config/cfgroot/proxy-acl $(CONFIG_ROOT)/proxy/acl-1.4 - cp $(DIR_SRC)/config/qos/* $(CONFIG_ROOT)/qos/bin/ - cp $(DIR_SRC)/config/cfgroot/ssh-settings $(CONFIG_ROOT)/remote/settings - cp $(DIR_SRC)/config/cfgroot/xtaccess-config $(CONFIG_ROOT)/xtaccess/config + cp $(DIR_SRC)/config/qos/* $(CONFIG_ROOT)/qos/bin/ + cp $(DIR_SRC)/config/cfgroot/ssh-settings $(CONFIG_ROOT)/remote/settings cp $(DIR_SRC)/config/cfgroot/time-settings $(CONFIG_ROOT)/time/settings - cp $(DIR_SRC)/config/cfgroot/logging-settings $(CONFIG_ROOT)/logging/settings + cp $(DIR_SRC)/config/cfgroot/logging-settings $(CONFIG_ROOT)/logging/settings cp $(DIR_SRC)/config/cfgroot/useragents $(CONFIG_ROOT)/proxy/advanced cp $(DIR_SRC)/config/cfgroot/ethernet-vlans $(CONFIG_ROOT)/ethernet/vlans - cp $(DIR_SRC)/langs/list $(CONFIG_ROOT)/langs/ - + cp $(DIR_SRC)/langs/list $(CONFIG_ROOT)/langs/ + cp $(DIR_SRC)/config/firewall/rules.pl $(CONFIG_ROOT)/firewall/bin/rules.pl + cp $(DIR_SRC)/config/firewall/convert-xtaccess /usr/sbin/convert-xtaccess + cp $(DIR_SRC)/config/firewall/convert-outgoingfw /usr/sbin/convert-outgoingfw + cp $(DIR_SRC)/config/firewall/convert-dmz /usr/sbin/convert-dmz + cp $(DIR_SRC)/config/firewall/convert-portfw /usr/sbin/convert-portfw + cp $(DIR_SRC)/config/firewall/p2protocols $(CONFIG_ROOT)/firewall/p2protocols + cp $(DIR_SRC)/config/firewall/firewall-lib.pl $(CONFIG_ROOT)/firewall/bin/firewall-lib.pl + cp $(DIR_SRC)/config/firewall/firewall-policy /usr/sbin/firewall-policy + cp $(DIR_SRC)/config/fwhosts/icmp-types $(CONFIG_ROOT)/fwhosts/icmp-types + cp $(DIR_SRC)/config/fwhosts/customservices $(CONFIG_ROOT)/fwhosts/customservices # Oneliner configfiles echo "ENABLED=off" > $(CONFIG_ROOT)/vpn/settings echo "VPN_DELAYED_START=0" >>$(CONFIG_ROOT)/vpn/settings @@ -110,11 +116,29 @@ $(TARGET) : echo "nameserver 1.2.3.4" > $(CONFIG_ROOT)/ppp/fake-resolv.conf echo "DROPNEWNOTSYN=on" >> $(CONFIG_ROOT)/optionsfw/settings echo "DROPINPUT=on" >> $(CONFIG_ROOT)/optionsfw/settings - echo "DROPOUTPUT=on" >> $(CONFIG_ROOT)/optionsfw/settings - echo "DROPINPUT=on" >> $(CONFIG_ROOT)/optionsfw/settings - echo "DROPOUTPUT=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "DROPFORWARD=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "FWPOLICY=DROP" >> $(CONFIG_ROOT)/optionsfw/settings + echo "FWPOLICY1=DROP" >> $(CONFIG_ROOT)/optionsfw/settings + echo "FWPOLICY2=DROP" >> $(CONFIG_ROOT)/optionsfw/settings echo "DROPPORTSCAN=on" >> $(CONFIG_ROOT)/optionsfw/settings - + echo "DROPOUTGOING=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "DROPSAMBA=off" >> $(CONFIG_ROOT)/optionsfw/settings + echo "DROPPROXY=off" >> $(CONFIG_ROOT)/optionsfw/settings + echo "SHOWREMARK=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "SHOWCOLORS=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "SHOWTABLES=off" >> $(CONFIG_ROOT)/optionsfw/settings + echo "SHOWDROPDOWN=off" >> $(CONFIG_ROOT)/optionsfw/settings + echo "DROPWIRELESSINPUT=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "DROPWIRELESSFORWARD=on" >> $(CONFIG_ROOT)/optionsfw/settings + echo "POLICY=MODE2" >> $(CONFIG_ROOT)/firewall/settings + echo "POLICY1=MODE2" >> $(CONFIG_ROOT)/firewall/settings + + # set rules.pl executable + chmod 755 $(CONFIG_ROOT)/firewall/bin/rules.pl + + # set converters executable + chmod 755 /usr/sbin/convert-* + # Modify variables in header.pl sed -i -e "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" \ -e "s+VERSION+$(VERSION)+g" \ @@ -131,16 +155,14 @@ $(TARGET) :
# Language files cp $(DIR_SRC)/langs/*/cgi-bin/*.pl $(CONFIG_ROOT)/langs/ - + # Configroot permissions chown -R nobody:nobody $(CONFIG_ROOT) chown root:root $(CONFIG_ROOT) - for i in backup/ header.pl general-functions.pl lang.pl addon-lang/ langs/ red/ ; do \ + for i in backup/ header.pl general-functions.pl graphs.pl lang.pl addon-lang/ langs/ red/ ; do \ chown -R root:root $(CONFIG_ROOT)/$$i; \ done + chown -Rv root:root $(CONFIG_ROOT)/*/bin chown root:nobody $(CONFIG_ROOT)/dhcpc
- # Set outgoingfw.pl executable - chmod 755 $(CONFIG_ROOT)/outgoing/bin/outgoingfw.pl - @$(POSTBUILD) diff --git a/lfs/cpufrequtils b/lfs/cpufrequtils index 6e38b0a..f07e49d 100644 --- a/lfs/cpufrequtils +++ b/lfs/cpufrequtils @@ -37,6 +37,8 @@ PAK_VER = 6
DEPS = ""
+CFLAGS += -fno-PIC + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/cups b/lfs/cups index f182538..08b574b 100644 --- a/lfs/cups +++ b/lfs/cups @@ -24,7 +24,7 @@
include Config
-VER = 1.4.8 +VER = 1.7.0
THISAPP = cups-$(VER) DL_FILE = $(THISAPP)-source.tar.bz2 @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/cups-$(VER) TARGET = $(DIR_INFO)/$(THISAPP) PROG = cups -PAK_VER = 8 +PAK_VER = 9
DEPS = "ghostscript"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 0ec52d3f3c69bc2ab5ed70c594edbce6 +$(DL_FILE)_MD5 = 5ab496a2ce27017fcdb3d7ec4818a75a
install : $(TARGET)
@@ -77,12 +77,22 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --disable-nls --sysconfdir=/var/ipfire \ - --enable-libusb=no + cd $(DIR_APP) && \ + ./configure \ + --prefix=/usr \ + --sysconfdir=/var/ipfire \ + --localstatedir=/var \ + --enable-libusb \ + --disable-dbus \ + --disable-avahi + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install + cd $(DIR_APP) && ln -v -sf /usr/bin/smbspool /usr/lib/cups/backend/smb + install -v -m 754 $(DIR_SRC)/src/initscripts/init.d/cups /etc/rc.d/init.d cp -fv $(DIR_SRC)/config/cups/cupsd.conf /var/ipfire/cups/ + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/cyrus-sasl b/lfs/cyrus-sasl index 749011f..af2b148 100644 --- a/lfs/cyrus-sasl +++ b/lfs/cyrus-sasl @@ -84,7 +84,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cyrus-sasl-2.1.22-bad-elif.patch cd $(DIR_APP) && sed -i '/sasl_global/s/^static //' lib/client.c - cd $(DIR_APP) && sed -i 's/cat8/man8/' saslauthd/Makefile.in + cd $(DIR_APP) && sed -i 's/cat8/man8/' saslauthd/Makefile.am + cd $(DIR_APP) && autoconf
ifeq "$(PASS)" "" cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ diff --git a/lfs/dracut b/lfs/dracut index 0779a6b..7b0cd8a 100644 --- a/lfs/dracut +++ b/lfs/dracut @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -73,6 +73,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_lzma.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_remove_cdrom_wait.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_add_run_symlink.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dracut-006_remove_scsi_wait.patch
cd $(DIR_APP) && cp -vf $(DIR_SRC)/src/dracut/switch_root.c .
@@ -95,9 +97,10 @@ ifeq "$(MACHINE_TYPE)" "arm" # kirkwood kernel /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-kirkwood.img $(KVER)-ipfire-kirkwood cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-kirkwood.img uInit-ipfire-kirkwood - # omap kernel - /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-omap.img $(KVER)-ipfire-omap - cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-omap.img uInit-ipfire-omap + # arm7 multi kernel + /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-multi.img $(KVER)-ipfire-multi + cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-multi.img uInit-ipfire-multi +# cd /boot && cp -f ipfirerd-$(KVER)-multi.img zInit-ipfire-multi else /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER).img $(KVER)-ipfire endif diff --git a/lfs/eject b/lfs/eject deleted file mode 100644 index 8683194..0000000 --- a/lfs/eject +++ /dev/null @@ -1,77 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 2.1.5 - -THISAPP = eject-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/eject -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = b96a6d4263122f1711db12701d79f738 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/fetchmail b/lfs/fetchmail index 33b9f9c..66b9a65 100644 --- a/lfs/fetchmail +++ b/lfs/fetchmail @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,15 +24,15 @@
include Config
-VER = 6.3.16 +VER = 6.3.26
THISAPP = fetchmail-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = fetchmail -PAK_VER = 6 +PAK_VER = 7
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 1a40acb371376c7d54fe468c99dfc216 +$(DL_FILE)_MD5 = 61b66faad044afa26e142bb1791aa2b3
install : $(TARGET)
@@ -76,10 +76,15 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --with-ssl --disable-nls + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --with-ssl \ + --disable-nls + cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + echo "set logfile /var/log/fetchmail.log" > ~/.fetchmailrc echo "set no bouncemail" >> ~/.fetchmailrc echo "set postmaster root" >> ~/.fetchmailrc @@ -87,7 +92,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) echo "#poll SERVERNAME :" >> ~/.fetchmailrc echo "# user <username> pass <password>;" >> ~/.fetchmailrc echo "# mda "/usr/bin/procmail -f %F -d %T";" >> ~/.fetchmailrc + install -v -m 644 $(DIR_SRC)/config/backup/includes/fetchmail \ /var/ipfire/backup/addons/includes/fetchmail + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/ffmpeg b/lfs/ffmpeg index 0ee9c3e..e2df5cc 100644 --- a/lfs/ffmpeg +++ b/lfs/ffmpeg @@ -35,6 +35,9 @@ PAK_VER = 4
DEPS = "ffmpeg-libs sdl lame libvorbis xvid"
+# Don't use PIC for libavcodec +CFLAGS += -fno-PIC -fno-strict-aliasing + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/fireinfo b/lfs/fireinfo index 133111c..3da0101 100644 --- a/lfs/fireinfo +++ b/lfs/fireinfo @@ -70,11 +70,12 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && python setup.py build - cd $(DIR_APP) && python setup.py install + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo-2.1.7-testing.patch
- # Remove egg-info - rm -rvf /usr/lib/python*/site-packages/fireinfo*.egg-info + cd $(DIR_APP) && [ -x "configure" ] || sh ./autogen.sh + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install
@rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/flash-images b/lfs/flash-images index 36a343d..822124a 100644 --- a/lfs/flash-images +++ b/lfs/flash-images @@ -49,23 +49,38 @@ IMGinsts := /install/images/$(SNAME)-$(VERSION).1gb-ext4-scon.$(MACHINE)-full-co MNThdd := /install/harddisk IMGpart := /install/images/part_area IMGboot := /install/images/bootfs -# don't change SIZEboot this without checking Image size -SIZEboot := 64 IMGroot := /install/images/rootfs -SIZEroot := 600 + +# All sizes in blocks +ifeq "$(MACHINE_TYPE)" "arm" + S_OFFSET = 8192 + + # FAT32 + PART_TYPE = c +else + S_OFFSET = 32 + + # Logical + PART_TYPE = L +endif + +# /boot: 64MB - OFFSET +# / : 600MB +S_BOOT := $(shell echo $$(( 131072 - $(S_OFFSET) ))) +S_ROOT := 1228800
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) && mkdir -p $(MNThdd)
# Create first 32 sectors of image - dd bs=1k if=/dev/zero of=$(IMGpart) count=16 + dd if=/dev/zero of=$(IMGpart) bs=512 count=$(S_OFFSET)
# Create images for filesystems - dd bs=1K if=/dev/zero of=$(IMGboot) count=65520 # 64MB-16K - dd bs=1M if=/dev/zero of=$(IMGroot) count=$(SIZEroot) + dd if=/dev/zero of=$(IMGboot) bs=512 count=$(S_BOOT) + dd if=/dev/zero of=$(IMGroot) bs=512 count=$(S_ROOT)
# Format them -ifeq "$(MACHINE_TYPE)" "arm" +ifeq "$(PART_TYPE)" "c" mkfs.vfat $(IMGboot) else mkfs.ext2 -F $(IMGboot) @@ -86,7 +101,7 @@ endif # Install MLO and uboot first ifeq "$(MACHINE_TYPE)" "arm" cp -v /boot/MLO $(MNThdd)/boot/ - cp -v /boot/u-boot.bin $(MNThdd)/boot/ + cp -v /boot/u-boot.img $(MNThdd)/boot/ sync umount $(MNThdd)/boot mount -o loop $(IMGboot) $(MNThdd)/boot @@ -104,7 +119,7 @@ endif mount --bind /sys $(MNThdd)/sys chroot $(MNThdd) /usr/bin/perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" sed -i -e "s|DEVICE1|UUID=$$(blkid -sUUID $(IMGboot) | cut -d'"' -f2)|g" $(MNThdd)/etc/fstab -ifeq "$(MACHINE_TYPE)" "arm" +ifeq "$(PART_TYPE)" "c" # ARM flash images have a VFAT partition for /boot. sed -i -e "s|ext2|vfat|" $(MNThdd)/etc/fstab endif @@ -136,7 +151,7 @@ endif umount $(MNThdd)
# zerofree the ext2 images to get better compression -ifneq "$(MACHINE_TYPE)" "arm" +ifneq "$(PART_TYPE)" "c" zerofree $(IMGboot) -fsck.ext2 -f -y $(IMGboot) fsck.ext2 -f -y $(IMGboot) @@ -149,13 +164,8 @@ endif cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinst)
# Write Partition table -ifneq "$(MACHINE_TYPE)" "arm" - echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ - | sfdisk -D -uM -H 64 -S 32 $(IMGinst) -else - echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ - | sfdisk -D -uM -H 64 -S 32 $(IMGinst) -endif + echo -e "$(S_OFFSET),$(S_BOOT),$(PART_TYPE),*\n,0,0\n$$(( $(S_BOOT) + $(S_OFFSET) )),$(S_ROOT),L\n,0,0\n" \ + | sfdisk -D -uS -H 64 -S 32 $(IMGinst)
ifneq "$(MACHINE_TYPE)" "arm" # Install grub @@ -182,7 +192,7 @@ ifneq "$(MACHINE_TYPE)" "arm" sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" $(MNThdd)/boot/grub/grub.conf else sed -i -e "s| console=tty1 | console=ttyAMA0,115200n8 |g" $(MNThdd)/boot/cmdline.txt - sed -i -e "s| console=tty1 omapfb.mode=dvi:800x600MR-16@60 | console=ttyO2,115200n8 |g" $(MNThdd)/boot/boot.script + sed -i -e "s| console=tty1 | console=ttyO2,115200n8 |g" $(MNThdd)/boot/boot.script cd $(MNThdd)/boot && ./convert_bootscript endif
@@ -198,7 +208,7 @@ endif umount $(MNThdd)
# zerofree the ext3 images to get better compression -ifneq "$(MACHINE_TYPE)" "arm" +ifneq "$(PART_TYPE)" "c" zerofree $(IMGboot) -fsck.ext2 -f -y $(IMGboot) fsck.ext2 -f -y $(IMGboot) @@ -212,13 +222,8 @@ endif rm -vf $(IMGpart) $(IMGboot) $(IMGroot)
# Write Partition table -ifneq "$(MACHINE_TYPE)" "arm" - echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ - | sfdisk -D -uM -H 64 -S 32 $(IMGinsts) -else - echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ - | sfdisk -D -uM -H 64 -S 32 $(IMGinsts) -endif + echo -e "$(S_OFFSET),$(S_BOOT),$(PART_TYPE),*\n,0,0\n$$(( $(S_BOOT) + $(S_OFFSET) )),$(S_ROOT),L\n,0,0\n" \ + | sfdisk -D -uS -H 64 -S 32 $(IMGinsts)
ifneq "$(MACHINE_TYPE)" "arm" # Install grub diff --git a/lfs/foomatic b/lfs/foomatic index 712247f..15abf53 100644 --- a/lfs/foomatic +++ b/lfs/foomatic @@ -24,37 +24,41 @@
include Config
-DATE = 20070813 -VER = 3.0-20070813 +VER = 4.0.9 +VER_DB = 4.0-$(DATE) +VER_FILTERS = 4.0.17 +DATE = 20131023
THISAPP = foomatic-$(VER) -DL_FILE = foomatic-filters-$(VER).tar.gz +DL_FILE = foomatic-filters-$(VER_FILTERS).tar.gz DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/foomatic-filters-$(VER) +DIR_APP = $(DIR_SRC)/foomatic-filters-$(VER_FILTERS) TARGET = $(DIR_INFO)/$(THISAPP) PROG = foomatic -PAK_VER = 1 +PAK_VER = 2
DEPS = "cups ghostscript libtiff hplip"
+export LIB_CUPS=/usr/lib/cups +export CUPS_BACKENDS=/usr/lib/cups/backends +export CUPS_FILTERS=/usr/lib/cups/filters +export CUPS_PPDS=/usr/share/cups/model + ############################################################################### # Top-level Rules ###############################################################################
objects = $(DL_FILE) \ - foomatic-db-$(DATE).tar.gz \ - foomatic-db-engine-$(VER).tar.gz \ - foomatic-db-hpijs-$(DATE).tar.gz + foomatic-db-$(VER_DB).tar.gz \ + foomatic-db-engine-$(VER).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -foomatic-db-$(DATE).tar.gz = $(DL_FROM)/foomatic-db-$(DATE).tar.gz +foomatic-db-$(VER_DB).tar.gz = $(DL_FROM)/foomatic-db-$(VER_DB).tar.gz foomatic-db-engine-$(VER).tar.gz = $(DL_FROM)/foomatic-db-engine-$(VER).tar.gz -foomatic-db-hpijs-$(DATE).tar.gz = $(DL_FROM)/foomatic-db-hpijs-$(DATE).tar.gz
-$(DL_FILE)_MD5 = 41de0f45866ab4c19c1d5e3e2cdab42f -foomatic-db-$(DATE).tar.gz_MD5 = a3ab04b7cc5d870b040ffce19e664698 -foomatic-db-engine-$(VER).tar.gz_MD5 = ec9639719a9c1d4095248e534c3f2d0d -foomatic-db-hpijs-$(DATE).tar.gz_MD5 = e59fa189336e96a9d43cfcfb6222a9c2 +$(DL_FILE)_MD5 = b05f5dcbfe359f198eef3df5b283d896 +foomatic-db-$(VER_DB).tar.gz_MD5 = ffe38b354cb06a1f3d5e3b01b7e58b0e +foomatic-db-engine-$(VER).tar.gz_MD5 = 5b33c1adb21e7b6f3652e9a18d0e6f4e
install : $(TARGET)
@@ -86,11 +90,10 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_SRC)/foomatic-* /usr/share/foomatic && cd $(DIR_SRC) && \ + @rm -rf $(DIR_SRC)/foomatic-* && cd $(DIR_SRC) && \ tar zxf $(DIR_DL)/$(DL_FILE) && \ - tar zxf $(DIR_DL)/foomatic-db-$(DATE).tar.gz && \ - tar zxf $(DIR_DL)/foomatic-db-engine-$(VER).tar.gz && \ - tar zxf $(DIR_DL)/foomatic-db-hpijs-$(DATE).tar.gz + tar zxf $(DIR_DL)/foomatic-db-$(VER_DB).tar.gz && \ + tar zxf $(DIR_DL)/foomatic-db-engine-$(VER).tar.gz cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @@ -100,8 +103,20 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_SRC)/foomatic-db-engine-$(VER) && ./configure --prefix=/usr --sysconfdir=/etc cd $(DIR_SRC)/foomatic-db-engine-$(VER) && make $(MAKETUNING) cd $(DIR_SRC)/foomatic-db-engine-$(VER) && make install - cd $(DIR_SRC)/foomatic-db-hpijs-$(DATE) && ./configure --prefix=/usr --sysconfdir=/etc - cd $(DIR_SRC)/foomatic-db-hpijs-$(DATE) && make $(MAKETUNING) - cd $(DIR_SRC)/foomatic-db-hpijs-$(DATE) && make install + + # Remove unwanted files + rm -rfv /usr/lib/ppr \ + /etc/foomatic/filter.conf.sample \ + /usr/share/foomatic/templates + + -mkdir -pv /var/cache/foomatic + + -mkdir -pv /etc/foomatic + echo "cups" > /etc/foomatic/defaultspooler + + -mkdir -pv /usr/lib/cups/filter + ln -svf ../../../bin/foomatic-rip /usr/lib/cups/filter/foomatic-rip + ln -svf ../../../bin/foomatic-ppdfile /usr/lib/cups/filter/foomatic-ppdfile + @rm -rf $(DIR_SRC)/foomatic-* @$(POSTBUILD) diff --git a/lfs/fstrim b/lfs/fstrim deleted file mode 100644 index 451af5a..0000000 --- a/lfs/fstrim +++ /dev/null @@ -1,78 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0.2 - -THISAPP = fstrim-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/fstrim -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 1a217ae44b12ae7538f922f495b8da31 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_APP) && install -m 0755 fstrim /usr/bin - # Install cronjob - install -m 0755 $(DIR_SRC)/config/fstrim/trim /etc/fcron.daily - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/gcc b/lfs/gcc index 0bdecda..0264d37 100644 --- a/lfs/gcc +++ b/lfs/gcc @@ -97,6 +97,9 @@ else EXTRA_MAKE = EXTRA_INSTALL = endif + + # Disable stack protection in toolchain. + CFLAGS += -fno-stack-protector endif
ifeq "$(MACHINE_TYPE)" "arm" @@ -177,6 +180,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh610785.patch cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-unwind-debug-hook.patch
+ # texinfo 5 syntax-fixes + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gcc-4.4.7-texinfo-5.patch + ifneq "$(ROOT)" "" # Build gmp and mpfr internally in toolchain. cd $(DIR_APP) && tar xfa $(DIR_DL)/gmp-$(GMP_VER).tar.bz2 diff --git a/lfs/git b/lfs/git index 615c5b4..23838e4 100644 --- a/lfs/git +++ b/lfs/git @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team info@ipfire.org # +# Copyright (C) 2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.8.1 +VER = 1.8.5.2
THISAPP = git-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = git -PAK_VER = 9 +PAK_VER = 10
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = a2c6f4404c5e432b47474d246ca83c7e +$(DL_FILE)_MD5 = df8519044f9880f3687d863d99245282
install : $(TARGET)
@@ -77,8 +77,11 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && ./configure \ + --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/glibc b/lfs/glibc index ccbdb31..b09fcd6 100644 --- a/lfs/glibc +++ b/lfs/glibc @@ -227,13 +227,37 @@ endif cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh795498.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-1.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-2.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804630.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804686.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804689.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh806404.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808337.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808545.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh809602.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh833716.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837026.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh809726.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh823909.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh826149.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh827362.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh830127.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh832516.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh832694.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh833717.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837695.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837918.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh841787.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh843673.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh846342.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh847932.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh848082.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh849203.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh849651.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh852445.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh861167.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh863453.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh864322.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh929388.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh970992.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh989558.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh989558-2.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-resolv-stack_chk_fail.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-remove-ctors-dtors-output-sections.patch @@ -257,8 +281,21 @@ endif cd $(DIR_SRC)/glibc-build && \ CFLAGS="$(CFLAGS) -fno-asynchronous-unwind-tables" \ $(DIR_APP)/configure $(EXTRA_CONFIG) + + sed -i $(DIR_SRC)/glibc-build/config.make \ + -e "s/^build-pic-default=.*/build-pic-default=yes/" + + # Build the glibc libraries without stack protection (as this is not supported) + echo "build-programs=no" >> $(DIR_SRC)/glibc-build/configparms + cd $(DIR_SRC)/glibc-build && make PARALLELMFLAGS=$(MAKETUNING) \ + CFLAGS="$(CFLAGS) -fno-stack-protector -U_FORTIFY_SOURCE" \ + CXXFLAGS="$(CXXFLAGS) -fno-stack-protector -U_FORTIFY_SOURCE" + + # Build the programs with hardening + : > $(DIR_SRC)/glibc-build/configparms cd $(DIR_SRC)/glibc-build && make PARALLELMFLAGS=$(MAKETUNING) \ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" + cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install
ifeq "$(ROOT)" "" diff --git a/lfs/grub b/lfs/grub index 6850a3a..2b0544b 100644 --- a/lfs/grub +++ b/lfs/grub @@ -95,5 +95,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # generate default file grub-set-default 0
+ # Disable PaX mprotect for grub + paxctl -m /usr/sbin/grub + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/guardian b/lfs/guardian index fea50db..a91fbd9 100644 --- a/lfs/guardian +++ b/lfs/guardian @@ -30,7 +30,7 @@ THISAPP = guardian-$(VER) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = guardian -PAK_VER = 8 +PAK_VER = 9
DEPS = ""
diff --git a/lfs/gutenprint b/lfs/gutenprint index a1bc343..1124a3f 100644 --- a/lfs/gutenprint +++ b/lfs/gutenprint @@ -24,7 +24,7 @@
include Config
-VER = 5.2.5 +VER = 5.2.9
THISAPP = gutenprint-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = gutenprint -PAK_VER = 2 +PAK_VER = 3
DEPS = "cups"
@@ -44,7 +44,8 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 10a0a9fac081d8116ec5ed47fbc1591c +$(DL_FILE)_MD5 = aefbec27b96dd404d9ac9811e17d58ce + install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects)) diff --git a/lfs/hostapd b/lfs/hostapd index ff02a19..9e01b06 100644 --- a/lfs/hostapd +++ b/lfs/hostapd @@ -77,10 +77,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/hostapd-usb_hw_did_not_ack.patch - -cp /usr/src/linux/include/linux/genetlink.h /usr/include/linux/ - -cp /usr/src/linux/include/linux/netfilter/nfnetlink.h /usr/include/linux/netfilter/ - -cp /usr/src/linux/include/linux/netfilter/nfnetlink_compat.h /usr/include/linux/netfilter/ cd $(DIR_APP)/hostapd && cp $(DIR_SRC)/config/hostapd/config ./.config cd $(DIR_APP)/hostapd && sed -e "s@/usr/local@/usr@g" -i Makefile cd $(DIR_APP)/hostapd && make $(MAKETUNING) $(EXTRA_MAKE) diff --git a/lfs/imspector b/lfs/imspector index 51654c5..5cea872 100644 --- a/lfs/imspector +++ b/lfs/imspector @@ -29,10 +29,10 @@ VER = 20101008 THISAPP = imspector-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) +DIR_APP = $(DIR_SRC)/imspector TARGET = $(DIR_INFO)/$(THISAPP) PROG = imspector -PAK_VER = 2 +PAK_VER = 3
DEPS = ""
@@ -77,13 +77,19 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/imspector-20101008-ssl.patch cd $(DIR_SRC)/imspector && sed -e "s/^SSL_LIBS.*/& -lcrypto/" -i Makefile cd $(DIR_SRC)/imspector && make install + -mv /usr/etc/imspector /etc/imspector -mv /etc/imspector/imspector /etc/imspector + install -v -m 755 $(DIR_CONF)/imspector/imspector.conf /etc/imspector.conf install -v -m 644 $(DIR_SRC)/config/backup/includes/imspector /var/ipfire/backup/addons/includes/imspector + chmod 755 /srv/web/ipfire/cgi-bin/imspector.cgi chown nobody:nobody -R /var/log/imspector + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/initrd b/lfs/initrd index 56e1967..cc16956 100644 --- a/lfs/initrd +++ b/lfs/initrd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -88,8 +88,6 @@ $(TARGET) :
#Build Module deps for installer. depmod -a -b /install/initrd/ -F /boot/System.map-$(KVER)-ipfire $(KVER)-ipfire - # Remove binary depmod files - rm -rf /install/initrd/lib/modules/$(KVER)-ipfire/modules.*.bin
#Name service from dhcpcd cp -f /etc/nsswitch.conf /install/initrd/etc/ diff --git a/lfs/initscripts b/lfs/initscripts index 6549147..eae451b 100644 --- a/lfs/initscripts +++ b/lfs/initscripts @@ -179,20 +179,15 @@ $(TARGET) :
ln -sf ../../dnsmasq /etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq ln -sf ../../firewall /etc/rc.d/init.d/networking/red.up/20-RL-firewall - ln -sf ../../../../../usr/local/bin/outgoingfwctrl \ - /etc/rc.d/init.d/networking/red.up/22-outgoingfwctrl + ln -sf ../../../../../usr/local/bin/firewallctrl \ + /etc/rc.d/init.d/networking/red.up/22-forwardfwctrl ln -sf ../../../../../usr/local/bin/snortctrl \ /etc/rc.d/init.d/networking/red.up/23-RS-snort ln -sf ../../../../../usr/local/bin/qosctrl \ /etc/rc.d/init.d/networking/red.up/24-RS-qos - ln -sf ../../../../../usr/local/bin/setportfw \ - /etc/rc.d/init.d/networking/red.up/25-portfw - ln -sf ../../../../../usr/local/bin/setxtaccess \ - /etc/rc.d/init.d/networking/red.up/26-xtaccess ln -sf ../../../../../usr/local/bin/dialctrl.pl \ /etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl ln -sf ../../squid /etc/rc.d/init.d/networking/red.up/27-RS-squid - ln -sf ../../dnsmasq /etc/rc.d/init.d/networking/red.down/05-RS-dnsmasq ln -sf ../../firewall /etc/rc.d/init.d/networking/red.down/20-RL-firewall ln -sf ../../../../../usr/local/bin/dialctrl.pl \ diff --git a/lfs/iotop b/lfs/iotop new file mode 100644 index 0000000..fd0002b --- /dev/null +++ b/lfs/iotop @@ -0,0 +1,82 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.6 + +THISAPP = iotop-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +PROG = iotop +PAK_VER = 1 +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 080fbb494566b5291a2a27cf6c203562 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + $(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && python setup.py install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/iptables b/lfs/iptables index a247ba7..5a1764b 100644 --- a/lfs/iptables +++ b/lfs/iptables @@ -24,7 +24,7 @@
include Config
-VER = 1.4.14 +VER = 1.4.21
THISAPP = iptables-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -38,21 +38,21 @@ TARGET = $(DIR_INFO)/$(THISAPP) objects = $(DL_FILE) \ netfilter-layer7-v2.22.tar.gz \ libnfnetlink-1.0.0.tar.bz2 \ - libnetfilter_queue-0.0.17.tar.bz2 \ + libnetfilter_queue-1.0.1.tar.bz2 \ libnetfilter_conntrack-1.0.2.tar.bz2 \ libnetfilter_cttimeout-1.0.0.tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz libnfnetlink-1.0.0.tar.bz2 = $(URL_IPFIRE)/libnfnetlink-1.0.0.tar.bz2 -libnetfilter_queue-0.0.17.tar.bz2 = $(URL_IPFIRE)/libnetfilter_queue-0.0.17.tar.bz2 +libnetfilter_queue-1.0.1.tar.bz2 = $(URL_IPFIRE)/libnetfilter_queue-1.0.1.tar.bz2 libnetfilter_conntrack-1.0.2.tar.bz2 = $(URL_IPFIRE)/libnetfilter_conntrack-1.0.2.tar.bz2 libnetfilter_cttimeout-1.0.0.tar.bz2 = $(URL_IPFIRE)/libnetfilter_cttimeout-1.0.0.tar.bz2
-$(DL_FILE)_MD5 = 5ab24ad683f76689cfe7e0c73f44855d +$(DL_FILE)_MD5 = 536d048c8e8eeebcd9757d0863ebb0c0 netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f libnfnetlink-1.0.0.tar.bz2_MD5 = 016fdec8389242615024c529acc1adb8 -libnetfilter_queue-0.0.17.tar.bz2_MD5 = 2cde35e678ead3a8f9eb896bf807a159 +libnetfilter_queue-1.0.1.tar.bz2_MD5 = 08b968cb2d36c24deb7f26a69f5d8602 libnetfilter_conntrack-1.0.2.tar.bz2_MD5 = 447114b5d61bb9a9617ead3217c3d3ff libnetfilter_cttimeout-1.0.0.tar.bz2_MD5 = 7697437fc9ebb6f6b83df56a633db7f9
@@ -86,8 +86,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) $(DIR_SRC)/libnfnetlink-1.0.0 $(DIR_SRC)/netfilter-layer7* $(DIR_SRC)/libnetfilter_queue-0.0.17
@cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - -cd /usr/include && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.6-errorno_includes.patch - cp -rf /usr/src/linux/include/linux/netfilter /usr/include/linux +# cp -rf /usr/src/linux/include/linux/netfilter /usr/include/linux
# Layer7 cd $(DIR_SRC) && tar zxf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz @@ -99,7 +98,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
# imq cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.12-IMQ-test4.diff -# chmod +x $(DIR_APP)/extensions/.IMQ-test*
cd $(DIR_APP) && ./configure --prefix=/usr --with-ksource=/usr/src/linux \ --libdir=/lib --includedir=/usr/include --enable-libipq \ @@ -110,25 +108,25 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && make install
# Iptables doesn't install all headers - mkdir -p /usr/include/net/netfilter - cp -f $(DIR_APP)/include/net/netfilter/*.h /usr/include/net/netfilter/ - mkdir -p /usr/include/iptables - cp -f $(DIR_APP)/include/iptables/*.h /usr/include/iptables/ - cp -f $(DIR_APP)/include/iptables.h /usr/include/ - mkdir -p /usr/include/libipulog - cp -f $(DIR_APP)/include/libipulog/*.h /usr/include/libipulog/ - mkdir -p /usr/include/libiptc - cp -f $(DIR_APP)/include/libiptc/*.h /usr/include/libiptc/ +# mkdir -p /usr/include/net/netfilter +# cp -f $(DIR_APP)/include/net/netfilter/*.h /usr/include/net/netfilter/ +# mkdir -p /usr/include/iptables +# cp -f $(DIR_APP)/include/iptables/*.h /usr/include/iptables/ +# cp -f $(DIR_APP)/include/iptables.h /usr/include/ +# mkdir -p /usr/include/libipulog +# cp -f $(DIR_APP)/include/libipulog/*.h /usr/include/libipulog/ +# mkdir -p /usr/include/libiptc +# cp -f $(DIR_APP)/include/libiptc/*.h /usr/include/libiptc/
cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnfnetlink-1.0.0.tar.bz2 cd $(DIR_SRC)/libnfnetlink-1.0.0 && ./configure --prefix=/usr cd $(DIR_SRC)/libnfnetlink-1.0.0 && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_SRC)/libnfnetlink-1.0.0 && make install
- cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnetfilter_queue-0.0.17.tar.bz2 - cd $(DIR_SRC)/libnetfilter_queue-0.0.17 && ./configure --prefix=/usr - cd $(DIR_SRC)/libnetfilter_queue-0.0.17 && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_SRC)/libnetfilter_queue-0.0.17 && make install + cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnetfilter_queue-1.0.1.tar.bz2 + cd $(DIR_SRC)/libnetfilter_queue-1.0.1 && ./configure --prefix=/usr + cd $(DIR_SRC)/libnetfilter_queue-1.0.1 && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_SRC)/libnetfilter_queue-1.0.1 && make install
cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnetfilter_conntrack-1.0.2.tar.bz2 cd $(DIR_SRC)/libnetfilter_conntrack-1.0.2 && ./configure --prefix=/usr diff --git a/lfs/iw b/lfs/iw index 6a6627f..e55bc5c 100644 --- a/lfs/iw +++ b/lfs/iw @@ -24,7 +24,7 @@
include Config
-VER = 3.8 +VER = 3.10
THISAPP = iw-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 2aae163b7c3b581b7d94f34a5d3e47d8 +$(DL_FILE)_MD5 = 07219ad06535bc270f7a8873aba6d5fa
install : $(TARGET)
@@ -70,7 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && CFLAGS+=-I/usr/src/linux/include make $(MAKETUNING) + cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/jquery b/lfs/jquery new file mode 100644 index 0000000..7856ce0 --- /dev/null +++ b/lfs/jquery @@ -0,0 +1,76 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.10.2 + +THISAPP = jquery-$(VER) +DL_FILE = $(THISAPP).min.js +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 628072e7212db1e8cdacb22b21752cda + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + + -mkdir -pv /srv/web/ipfire/html/include + install -v -m 644 $(DIR_DL)/$(DL_FILE) /srv/web/ipfire/html/include/jquery.js + + @$(POSTBUILD) diff --git a/lfs/keepalived b/lfs/keepalived index 1891751..28b7ed8 100644 --- a/lfs/keepalived +++ b/lfs/keepalived @@ -77,7 +77,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc + cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ + --with-kernel-dir=/usr/include cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install
diff --git a/lfs/kmod b/lfs/kmod new file mode 100644 index 0000000..dc2dc10 --- /dev/null +++ b/lfs/kmod @@ -0,0 +1,94 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 13 + +THISAPP = kmod-$(VER) +DL_FILE = $(THISAPP).tar.xz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = d5aba43b9370cd52f3cb35e82a1aa595 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --bindir=/bin \ + --sysconfdir=/etc \ + --enable-zlib \ + --disable-manpages + +# --libdir=/lib \ + + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + + # Create symlinks + ln -svf ../bin/kmod /sbin/modprobe + ln -svf ../bin/kmod /sbin/modinfo + ln -svf ../bin/kmod /sbin/insmod + ln -svf ../bin/kmod /sbin/rmmod + ln -svf ../bin/kmod /sbin/depmod + ln -svf ../bin/kmod /sbin/lsmod + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/libnl b/lfs/libnl index ea557d9..a357935 100644 --- a/lfs/libnl +++ b/lfs/libnl @@ -24,7 +24,7 @@
include Config
-VER = 1.1 +VER = 1.1.4
THISAPP = libnl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ae970ccd9144e132b68664f98e7ceeb1 +$(DL_FILE)_MD5 = 580cb878be536804daca87fb75ae46cc
install : $(TARGET)
@@ -73,13 +73,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libnl-1.1-ULONG_MAX.patch - cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/if_vlan.h \ - include/linux/if_vlan.h - cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/netfilter/nf_conntrack_common.h \ - include/linux/netfilter/nf_conntrack_common.h - cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/netfilter/nf_conntrack_tcp.h \ - include/linux/netfilter/nf_conntrack_tcp.h cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/libusbx b/lfs/libusbx new file mode 100644 index 0000000..167b945 --- /dev/null +++ b/lfs/libusbx @@ -0,0 +1,78 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.0.11 + +THISAPP = libusbx-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 9aaab6aee72f65900cc731ecbffb4cf4 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr \ + --enable-examples-build + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/libxml2 b/lfs/libxml2 index 08ea864..4a25c4c 100644 --- a/lfs/libxml2 +++ b/lfs/libxml2 @@ -24,7 +24,7 @@
include Config
-VER = 2.6.26 +VER = 2.6.32
THISAPP = libxml2-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,6 +32,8 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)
+CFLAGS += -fno-strict-aliasing + ############################################################################### # Top-level Rules ############################################################################### @@ -40,7 +42,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 2d8d3805041edab967368b497642f981 +$(DL_FILE)_MD5 = 2621d322c16f0257e30f0ff2b13384de
install : $(TARGET)
diff --git a/lfs/linux b/lfs/linux index 094f09e..560be5d 100644 --- a/lfs/linux +++ b/lfs/linux @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,9 +24,10 @@
include Config
-VER = 3.2.48 +VER = 3.10.26
-RPI_PATCHES = linux-3.2.27-ada8b44 +RPI_PATCHES = linux-3.10.10-grsec-c1af7c6 +GRS_PATCHES = grsecurity-2.9.1-3.10.26-ipfire1.patch.xz
THISAPP = linux-$(VER) DL_FILE = linux-$(VER).tar.xz @@ -35,7 +36,7 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) CFLAGS = CXXFLAGS =
-PAK_VER = 30 +PAK_VER = 31 DEPS = ""
VERSUFIX=ipfire$(KCFG) @@ -65,15 +66,17 @@ endif # Top-level Rules ############################################################################### objects =$(DL_FILE) \ - rpi-patches-$(RPI_PATCHES).patch.xz + rpi-patches-$(RPI_PATCHES).patch.xz \ + $(GRS_PATCHES)
$(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz +$(GRS_PATCHES) = $(URL_IPFIRE)/$(GRS_PATCHES)
-$(DL_FILE)_MD5 = f560aa5fcf07e57ea0ca66fdfdb53ef1 -rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 966687ff27e450e04ff50e0da829dc00 - +$(DL_FILE)_MD5 = 9cdbcb3463b9753fafd97cddb38d1211 +rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = f55981853573236069db5ad9fb7a4bd9 +$(GRS_PATCHES)_MD5 = 1516189415141aa55eacb0a078e8909c
install : $(TARGET)
@@ -109,38 +112,88 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) ln -svf linux-$(VER) $(DIR_SRC)/linux
# Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-imq.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/imq_kernel3.10.23.patch
# ipp2p 0.8.2-ipfire - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch
# Layer7-patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/netfilter_layer7_2.22_kernel3.0.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/netfilter_layer7_2.22_kernel3.10-no_proc_interface.patch + + # Grsecurity-patches +ifneq "$(KCFG)" "-headers" +#ifneq "$(KCFG)" "-rpi" + cd $(DIR_APP) && xz -c -d $(DIR_DL)/$(GRS_PATCHES) | patch -Np1 + cd $(DIR_APP) && rm localversion-grsec + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.7-disable-compat_vdso.patch +#endif +endif + + # Disable pcspeaker autoload + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.30-no-pcspkr-modalias.patch + + # Remove ACPI Blacklist message + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6-silence-acpi-blacklist.patch + + # DVB Patches + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.9-dvbsky-wot2.patch + cd $(DIR_APP) && patch -Np2 < $(DIR_SRC)/src/patches/v4l-dvb_fix_tua6034_pll.patch + + # Wlan Patches + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-drivers-3.8.3-ath_ignore_eeprom_regdomain.patch + + # mISDN Patches + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mISDN_hfc-s_add_id.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mISDN-hfcusb-reportl1down.patch
# Add LED trigger - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.33-ledtrig-netdev-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.9-ledtrig-netdev-1.patch
# Fix uevent PHYSDEVDRIVER cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.33_ipg-fix-driver-name.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch
+ ifeq "$(KCFG)" "-kirkwood" # Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.25-arm_kirkwood_setups.patch -endif - -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch - - # Reverse some asm optimizations that are incompatible with older gcc - cd $(DIR_APP) && patch -p1 -R < $(DIR_SRC)/src/patches/linux-2.6-arm-asm-constraint.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.10-arm_kirkwood_setups.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch endif
-ifeq "$(KCFG)" "-omap" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0001-panda-wlan-fix.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0002-panda-i2c.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-panda-reboot.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch +ifeq "$(KCFG)" "-multi" +# cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0001-panda-wlan-fix.patch +# cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0002-panda-i2c.patch +# cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-panda-reboot.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch + + # Patchset for Wandboard. + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/dts/0001-imx6qdl-wandboard-dts-backport.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/dts/0002-ARM-dts-imx6qdl-wandboard-add-gpio-lines-to-wandboar.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/dts/0003-ARM-dts-imx6qdl-wandboard-Add-support-for-i2c1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/dts/0004-ARM-dts-wandboard-add-binding-for-wand-rfkill-driver.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/dts/0005-ARM-dts-imx6qdl-add-pcie-device-node.patch + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0001-i2c-imx-retry-on-NAK.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0002-i.MX6-Wandboard-add-CKO1-clock-output.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0003-thermal-add-imx-thermal-driver-support.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0004-ARM-i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0005-Add-IMX6Q-AHCI-support.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0006-imx-Add-IMX53-AHCI-support.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0007-imx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0008-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0009-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0011-add-pcie-designware.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0012-pcie-backport-fixes.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0013-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0014-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0015-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0016-imx6-pci-tweaks.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0017-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/wandboard/imx/0018-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch + + # Patchset for Compulab Utilite. + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kernel/utilite/linux-3.10-compulab-utilite-support.patch endif
ifeq "$(KCFG)" "-rpi" @@ -167,21 +220,21 @@ else cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ -$(VERSUFIX)/' Makefile
ifeq "$(KCFG)" "-kirkwood" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage modules cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) else -ifeq "$(KCFG)" "-omap" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) +ifeq "$(KCFG)" "-multi" + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage modules + cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/zImage-$(VERSUFIX) else ifeq "$(KCFG)" "-rpi" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage - cd /boot && cat first32k.bin $(DIR_APP)/arch/arm/boot/Image > kernel.img - cd $(DIR_APP) && cp -v /boot/kernel.img /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage modules + cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/kernel.img else - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage modules cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX) ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX) endif @@ -190,42 +243,47 @@ endif cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX) cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX) ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX) - cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) firmware_install
+ifeq "$(MACHINE_TYPE)" "arm" + cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) dtbs + cd $(DIR_APP) && for f in $$(find arch/arm/boot/dts/ -name *.dtb); do \ + mkdir -p /boot/dtb-$(VER)-$(VERSUFIX) ; \ + install -m 644 $$f /boot/dtb-$(VER)-$(VERSUFIX)/ ; \ + done +endif + ifeq "$(LASTKERNEL)" "1" # Only do this once cd $(DIR_APP) && install -m 755 usr/gen_init_cpio /sbin/
# Blacklist matroxfb_base - echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer + echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer.conf # Blacklist old framebuffer modules for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/video -name *fb.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer.conf ; \ done # Blacklist new drm framebuffer modules for f in $$(ls -1 /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/gpu/drm/*/*.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer.conf ; \ done - sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer + sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer.conf
# Blacklist isdn modules for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn -name *.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn ; \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn.conf ; \ done - sed -i -e "s|.ko||g" /etc/modprobe.d/isdn + sed -i -e "s|.ko||g" /etc/modprobe.d/isdn.conf
# Disable ipv6 at runtime - echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6 + echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6.conf endif
-ifneq "$(MACHINE_TYPE)" "arm" - # Disable geode_aes modul - mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ + # Disable geode_aes modul if exist + -mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko.off endif -endif
@rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables* $(DIR_SRC)/squashfs* $(DIR_SRC)/netfilter-layer7-* @$(POSTBUILD) diff --git a/lfs/linux-firmware b/lfs/linux-firmware index 33a5381..1dbfc7e 100644 --- a/lfs/linux-firmware +++ b/lfs/linux-firmware @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 236367d +VER = 52d77db
THISAPP = linux-firmware-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,8 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 35d2ecf9b7d0b4d339fa0d4cc0736f6f - +$(DL_FILE)_MD5 = 3f6f1e78af3ee67a5540355f2ed8ba14 install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects)) @@ -69,7 +68,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) mkdir -p /lib/firmware cd $(DIR_APP) && cp -vr * /lib/firmware @rm -rf $(DIR_APP) diff --git a/lfs/linux-xen b/lfs/linux-xen deleted file mode 100644 index 39f19a8..0000000 --- a/lfs/linux-xen +++ /dev/null @@ -1,32 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = kernel - -include linux2 - -PROG = linux-xen -SUP_ARCH = i586 diff --git a/lfs/linux2 b/lfs/linux2 deleted file mode 100644 index 474e094..0000000 --- a/lfs/linux2 +++ /dev/null @@ -1,252 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -PATCHLEVEL = .61 -VER = 2.6.32.61 - -THISAPP = linux-$(VER) -DL_FILE = $(THISAPP).tar.xz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -CFLAGS = -CXXFLAGS = - -PAK_VER = 27 -DEPS = "" - -# Normal build or XEN build. -# - -VERSUFIX=ipfire$(KCFG) - -ifeq "$(HEADERS)" "1" -ifeq "$(TOOLS)" "1" - TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)-tools - HEADERS_PREFIX = /tools -else - TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX) - HEADERS_PREFIX = /usr -endif -else - TARGET = $(DIR_INFO)/linux-xen-$(VER)-$(VERSUFIX) -endif - -ifeq "$(MACHINE_TYPE)" "arm" - HEADERS_ARCH=arm -else - HEADERS_ARCH=x86 -endif - -ifeq "$(KCFG)" "" -LASTKERNEL=1 -endif -ifeq "$(KCFG)" "-kirkwood" -LASTKERNEL=1 -endif - -############################################################################### -# Top-level Rules -############################################################################### -objects =$(DL_FILE) \ - netfilter-layer7-v2.22.tar.gz \ - patch-2.6.16-nath323-1.3.bz2 \ - reiser4-for-2.6.32.patch.bz2 \ - xen-patches-2.6.32-2g.tar.bz2 - -$(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) -netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz -patch-2.6.16-nath323-1.3.bz2 = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2 -reiser4-for-2.6.32.patch.bz2 = $(URL_IPFIRE)/reiser4-for-2.6.32.patch.bz2 -xen-patches-2.6.32-2g.tar.bz2 = $(URL_IPFIRE)/xen-patches-2.6.32-2g.tar.bz2 - -$(DL_FILE)_MD5 = 37e0afeb308b27a81dafa55c367a6105 -netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f -patch-2.6.16-nath323-1.3.bz2_MD5 = f926409ff703a307baf54b57ab75d138 -reiser4-for-2.6.32.patch.bz2_MD5 = 3246397973d9271eb8e6d7c97c5d2d91 -xen-patches-2.6.32-2g.tar.bz2_MD5 = d259a847c9aa73cd6e5c3605d9657d66 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) $(DIR_SRC)/linux $(DIR_SRC)/linux-*-suse_xen_patches $(DIR_SRC)/xen-* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - - ln -svf linux-$(VER) $(DIR_SRC)/linux - -ifeq "$(KCFG)" "-xen" - # Apply gentoo Xen patches - mkdir -p $(DIR_SRC)/xen-patches - cd $(DIR_SRC)/xen-patches && tar jxf $(DIR_DL)/xen-patches-2.6.32-2g.tar.bz2 - - for x in `ls -1 $(DIR_SRC)/xen-patches/*.patch1`; do \ - echo "*********** [Patch: $$x]"; \ - cd $(DIR_APP) && pwd && patch -Np1 < $$x || exit 1; \ - done - rm -rf $(DIR_SRC)/xen-patches - - # Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-imq-test2.patch -else - # Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-imq-test2.patch -endif - - # Reiser4 (don't check if fail (some patches are already in xen patchset) - -cd $(DIR_APP) && bzcat $(DIR_DL)/reiser4-for-2.6.32.patch.bz2 | patch -Np1 - - # ipp2p 0.8.2-pomng - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-ipp2p-0.8.2-pomng.patch - - # Layer7-patch - cd $(DIR_SRC) && rm -rf $(DIR_SRC)/netfilter-layer7-v2.22 - cd $(DIR_SRC) && tar xzf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch - - # Add some more LED triggers - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch - - # Huawei Android Phones (Vodafone V845, T-Mobile Pulse/mini ...) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch - - # Fix uevent PHYSDEVDRIVER - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch - - # Fix mv_cesa - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-crypto-mv_cesa.patch - -ifeq "$(KCFG)" "-kirkwood" - # Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.57-arm_kirkwood_setups.patch -endif - -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch -endif - -ifeq "$(HEADERS)" "1" - # Install the header files - cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install - -mkdir -pv $(BUILDROOT)/$(HEADERS_PREFIX)/include - cd $(DIR_APP) && find dest/include ( -name .install -o -name ..install.cmd ) -delete - cd $(DIR_APP) && cp -rv dest/include/* $(BUILDROOT)/$(HEADERS_PREFIX)/include -else - - # Install ipfire logo - cd $(DIR_APP) && cp -vf $(DIR_SRC)/config/kernel/ipfire_logo.ppm \ - drivers/video/logo/logo_linux_clut224.ppm - - # Cleanup kernel source - cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config - cd $(DIR_APP) && make CC="$(KGCC)" oldconfig - cd $(DIR_APP) && make CC="$(KGCC)" clean - cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile - -ifeq "$(KCFG)" "-xen" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" vmlinuz - cd $(DIR_APP) && cp -v arch/i386/boot/vmlinuz /boot/vmlinuz-$(VER)-$(VERSUFIX) -else -ifeq "$(KCFG)" "-kirkwood" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) - cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) -else - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage - cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX) -endif -endif - cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX) - cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX) - ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX) - ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX) - cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules - cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install - cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) firmware_install - -ifeq "$(LASTKERNEL)" "1" - # Only do this once - cd $(DIR_APP) && install -m 755 usr/gen_init_cpio /sbin/ - - # Blacklist matroxfb_base - echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer - # Blacklist old framebuffer modules - for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/video -name *fb.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ - done - # Blacklist new drm framebuffer modules - for f in $$(ls -1 /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/gpu/drm/*/*.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ - done - sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer - - # Blacklist isdn modules - for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn -name *.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn ; \ - done - sed -i -e "s|.ko||g" /etc/modprobe.d/isdn - - # Disable ipv6 at runtime - echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6 -endif - - # Remove mISDN modules - rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN - rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN - -ifneq "$(MACHINE_TYPE)" "arm" - # Disable geode_aes modul - mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ - /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko.off -endif -endif - - @rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables* $(DIR_SRC)/squashfs* $(DIR_SRC)/netfilter-layer7-* - @$(POSTBUILD) diff --git a/lfs/lm_sensors b/lfs/lm_sensors index b5ebcfb..f343a2f 100644 --- a/lfs/lm_sensors +++ b/lfs/lm_sensors @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 3.3.0 +VER = 3.3.4
THISAPP = lm_sensors-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 5eb18d7531ead4f54f28a1133a606535 +$(DL_FILE)_MD5 = 60cfb98ab7a8915c3ac684af5459de2e
install : $(TARGET)
diff --git a/lfs/lzo b/lfs/lzo index e7f29e8..69bc5cd 100644 --- a/lfs/lzo +++ b/lfs/lzo @@ -24,7 +24,7 @@
include Config
-VER = 2.02 +VER = 2.06
THISAPP = lzo-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 6760e5819f4238328709bf93bf10071c +$(DL_FILE)_MD5 = 95380bd4081f85ef08c5209f4107e9f8
install : $(TARGET)
diff --git a/lfs/mISDN b/lfs/mISDN index e6a7465..5cd4972 100644 --- a/lfs/mISDN +++ b/lfs/mISDN @@ -106,9 +106,9 @@ endif ifneq "$(XEN)" "1" # Blacklist misdn modules for f in $$(find /lib/modules/$(KVER)-$(VERSUFIX)/mISDN -name *.ko); do \ - echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/mISDN ; \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/mISDN.conf ; \ done - sed -i -e "s|.ko||g" /etc/modprobe.d/mISDN + sed -i -e "s|.ko||g" /etc/modprobe.d/mISDN.conf endif
# Remove mISDN modules that was shipped with the kernel diff --git a/lfs/mbr b/lfs/mbr deleted file mode 100644 index c43f2fd..0000000 --- a/lfs/mbr +++ /dev/null @@ -1,78 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 1.1.11 - -THISAPP = mbr-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -SUP_ARCH = i586 - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 4e406ded185f94c2d2bf5fc793ac1842 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/memtest b/lfs/memtest index 4914bae..d98ea87 100644 --- a/lfs/memtest +++ b/lfs/memtest @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 4.20 +VER = 5.01
THISAPP = memtest86+-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -41,7 +41,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ef62c2f5be616676c8c62066dedc46b3 +$(DL_FILE)_MD5 = 43c5832baa919e1206e251e735cdee2d
install : $(TARGET)
@@ -71,8 +71,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && sed -i -e "s| -fno-stack-protector||g" Makefile - cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + # Enable SMP as default + cd $(DIR_APP) && sed -i -e "s|CONSERVATIVE_SMP 1|CONSERVATIVE_SMP 0|g" config.h + cd $(DIR_APP) && sed -i -e "s|scp |echo |g" Makefile + cd $(DIR_APP) && make $(EXTRA_MAKE) -mkdir -p /usr/lib/memtest86+ cd $(DIR_APP) && cp -f memtest.bin /usr/lib/memtest86+ @rm -rf $(DIR_APP) diff --git a/lfs/miniupnpd b/lfs/miniupnpd index 7129ed5..a314624 100644 --- a/lfs/miniupnpd +++ b/lfs/miniupnpd @@ -24,7 +24,7 @@
include Config
-VER = 1.7 +VER = 1.8
THISAPP = miniupnpd-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -42,7 +42,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 5af9e8332d34a7b490d0d2ed3e674196 +$(DL_FILE)_MD5 = 0d8a8e936d5a0012cb260a3b972acbf3
install : $(TARGET)
@@ -76,7 +76,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make -f Makefile.linux \ - CFLAGS="$(CFLAGS) -DIPTABLES_143 -I/usr/src/linux/include" + CFLAGS="$(CFLAGS) -DIPTABLES_143" LIBS="-lip4tc -lnfnetlink" cd $(DIR_APP) && install -m 755 miniupnpd /usr/sbin -mkdir -pv /etc/miniupnpd cp -vf $(DIR_SRC)/config/miniupnpd/miniupnpd.conf /etc/miniupnpd/miniupnpd.conf diff --git a/lfs/mpage b/lfs/mpage new file mode 100644 index 0000000..b93fb06 --- /dev/null +++ b/lfs/mpage @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.5.6 + +THISAPP = mpage-$(VER) +DL_FILE = $(THISAPP).tgz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 489663c9246e47915cea931348e5175d + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mpage25-config.patch + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP) && make $(EXTRA_INSTALL) install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/mysql b/lfs/mysql index 410dad6..aa5c357 100644 --- a/lfs/mysql +++ b/lfs/mysql @@ -24,7 +24,7 @@
include Config
-VER = 5.0.24a +VER = 5.0.96
THISAPP = mysql-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,9 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = mysql -PAK_VER = 1 +PAK_VER = 3 + +CFLAGS += -fno-strict-aliasing
############################################################################### # Top-level Rules @@ -42,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 6b07546389f75c52611adb7af38c3667 +$(DL_FILE)_MD5 = bf280949049161aa68cf29e600d9ec79
install : $(TARGET)
@@ -75,7 +77,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && C_EXTRA_FLAGS=-fno-strict-aliasing cd $(DIR_APP) && ./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/sbin \ diff --git a/lfs/net-tools b/lfs/net-tools index c17c95f..08b4815 100644 --- a/lfs/net-tools +++ b/lfs/net-tools @@ -70,12 +70,14 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-gcc34-3.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-kernel_headers-2.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-kernel_headers-3.patch cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-mii_ioctl-1.patch cd $(DIR_APP) && yes "" | make config cd $(DIR_APP) && sed -i -e 's|HAVE_IP_TOOLS 0|HAVE_IP_TOOLS 1|g' \ + -e 's|HAVE_HWSTRIP 1|HAVE_HWSTRIP 0|g' \ -e 's|HAVE_MII 0|HAVE_MII 1|g' config.h cd $(DIR_APP) && sed -i -e 's|# HAVE_IP_TOOLS=0|HAVE_IP_TOOLS=1|g' \ + -e 's|HAVE_HWSTRIP 1|HAVE_HWSTRIP 0|g' \ -e 's|# HAVE_MII=0|HAVE_MII=1|g' config.make cd $(DIR_APP) && make cd $(DIR_APP) && make update diff --git a/lfs/openssl b/lfs/openssl index b9d2617..4d4516c 100644 --- a/lfs/openssl +++ b/lfs/openssl @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 0.9.8y +VER = 1.0.1f
THISAPP = openssl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,6 +32,17 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)
+ifeq "$(MACHINE)" "i586" + CONFIGURE_ARGS = linux-elf no-asm 386 +endif + +ifeq "$(MACHINE)" "armv5tel" + CONFIGURE_ARGS = linux-generic32 +endif + +CFLAGS += -DPURIFY +export RPM_OPT_FLAGS = $(CFLAGS) + ############################################################################### # Top-level Rules ############################################################################### @@ -40,7 +51,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 47c7fb37f78c970f1d30aa2f9e9e26d8 +$(DL_FILE)_MD5 = f26b09c028a0541cab33da697d522b25
install : $(TARGET)
@@ -70,15 +81,49 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-0.9.8u-cryptodev.patch - @rm -rf /etc/ssl - cd $(DIR_APP) && sed -i -e 's/mcpu/march/' config - cd $(DIR_APP) && sed -i -e 's/-O3/-O2/' -e 's/-march=i486/-march=i586/' Configure - cd $(DIR_APP) && ./Configure --openssldir=/etc/ssl --prefix=/usr shared linux-elf \ - zlib-dynamic no-asm 386 -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGEST - cd $(DIR_APP) && make MANDIR=/usr/share/man - cd $(DIR_APP) && make MANDIR=/usr/share/man install - rm -rf /etc/ssl/lib + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.0-beta5-enginesdir.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.1-beta2-build.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.1e-cryptodev.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.1e-fix_parallel_build-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.1e-weak-ciphers.patch + + cd $(DIR_APP) && find crypto/ -name Makefile -exec \ + sed 's/^ASFLAGS=/&-Wa,--noexecstack /' -i {} ; + + cd $(DIR_APP) && ./Configure \ + --prefix=/usr \ + --openssldir=/etc/ssl \ + --enginesdir=/usr/lib/openssl/engines \ + shared \ + zlib-dynamic \ + enable-camellia \ + enable-md2 \ + enable-seed \ + enable-tlsext \ + enable-rfc3779 \ + no-idea \ + no-mdc2 \ + no-rc5 \ + no-srp \ + $(CONFIGURE_ARGS) \ + -DSSL_FORBID_ENULL \ + -DHAVE_CRYPTODEV \ + -DUSE_CRYPTODEV_DIGEST + + cd $(DIR_APP) && make depend + cd $(DIR_APP) && make + + # Install everything. + cd $(DIR_APP) && make install install -m 0644 $(DIR_SRC)/config/ssl/openssl.cnf /etc/ssl + + # Remove man pages. + -rm -vfr /etc/ssl/man + + # Move engines to the right place. + -mkdir -pv /usr/lib/openssl + rm -vfr /usr/lib/openssl/engines + mv -v /usr/lib/engines /usr/lib/openssl + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/openssl-compat b/lfs/openssl-compat new file mode 100644 index 0000000..d2ae6a0 --- /dev/null +++ b/lfs/openssl-compat @@ -0,0 +1,100 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.9.8y + +THISAPP = openssl-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 47c7fb37f78c970f1d30aa2f9e9e26d8 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-0.9.8u-cryptodev.patch + + cd $(DIR_APP) && sed -i -e 's/mcpu/march/' config + cd $(DIR_APP) && sed -i -e 's/-O3/-O2/' -e 's/-march=i486/-march=i586/' Configure + + # Support for engines is disabled, because the shared objects from the + # new version of openssl cannot be loaded by the old one. + + cd $(DIR_APP) && ./Configure \ + --prefix=/usr \ + --openssldir=/etc/ssl \ + shared linux-elf \ + zlib-dynamic \ + no-engines \ + no-asm 386 \ + -DSSL_FORBID_ENULL \ + -DHAVE_CRYPTODEV \ + -DUSE_CRYPTODEV_DIGEST + + cd $(DIR_APP) && make depend + cd $(DIR_APP) && make + + cd $(DIR_APP) && install -v -m 755 libcrypto.so.0.9.8 /usr/lib + cd $(DIR_APP) && install -v -m 755 libssl.so.0.9.8 /usr/lib + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/openvmtools b/lfs/openvmtools index 229ed8f..baae595 100644 --- a/lfs/openvmtools +++ b/lfs/openvmtools @@ -37,6 +37,8 @@ PAK_VER = 1
DEPS = ""
+CFLAGS += -fno-PIC + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/openvpn b/lfs/openvpn index 727d374..053d581 100644 --- a/lfs/openvpn +++ b/lfs/openvpn @@ -96,6 +96,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) chmod 660 /var/log/ovpnserver.log chmod 700 /var/ipfire/ovpn/certs mv -v /var/ipfire/ovpn/verify /usr/lib/openvpn/verify + chown root:root /usr/lib/openvpn/verify chmod 755 /usr/lib/openvpn/verify @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/pakfire b/lfs/pakfire index 11608b3..6f90f89 100644 --- a/lfs/pakfire +++ b/lfs/pakfire @@ -54,7 +54,6 @@ md5 :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) -mkdir -p /opt/pakfire/{db/{meta,lists,rootfiles,installed,core},etc,lib,tmp} \ /var/log/pakfire /var/cache/pakfire cp -fRv $(DIR_SRC)/src/pakfire/* $(DIR_APP) diff --git a/lfs/paxctl b/lfs/paxctl new file mode 100644 index 0000000..c55f293 --- /dev/null +++ b/lfs/paxctl @@ -0,0 +1,79 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.7 + +THISAPP = paxctl-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 25bf9df751976e87be20243e75291263 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/rpi-firmware b/lfs/rpi-firmware index c02d5cc..49b3f1a 100644 --- a/lfs/rpi-firmware +++ b/lfs/rpi-firmware @@ -24,7 +24,7 @@
include Config
-VER = 855e997 +VER = d4f5315 THISAPP = rpi-firmware-$(VER) DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c73700a10d792517b2b87fd28a6c9800 +$(DL_FILE)_MD5 = 65c0a859ab96cb563a80e3529c78f555
install : $(TARGET)
diff --git a/lfs/rsync b/lfs/rsync index 2e65268..57c822c 100644 --- a/lfs/rsync +++ b/lfs/rsync @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 3.0.9 +VER = 3.1.0
THISAPP = rsync-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = rsync -PAK_VER = 7 +PAK_VER = 8
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 5ee72266fe2c1822333c407e1761b92b +$(DL_FILE)_MD5 = 3be148772a33224771a8d4d2a028b132
install : $(TARGET)
diff --git a/lfs/sslh b/lfs/sslh index e6f2ceb..f4201c3 100644 --- a/lfs/sslh +++ b/lfs/sslh @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = sslh -PAK_VER = 3 +PAK_VER = 4
DEPS = ""
@@ -77,7 +77,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make install - cp $(DIR_APP)/sslh /usr/local/bin + cd $(DIR_APP) && make CFLAGS="$(CFLAGS)" $(MAKETUNING) + cd $(DIR_APP) && install -v -m 755 sslh /usr/sbin @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/stage2 b/lfs/stage2 index beb0abb..3c4a8e4 100644 --- a/lfs/stage2 +++ b/lfs/stage2 @@ -111,6 +111,9 @@ $(TARGET) : chgrp -v utmp /var/run/utmp /var/log/lastlog chmod -v 664 /var/run/utmp /var/log/lastlog
+ # Create /run symlink + ln -s /var/run /run + # Permissions chmod 0711 /var/empty @@ -121,4 +124,11 @@ $(TARGET) : -mkdir -pv /usr/share/doc/licenses/ cp -vf $(DIR_SRC)/doc/COPYING /usr/share/doc/licenses/GPLv3
+ # System release + echo "$(SYSTEM_RELEASE)" > /etc/system-release + + # Pakfire + -mkdir -pv /opt/pakfire/db/core + echo "$(PAKFIRE_CORE)" > /opt/pakfire/db/core/mine + @$(POSTBUILD) diff --git a/lfs/strongswan b/lfs/strongswan index 495d035..5c411a3 100644 --- a/lfs/strongswan +++ b/lfs/strongswan @@ -78,8 +78,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-4.5.3_ipfire.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-5.0.2_ipfire.patch cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-5.1.1-delay-dpd.patch
cd $(DIR_APP) && [ -x "configure" ] || ./autogen.sh diff --git a/lfs/transmission b/lfs/transmission index 3c1368d..51c2fbd 100644 --- a/lfs/transmission +++ b/lfs/transmission @@ -36,6 +36,8 @@ PAK_VER = 9
DEPS = "libevent2"
+CXXFLAGS += -fno-exceptions + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/u-boot b/lfs/u-boot index 551fea5..eafb592 100644 --- a/lfs/u-boot +++ b/lfs/u-boot @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,12 +24,10 @@
include Config
-VER = 2011.12 -# Linare version: git clone git://git.linaro.org/boot/u-boot-linaro-stable.git -# Branch: origin/Linaro-u-boot-2011.12 +VER = 2013.10
-THISAPP = uboot-panda-$(VER) -DL_FILE = $(THISAPP).tar.xz +THISAPP = u-boot-$(VER) +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -43,7 +41,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 19975e9bb4b10d8e67db84e51fcaa43b +$(DL_FILE)_MD5 = a076a044b64371edc52f7e562b13f6b2
install : $(TARGET)
@@ -75,13 +73,47 @@ dist:
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make tools $(MAKETUNING) - cd $(DIR_APP) && install tools/mkimage /usr/bin/ - cd $(DIR_APP) && make omap4_panda_config - cd $(DIR_APP) && make $(MAKETUNING) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + + # Pandaboard + -mkdir -pv /usr/share/u-boot/pandaboard + cd $(DIR_APP) && make CROSS_COMPILE="" omap4_panda_config + cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" + cd $(DIR_APP) && install -v -m 644 MLO u-boot.img \ + /usr/share/u-boot/pandaboard + # Install pandaboard uboot as default cd $(DIR_APP) && install MLO /boot/ - cd $(DIR_APP) && install u-boot.bin /boot/ + cd $(DIR_APP) && install u-boot.img /boot/ cp -vf $(DIR_SRC)/config/u-boot/* /boot/ + cd $(DIR_APP) && make distclean + + # Wandboard Quad + -mkdir -pv /usr/share/u-boot/wandboard_quad + cd $(DIR_APP) && make CROSS_COMPILE="" wandboard_quad_config + cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" + cd $(DIR_APP) && install -v -m 644 u-boot.imx \ + /usr/share/u-boot/wandboard_quad + cd $(DIR_APP) && make distclean + + # Wandboard Dual + -mkdir -pv /usr/share/u-boot/wandboard_dl + cd $(DIR_APP) && make CROSS_COMPILE="" wandboard_dl_config + cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" + cd $(DIR_APP) && install -v -m 644 u-boot.imx \ + /usr/share/u-boot/wandboard_dl + cd $(DIR_APP) && make distclean + + # Wandboard Solo + -mkdir -pv /usr/share/u-boot/wandboard_solo + cd $(DIR_APP) && make CROSS_COMPILE="" wandboard_solo_config + cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" + cd $(DIR_APP) && install -v -m 644 u-boot.imx \ + /usr/share/u-boot/wandboard_solo + cd $(DIR_APP) && make distclean + + # mkimage + cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" tools + cd $(DIR_APP) && install -v -m 755 tools/mkimage /usr/bin + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/udev b/lfs/udev index 9ebec2f..d034993 100644 --- a/lfs/udev +++ b/lfs/udev @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,23 +24,26 @@
include Config
-VER = 141 +VER = 208
THISAPP = udev-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = systemd-$(VER).tar.xz DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) +DIR_APP = $(DIR_SRC)/systemd-$(VER) TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules ###############################################################################
-objects = $(DL_FILE) +objects = $(DL_FILE) udev-lfs-208-1.tar.bz2 +
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) +udev-lfs-$(VER)-1.tar.bz2 = $(DL_FROM)/udev-lfs-$(VER)-1.tar.bz2
-$(DL_FILE)_MD5 = 1670fe81cabf5161319c52084cf81134 +$(DL_FILE)_MD5 = df64550d92afbffb4f67a434193ee165 +udev-lfs-$(VER)-1.tar.bz2_MD5 = 67a5339e7ef1fa08f5db8315a5ea69e7
install : $(TARGET)
@@ -70,32 +73,36 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-141_no_netif_rename.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-125-ext4_wo_journal.patch + cd $(DIR_APP) && tar axf $(DIR_DL)/udev-lfs-$(VER)-1.tar.bz2 + + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-208_remove_systemd_log.patch +# cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-141_no_netif_rename.patch + + cd $(DIR_APP)/udev-lfs-$(VER)-1 && sed -i "s/HANDLE_AT 1/HANDLE_AT 0/g" cfg.h + rm -rf /lib/udev/devices - install -dv /lib/{firmware,udev/devices/{pts,shm}} - mknod -m0666 /lib/udev/devices/null c 1 3 - ln -sv /proc/self/fd /lib/udev/devices/fd - ln -sv /proc/self/fd/0 /lib/udev/devices/stdin - ln -sv /proc/self/fd/1 /lib/udev/devices/stdout - ln -sv /proc/self/fd/2 /lib/udev/devices/stderr - ln -sv /proc/kcore /lib/udev/devices/core - cd $(DIR_APP) && ./configure --disable-introspection --sbindir=/sbin --sysconfdir=/etc --libexecdir=/lib/udev - cd $(DIR_APP) && make $(MAKETUNING) EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ - extras/firmware extras/floppy extras/path_id \ - extras/scsi_id extras/usb_id extras/volume_id" - cd $(DIR_APP) && make DESTDIR=/ EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ - extras/firmware extras/floppy extras/path_id \ - extras/scsi_id extras/usb_id extras/volume_id" install + install -dv /lib/firmware + + cd $(DIR_APP) && make -f udev-lfs-$(VER)-1/Makefile.lfs $(MAKETUNING) + cd $(DIR_APP) && make -f udev-lfs-$(VER)-1/Makefile.lfs install + + # Make some compat symlinks + ln -sf /lib/udev/udevd /sbin/udevd + ln -sf /sbin/udevadm /bin/udevadm
# Disable net generator rule. This does not work with the setup. rm -f /lib/udev/rules.d/75-persistent-net-generator.rules + rm -f /lib/udev/rules.d/80-net-name-slot.rules
# Create rule file for the setup touch /etc/udev/rules.d/30-persistent-network.rules
# Blacklist some modules - cp -vf $(DIR_SRC)/config/udev/blacklist /etc/modprobe.d/blacklist + cp -vf $(DIR_SRC)/config/udev/blacklist.conf /etc/modprobe.d/blacklist.conf + + # Install config file + install -v -m 644 $(DIR_SRC)/config/udev/udev.conf \ + /etc/udev/
# Install alsa rules. install -v -m 644 $(DIR_SRC)/config/udev/25-alsa.rules \ diff --git a/lfs/usb-stick b/lfs/usb-stick deleted file mode 100644 index 1bfc8a1..0000000 --- a/lfs/usb-stick +++ /dev/null @@ -1,101 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = ipfire - -THISAPP = usb-stick -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -install : $(TARGET) - -check : - -download : - -md5 : - -############################################################################### -# Installation Details -############################################################################### -IMGfdd := /install/images/$(SNAME)-$(VERSION)-install-usb-fdd.$(MACHINE)-full-core$(CORE).img -IMGhdd := /install/images/$(SNAME)-$(VERSION)-install-usb-hdd.$(MACHINE)-full-core$(CORE).img -IMGfs := /install/images/fs - -DISKSIZE=120000 - -define COPY_TO_IMG - mkdosfs -n IPFIRE -F 16 -I $$IMAGE && \ - for i in /0 `seq 0 7`; do \ - [ -e /dev/loop$${i} ] || continue; \ - if (! losetup /dev/loop$${i} >/dev/null 2>&1 ); then \ - LOOPDEV="/dev/loop$${i}"; \ - break; \ - fi; \ - done; \ - losetup $$LOOPDEV $$IMAGE && \ - mount -t vfat $$LOOPDEV /install/mnt && \ - cp -fR /install/cdrom/* /install/mnt && \ - mv /install/mnt/boot/isolinux /install/mnt/boot/syslinux && \ - mv /install/mnt/boot/syslinux/isolinux.cfg \ - /install/mnt/boot/syslinux/syslinux.cfg && \ - umount /install/mnt && \ - losetup -d $$LOOPDEV && \ - syslinux $$IMAGE -endef - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - - # usb-fdd superfloppy (partitionless) - # compute size +32 blocks for bootsector/fat/etc... - dd bs=1024 count=$$((`du -k -s /install/cdrom | awk '{print $$1}'` + 2048 )) \ - if=/dev/zero \ - of=$(IMGfdd) - IMAGE=$(IMGfdd); $(COPY_TO_IMG) - - # Partitionned images : make a file system bigger than iso size - # that fit on 128MB key to let free space available - # on the unique partition. Image will be compressed later - dd bs=1k if=/dev/zero of=$(IMGfs) count=$(DISKSIZE) - IMAGE=$(IMGfs); $(COPY_TO_IMG) - - # usb-hdd (64 heads, 32 sectors geometry, on a partition 1) - # use 64 heads as 256 does not work on Award bios (Asus A7V8X-X Gilles) - # use 32 sectors a minima or device is not recognised as hard disk (Frank) - # add 32 to IMGfs as first partition start at 32 - COUNT=$$((`du -k -s $(IMGfs) | awk '{print $$1}'` + 32 )); \ - dd bs=1k if=/dev/zero of=$(IMGhdd) count=$$COUNT - # write mbr before partitioning save a 'not msdos fs' warning from sfdisk - /usr/sbin/install-mbr -f $(IMGhdd) - echo -e "0,,6,*\n;\n;\n;" | sfdisk -qLD -H 64 -S 32 $(IMGhdd) - # copy the entire partition, make the fs and dd back - dd if=$(IMGfs) of=$(IMGhdd) bs=512 seek=32 - - gzip -f9 $(IMGfdd) $(IMGhdd) - rm -rf $$LFS/tmp/* $(IMGfs) diff --git a/lfs/usb_modeswitch b/lfs/usb_modeswitch index 0f28078..b0cf7d3 100644 --- a/lfs/usb_modeswitch +++ b/lfs/usb_modeswitch @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.2.6 +VER = 2.0.1
THISAPP = usb-modeswitch-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 3cd804ad2dd4cb61fbd77a5cc033496c +$(DL_FILE)_MD5 = e48d4419d0574d342bb183f7465556d0
install : $(TARGET)
diff --git a/lfs/usb_modeswitch_data b/lfs/usb_modeswitch_data index 709434c..95aeac6 100644 --- a/lfs/usb_modeswitch_data +++ b/lfs/usb_modeswitch_data @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 20130610 +VER = 20131113
THISAPP = usb-modeswitch-data-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 52dff3f54e0c01dad02639d642e089e0 +$(DL_FILE)_MD5 = 7b5ac1226b360ddc366c286e62b3c3a4
install : $(TARGET)
diff --git a/lfs/usbutils b/lfs/usbutils index 3b5c302..51192e7 100644 --- a/lfs/usbutils +++ b/lfs/usbutils @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 0.72 +VER = 007
THISAPP = usbutils-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ee345fe605ffcfce843dae4aed81122b +$(DL_FILE)_MD5 = c9df5107ae9d26b10a1736a261250139
install : $(TARGET)
@@ -69,11 +69,11 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && sed -i 's|DEST=|&/usr/share/hwdata/|' update-usbids.sh - cd $(DIR_APP) && ./configure --prefix=/usr --datadir=/usr/share/hwdata + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr \ + --datadir=/usr/share/hwdata \ + --disable-zlib cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install - cd $(DIR_APP) && install -v -m755 update-usbids.sh /usr/sbin/update-usbids @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/util-linux b/lfs/util-linux index a394166..7f69e67 100644 --- a/lfs/util-linux +++ b/lfs/util-linux @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 2.12r +VER = 2.24
THISAPP = util-linux-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = af9d9e03038481fbf79ea3ac33f116f9 +$(DL_FILE)_MD5 = 4fac6443427f575fc5f3531a4ad2ca01
install : $(TARGET)
@@ -69,15 +69,12 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/util-linux-2.12r-umount-no-special.patch - cd $(DIR_APP) && sed -i 's@etc/adjtime@var/lib/hwclock/adjtime@g' \ - hwclock/hwclock.c - -mkdir -p /var/lib/hwclock - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-cramfs-1.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/util-linux-buildfix.patch + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure cd $(DIR_APP) && make $(MAKETUNING) HAVE_KILL=yes HAVE_SLN=yes cd $(DIR_APP) && make HAVE_KILL=yes HAVE_SLN=yes install + # Install fstrim cronjob + mkdir -p /etc/fcron.daily + install -m 0755 $(DIR_SRC)/config/fstrim/trim /etc/fcron.daily/trim @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/vdr b/lfs/vdr index b1feb01..161b04e 100644 --- a/lfs/vdr +++ b/lfs/vdr @@ -24,8 +24,12 @@
include Config
-VER = 2.0.1 +VER = 2.0.3 + +# VDRPLUGVER must match with APIVERSION in config.h +# after change this update also all vdr plugins VDRPLUGVER = 2.0.0 + THISAPP = vdr-$(VER) DL_FILE = $(THISAPP).tar.bz2
@@ -33,7 +37,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = vdr -PAK_VER = 7 +PAK_VER = 8
DEPS = "vdr_streamdev"
@@ -61,7 +65,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = e1b7a76c57c96300829dccd39eb20e7d +$(DL_FILE)_MD5 = dd8fb1642bdfa7feb0e9a8ae41e9ef2f
install : $(TARGET)
diff --git a/lfs/vim b/lfs/vim index 3935d33..8928dbd 100644 --- a/lfs/vim +++ b/lfs/vim @@ -24,12 +24,12 @@
include Config
-VER = 7.2 +VER = 7.4
THISAPP = vim-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/vim72 +DIR_APP = $(DIR_SRC)/vim74 TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = f0901284b338e448bfd79ccca0041254 +$(DL_FILE)_MD5 = 607e135c559be642f210094ad023dc65
install : $(TARGET)
@@ -70,19 +70,18 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vim-7.2-fixes-4.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vim-7.2-mandir-1.patch cd $(DIR_APP) && echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h - cd $(DIR_APP) && ./configure --prefix=/usr --enable-multibyte --disable-nls + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --with-features=huge \ + --enable-multibyte \ + --enable-gui=no \ + --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install - ln -sv vim /usr/bin/vi - echo "set nocompatible" > /etc/vimrc - echo "set backspace=2" >> /etc/vimrc - echo "set ruler" >> /etc/vimrc - echo "syntax on" >> /etc/vimrc - echo -e "if (&term == "iterm") || (&term == "putty")" >> /etc/vimrc - echo " set background=dark" >> /etc/vimrc - echo "endif" >> /etc/vimrc + + ln -svf vim /usr/bin/vi + install -m 644 $(DIR_SRC)/config/vim/vimrc /etc/vimrc + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/w_scan b/lfs/w_scan index a18a08a..c661a80 100644 --- a/lfs/w_scan +++ b/lfs/w_scan @@ -25,7 +25,7 @@ include Config
-VER = 20121111 +VER = 20130331
THISAPP = w_scan-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -33,7 +33,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = w_scan -PAK_VER = 4 +PAK_VER = 5
DEPS = ""
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 30da05747fed9988e11ebc7745f5e71f +$(DL_FILE)_MD5 = dfc14a4707321e068a594d6899398df8
install : $(TARGET)
diff --git a/lfs/wget b/lfs/wget index ce55e76..fd4c947 100644 --- a/lfs/wget +++ b/lfs/wget @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 1.10.2 +VER = 1.14
THISAPP = wget-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 795fefbb7099f93e2d346b026785c4b8 +$(DL_FILE)_MD5 = 316f6f59292c9098ad81fd54f658c579
install : $(TARGET)
@@ -69,10 +69,19 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --with-ssl \ - --disable-nls --disable-ipv6 + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/wget-1.14-texi2pod-1.patch + + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --with-ssl=openssl \ + --disable-nls \ + --disable-ipv6 + cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/xen-image b/lfs/xen-image index 1c2624e..d5a747b 100644 --- a/lfs/xen-image +++ b/lfs/xen-image @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -28,8 +28,9 @@ VER = ipfire
THISAPP = xen-image TARGET = $(DIR_INFO)/$(THISAPP) +SUP_ARCH = i586
-KVER2 = `grep "^VER " $(DIR_SRC)/lfs/linux2 | sed "s| ||g" | cut -d"=" -f2` +KERN_PACK = `grep "^PAK_VER " $(DIR_SRC)/lfs/linux | sed "s| ||g" | cut -d"=" -f2`
############################################################################### # Top-level Rules @@ -46,145 +47,21 @@ md5 : ############################################################################### # Installation Details ############################################################################### -IMGinst := /install/images/$(SNAME)-$(VERSION).xen.$(MACHINE)-full-core$(CORE).tar.bz2 -MNThdd := /install/harddisk - -IMGboot := /install/images/$(SNAME)/$(SNAME)-boot.img -IMGswap := /install/images/$(SNAME)/$(SNAME)-swap.img -IMGroot := /install/images/$(SNAME)/$(SNAME)-root.img -IMGvar := /install/images/$(SNAME)/$(SNAME)-var.img - -SIZEboot := 30 -SIZEswap := 512 -SIZEroot := 512 -SIZEvar := 950 +IMGinst := /install/images/$(SNAME)-$(VERSION).xen.$(MACHINE)-downloader-core$(CORE).tar.bz2
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - rm -rf $(MNThdd) $(IMGinst) $(IMGroot) && mkdir -p $(MNThdd) - mkdir -p /install/images/$(SNAME) # /boot - - #Create bootimage - dd bs=1M if=/dev/zero of=$(IMGboot) count=$(SIZEboot) - mkfs.ext2 -F $(IMGboot) - - #Create swapimage - dd bs=1M if=/dev/zero of=$(IMGswap) count=$(SIZEswap) - mkswap $(IMGswap) - - #Create rootimage - dd bs=1M if=/dev/zero of=$(IMGroot) count=$(SIZEroot) - mkfs.ext3 -F $(IMGroot) - - #Create varimage - dd bs=1M if=/dev/zero of=$(IMGvar) count=$(SIZEvar) - mkfs.ext3 -F $(IMGvar) - - # Mount Images - mount -o loop $(IMGroot) $(MNThdd) - mkdir $(MNThdd)/boot - mkdir $(MNThdd)/var - mkdir $(MNThdd)/var/log - mount -o loop $(IMGboot) $(MNThdd)/boot - mount -o loop $(IMGvar) $(MNThdd)/var - - # Install IPFire without kernel modules - tar -C $(MNThdd)/ -xvf /install/cdrom/$(SNAME)-$(VERSION).tlz --lzma \ - --exclude=lib/modules* --exclude=boot* - - #Install legacy Xen Kernel - tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-xen-$(KVER2)-*.ipfire - chroot $(MNThdd) /opt/pakfire/tmp/install.sh - rm -rf $(MNThdd)/opt/pakfire/tmp/* - - #Install pae Kernel - tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-pae-$(KVER)-*.ipfire - chroot $(MNThdd) /opt/pakfire/tmp/install.sh - rm -rf $(MNThdd)/opt/pakfire/tmp/* - - #Create grub menuentry for pygrub - mkdir $(MNThdd)/boot/grub - echo "timeout 10" > $(MNThdd)/boot/grub/grub.conf - echo "default 0" >> $(MNThdd)/boot/grub/grub.conf - echo "title IPFire (legacy XEN-Kernel)" >> $(MNThdd)/boot/grub/grub.conf - echo " kernel /vmlinuz-$(KVER2)-ipfire-xen root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ - >> $(MNThdd)/boot/grub/grub.conf - echo " initrd /ipfirerd-$(KVER2)-xen.img" >> $(MNThdd)/boot/grub/grub.conf - echo "# savedefault 0" >> $(MNThdd)/boot/grub/grub.conf - echo "title IPFire (PAE-Kernel)" >> $(MNThdd)/boot/grub/grub.conf - echo " kernel /vmlinuz-$(KVER)-ipfire-pae root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ - >> $(MNThdd)/boot/grub/grub.conf - echo " initrd /ipfirerd-$(KVER)-xen.img" >> $(MNThdd)/boot/grub/grub.conf - echo "# savedefault 1" >> $(MNThdd)/boot/grub/grub.conf - - ln -s grub.conf $(MNThdd)/boot/grub/menu.lst - - #Copy the meta-info of linux-xen package - cp -f /install/packages/meta-linux-xen $(MNThdd)/opt/pakfire/db/installed - cp -f /install/packages/meta-linux-xen $(MNThdd)/opt/pakfire/db/meta - cp -f /install/packages/meta-linux-pae $(MNThdd)/opt/pakfire/db/installed - cp -f /install/packages/meta-linux-pae $(MNThdd)/opt/pakfire/db/meta - - #Set default configuration - echo "LANGUAGE=en" >> $(MNThdd)/var/ipfire/main/settings - echo "HOSTNAME=$(SNAME)" >> $(MNThdd)/var/ipfire/main/settings - echo "THEME=ipfire" >> $(MNThdd)/var/ipfire/main/settings - touch $(MNThdd)/lib/modules/$(KVER2)-ipfire-xen/modules.dep - mkdir $(MNThdd)/proc - mount --bind /proc $(MNThdd)/proc - mount --bind /dev $(MNThdd)/dev - mount --bind /sys $(MNThdd)/sys - chroot $(MNThdd) /usr/bin/perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" - sed -i -e "s|DEVICE1|/dev/xvda1|g" $(MNThdd)/etc/fstab - sed -i -e "s|DEVICE2|/dev/xvda2|g" $(MNThdd)/etc/fstab - sed -i -e "s|DEVICE3|/dev/xvda3|g" $(MNThdd)/etc/fstab - sed -i -e "s|DEVICE4|/dev/xvda4|g" $(MNThdd)/etc/fstab - - sed -i -e "s|FSTYPE|ext3|g" $(MNThdd)/etc/fstab - - chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER2)-xen.img $(KVER2)-ipfire-xen - chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER)-pae.img $(KVER)-ipfire-pae - - #Remove root / fstab check - rm -rf $(MNThdd)/etc/rc.d/rcsysinit.d/S19checkfstab - #Remove console init - rm -rf $(MNThdd)/etc/rc.d/rcsysinit.d/S70console - - #Add xvc0 to securetty - echo xvc0 >> $(MNThdd)/etc/securetty - - #Add getty for xvc0 - echo "#Enable login for XEN" >> $(MNThdd)/etc/inittab - echo "8:2345:respawn:/sbin/agetty xvc0 9600" >> $(MNThdd)/etc/inittab - - #Disable some initskripts - echo "#!/bin/sh" > $(MNThdd)/etc/rc.d/init.d/setclock - echo "#!/bin/sh" > $(MNThdd)/etc/rc.d/init.d/keymap - - #Remove autoload of acpi modules - sed -i -e "s|^ac|#ac|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^battery|#battery|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^button|#button|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^fan|#fan|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^processor|#processor|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^thermal|#thermal|g" $(MNThdd)/etc/sysconfig/modules - sed -i -e "s|^video|#video|g" $(MNThdd)/etc/sysconfig/modules - + rm -rf /install/images/$(SNAME) $(IMGinst) && mkdir -p /install/images/$(SNAME) + # Copy readme and config cp $(DIR_SRC)/config/xen-image/* \ /install/images/$(SNAME)
- # Unmount - umount $(MNThdd)/proc - umount $(MNThdd)/dev - umount $(MNThdd)/sys - umount $(MNThdd)/var - umount $(MNThdd)/boot - umount $(MNThdd) - - # Zerofree ext3 images to get better compression - zerofree $(IMGboot) - zerofree $(IMGroot) - zerofree $(IMGvar) + # configure image downloader + sed -i -e "s/xxxSNAMExxx/$(SNAME)/" /install/images/$(SNAME)/xen-image-maker.sh + sed -i -e "s/xxxVERSIONxxx/$(VERSION)/" /install/images/$(SNAME)/xen-image-maker.sh + sed -i -e "s/xxxCORExxx/$(CORE)/" /install/images/$(SNAME)/xen-image-maker.sh + sed -i -e "s/xxxKVERxxx/$(KVER)/" /install/images/$(SNAME)/xen-image-maker.sh + sed -i -e "s/xxxKERN_PACKxxx/$(KERN_PACK)/" /install/images/$(SNAME)/xen-image-maker.sh
# Compress Image cd /install/images/ && tar -cvjf $(IMGinst) $(SNAME) diff --git a/lfs/xz b/lfs/xz index 7a56c72..fce7159 100644 --- a/lfs/xz +++ b/lfs/xz @@ -24,10 +24,10 @@
include Config
-VER = 5.0.4 +VER = 5.0.5
THISAPP = xz-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP)
@@ -47,7 +47,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 741cd3a5f64b23b7bac56ec5b2258715 +$(DL_FILE)_MD5 = aa17280f4521dbeebed0fbd11cd7fa30
install : $(TARGET)
@@ -76,7 +76,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=$(PREFIX) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/make.sh b/make.sh index 0e20908..fa153c4 100755 --- a/make.sh +++ b/make.sh @@ -24,20 +24,20 @@
NAME="IPFire" # Software name SNAME="ipfire" # Short name -VERSION="2.13" # Version number -CORE="75" # Core Level (Filename) -PAKFIRE_CORE="75" # Core Level (PAKFIRE) +VERSION="2.15" # Version number +CORE="76-beta1" # Core Level (Filename) +PAKFIRE_CORE="76" # Core Level (PAKFIRE) GIT_BRANCH=`git status | head -n1 | cut -d" " -f4` # Git Branch SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir NICE=10 # Nice level MAX_RETRIES=1 # prefetch/check loop -BUILD_IMAGES=1 # Build USB, Flash and Xen Images +BUILD_IMAGES=1 # Flash and Xen Downloader KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'` MACHINE=`uname -m` GIT_TAG=$(git tag | tail -1) # Git Tag GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit -TOOLCHAINVER=6 +TOOLCHAINVER=7
BUILDMACHINE=$MACHINE if [ "$MACHINE" = "x86_64" ]; then @@ -83,6 +83,22 @@ if [ -z $EDITOR ]; then [ -z $EDITOR ] && exiterror "You should have installed an editor." fi
+# Prepare string for /etc/system-release. +SYSTEM_RELEASE="${NAME} ${VERSION} (${MACHINE})" +if [ "$(git status -s | wc -l)" == "0" ]; then + GIT_STATUS="" +else + GIT_STATUS="-dirty" +fi +case "$GIT_BRANCH" in + core*|beta?|rc?) + SYSTEM_RELEASE="${SYSTEM_RELEASE} - $GIT_BRANCH$GIT_STATUS" + ;; + *) + SYSTEM_RELEASE="${SYSTEM_RELEASE} - Development Build: $GIT_BRANCH/$GIT_LASTCOMMIT$GIT_STATUS" + ;; +esac + prepareenv() { ############################################################################ # # @@ -344,7 +360,7 @@ buildbase() { lfsmake2 make lfsmake2 man lfsmake2 mktemp - lfsmake2 module-init-tools + lfsmake2 kmod lfsmake2 net-tools lfsmake2 patch lfsmake2 psmisc @@ -353,10 +369,11 @@ buildbase() { lfsmake2 sysvinit lfsmake2 tar lfsmake2 texinfo - lfsmake2 udev lfsmake2 util-linux + lfsmake2 udev lfsmake2 vim lfsmake2 xz + lfsmake2 paxctl lfsmake2 grub }
@@ -369,6 +386,7 @@ buildipfire() { ipfiremake dhcp ipfiremake dhcpcd ipfiremake libusb + ipfiremake libusbx ipfiremake libpcap ipfiremake ppp ipfiremake pptp @@ -378,75 +396,60 @@ buildipfire() { ipfiremake dvb-firmwares ipfiremake zd1211-firmware ipfiremake rpi-firmware + ipfiremake bc ipfiremake u-boot
if [ "${MACHINE_TYPE}" != "arm" ]; then
- # x86-xen (Legacy XEN) kernel build - ipfiremake linux2 KCFG="-xen" - ipfiremake v4l-dvb KCFG="-xen" - ipfiremake mISDN KCFG="-xen" - ipfiremake cryptodev KCFG="-xen" - ipfiremake compat-drivers KCFG="-xen" - ipfiremake r8169 KCFG="-xen" - ipfiremake r8168 KCFG="-xen" - ipfiremake r8101 KCFG="-xen" - ipfiremake e1000 KCFG="-xen" - ipfiremake e1000e KCFG="-xen" - ipfiremake igb KCFG="-xen" - # x86-pae (Native and new XEN) kernel build ipfiremake linux KCFG="-pae" - ipfiremake kvm-kmod KCFG="-pae" - ipfiremake v4l-dvb KCFG="-pae" - ipfiremake mISDN KCFG="-pae" +# ipfiremake kvm-kmod KCFG="-pae" +# ipfiremake v4l-dvb KCFG="-pae" +# ipfiremake mISDN KCFG="-pae" ipfiremake cryptodev KCFG="-pae" - ipfiremake compat-drivers KCFG="-pae" - ipfiremake r8169 KCFG="-pae" - ipfiremake r8168 KCFG="-pae" - ipfiremake r8101 KCFG="-pae" - ipfiremake e1000e KCFG="-pae" - ipfiremake igb KCFG="-pae" +# ipfiremake compat-drivers KCFG="-pae" +# ipfiremake r8169 KCFG="-pae" +# ipfiremake r8168 KCFG="-pae" +# ipfiremake r8101 KCFG="-pae" +# ipfiremake e1000e KCFG="-pae" +# ipfiremake igb KCFG="-pae"
# x86 kernel build ipfiremake linux KCFG="" - ipfiremake kvm-kmod KCFG="" - ipfiremake v4l-dvb KCFG="" - ipfiremake mISDN KCFG="" +# ipfiremake kvm-kmod KCFG="" +# ipfiremake v4l-dvb KCFG="" +# ipfiremake mISDN KCFG="" ipfiremake cryptodev KCFG="" - ipfiremake compat-drivers KCFG="" - ipfiremake r8169 KCFG="" - ipfiremake r8168 KCFG="" - ipfiremake r8101 KCFG="" - ipfiremake e1000e KCFG="" - ipfiremake igb KCFG="" +# ipfiremake compat-drivers KCFG="" +# ipfiremake r8169 KCFG="" +# ipfiremake r8168 KCFG="" +# ipfiremake r8101 KCFG="" +# ipfiremake e1000e KCFG="" +# ipfiremake igb KCFG=""
else # arm-rpi (Raspberry Pi) kernel build ipfiremake linux KCFG="-rpi" - ipfiremake v4l-dvb KCFG="-rpi" - ipfiremake mISDN KCFG="-rpi" NOPCI=1 +# ipfiremake v4l-dvb KCFG="-rpi" +# ipfiremake mISDN KCFG="-rpi" NOPCI=1 ipfiremake cryptodev KCFG="-rpi" - ipfiremake compat-drivers KCFG="-rpi" +# ipfiremake compat-drivers KCFG="-rpi"
- # arm-omap (Panda Board) kernel build - ipfiremake linux KCFG="-omap" - ipfiremake v4l-dvb KCFG="-omap" - ipfiremake mISDN KCFG="-omap" NOPCI=1 - ipfiremake cryptodev KCFG="-omap" - ipfiremake compat-drivers KCFG="-omap" + # arm multi platform (Panda, Wandboard ...) kernel build + ipfiremake linux KCFG="-multi" + ipfiremake cryptodev KCFG="-multi"
# arm-kirkwood (Dreamplug, ICY-Box ...) kernel build ipfiremake linux KCFG="-kirkwood" - ipfiremake v4l-dvb KCFG="-kirkwood" - ipfiremake mISDN KCFG="-kirkwood" +# ipfiremake v4l-dvb KCFG="-kirkwood" +# ipfiremake mISDN KCFG="-kirkwood" ipfiremake cryptodev KCFG="-kirkwood" - ipfiremake compat-drivers KCFG="-kirkwood" - ipfiremake r8169 KCFG="-kirkwood" - ipfiremake r8168 KCFG="-kirkwood" - ipfiremake r8101 KCFG="-kirkwood" -# ipfiremake e1000e KCFG="-kirkwood" - ipfiremake igb KCFG="-kirkwood" +# ipfiremake compat-drivers KCFG="-kirkwood" +# ipfiremake r8169 KCFG="-kirkwood" +# ipfiremake r8168 KCFG="-kirkwood" +# ipfiremake r8101 KCFG="-kirkwood" +# ipfiremake e1000e KCFG="-kirkwood" +# ipfiremake igb KCFG="-kirkwood"
fi ipfiremake pkg-config @@ -457,6 +460,7 @@ buildipfire() { ipfiremake gdbm ipfiremake pam ipfiremake openssl + ipfiremake openssl-compat ipfiremake curl ipfiremake tcl ipfiremake sqlite @@ -491,6 +495,7 @@ buildipfire() { ipfiremake apache2 ipfiremake php ipfiremake apache2 PASS=C + ipfiremake jquery ipfiremake arping ipfiremake beep ipfiremake dvdrtools @@ -591,6 +596,8 @@ buildipfire() { ipfiremake lzo ipfiremake openvpn ipfiremake pammysql + ipfiremake mpage + ipfiremake dbus ipfiremake cups ipfiremake ghostscript ipfiremake foomatic @@ -679,7 +686,6 @@ buildipfire() { ipfiremake mpc ipfiremake git ipfiremake squidclamav - ipfiremake bc ipfiremake vnstat ipfiremake vnstati ipfiremake iw @@ -690,7 +696,6 @@ buildipfire() { ipfiremake syslinux ipfiremake tftpd ipfiremake cpufrequtils - ipfiremake dbus ipfiremake bluetooth ipfiremake gutenprint ipfiremake apcupsd @@ -726,7 +731,6 @@ buildipfire() { ipfiremake usb_modeswitch_data ipfiremake zerofree ipfiremake mdadm - ipfiremake eject ipfiremake pound ipfiremake minicom ipfiremake ddrescue @@ -763,7 +767,6 @@ buildipfire() { ipfiremake stress ipfiremake libstatgrab ipfiremake sarg - ipfiremake fstrim ipfiremake check_mk_agent ipfiremake libdaemon ipfiremake avahi @@ -787,36 +790,13 @@ buildipfire() { ipfiremake arm ipfiremake wavemon ipfiremake iptraf-ng - echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild - cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild - echo >> $BASEDIR/build/var/ipfire/firebuild - git log -1 >> $BASEDIR/build/var/ipfire/firebuild - echo >> $BASEDIR/build/var/ipfire/firebuild - git status >> $BASEDIR/build/var/ipfire/firebuild - echo >> $BASEDIR/build/var/ipfire/firebuild - cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild - echo $PAKFIRE_CORE > $BASEDIR/build/opt/pakfire/db/core/mine - if [ "$(git status -s | wc -l)" == "0" ]; then - GIT_STATUS="" - else - GIT_STATUS="-dirty" - fi - case "$GIT_BRANCH" in - core*|beta?|rc?) - echo "$NAME $VERSION ($MACHINE) - $GIT_BRANCH$GIT_STATUS" > $BASEDIR/build/etc/system-release - ;; - *) - echo "$NAME $VERSION ($MACHINE) - Development Build: $GIT_BRANCH/$GIT_LASTCOMMIT$GIT_STATUS" > $BASEDIR/build/etc/system-release - ;; - esac + ipfiremake iotop }
buildinstaller() { # Run installer scripts one by one LOGFILE="$BASEDIR/log/_build.installer.log" export LOGFILE - ipfiremake as86 - ipfiremake mbr ipfiremake memtest ipfiremake installer installmake strip @@ -855,9 +835,6 @@ buildpackages() {
# Check if there is a loop device for building in virtual environments if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]); then - if [ "${MACHINE_TYPE}" != "arm" ]; then - ipfiremake usb-stick - fi ipfiremake flash-images fi
@@ -865,16 +842,7 @@ buildpackages() {
ipfirepackages
- # Check if there is a loop device for building in virtual environments - if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]) && [ "${MACHINE_TYPE}" != "arm" ]; then - cp -f $BASEDIR/packages/linux-xen-*.ipfire $LFS/install/packages/ - cp -f $BASEDIR/packages/meta-linux-xen $LFS/install/packages/ - cp -f $BASEDIR/packages/linux-pae-*.ipfire $LFS/install/packages/ - cp -f $BASEDIR/packages/meta-linux-pae $LFS/install/packages/ - ipfiremake xen-image - rm -rf $LFS/install/packages/linux-xen-*.ipfire - rm -rf $LFS/install/packages/meta-linux-xen - fi + ipfiremake xen-image mv $LFS/install/images/*.bz2 $BASEDIR >> $LOGFILE 2>&1
cd $BASEDIR diff --git a/src/initscripts/init.d/apache b/src/initscripts/init.d/apache index 4c73a7f..5405d77 100644 --- a/src/initscripts/init.d/apache +++ b/src/initscripts/init.d/apache @@ -9,12 +9,14 @@
case "$1" in start) - boot_mesg "Starting Apache daemon..." if [ -f /etc/httpd/server.key -a -f /etc/httpd/server.crt -a -f /etc/httpd/server.csr ]; then /usr/local/bin/httpscert read >/dev/null 2>&1 else + boot_mesg "Generating https host certificate... this may take some minutes..." /usr/local/bin/httpscert new >/dev/null 2>&1 + evaluate_retval fi + boot_mesg "Starting Apache daemon..." /usr/sbin/apachectl -k start evaluate_retval ;; diff --git a/src/initscripts/init.d/collectd b/src/initscripts/init.d/collectd index 544b3e1..7de005e 100644 --- a/src/initscripts/init.d/collectd +++ b/src/initscripts/init.d/collectd @@ -34,8 +34,10 @@ case "$1" in # pre scan and try to load modules "yes" | /usr/sbin/sensors-detect > /dev/null if [ -e /etc/sysconfig/lm_sensors ]; then + # Module load - for modul in `cat /etc/sysconfig/lm_sensors | grep '^MODULE_' | cut -d"=" -s -f2`; do + . /etc/sysconfig/lm_sensors + for modul in $BUS_MODULES $HWMON_MODULES ; do modprobe $modul > /dev/null 2>&1; done fi @@ -52,8 +54,10 @@ case "$1" in # Load sensor modules only first start if [ ! -e /var/lock/sensors_modules ]; then touch /var/lock/sensors_modules + boot_mesg -n "Loading Sensor Modules: " - for modul in `cat /etc/sysconfig/lm_sensors | grep '^MODULE_' | cut -d"=" -s -f2`; do + . /etc/sysconfig/lm_sensors + for modul in $BUS_MODULES $HWMON_MODULES ; do modprobe $modul > /dev/null 2>&1; if [ ${?} = 0 ]; then boot_mesg -n "$SUCCESS$modul$NORMAL "; diff --git a/src/initscripts/init.d/firewall b/src/initscripts/init.d/firewall index 0237297..be0c8b0 100644 --- a/src/initscripts/init.d/firewall +++ b/src/initscripts/init.d/firewall @@ -68,74 +68,14 @@ iptables_init() { # SYN/FIN (QueSO or nmap OS probe) /sbin/iptables -A BADTCP -p tcp --tcp-flags SYN,FIN SYN,FIN -j PSCAN # NEW TCP without SYN - /sbin/iptables -A BADTCP -p tcp ! --syn -m state --state NEW -j NEWNOTSYN + /sbin/iptables -A BADTCP -p tcp ! --syn -m conntrack --ctstate NEW -j NEWNOTSYN
- /sbin/iptables -A INPUT -j BADTCP - /sbin/iptables -A FORWARD -j BADTCP + /sbin/iptables -A INPUT -p tcp -j BADTCP + /sbin/iptables -A FORWARD -p tcp -j BADTCP
-} - -iptables_red() { - /sbin/iptables -F REDINPUT - /sbin/iptables -F REDFORWARD - /sbin/iptables -t nat -F REDNAT - - # PPPoE / PPTP Device - if [ "$IFACE" != "" ]; then - # PPPoE / PPTP - if [ "$DEVICE" != "" ]; then - /sbin/iptables -A REDINPUT -i $DEVICE -j ACCEPT - fi - if [ "$RED_TYPE" == "PPTP" -o "$RED_TYPE" == "PPPOE" ]; then - if [ "$RED_DEV" != "" ]; then - /sbin/iptables -A REDINPUT -i $RED_DEV -j ACCEPT - fi - fi - fi - - # PPTP over DHCP - if [ "$DEVICE" != "" -a "$TYPE" == "PPTP" -a "$METHOD" == "DHCP" ]; then - /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $DEVICE -j ACCEPT - /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $DEVICE -j ACCEPT - fi - - # Orange pinholes - if [ "$ORANGE_DEV" != "" ]; then - # This rule enables a host on ORANGE network to connect to the outside - # (only if we have a red connection) - if [ "$IFACE" != "" ]; then - /sbin/iptables -A REDFORWARD -i $ORANGE_DEV -o $IFACE -j ACCEPT - fi - fi - - if [ "$IFACE" != "" -a -f /var/ipfire/red/active ]; then - # DHCP - if [ "$RED_DEV" != "" -a "$RED_TYPE" == "DHCP" ]; then - /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - fi - if [ "$METHOD" == "DHCP" -a "$PROTOCOL" == "RFC1483" ]; then - /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - fi - - # Outgoing masquerading (don't masqerade IPSEC (mark 50)) - /sbin/iptables -t nat -A REDNAT -m mark --mark 50 -o $IFACE -j RETURN - /sbin/iptables -t nat -A REDNAT -o $IFACE -j MASQUERADE - - fi -} - -# See how we were called. -case "$1" in - start) - iptables_init - - # Limit Packets- helps reduce dos/syn attacks - # original do nothing line - #/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 10/sec - # the correct one, but the negative '!' do nothing... - #/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN ! -m limit --limit 10/sec -j DROP + # Connection tracking chain + /sbin/iptables -N CONNTRACK + /sbin/iptables -A CONNTRACK -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Fix for braindead ISP's /sbin/iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu @@ -143,21 +83,30 @@ case "$1" in # CUSTOM chains, can be used by the users themselves /sbin/iptables -N CUSTOMINPUT /sbin/iptables -A INPUT -j CUSTOMINPUT - /sbin/iptables -N GUARDIAN - /sbin/iptables -A INPUT -j GUARDIAN - /sbin/iptables -A FORWARD -j GUARDIAN /sbin/iptables -N CUSTOMFORWARD /sbin/iptables -A FORWARD -j CUSTOMFORWARD /sbin/iptables -N CUSTOMOUTPUT /sbin/iptables -A OUTPUT -j CUSTOMOUTPUT - /sbin/iptables -N OUTGOINGFW - /sbin/iptables -N OUTGOINGFWMAC - /sbin/iptables -A OUTPUT -j OUTGOINGFW /sbin/iptables -t nat -N CUSTOMPREROUTING /sbin/iptables -t nat -A PREROUTING -j CUSTOMPREROUTING /sbin/iptables -t nat -N CUSTOMPOSTROUTING /sbin/iptables -t nat -A POSTROUTING -j CUSTOMPOSTROUTING
+ # Guardian (IPS) chains + /sbin/iptables -N GUARDIAN + /sbin/iptables -A INPUT -j GUARDIAN + /sbin/iptables -A FORWARD -j GUARDIAN + + # Block OpenVPN transfer networks + /sbin/iptables -N OVPNBLOCK + for i in INPUT FORWARD; do + /sbin/iptables -A ${i} -j OVPNBLOCK + done + + # OpenVPN transfer network translation + /sbin/iptables -t nat -N OVPNNAT + /sbin/iptables -t nat -A POSTROUTING -j OVPNNAT + # IPTV chains for IGMPPROXY /sbin/iptables -N IPTVINPUT /sbin/iptables -A INPUT -j IPTVINPUT @@ -169,60 +118,68 @@ case "$1" in /sbin/iptables -A INPUT -j GUIINPUT /sbin/iptables -A GUIINPUT -p icmp --icmp-type 8 -j ACCEPT
+ # Accept everything on loopback + /sbin/iptables -N LOOPBACK + /sbin/iptables -A LOOPBACK -i lo -j ACCEPT + /sbin/iptables -A LOOPBACK -o lo -j ACCEPT + + # Filter all packets with loopback addresses on non-loopback interfaces. + /sbin/iptables -A LOOPBACK -s 127.0.0.0/8 -j DROP + /sbin/iptables -A LOOPBACK -d 127.0.0.0/8 -j DROP + + for i in INPUT FORWARD OUTPUT; do + /sbin/iptables -A ${i} -j LOOPBACK + done + # Accept everything connected - /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT - /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT - + for i in INPUT FORWARD OUTPUT; do + /sbin/iptables -A ${i} -j CONNTRACK + done + # trafic from ipsecX/TUN/TAP interfaces, before "-i GREEN_DEV" accept everything /sbin/iptables -N IPSECINPUT /sbin/iptables -N IPSECFORWARD /sbin/iptables -N IPSECOUTPUT - /sbin/iptables -N OPENSSLVIRTUAL /sbin/iptables -A INPUT -j IPSECINPUT - /sbin/iptables -A INPUT -j OPENSSLVIRTUAL -m comment --comment "OPENSSLVIRTUAL INPUT" /sbin/iptables -A FORWARD -j IPSECFORWARD - /sbin/iptables -A FORWARD -j OPENSSLVIRTUAL -m comment --comment "OPENSSLVIRTUAL FORWARD" /sbin/iptables -A OUTPUT -j IPSECOUTPUT - /sbin/iptables -t nat -N OVPNNAT /sbin/iptables -t nat -N IPSECNAT - /sbin/iptables -t nat -A POSTROUTING -j OVPNNAT /sbin/iptables -t nat -A POSTROUTING -j IPSECNAT
- # TOR - /sbin/iptables -N TOR_INPUT - /sbin/iptables -A INPUT -j TOR_INPUT - - # Outgoing Firewall - /sbin/iptables -A FORWARD -j OUTGOINGFWMAC - # localhost and ethernet. - /sbin/iptables -A INPUT -i lo -m state --state NEW -j ACCEPT - /sbin/iptables -A INPUT -s 127.0.0.0/8 -m state --state NEW -j DROP # Loopback not on lo - /sbin/iptables -A INPUT -d 127.0.0.0/8 -m state --state NEW -j DROP - /sbin/iptables -A FORWARD -i lo -m state --state NEW -j ACCEPT - /sbin/iptables -A FORWARD -s 127.0.0.0/8 -m state --state NEW -j DROP - /sbin/iptables -A FORWARD -d 127.0.0.0/8 -m state --state NEW -j DROP - /sbin/iptables -A INPUT -i $GREEN_DEV -m state --state NEW -j ACCEPT ! -p icmp - /sbin/iptables -A FORWARD -i $GREEN_DEV -m state --state NEW -j ACCEPT - - # If a host on orange tries to initiate a connection to IPFire's red IP and - # the connection gets DNATed back through a port forward to a server on orange - # we end up with orange -> orange traffic passing through IPFire - [ "$ORANGE_DEV" != "" ] && /sbin/iptables -A FORWARD -i $ORANGE_DEV -o $ORANGE_DEV -m state --state NEW -j ACCEPT - + /sbin/iptables -A INPUT -i $GREEN_DEV -m conntrack --ctstate NEW -j ACCEPT ! -p icmp + # allow DHCP on BLUE to be turned on/off /sbin/iptables -N DHCPBLUEINPUT /sbin/iptables -A INPUT -j DHCPBLUEINPUT - - # OPenSSL - /sbin/iptables -N OPENSSLPHYSICAL - /sbin/iptables -A INPUT -j OPENSSLPHYSICAL - + # WIRELESS chains /sbin/iptables -N WIRELESSINPUT - /sbin/iptables -A INPUT -m state --state NEW -j WIRELESSINPUT + /sbin/iptables -A INPUT -m conntrack --ctstate NEW -j WIRELESSINPUT /sbin/iptables -N WIRELESSFORWARD - /sbin/iptables -A FORWARD -m state --state NEW -j WIRELESSFORWARD + /sbin/iptables -A FORWARD -m conntrack --ctstate NEW -j WIRELESSFORWARD + + # OpenVPN + /sbin/iptables -N OVPNINPUT + /sbin/iptables -A INPUT -j OVPNINPUT + + # TOR + /sbin/iptables -N TOR_INPUT + /sbin/iptables -A INPUT -j TOR_INPUT + + # Jump into the actual firewall ruleset. + /sbin/iptables -N INPUTFW + /sbin/iptables -A INPUT -j INPUTFW + + /sbin/iptables -N OUTGOINGFW + /sbin/iptables -A OUTPUT -j OUTGOINGFW + + /sbin/iptables -N FORWARDFW + /sbin/iptables -A FORWARD -j FORWARDFW + + # SNAT rules + /sbin/iptables -t nat -N NAT_SOURCE + /sbin/iptables -t nat -A POSTROUTING -j NAT_SOURCE
# RED chain, used for the red interface /sbin/iptables -N REDINPUT @@ -234,119 +191,126 @@ case "$1" in
iptables_red
- # DMZ pinhole chain. setdmzholes setuid prog adds rules here to allow - # ORANGE to talk to GREEN / BLUE. - /sbin/iptables -N DMZHOLES - if [ "$ORANGE_DEV" != "" ]; then - /sbin/iptables -A FORWARD -i $ORANGE_DEV -m state --state NEW -j DMZHOLES - fi - - # XTACCESS chain, used for external access - /sbin/iptables -N XTACCESS - /sbin/iptables -A INPUT -m state --state NEW -j XTACCESS - - # PORTFWACCESS chain, used for portforwarding - /sbin/iptables -N PORTFWACCESS - /sbin/iptables -A FORWARD -m state --state NEW -j PORTFWACCESS - - # Custom prerouting chains (for transparent proxy and port forwarding) + # Custom prerouting chains (for transparent proxy) /sbin/iptables -t nat -N SQUID /sbin/iptables -t nat -A PREROUTING -j SQUID - /sbin/iptables -t nat -N PORTFW - /sbin/iptables -t nat -A PREROUTING -j PORTFW + + # DNAT rules + /sbin/iptables -t nat -N NAT_DESTINATION + /sbin/iptables -t nat -A PREROUTING -j NAT_DESTINATION
# upnp chain for our upnp daemon /sbin/iptables -t nat -N UPNPFW /sbin/iptables -t nat -A PREROUTING -j UPNPFW /sbin/iptables -N UPNPFW - /sbin/iptables -A FORWARD -m state --state NEW -j UPNPFW - - # Custom mangle chain (for port fowarding) - /sbin/iptables -t mangle -N PORTFWMANGLE - /sbin/iptables -t mangle -A PREROUTING -j PORTFWMANGLE - - # Postrouting rules (for port forwarding) - /sbin/iptables -t nat -A POSTROUTING -m mark --mark 1 -j SNAT \ - --to-source $GREEN_ADDRESS - if [ "$BLUE_DEV" != "" ]; then - /sbin/iptables -t nat -A POSTROUTING -m mark --mark 2 -j SNAT --to-source $BLUE_ADDRESS - fi - if [ "$ORANGE_DEV" != "" ]; then - /sbin/iptables -t nat -A POSTROUTING -m mark --mark 3 -j SNAT --to-source $ORANGE_ADDRESS - fi + /sbin/iptables -A FORWARD -m conntrack --ctstate NEW -j UPNPFW
# run local firewall configuration, if present if [ -x /etc/sysconfig/firewall.local ]; then /etc/sysconfig/firewall.local start fi - - # last rule in input and forward chain is for logging. + + # Apply OpenVPN firewall rules + /usr/local/bin/openvpnctrl --firewall-rules + + # run wirelessctrl + /usr/local/bin/wirelessctrl + + #POLICY CHAIN + /sbin/iptables -N POLICYIN + /sbin/iptables -A INPUT -j POLICYIN + /sbin/iptables -N POLICYFWD + /sbin/iptables -A FORWARD -j POLICYFWD + /sbin/iptables -N POLICYOUT + /sbin/iptables -A OUTPUT -j POLICYOUT + + /usr/sbin/firewall-policy + + # read new firewall + /usr/local/bin/firewallctrl
if [ "$DROPINPUT" == "on" ]; then - /sbin/iptables -A INPUT -m limit --limit 10/minute -j LOG --log-prefix "DROP_INPUT " + /sbin/iptables -A INPUT -m limit --limit 10/minute -j LOG --log-prefix "DROP_INPUT" fi /sbin/iptables -A INPUT -j DROP -m comment --comment "DROP_INPUT" - if [ "$DROPOUTPUT" == "on" ]; then - /sbin/iptables -A FORWARD -m limit --limit 10/minute -j LOG --log-prefix "DROP_OUTPUT " + if [ "$DROPFORWARD" == "on" ]; then + /sbin/iptables -A FORWARD -m limit --limit 10/minute -j LOG --log-prefix "DROP_FORWARD" fi - /sbin/iptables -A FORWARD -j DROP -m comment --comment "DROP_OUTPUT" - ;; - startovpn) - # run openvpn - /usr/local/bin/openvpnctrl --create-chains-and-rules - ;; - stop) - iptables_init - # Accept everyting connected - /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT + /sbin/iptables -A FORWARD -j DROP -m comment --comment "DROP_FORWARD" +}
- # localhost and ethernet. - /sbin/iptables -A INPUT -i lo -j ACCEPT - /sbin/iptables -A INPUT -i $GREEN_DEV -m state --state NEW -j ACCEPT +iptables_red() { + /sbin/iptables -F REDINPUT + /sbin/iptables -F REDFORWARD + /sbin/iptables -t nat -F REDNAT
- if [ "$RED_DEV" != "" -a "$RED_TYPE" == "DHCP" ]; then - /sbin/iptables -A INPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - /sbin/iptables -A INPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - fi - if [ "$PROTOCOL" == "RFC1483" -a "$METHOD" == "DHCP" ]; then - /sbin/iptables -A INPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT - /sbin/iptables -A INPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT + # PPPoE / PPTP Device + if [ "$IFACE" != "" ]; then + # PPPoE / PPTP + if [ "$DEVICE" != "" ]; then + /sbin/iptables -A REDINPUT -i $DEVICE -j ACCEPT + fi + if [ "$RED_TYPE" == "PPTP" -o "$RED_TYPE" == "PPPOE" ]; then + if [ "$RED_DEV" != "" ]; then + /sbin/iptables -A REDINPUT -i $RED_DEV -j ACCEPT + fi + fi fi
- # run local firewall configuration, if present - if [ -x /etc/sysconfig/firewall.local ]; then - /etc/sysconfig/firewall.local stop + # PPTP over DHCP + if [ "$DEVICE" != "" -a "$TYPE" == "PPTP" -a "$METHOD" == "DHCP" ]; then + /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $DEVICE -j ACCEPT + /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $DEVICE -j ACCEPT fi
- if [ "$DROPINPUT" == "on" ]; then - /sbin/iptables -A INPUT -m limit --limit 10/minute -j LOG --log-prefix "DROP_INPUT " + # Orange pinholes + if [ "$ORANGE_DEV" != "" ]; then + # This rule enables a host on ORANGE network to connect to the outside + # (only if we have a red connection) + if [ "$IFACE" != "" ]; then + /sbin/iptables -A REDFORWARD -i $ORANGE_DEV -o $IFACE -j ACCEPT + fi fi - /sbin/iptables -A INPUT -j DROP -m comment --comment "DROP_INPUT" - if [ "$DROPOUTPUT" == "on" ]; then - /sbin/iptables -A FORWARD -m limit --limit 10/minute -j LOG --log-prefix "DROP_OUTPUT " + + if [ "$IFACE" != "" -a -f /var/ipfire/red/active ]; then + # DHCP + if [ "$RED_DEV" != "" -a "$RED_TYPE" == "DHCP" ]; then + /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT + /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT + fi + if [ "$METHOD" == "DHCP" -a "$PROTOCOL" == "RFC1483" ]; then + /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT + /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT + fi + + # Outgoing masquerading (don't masqerade IPSEC (mark 50)) + /sbin/iptables -t nat -A REDNAT -m mark --mark 50 -o $IFACE -j RETURN + /sbin/iptables -t nat -A REDNAT -o $IFACE -j MASQUERADE + fi - /sbin/iptables -A FORWARD -j DROP -m comment --comment "DROP_OUTPUT" - ;; - stopovpn) - # stop openvpn - /usr/local/bin/openvpnctrl --delete-chains-and-rules - ;; +} + +# See how we were called. +case "$1" in + start) + iptables_init + ;; reload) iptables_red - # run local firewall configuration, if present - if [ -x /etc/sysconfig/firewall.local ]; then + if [ -x /etc/sysconfig/firewall.local ]; then /etc/sysconfig/firewall.local reload fi ;; restart) - $0 stop - $0 stopovpn + # run local firewall configuration, if present + if [ -x /etc/sysconfig/firewall.local ]; then + /etc/sysconfig/firewall.local stop + fi $0 start - $0 startovpn ;; *) - echo "Usage: $0 {start|stop|reload|restart}" + echo "Usage: $0 {start|reload|restart}" exit 1 ;; esac diff --git a/src/initscripts/init.d/firstsetup b/src/initscripts/init.d/firstsetup index 0d3f448..16e10f7 100644 --- a/src/initscripts/init.d/firstsetup +++ b/src/initscripts/init.d/firstsetup @@ -35,15 +35,17 @@ if [ "${?}" == "1" ]; then fi
# plan install pae kernel at next pakfire update if pae is supported -rm -rf /opt/pakfire/db/*/meta-linux-pae if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then - echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae - echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae - echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae + if [ ! -e /opt/pakfire/db/installed/meta-linux-pae ]; then + echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae + echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae + fi fi
echo Restarting udev... killall udevd +/sbin/udevadm hwdb --update /sbin/udevd --daemon /sbin/udevadm trigger /sbin/udevadm settle diff --git a/src/initscripts/init.d/mountfs b/src/initscripts/init.d/mountfs index d4735d5..284b51d 100644 --- a/src/initscripts/init.d/mountfs +++ b/src/initscripts/init.d/mountfs @@ -24,11 +24,9 @@ case "${1}" in # Remove fsck-related file system watermarks. rm -f /fastboot /forcefsck
- boot_mesg "Recording existing mounts in /etc/mtab..." + boot_mesg "Create /etc/mtab..." > /etc/mtab mount -f / || failed=1 - mount -f /proc || failed=1 - mount -f /sys || failed=1 (exit ${failed}) evaluate_retval
@@ -49,9 +47,6 @@ case "${1}" in boot_mesg "Unmounting all other currently mounted file systems..." umount -a -d -r &>/dev/null evaluate_retval - - # mount /sys again for led control at halt - mount /sys 2>&1 >/dev/null ;; *) echo "Usage: ${0} {start|stop}" diff --git a/src/initscripts/init.d/mountkernfs b/src/initscripts/init.d/mountkernfs index 1e5be05..9cbceb4 100644 --- a/src/initscripts/init.d/mountkernfs +++ b/src/initscripts/init.d/mountkernfs @@ -21,12 +21,12 @@ case "${1}" in
if ! mountpoint /proc &> /dev/null; then boot_mesg -n " /proc" ${NORMAL} - mount -n /proc || failed=1 + mount -n -t proc /proc /proc || failed=1 fi
if ! mountpoint /sys &> /dev/null; then boot_mesg -n " /sys" ${NORMAL} - mount -n /sys || failed=1 + mount -n -t sysfs /sys /sys || failed=1 fi
boot_mesg "" ${NORMAL} diff --git a/src/initscripts/init.d/network b/src/initscripts/init.d/network index 9ff2200..02df4bc 100644 --- a/src/initscripts/init.d/network +++ b/src/initscripts/init.d/network @@ -47,9 +47,7 @@ init_networking() { # (exit ${failed}) # evaluate_retval
- boot_mesg "Setting up DMZ pinholes" - /usr/local/bin/setdmzholes; evaluate_retval - + if [ "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "4" ]; then boot_mesg "Setting up wireless firewall rules" /usr/local/bin/wirelessctrl; evaluate_retval diff --git a/src/initscripts/init.d/network-vlans b/src/initscripts/init.d/network-vlans index c31f3e1..a6a75c3 100644 --- a/src/initscripts/init.d/network-vlans +++ b/src/initscripts/init.d/network-vlans @@ -80,13 +80,15 @@ for interface in green0 red0 blue0 orange0; do continue fi
- echo "Creating VLAN interface ${interface}..." - vconfig add ${PARENT_DEV} ${VLAN_ID} - ip link set ${PARENT_DEV}.${VLAN_ID} name ${interface} - + # Build command line. + command="ip link add link ${PARENT_DEV} name ${interface}" if [ -n "${MAC_ADDRESS}" ]; then - ip link set ${interface} address ${MAC_ADDRESS} + command="${command} address ${MAC_ADDRESS}" fi + command="${command} type vlan id ${VLAN_ID}" + + echo "Creating VLAN interface ${interface}..." + ${command}
# Bring up the parent device. ip link set ${PARENT_DEV} up @@ -100,7 +102,7 @@ for interface in green0 red0 blue0 orange0; do
echo "Removing VLAN interface ${interface}..." ip link set ${interface} down - vconfig rem ${interface} + ip link delete ${interface} ;; *) diff --git a/src/initscripts/init.d/partresize b/src/initscripts/init.d/partresize index 33b5626..909d63f 100644 --- a/src/initscripts/init.d/partresize +++ b/src/initscripts/init.d/partresize @@ -6,7 +6,7 @@ # # Authors : Arne Fitzenreiter - arne_f@ipfire.org # -# Version : 1.01 +# Version : 1.03 # # Notes : # @@ -22,6 +22,12 @@ case "${1}" in mount -o remount,rw / > /dev/null evaluate_retval
+ boot_mesg "Create /etc/mtab..." + > /etc/mtab + mount -f / || failed=1 + (exit ${failed}) + evaluate_retval + # Detect device ROOT=`mount | grep -m1 " / " | cut -d" " -f1`; if [ "${ROOT:`expr length $ROOT`-2:1}" == "p" ]; then @@ -31,7 +37,7 @@ case "${1}" in fi
boot_mesg "Change Partition ${DRV}3 to all free space ..." - echo -e 'd\n3\nn\np\n3\n\n\nw\nq\n' | fdisk ${DRV} + echo -e ',+' | sfdisk --no-reread -N3 ${DRV} 2>/dev/null
# Erase symlink, it should run only once rm -f /etc/rc.d/rcsysinit.d/S25partresize @@ -49,4 +55,3 @@ case "${1}" in esac
# End $rc_base/init.d/partresize - diff --git a/src/initscripts/init.d/sslh b/src/initscripts/init.d/sslh index 9c15213..43e58f3 100644 --- a/src/initscripts/init.d/sslh +++ b/src/initscripts/init.d/sslh @@ -4,29 +4,30 @@ # Based on sysklogd script from LFS-3.1 and earlier. # Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org
-#$LastChangedBy: bdubbs $ -#$Date: 2006-09-10 19:41:47 -0500 (Sun, 10 Sep 2006) $ - . /etc/sysconfig/rc . $rc_functions
case "$1" in start) boot_mesg "Starting SSLH Deamon..." - loadproc /usr/local/bin/sslh -u nobody -p `cat /var/ipfire/red/local-ipaddress`:443 -s localhost:222 -l localhost:444 - evaluate_retval
- if ! grep -q "443:443" /var/ipfire/xtaccess/config ; then - echo "tcp,0.0.0.0/0,443:443,on,0.0.0.0,SSLH" >> /var/ipfire/xtaccess/config - /usr/local/bin/setxtaccess + LOCAL_IP_ADDRESS="$(</var/ipfire/red/local-ipaddress)" + if [ -z "${LOCAL_IP_ADDRESS}" ]; then + echo_failure + boot_mesg -n "FAILURE:\n\nCould not determine" ${FAILURE} + boot_mesg -n " your external IP address." + boot_mesg "" ${NORMAL} + exit 1 fi
- + loadproc /usr/sbin/sslh -u nobody \ + -p "${LOCAL_IP_ADDRESS}:443" -s localhost:222 -l localhost:444 + evaluate_retval ;;
stop) boot_mesg "Stopping SSLH Deamon..." - killproc /usr/local/bin/sslh + killproc /usr/sbin/sslh evaluate_retval ;;
@@ -37,7 +38,7 @@ case "$1" in ;;
status) - statusproc /usr/local/bin/sslh + statusproc /usr/sbin/sslh ;;
*) diff --git a/src/initscripts/init.d/tor b/src/initscripts/init.d/tor index 9c1dfc7..551538e 100644 --- a/src/initscripts/init.d/tor +++ b/src/initscripts/init.d/tor @@ -9,6 +9,8 @@ . /etc/sysconfig/rc . ${rc_functions}
+FILEDESCRIPTORS="65535" + eval $(/usr/local/bin/readhash /var/ipfire/tor/settings)
function tor_is_enabled() { @@ -40,6 +42,11 @@ case "${1}" in # Setup firewall. setup_firewall
+ # Increasing open file descriptors. + if [ -n "${FILEDESCRIPTORS}" ]; then + ulimit -n "${FILEDESCRIPTORS}" + fi + boot_mesg "Starting tor..." loadproc /usr/bin/tor \ --runasdaemon 1 \ diff --git a/src/initscripts/init.d/udev b/src/initscripts/init.d/udev index 03846e6..72d1e40 100644 --- a/src/initscripts/init.d/udev +++ b/src/initscripts/init.d/udev @@ -17,6 +17,9 @@
case "${1}" in start) + boot_mesg "Mount /var/run..." + mount -n -t tmpfs tmpfs /var/run -o size=2M + boot_mesg "Populating /dev with device nodes..." if ! grep -q '[[:space:]]sysfs' /proc/mounts; then echo_failure @@ -29,16 +32,10 @@ case "${1}" in read ENTER /etc/rc.d/init.d/halt stop fi - - # Mount a temporary file system over /dev, so that any devices - # made or removed during this boot don't affect the next one. - # The reason we don't write to mtab is because we don't ever - # want /dev to be unavailable (such as by `umount -a'). - mount -n -t tmpfs tmpfs /dev -o mode=755 - if [ ${?} != 0 ]; then + if ! grep -q '[[:space:]]/dev' /proc/mounts; then echo_failure - boot_mesg -n "FAILURE:\n\nCannot mount a tmpfs" ${FAILURE} - boot_mesg -n " onto /dev, this system will be halted." + boot_mesg -n "FAILURE:\n\nKernel has no devtmpfs/mount" ${FAILURE} + boot_mesg -n " support but this is needed for udev." boot_mesg -n "\n\nAfter you press Enter, this system" boot_mesg -n " will be halted and powered off." boot_mesg -n "\n\nPress Enter to continue..." ${INFO} @@ -60,10 +57,10 @@ case "${1}" in
# Now traverse /sys in order to "coldplug" devices that have # already been discovered - /sbin/udevadm trigger + /bin/udevadm trigger
# Now wait for udevd to process the uevents we triggered - /sbin/udevadm settle + /bin/udevadm settle evaluate_retval
;; diff --git a/src/initscripts/init.d/udev_retry b/src/initscripts/init.d/udev_retry index 78461ce..25e6967 100644 --- a/src/initscripts/init.d/udev_retry +++ b/src/initscripts/init.d/udev_retry @@ -26,7 +26,7 @@ case "${1}" in done 2>/dev/null # Now wait for udevd to process the uevents we triggered - /sbin/udevadm settle + /bin/udevadm settle evaluate_retval ;;
diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c index 8525e53..8f78865 100644 --- a/src/install+setup/install/main.c +++ b/src/install+setup/install/main.c @@ -433,6 +433,7 @@ int main(int argc, char *argv[]) mkdir("/harddisk/boot", S_IRWXU|S_IRWXG|S_IRWXO); mkdir("/harddisk/var", S_IRWXU|S_IRWXG|S_IRWXO); mkdir("/harddisk/var/log", S_IRWXU|S_IRWXG|S_IRWXO); + mkdir("/harddisk/var/run", S_IRWXU|S_IRWXG|S_IRWXO); snprintf(commandstring, STRING_SIZE, "/bin/mount %s1 /harddisk/boot", hdparams.devnode_part); if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_BOOT_FILESYSTEM])) diff --git a/src/install+setup/install/probenic.sh b/src/install+setup/install/probenic.sh index fb428cc..6c01cbb 100644 --- a/src/install+setup/install/probenic.sh +++ b/src/install+setup/install/probenic.sh @@ -65,6 +65,12 @@ for card in `ls /sys/class/net`; do let bus=`echo 1$bus`-1000 let dev=`echo 1$dev`-1000 name=`lsusb -s $bus:$dev | cut -d':' -f3 | cut -c 6-` + #kernel higher 3.2 changes + if [ "$name" == "" ]; then + vid=`grep PRODUCT= /sys/class/net/$card/device/uevent | cut -d"=" -f2 | cut -d"/" -f1` + pid=`grep PRODUCT= /sys/class/net/$card/device/uevent | cut -d"=" -f2 | cut -d"/" -f2` + name=`lsusb -d $vid:$pid | cut -d':' -f3 | cut -c 6-` + fi description=`echo $type: $name` fi
diff --git a/src/install+setup/libsmooth/libsmooth.h b/src/install+setup/libsmooth/libsmooth.h index fb38193..fc166b2 100644 --- a/src/install+setup/libsmooth/libsmooth.h +++ b/src/install+setup/libsmooth/libsmooth.h @@ -35,7 +35,7 @@
#include "langs.h"
-#define STRING_SIZE 1023 +#define STRING_SIZE 1024
#define ADDRESS 0 #define NETADDRESS 1 diff --git a/src/install+setup/libsmooth/netstuff.c b/src/install+setup/libsmooth/netstuff.c index de5c558..8c6f3fa 100644 --- a/src/install+setup/libsmooth/netstuff.c +++ b/src/install+setup/libsmooth/netstuff.c @@ -532,7 +532,7 @@ int create_udev(void) for (i = 0 ; i < 4 ; i++) { if (strcmp(knics[i].macaddr, "")) { - fprintf(fp,"ACTION=="add", SUBSYSTEM=="net", SYSFS{type}=="1", SYSFS{address}=="%s", NAME="%s0" # %s\n", knics[i].macaddr, lcolourcard[i], knics[i].description); + fprintf(fp,"\n# %s\nACTION=="add", SUBSYSTEM=="net", ATTR{type}=="1", ATTR{address}=="%s", NAME="%s0"\n", knics[i].description, knics[i].macaddr, lcolourcard[i]); } } fclose(fp); @@ -615,6 +615,7 @@ int nicmenu(int colour) int rc, choise = 0, count = 0, kcount = 0, mcount = 0, i, j, nic_in_use; int found_NIC_as_Card[4]; char message[STRING_SIZE]; + char temp[STRING_SIZE];
char cMenuInhalt[STRING_SIZE]; char MenuInhalt[20][180]; @@ -657,8 +658,20 @@ int nicmenu(int colour) pMenuInhalt[mcount] = NULL;
sprintf(message, ctr[TR_CHOOSE_NETCARD], ucolourcard[colour]); - rc = newtWinMenu( ctr[TR_NETCARDMENU2], message, 50, 5, 5, 6, pMenuInhalt, &choise, ctr[TR_OK], ctr[TR_SELECT], ctr[TR_CANCEL], NULL); - + rc=2; + while ( rc == 2 ) { + rc = newtWinMenu( ctr[TR_NETCARDMENU2], message, 50, 5, 5, 6, pMenuInhalt, &choise, ctr[TR_SELECT], ctr[TR_IDENTIFY], ctr[TR_CANCEL], NULL); + if ( rc == 2 ) { + sprintf(temp, "/sbin/ip link set %s up", nics[found_NIC_as_Card[choise]].nic); + mysystem(temp); + sprintf(temp, "/usr/sbin/ethtool -p %s 10", nics[found_NIC_as_Card[choise]].nic); + if (runcommandwithstatus(temp,ctr[TR_IDENTIFY_SHOULD_BLINK]) != 0) { + errorbox(ctr[TR_IDENTIFY_NOT_SUPPORTED]); + sprintf(temp, "/sbin/ip link set %s down", nics[found_NIC_as_Card[choise]].nic); + mysystem(temp); + } + } + } if ( rc == 0 || rc == 1) { write_configs_netudev(found_NIC_as_Card[choise], colour); } diff --git a/src/install+setup/setup/networking.c b/src/install+setup/setup/networking.c index 9c13717..edd3c71 100644 --- a/src/install+setup/setup/networking.c +++ b/src/install+setup/setup/networking.c @@ -112,6 +112,8 @@ int handlenetworking(void) runcommandwithstatus("/etc/rc.d/init.d/network start", ctr[TR_PULLING_NETWORK_UP]); } + } else { + rename_nics(); } create_udev(); return 1; diff --git a/src/misc-progs/Makefile b/src/misc-progs/Makefile index 4d09fbf..b447435 100644 --- a/src/misc-progs/Makefile +++ b/src/misc-progs/Makefile @@ -24,11 +24,10 @@ CFLAGS=-O2 -Wall COMPILE=$(CC) $(CFLAGS)
PROGS = iowrap -SUID_PROGS = setdmzholes setportfw setxtaccess \ - squidctrl sshctrl ipfirereboot \ +SUID_PROGS = squidctrl sshctrl ipfirereboot \ ipsecctrl timectrl dhcpctrl snortctrl \ applejuicectrl rebuildhosts backupctrl \ - logwatch openvpnctrl outgoingfwctrl \ + logwatch openvpnctrl firewallctrl \ wirelessctrl getipstat qosctrl launch-ether-wake \ redctrl syslogdctrl extrahdctrl sambactrl upnpctrl tripwirectrl \ smartctrl clamavctrl addonctrl pakfire mpfirectrl wlanapctrl \ @@ -86,22 +85,16 @@ smartctrl: smartctrl.c setuid.o ../install+setup/libsmooth/varval.o
clamavctrl: clamavctrl.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ clamavctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ - -outgoingfwctrl: outgoingfwctrl.c setuid.o ../install+setup/libsmooth/varval.o - $(COMPILE) -I../install+setup/libsmooth/ outgoingfwctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ - + +firewallctrl: firewallctrl.c setuid.o ../install+setup/libsmooth/varval.o + $(COMPILE) -I../install+setup/libsmooth/ firewallctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ + timectrl: timectrl.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ timectrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
launch-ether-wake: launch-ether-wake.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ launch-ether-wake.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-setdmzholes: setdmzholes.c setuid.o ../install+setup/libsmooth/varval.o - $(COMPILE) -I../install+setup/libsmooth/ setdmzholes.c setuid.o ../install+setup/libsmooth/varval.o -o $@ - -setportfw: setportfw.c setuid.o ../install+setup/libsmooth/varval.o - $(COMPILE) -I../install+setup/libsmooth/ setportfw.c setuid.o ../install+setup/libsmooth/varval.o -o $@ - rebuildhosts: rebuildhosts.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ rebuildhosts.c setuid.o ../install+setup/libsmooth/varval.o -o $@
diff --git a/src/misc-progs/backupctrl.c b/src/misc-progs/backupctrl.c index 2941117..00c8d5b 100644 --- a/src/misc-progs/backupctrl.c +++ b/src/misc-progs/backupctrl.c @@ -15,31 +15,30 @@
int main(int argc, char *argv[]) { int i; - char command[1024]; - char add[STRING_SIZE]; - + char command[STRING_SIZE] = "/var/ipfire/backup/bin/backup.pl"; + char temp[STRING_SIZE]; + if (!(initsetuid())) exit(1);
- snprintf(command, STRING_SIZE, "/var/ipfire/backup/bin/backup.pl"); - for (i = 1; i < argc; i++) { - if (strstr(argv[i], "&&")){ - fprintf (stderr, "Bad Argument!\n"); - exit (1); - } - else if (strstr(argv[i], "|")){ - fprintf (stderr, "Bad Argument!\n"); - exit (1); - } - else if (argc > 3){ - fprintf (stderr, "Too Many Arguments!\n"); - exit (1); + if (strstr(argv[i], "&&")){ + fprintf (stderr, "Bad Argument!\n"); + exit (1); + + } else if (strstr(argv[i], "|")) { + fprintf (stderr, "Bad Argument!\n"); + exit (1); + + } else if (argc > 3) { + fprintf (stderr, "Too Many Arguments!\n"); + exit (1); + + } else { + snprintf(temp, STRING_SIZE, "%s %s", command, argv[i]); + snprintf(command, STRING_SIZE, "%s", temp); } - else{ - sprintf(add, " %s", argv[i]); - strcat(command, add); - } } + return safe_system(command); } diff --git a/src/misc-progs/fireinfoctrl.c b/src/misc-progs/fireinfoctrl.c index 963459a..a026ba0 100644 --- a/src/misc-progs/fireinfoctrl.c +++ b/src/misc-progs/fireinfoctrl.c @@ -1,23 +1,23 @@ -/* IPFire helper program - fireinfoctrl - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) IPFire Team, 2011 - * - * Simple program that calls "sendprofile" as the root user. - * - */ - -#include <stdlib.h> -#include "setuid.h" - -int main(void) -{ - if (!(initsetuid())) - exit(1); - - safe_system("/usr/bin/sendprofile"); - - return 0; -} +/* IPFire helper program - fireinfoctrl + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + * (c) IPFire Team, 2011 + * + * Simple program that calls "sendprofile" as the root user. + * + */ + +#include <stdlib.h> +#include "setuid.h" + +int main(void) +{ + if (!(initsetuid())) + exit(1); + + safe_system("/usr/bin/sendprofile"); + + return 0; +} diff --git a/src/misc-progs/firewallctrl.c b/src/misc-progs/firewallctrl.c new file mode 100644 index 0000000..97de271 --- /dev/null +++ b/src/misc-progs/firewallctrl.c @@ -0,0 +1,25 @@ +/* This file is part of the IPFire Firewall. + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + */ + +#include <unistd.h> + +#include "setuid.h" + +int main(int argc, char *argv[]) { + if (!(initsetuid())) + exit(1); + + int retval = safe_system("/var/ipfire/firewall/bin/rules.pl"); + + /* If rules.pl has been successfully executed, the indicator + * file is removed. */ + if (retval == 0) { + unlink("/var/ipfire/firewall/reread"); + } + + return 0; +} diff --git a/src/misc-progs/getconntracktable.c b/src/misc-progs/getconntracktable.c index 674b211..78eb11a 100644 --- a/src/misc-progs/getconntracktable.c +++ b/src/misc-progs/getconntracktable.c @@ -1,31 +1,31 @@ -/* IPFire helper program - getconntracktable - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * The kernel's connection tracking table is not readable by - * non-root users. So this helper will just read and output it. - */ - -#include <stdio.h> -#include <stdlib.h> -#include "setuid.h" - -int main(void) { - if (!(initsetuid())) - exit(1); - - FILE *fp = fopen("/proc/net/nf_conntrack", "r"); - if (fp == NULL) { - exit(1); - } - - /* Read content line by line and write it to stdout. */ - char linebuf[STRING_SIZE]; - while (fgets(linebuf, STRING_SIZE, fp)) { - printf("%s", linebuf); - } - - fclose(fp); - return 0; -} +/* IPFire helper program - getconntracktable + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + * The kernel's connection tracking table is not readable by + * non-root users. So this helper will just read and output it. + */ + +#include <stdio.h> +#include <stdlib.h> +#include "setuid.h" + +int main(void) { + if (!(initsetuid())) + exit(1); + + FILE *fp = fopen("/proc/net/nf_conntrack", "r"); + if (fp == NULL) { + exit(1); + } + + /* Read content line by line and write it to stdout. */ + char linebuf[STRING_SIZE]; + while (fgets(linebuf, STRING_SIZE, fp)) { + printf("%s", linebuf); + } + + fclose(fp); + return 0; +} diff --git a/src/misc-progs/iowrap.c b/src/misc-progs/iowrap.c index e56203e..115ec2a 100644 --- a/src/misc-progs/iowrap.c +++ b/src/misc-progs/iowrap.c @@ -1,44 +1,44 @@ -/* SmoothWall helper program - iowrap. - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Lawrence Manning, 2001 - * Installer helper for redirecting stdout/stderr to a file/terminal. - * init calls ash through this program to shove it on a tty. - * - * $Id: iowrap.c,v 1.2 2001/11/27 15:20:50 riddles Exp $ - * - */ - -#include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <unistd.h> - -int main(int argc, char *argv[]) -{ - /* Prog takes one argument. A device to run on (like a getty) */ - if (argc >= 2) - { - int fd; - - if ((fd = open(argv[1], O_RDWR)) == -1) - { - printf("Couldn't open device\n"); - return 0; - } - dup2(fd, 0); - dup2(fd, 1); - dup2(fd, 2); - /* Now its sending/reading on that device. */ - } - - if (argc >= 3) - execvp(argv[2], &argv[2]); - else - printf("No command\n"); - - return 0; -} +/* SmoothWall helper program - iowrap. + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + * (c) Lawrence Manning, 2001 + * Installer helper for redirecting stdout/stderr to a file/terminal. + * init calls ash through this program to shove it on a tty. + * + * $Id: iowrap.c,v 1.2 2001/11/27 15:20:50 riddles Exp $ + * + */ + +#include <stdio.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <unistd.h> + +int main(int argc, char *argv[]) +{ + /* Prog takes one argument. A device to run on (like a getty) */ + if (argc >= 2) + { + int fd; + + if ((fd = open(argv[1], O_RDWR)) == -1) + { + printf("Couldn't open device\n"); + return 0; + } + dup2(fd, 0); + dup2(fd, 1); + dup2(fd, 2); + /* Now its sending/reading on that device. */ + } + + if (argc >= 3) + execvp(argv[2], &argv[2]); + else + printf("No command\n"); + + return 0; +} diff --git a/src/misc-progs/ipfiredeath.c b/src/misc-progs/ipfiredeath.c index 9115b4f..8a13fa6 100644 --- a/src/misc-progs/ipfiredeath.c +++ b/src/misc-progs/ipfiredeath.c @@ -1,25 +1,25 @@ -/* SmoothWall helper program - smoothiedeath - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Lawrence Manning, 2001 - * Simple program intended to be installed setuid(0) that can be used for - * starting shutdown. - * - * $Id: ipcopdeath.c,v 1.2 2003/12/11 10:57:34 riddles Exp $ - * - */ - -#include <stdlib.h> -#include "setuid.h" - -int main(void) -{ - if (!(initsetuid())) - exit(1); - - safe_system("/sbin/shutdown -h now"); - - return 0; -} +/* SmoothWall helper program - smoothiedeath + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + * (c) Lawrence Manning, 2001 + * Simple program intended to be installed setuid(0) that can be used for + * starting shutdown. + * + * $Id: ipcopdeath.c,v 1.2 2003/12/11 10:57:34 riddles Exp $ + * + */ + +#include <stdlib.h> +#include "setuid.h" + +int main(void) +{ + if (!(initsetuid())) + exit(1); + + safe_system("/sbin/shutdown -h now"); + + return 0; +} diff --git a/src/misc-progs/ipfirerebirth.c b/src/misc-progs/ipfirerebirth.c index dd7988e..10230c3 100644 --- a/src/misc-progs/ipfirerebirth.c +++ b/src/misc-progs/ipfirerebirth.c @@ -1,25 +1,25 @@ -/* SmoothWall helper program - smoothierebirth - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Lawrence Manning, 2001 - * Simple program intended to be installed setuid(0) that can be used for - * starting reboot. - * - * $Id: ipcoprebirth.c,v 1.2 2003/12/11 10:57:34 riddles Exp $ - * - */ - -#include <stdlib.h> -#include "setuid.h" - -int main(void) -{ - if (!(initsetuid())) - exit(1); - - safe_system("/sbin/shutdown -r now"); - - return 0; -} +/* SmoothWall helper program - smoothierebirth + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + * (c) Lawrence Manning, 2001 + * Simple program intended to be installed setuid(0) that can be used for + * starting reboot. + * + * $Id: ipcoprebirth.c,v 1.2 2003/12/11 10:57:34 riddles Exp $ + * + */ + +#include <stdlib.h> +#include "setuid.h" + +int main(void) +{ + if (!(initsetuid())) + exit(1); + + safe_system("/sbin/shutdown -r now"); + + return 0; +} diff --git a/src/misc-progs/ipfirereboot.c b/src/misc-progs/ipfirereboot.c index 05dddaf..5e75879 100644 --- a/src/misc-progs/ipfirereboot.c +++ b/src/misc-progs/ipfirereboot.c @@ -1,117 +1,117 @@ -/* - * This file is part of the IPCop Firewall. - * - * IPCop is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * IPCop is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with IPCop; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Copyright (C) 2005-10-25 Franck Bourdonnec - * - * $Id: ipcopreboot.c,v 1.1.2.2 2005/10/24 23:05:50 franck78 Exp $ - * - */ - -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include "setuid.h" - - -/* define operations */ -#define OP_REBOOT "boot" -#define OP_REBOOT_FS "bootfs" // add filesystem check option (not yet in GUI) -#define OP_SHUTDOWN "down" -#define OP_SCHEDULE_ADD "cron+" -#define OP_SCHEDULE_REM "cron-" -#define OP_SCHEDULE_GET "cron?" - -int main(int argc, char**argv) -{ - - if (!(initsetuid())) - return 1; - - // Check what command is asked - if (argc==1) - { - fprintf (stderr, "Missing reboot command!\n"); - return 1; - } - - if (argc==2 && strcmp(argv[1], OP_SHUTDOWN)==0) - { - safe_system("/sbin/shutdown -h now"); - return 0; - } - - if (argc==2 && strcmp(argv[1], OP_REBOOT)==0) - { - safe_system("/sbin/shutdown -r now"); - return 0; - } - - if (argc==2 && strcmp(argv[1], OP_REBOOT_FS)==0) - { - safe_system("/sbin/shutdown -F -r now"); - return 0; - } - - // output schedule to stdout - if (argc==2 && strcmp(argv[1], OP_SCHEDULE_GET)==0) - { - safe_system("/bin/grep /sbin/shutdown /var/spool/cron/root.orig"); - return 0; - } - - if (argc==2 && strcmp(argv[1], OP_SCHEDULE_REM)==0) - { - safe_system("/usr/bin/perl -i -p -e 's/^.*\/sbin\/shutdown.*$//s' /var/spool/cron/root.orig"); - safe_system("/usr/bin/fcrontab -u root -z"); - return 0; - } - - if (argc==6 && strcmp(argv[1], OP_SCHEDULE_ADD)==0) - { - // check args - if (!( strlen(argv[2])<3 && - strspn(argv[2], "0123456789") == strlen (argv[2]) && - strlen(argv[3])<3 && - strspn(argv[3], "0123456789") == strlen (argv[3]) && - strlen(argv[4])<14 && - strspn(argv[4], "1234567,*") == strlen (argv[4]) && - ((strcmp(argv[5], "-r")==0) || //reboot - (strcmp(argv[5], "-h")==0)) ) //hangup - ) { - fprintf (stderr, "Bad cron+ parameters!\n"); - return 1; - } - - // remove old entry - safe_system("/usr/bin/perl -i -p -e 's/^.*\/sbin\/shutdown.*$//s' /var/spool/cron/root.orig"); - - // add new entry - FILE *fd = NULL; - if ((fd = fopen("/var/spool/cron/root.orig", "a"))) - { - fprintf (fd,"%s %s * * %s /sbin/shutdown %s 1\n",argv[2],argv[3],argv[4],argv[5]); - fclose (fd); - } - - // inform cron - safe_system("/usr/bin/fcrontab -u root -z"); - return 0; - } - - fprintf (stderr, "Bad reboot command!\n"); - return 1; -} +/* + * This file is part of the IPCop Firewall. + * + * IPCop is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * IPCop is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with IPCop; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Copyright (C) 2005-10-25 Franck Bourdonnec + * + * $Id: ipcopreboot.c,v 1.1.2.2 2005/10/24 23:05:50 franck78 Exp $ + * + */ + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include "setuid.h" + + +/* define operations */ +#define OP_REBOOT "boot" +#define OP_REBOOT_FS "bootfs" // add filesystem check option (not yet in GUI) +#define OP_SHUTDOWN "down" +#define OP_SCHEDULE_ADD "cron+" +#define OP_SCHEDULE_REM "cron-" +#define OP_SCHEDULE_GET "cron?" + +int main(int argc, char**argv) +{ + + if (!(initsetuid())) + return 1; + + // Check what command is asked + if (argc==1) + { + fprintf (stderr, "Missing reboot command!\n"); + return 1; + } + + if (argc==2 && strcmp(argv[1], OP_SHUTDOWN)==0) + { + safe_system("/sbin/shutdown -h now"); + return 0; + } + + if (argc==2 && strcmp(argv[1], OP_REBOOT)==0) + { + safe_system("/sbin/shutdown -r now"); + return 0; + } + + if (argc==2 && strcmp(argv[1], OP_REBOOT_FS)==0) + { + safe_system("/sbin/shutdown -F -r now"); + return 0; + } + + // output schedule to stdout + if (argc==2 && strcmp(argv[1], OP_SCHEDULE_GET)==0) + { + safe_system("/bin/grep /sbin/shutdown /var/spool/cron/root.orig"); + return 0; + } + + if (argc==2 && strcmp(argv[1], OP_SCHEDULE_REM)==0) + { + safe_system("/usr/bin/perl -i -p -e 's/^.*\/sbin\/shutdown.*$//s' /var/spool/cron/root.orig"); + safe_system("/usr/bin/fcrontab -u root -z"); + return 0; + } + + if (argc==6 && strcmp(argv[1], OP_SCHEDULE_ADD)==0) + { + // check args + if (!( strlen(argv[2])<3 && + strspn(argv[2], "0123456789") == strlen (argv[2]) && + strlen(argv[3])<3 && + strspn(argv[3], "0123456789") == strlen (argv[3]) && + strlen(argv[4])<14 && + strspn(argv[4], "1234567,*") == strlen (argv[4]) && + ((strcmp(argv[5], "-r")==0) || //reboot + (strcmp(argv[5], "-h")==0)) ) //hangup + ) { + fprintf (stderr, "Bad cron+ parameters!\n"); + return 1; + } + + // remove old entry + safe_system("/usr/bin/perl -i -p -e 's/^.*\/sbin\/shutdown.*$//s' /var/spool/cron/root.orig"); + + // add new entry + FILE *fd = NULL; + if ((fd = fopen("/var/spool/cron/root.orig", "a"))) + { + fprintf (fd,"%s %s * * %s /sbin/shutdown %s 1\n",argv[2],argv[3],argv[4],argv[5]); + fclose (fd); + } + + // inform cron + safe_system("/usr/bin/fcrontab -u root -z"); + return 0; + } + + fprintf (stderr, "Bad reboot command!\n"); + return 1; +} diff --git a/src/misc-progs/ipsecctrl.c b/src/misc-progs/ipsecctrl.c index 365807c..570fdeb 100644 --- a/src/misc-progs/ipsecctrl.c +++ b/src/misc-progs/ipsecctrl.c @@ -13,7 +13,9 @@ #include <sys/types.h> #include <sys/stat.h> #include <signal.h> + #include "setuid.h" +#include "netutil.h"
/* This module is responsible for start stop of the vpn system. diff --git a/src/misc-progs/netutil.h b/src/misc-progs/netutil.h new file mode 100644 index 0000000..e96eb5d --- /dev/null +++ b/src/misc-progs/netutil.h @@ -0,0 +1,48 @@ + +#ifndef NETUTIL_H +#define NETUTIL_H 1 + +#include <stdlib.h> + +#define LETTERS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" +#define NUMBERS "0123456789" +#define LETTERS_NUMBERS LETTERS NUMBERS +#define IP_NUMBERS "./" NUMBERS +#define PORT_NUMBERS ":-" NUMBERS +#define VALID_FQDN LETTERS_NUMBERS ".-" + +#define VALID_IP(ip) (strlen(ip) > 6 \ + && strlen(ip) < 16 \ + && strspn(ip, NUMBERS ".") == strlen(ip)) + +#define VALID_IP_AND_MASK(ip) (strlen(ip) > 6 \ + && strlen(ip) < 32 \ + && strspn(ip, IP_NUMBERS) == strlen(ip)) + +#define VALID_PORT(port) (strlen(port) \ + && strlen(port) < 6 \ + && strspn(port, NUMBERS) == strlen(port)) + +#define VALID_PORT_RANGE(port) (strlen(port) \ + && strlen(port) < 12 \ + && strspn(port, PORT_NUMBERS) == strlen(port)) + +#define VALID_SHORT_MASK(ip) (strlen(ip) > 1 \ + && strlen(ip) < 3 \ + && strspn(ip, NUMBERS) == strlen(ip)) + +/* Can't find any info on valid characters/length hopefully these are + * reasonable guesses */ +#define VALID_DEVICE(dev) (strlen(dev) \ + && strlen(dev) < 16 \ + && strspn(dev, LETTERS_NUMBERS ":.") == strlen(dev)) + +/* Again, can't find any hard and fast rules for protocol names, these + * restrictions are based on the keywords currently listed in + * http://www.iana.org/assignments/protocol-numbers + * though currently the ipcop cgis will only pass tcp, udp or gre anyway */ +#define VALID_PROTOCOL(prot) (strlen(prot) \ + && strlen(prot) <16 \ + && strspn(prot, LETTERS_NUMBERS "-") == strlen(prot)) + +#endif diff --git a/src/misc-progs/openvpnctrl.c b/src/misc-progs/openvpnctrl.c index 76916f1..2af5372 100644 --- a/src/misc-progs/openvpnctrl.c +++ b/src/misc-progs/openvpnctrl.c @@ -8,6 +8,7 @@ #include <netinet/in.h> #include <fcntl.h> #include "setuid.h" +#include "netutil.h" #include "libsmooth.h"
#define noovpndebug @@ -24,11 +25,10 @@ char enableblue[STRING_SIZE] = "off"; char enableorange[STRING_SIZE] = "off";
// consts -char OVPNRED[STRING_SIZE] = "OVPN"; -char OVPNBLUE[STRING_SIZE] = "OVPN_BLUE_"; -char OVPNORANGE[STRING_SIZE] = "OVPN_ORANGE_"; +char OVPNINPUT[STRING_SIZE] = "OVPNINPUT"; +char OVPNBLOCK[STRING_SIZE] = "OVPNBLOCK"; char OVPNNAT[STRING_SIZE] = "OVPNNAT"; -char WRAPPERVERSION[STRING_SIZE] = "ipfire-2.2.3"; +char WRAPPERVERSION[STRING_SIZE] = "ipfire-2.2.4";
struct connection_struct { char name[STRING_SIZE]; @@ -38,7 +38,7 @@ struct connection_struct { char local_subnet[STRING_SIZE]; char transfer_subnet[STRING_SIZE]; char role[STRING_SIZE]; - int port; + char port[STRING_SIZE]; struct connection_struct *next; };
@@ -79,10 +79,6 @@ void usage(void) printf(" removes current OpenVPN chains and rules and resets them according to the config\n"); printf(" -sdo --start-daemon-only\n"); printf(" starts OpenVPN daemon only\n"); - printf(" -ccr --create-chains-and-rules\n"); - printf(" creates chains and rules for OpenVPN\n"); - printf(" -dcr --delete-chains-and-rules\n"); - printf(" removes all chains for OpenVPN\n"); exit(1); }
@@ -147,7 +143,7 @@ connection *getConnections() { } else if (count == 29) { strcpy(conn_curr->proto, result); } else if (count == 30) { - conn_curr->port = atoi(result); + strcpy(conn_curr->port, result); }
count++; @@ -162,7 +158,6 @@ connection *getConnections() { int readPidFile(const char *pidfile) { FILE *fp = fopen(pidfile, "r"); if (fp == NULL) { - fprintf(stderr, "PID file not found: '%s'\n", pidfile); exit(1); }
@@ -174,7 +169,6 @@ int readPidFile(const char *pidfile) { }
void ovpnInit(void) { - // Read OpenVPN configuration kv = initkeyvalues(); if (!readkeyvalues(kv, CONFIG_ROOT "/ovpn/settings")) { @@ -183,17 +177,14 @@ void ovpnInit(void) { }
if (!findkey(kv, "ENABLED", enablered)) { - fprintf(stderr, "Cannot read ENABLED\n"); exit(1); }
if (!findkey(kv, "ENABLED_BLUE", enableblue)){ - fprintf(stderr, "Cannot read ENABLED_BLUE\n"); exit(1); }
if (!findkey(kv, "ENABLED_ORANGE", enableorange)){ - fprintf(stderr, "Cannot read ENABLED_ORANGE\n"); exit(1); } freekeyvalues(kv); @@ -219,24 +210,22 @@ void ovpnInit(void) { }
kv=initkeyvalues(); - if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) - { + if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) { fprintf(stderr, "Cannot read ethernet settings\n"); exit(1); } - if (strcmp(enableblue, "on")==0){ - if (!findkey(kv, "BLUE_DEV", blueif)){ - fprintf(stderr, "Cannot read BLUE_DEV\n"); + if (strcmp(enableblue, "on") == 0) { + if (!findkey(kv, "BLUE_DEV", blueif)) { exit(1); } } - if (strcmp(enableorange, "on")==0){ - if (!findkey(kv, "ORANGE_DEV", orangeif)){ - fprintf(stderr, "Cannot read ORNAGE_DEV\n"); + + if (strcmp(enableorange, "on") == 0) { + if (!findkey(kv, "ORANGE_DEV", orangeif)) { exit(1); } - } + } freekeyvalues(kv); }
@@ -247,117 +236,28 @@ void executeCommand(char *command) { safe_system(strncat(command, " >/dev/null 2>&1", 17)); }
-void setChainRules(char *chain, char *interface, char *protocol, char *port) -{ - char str[STRING_SIZE]; +void addRule(const char *chain, const char *interface, const char *protocol, const char *port) { + char command[STRING_SIZE];
- sprintf(str, "/sbin/iptables -A %sINPUT -i %s -p %s --dport %s -j ACCEPT", chain, interface, protocol, port); - executeCommand(str); - sprintf(str, "/sbin/iptables -A %sINPUT -i tun+ -j ACCEPT", chain); - executeCommand(str); - sprintf(str, "/sbin/iptables -A %sFORWARD -i tun+ -j ACCEPT", chain); - executeCommand(str); + snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A %s -i %s -p %s --dport %s -j ACCEPT", + chain, interface, protocol, port); + executeCommand(command); }
void flushChain(char *chain) { char str[STRING_SIZE];
- sprintf(str, "/sbin/iptables -F %sINPUT", chain); - executeCommand(str); - sprintf(str, "/sbin/iptables -F %sFORWARD", chain); + snprintf(str, STRING_SIZE - 1, "/sbin/iptables -F %s", chain); executeCommand(str); - safe_system(str); }
void flushChainNAT(char *chain) { char str[STRING_SIZE];
- sprintf(str, "/sbin/iptables -t nat -F %s", chain); - executeCommand(str); -} - -void deleteChainReference(char *chain) { - char str[STRING_SIZE]; - - sprintf(str, "/sbin/iptables -D INPUT -j %sINPUT", chain); - executeCommand(str); - safe_system(str); - sprintf(str, "/sbin/iptables -D FORWARD -j %sFORWARD", chain); - executeCommand(str); - safe_system(str); -} - -void deleteChain(char *chain) { - char str[STRING_SIZE]; - - sprintf(str, "/sbin/iptables -X %sINPUT", chain); - executeCommand(str); - sprintf(str, "/sbin/iptables -X %sFORWARD", chain); - executeCommand(str); -} - -void deleteAllChains(void) { - // not an elegant solution, but to avoid timing problems with undeleted chain references - deleteChainReference(OVPNRED); - deleteChainReference(OVPNBLUE); - deleteChainReference(OVPNORANGE); - flushChain(OVPNRED); - flushChain(OVPNBLUE); - flushChain(OVPNORANGE); - deleteChain(OVPNRED); - deleteChain(OVPNBLUE); - deleteChain(OVPNORANGE); -} - -void createChainReference(char *chain) { - char str[STRING_SIZE]; - sprintf(str, "/sbin/iptables -I INPUT %s -j %sINPUT", "14", chain); - executeCommand(str); - sprintf(str, "/sbin/iptables -I FORWARD %s -j %sFORWARD", "12", chain); - executeCommand(str); -} - -void createChain(char *chain) { - char str[STRING_SIZE]; - sprintf(str, "/sbin/iptables -N %sINPUT", chain); - executeCommand(str); - sprintf(str, "/sbin/iptables -N %sFORWARD", chain); + snprintf(str, STRING_SIZE - 1, "/sbin/iptables -t nat -F %s", chain); executeCommand(str); }
-void createAllChains(void) { - // create chain and chain references - if (!strcmp(enableorange, "on")) { - if (strlen(orangeif)) { - createChain(OVPNORANGE); - createChainReference(OVPNORANGE); - } else { - fprintf(stderr, "OpenVPN enabled on orange but no orange interface found\n"); - //exit(1); - } - } - - if (!strcmp(enableblue, "on")) { - if (strlen(blueif)) { - createChain(OVPNBLUE); - createChainReference(OVPNBLUE); - } else { - fprintf(stderr, "OpenVPN enabled on blue but no blue interface found\n"); - //exit(1); - } - } - - if (!strcmp(enablered, "on")) { - if (strlen(redif)) { - createChain(OVPNRED); - createChainReference(OVPNRED); - } else { - fprintf(stderr, "OpenVPN enabled on red but no red interface found\n"); - //exit(1); - } - } -} - char* calcTransferNetAddress(const connection* conn) { char *subnetmask = strdup(conn->transfer_subnet); char *address = strsep(&subnetmask, "/"); @@ -466,23 +366,21 @@ void setFirewallRules(void) {
if (!findkey(kv, "VPN_IP", dovpnip)){ fprintf(stderr, "Cannot read VPN_IP\n"); -// exit(1); step further as we don't need an ip } freekeyvalues(kv);
// Flush all chains. - flushChain(OVPNRED); - flushChain(OVPNBLUE); - flushChain(OVPNORANGE); + flushChain(OVPNINPUT); + flushChain(OVPNBLOCK); flushChainNAT(OVPNNAT);
// set firewall rules if (!strcmp(enablered, "on") && strlen(redif)) - setChainRules(OVPNRED, redif, protocol, dport); + addRule(OVPNINPUT, redif, protocol, dport); if (!strcmp(enableblue, "on") && strlen(blueif)) - setChainRules(OVPNBLUE, blueif, protocol, dport); + addRule(OVPNINPUT, blueif, protocol, dport); if (!strcmp(enableorange, "on") && strlen(orangeif)) - setChainRules(OVPNORANGE, orangeif, protocol, dport); + addRule(OVPNINPUT, orangeif, protocol, dport);
// read connection configuration connection *conn = getConnections(); @@ -493,15 +391,18 @@ void setFirewallRules(void) { char *transfer_subnet_address = NULL; while (conn != NULL) { if (strcmp(conn->type, "net") == 0) { - sprintf(command, "/sbin/iptables -A %sINPUT -i %s -p %s --dport %d -j ACCEPT", - OVPNRED, redif, conn->proto, conn->port); + addRule(OVPNINPUT, redif, conn->proto, conn->port); + + /* Block all communication from the transfer nets. */ + snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A %s -s %s -j DROP", + OVPNBLOCK, conn->transfer_subnet); executeCommand(command);
local_subnet_address = getLocalSubnetAddress(conn); transfer_subnet_address = calcTransferNetAddress(conn);
if ((local_subnet_address) && (transfer_subnet_address)) { - snprintf(command, STRING_SIZE, "/sbin/iptables -t nat -A %s -s %s -j SNAT --to-source %s", + snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t nat -A %s -s %s -j SNAT --to-source %s", OVPNNAT, transfer_subnet_address, local_subnet_address); executeCommand(command); } @@ -529,7 +430,7 @@ void stopDaemon(void) { void startDaemon(void) { char command[STRING_SIZE]; - if (!((strcmp(enablered, "on")==0) || (strcmp(enableblue, "on")==0) || (strcmp(enableorange, "on")==0))){ + if (!((strcmp(enablered, "on") == 0) || (strcmp(enableblue, "on") == 0) || (strcmp(enableorange, "on") == 0))) { fprintf(stderr, "OpenVPN is not enabled on any interface\n"); exit(1); } else { @@ -711,16 +612,10 @@ int main(int argc, char *argv[]) { displayopenvpn(); return 0; } - else if( (strcmp(argv[1], "-dcr") == 0) || (strcmp(argv[1], "--delete-chains-and-rules") == 0) ) { - deleteAllChains(); - return 0; - } else { ovpnInit(); if( (strcmp(argv[1], "-s") == 0) || (strcmp(argv[1], "--start") == 0) ) { - deleteAllChains(); - createAllChains(); setFirewallRules(); startDaemon(); return 0; @@ -739,20 +634,11 @@ int main(int argc, char *argv[]) { } else if( (strcmp(argv[1], "-r") == 0) || (strcmp(argv[1], "--restart") == 0) ) { stopDaemon(); - deleteAllChains(); - createAllChains(); setFirewallRules(); startDaemon(); return 0; } else if( (strcmp(argv[1], "-fwr") == 0) || (strcmp(argv[1], "--firewall-rules") == 0) ) { - deleteAllChains(); - createAllChains(); - setFirewallRules(); - return 0; - } - else if( (strcmp(argv[1], "-ccr") == 0) || (strcmp(argv[1], "--create-chains-and-rules") == 0) ) { - createAllChains(); setFirewallRules(); return 0; } diff --git a/src/misc-progs/outgoingfwctrl.c b/src/misc-progs/outgoingfwctrl.c deleted file mode 100644 index 2d993d9..0000000 --- a/src/misc-progs/outgoingfwctrl.c +++ /dev/null @@ -1,24 +0,0 @@ -/* This file is part of the IPFire Firewall. - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - */ - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <unistd.h> -#include <sys/types.h> -#include <fcntl.h> -#include "setuid.h" - -int main(int argc, char *argv[]) { - - if (!(initsetuid())) - exit(1); - - safe_system("chmod 755 /var/ipfire/outgoing/bin/outgoingfw.pl"); - safe_system("/var/ipfire/outgoing/bin/outgoingfw.pl"); - return 0; -} diff --git a/src/misc-progs/pakfire.c b/src/misc-progs/pakfire.c index 113216f..fe6edfc 100644 --- a/src/misc-progs/pakfire.c +++ b/src/misc-progs/pakfire.c @@ -15,18 +15,16 @@
int main(int argc, char *argv[]) { int i; - char command[1024]; - char add[STRING_SIZE]; - + char command[STRING_SIZE] = "/opt/pakfire/pakfire"; + char temp[STRING_SIZE]; + if (!(initsetuid())) exit(1);
- snprintf(command, STRING_SIZE, "/opt/pakfire/pakfire"); - for (i = 1; i < argc; i++) { - sprintf(add, " %s", argv[i]); - strcat(command, add); + snprintf(temp, STRING_SIZE, "%s %s", command, argv[i]); + snprintf(command, STRING_SIZE, "%s", temp); } - + return safe_system(command); } diff --git a/src/misc-progs/rebuildhosts.c b/src/misc-progs/rebuildhosts.c index e831858..21c5236 100644 --- a/src/misc-progs/rebuildhosts.c +++ b/src/misc-progs/rebuildhosts.c @@ -19,7 +19,9 @@ #include <sys/types.h> #include <sys/stat.h> #include <signal.h> + #include "setuid.h" +#include "netutil.h"
FILE *fd = NULL; FILE *hosts = NULL; diff --git a/src/misc-progs/setaliases.c b/src/misc-progs/setaliases.c index ea4bc11..93af1cb 100644 --- a/src/misc-progs/setaliases.c +++ b/src/misc-progs/setaliases.c @@ -13,8 +13,6 @@ * */
-#include "libsmooth.h" -#include "setuid.h" #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -23,6 +21,10 @@ #include <sys/stat.h> #include <fcntl.h>
+#include "libsmooth.h" +#include "setuid.h" +#include "netutil.h" + struct keyvalue *kv = NULL; FILE *file = NULL;
diff --git a/src/misc-progs/setdmzholes.c b/src/misc-progs/setdmzholes.c deleted file mode 100644 index 7a2643d..0000000 --- a/src/misc-progs/setdmzholes.c +++ /dev/null @@ -1,162 +0,0 @@ -/* SmoothWall helper program - setdmzhole - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Daniel Goscomb, 2001 - * - * Modifications and improvements by Lawrence Manning. - * - * 10/04/01 Aslak added protocol support - * This program reads the list of ports to forward and setups iptables - * and rules in ipmasqadm to enable them. - * - * $Id: setdmzholes.c,v 1.5.2.3 2005/10/18 17:05:27 franck78 Exp $ - * - */ -#include "libsmooth.h" -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include "setuid.h" - -FILE *fwdfile = NULL; - -void exithandler(void) -{ - if (fwdfile) - fclose(fwdfile); -} - -int main(void) -{ - int count; - char *protocol; - char *locip; - char *remip; - char *remport; - char *enabled; - char *src_net; - char *dst_net; - char s[STRING_SIZE]; - char *result; - struct keyvalue *kv = NULL; - char orange_dev[STRING_SIZE] = ""; - char blue_dev[STRING_SIZE] = ""; - char green_dev[STRING_SIZE] = ""; - char *idev; - char *odev; - char command[STRING_SIZE]; - - if (!(initsetuid())) - exit(1); - - atexit(exithandler); - - kv=initkeyvalues(); - if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) - { - fprintf(stderr, "Cannot read ethernet settings\n"); - exit(1); - } - - if (!findkey(kv, "GREEN_DEV", green_dev)) - { - fprintf(stderr, "Cannot read GREEN_DEV\n"); - exit(1); - } - findkey(kv, "BLUE_DEV", blue_dev); - findkey(kv, "ORANGE_DEV", orange_dev); - - if (!(fwdfile = fopen(CONFIG_ROOT "/dmzholes/config", "r"))) - { - fprintf(stderr, "Couldn't open dmzholes settings file\n"); - exit(1); - } - - safe_system("/sbin/iptables -F DMZHOLES"); - - while (fgets(s, STRING_SIZE, fwdfile) != NULL) - { - if (s[strlen(s) - 1] == '\n') - s[strlen(s) - 1] = '\0'; - result = strtok(s, ","); - - count = 0; - protocol = NULL; - locip = NULL; remip = NULL; - remport = NULL; - enabled = NULL; - src_net = NULL; - dst_net = NULL; - idev = NULL; - odev = NULL; - - while (result) - { - if (count == 0) - protocol = result; - else if (count == 1) - locip = result; - else if (count == 2) - remip = result; - else if (count == 3) - remport = result; - else if (count == 4) - enabled = result; - else if (count == 5) - src_net = result; - else if (count == 6) - dst_net = result; - count++; - result = strtok(NULL, ","); - } - - if (!(protocol && locip && remip && remport && enabled)) - { - fprintf(stderr, "Bad line:\n"); - break; - } - - if (!VALID_PROTOCOL(protocol)) - { - fprintf(stderr, "Bad protocol: %s\n", protocol); - exit(1); - } - if (!VALID_IP_AND_MASK(locip)) - { - fprintf(stderr, "Bad local IP: %s\n", locip); - exit(1); - } - if (!VALID_IP_AND_MASK(remip)) - { - fprintf(stderr, "Bad remote IP: %s\n", remip); - exit(1); - } - if (!VALID_PORT_RANGE(remport)) - { - fprintf(stderr, "Bad remote port: %s\n", remport); - exit(1); - } - - if (!src_net) { src_net = strdup ("orange");} - if (!dst_net) { dst_net = strdup ("green");} - - if (!strcmp(src_net, "blue")) { idev = blue_dev; } - if (!strcmp(src_net, "orange")) { idev = orange_dev; } - if (!strcmp(dst_net, "blue")) { odev = blue_dev; } - if (!strcmp(dst_net, "green")) { odev = green_dev; } - - if (!strcmp(enabled, "on") && strlen(idev) && strlen (odev)) - { - char *ctr; - /* If remport contains a - we need to change it to a : */ - if ((ctr = strchr(remport,'-')) != NULL){*ctr = ':';} - memset(command, 0, STRING_SIZE); - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A DMZHOLES -p %s -i %s -o %s -s %s -d %s --dport %s -j ACCEPT", protocol, idev, odev, locip, remip, remport); - safe_system(command); - } - } - - return 0; -} diff --git a/src/misc-progs/setportfw.c b/src/misc-progs/setportfw.c deleted file mode 100644 index a65aebd..0000000 --- a/src/misc-progs/setportfw.c +++ /dev/null @@ -1,369 +0,0 @@ -/* SmoothWall helper program - setportfw - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Daniel Goscomb, 2001 - * Copyright (c) 2002/04/13 Steve Bootes - Added source ip support for aliases - * - * Modifications and improvements by Lawrence Manning. - * - * 10/04/01 Aslak added protocol support - * This program reads the list of ports to forward and setups iptables - * and rules in ipmasqadm to enable them. - * - * 02/11/03 Darren Critchley modifications to allow it to open multiple - * source ip addresses - * 02/25/03 Darren Critchley modifications to allow port ranges - * 04/01/03 Darren Critchley modifications to allow gre protocol - * 20/04/03 Robert Kerr Fixed root exploit, validated all variables properly, - * tidied up the iptables logic, killed duplicated code, - * removed srciptmp (unecessary) - * - * $Id: setportfw.c,v 1.3.2.6 2005/08/24 18:44:19 gespinasse Exp $ - * - */ - -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include "libsmooth.h" -#include "setuid.h" - -struct keyvalue *kv = NULL; -FILE *fwdfile = NULL; - -void exithandler(void) -{ - if(kv) - freekeyvalues(kv); - if (fwdfile) - fclose(fwdfile); -} - -int main(void) -{ - FILE *ipfile = NULL, *ifacefile = NULL; - int count; - char iface[STRING_SIZE] =""; - char locip[STRING_SIZE] =""; - char greenip[STRING_SIZE] ="", greenmask[STRING_SIZE] =""; - char bluedev[STRING_SIZE] ="", blueip[STRING_SIZE] ="", bluemask[STRING_SIZE] =""; - char orangedev[STRING_SIZE] ="", orangeip[STRING_SIZE] ="", orangemask[STRING_SIZE] =""; - char *protocol; - char *srcip; - char *locport; - char *remip; - char *remport; - char *origip; - char *enabled; - char s[STRING_SIZE]; - char *result; - char *key1; - char *key2; - char command[STRING_SIZE]; - - if (!(initsetuid())) - exit(1); - - atexit(exithandler); - - /* Read in and verify config */ - kv=initkeyvalues(); - - if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) - { - fprintf(stderr, "Cannot read ethernet settings\n"); - exit(1); - } - - if (!findkey(kv, "GREEN_ADDRESS", greenip)) - { - fprintf(stderr, "Cannot read GREEN_ADDRESS\n"); - exit(1); - } - - if (!VALID_IP(greenip)) - { - fprintf(stderr, "Bad GREEN_ADDRESS: %s\n", greenip); - exit(1); - } - - if (!findkey(kv, "GREEN_NETMASK", greenmask)) - { - fprintf(stderr, "Cannot read GREEN_NETMASK\n"); - exit(1); - } - - if (!VALID_IP(greenmask)) - { - fprintf(stderr, "Bad GREEN_NETMASK: %s\n", greenmask); - exit(1); - } - - /* Get the BLUE interface details */ - findkey(kv, "BLUE_DEV", bluedev); - - if (strlen(bluedev)) - { - - if (!VALID_DEVICE(bluedev)) - { - fprintf(stderr, "Bad BLUE_DEV: %s\n", bluedev); - exit(1); - } - - if (!findkey(kv, "BLUE_ADDRESS", blueip)) - { - fprintf(stderr, "Cannot read BLUE_ADDRESS\n"); - exit(1); - } - - if (!VALID_IP(blueip)) - { - fprintf(stderr, "Bad BLUE_ADDRESS: %s\n", blueip); - exit(1); - } - - if (!findkey(kv, "BLUE_NETMASK", bluemask)) - { - fprintf(stderr, "Cannot read BLUE_NETMASK\n"); - exit(1); - } - - if (!VALID_IP(bluemask)) - { - fprintf(stderr, "Bad BLUE_NETMASK: %s\n", bluemask); - exit(1); - } - - } - - /* Get the ORANGE interface details */ - findkey(kv, "ORANGE_DEV", orangedev); - - if (strlen(orangedev)) - { - - if (!VALID_DEVICE(orangedev)) - { - fprintf(stderr, "Bad ORANGE_DEV: %s\n", orangedev); - exit(1); - } - - if (!findkey(kv, "ORANGE_ADDRESS", orangeip)) - { - fprintf(stderr, "Cannot read ORANGE_ADDRESS\n"); - exit(1); - } - - if (!VALID_IP(orangeip)) - { - fprintf(stderr, "Bad ORANGE_ADDRESS: %s\n", orangeip); - exit(1); - } - - if (!findkey(kv, "ORANGE_NETMASK", orangemask)) - { - fprintf(stderr, "Cannot read ORANGE_NETMASK\n"); - exit(1); - } - - if (!VALID_IP(orangemask)) - { - fprintf(stderr, "Bad ORANGE_NETMASK: %s\n", orangemask); - exit(1); - } - - } - - - if (!(ipfile = fopen(CONFIG_ROOT "/red/local-ipaddress", "r"))) - { - fprintf(stderr, "Couldn't open local ip file\n"); - exit(1); - } - fgets(locip, STRING_SIZE, ipfile); - if (locip[strlen(locip) - 1] == '\n') - locip[strlen(locip) - 1] = '\0'; - fclose (ipfile); - if (!VALID_IP(locip)) - { - fprintf(stderr, "Bad local IP: %s\n", locip); - exit(1); - } - - if (!(ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) - { - fprintf(stderr, "Couldn't open iface file\n"); - exit(1); - } - fgets(iface, STRING_SIZE, ifacefile); - if (iface[strlen(iface) - 1] == '\n') - iface[strlen(iface) - 1] = '\0'; - fclose (ifacefile); - if (!VALID_DEVICE(iface)) - { - fprintf(stderr, "Bad iface: %s\n", iface); - exit(1); - } - - if (!(fwdfile = fopen(CONFIG_ROOT "/portfw/config", "r"))) - { - fprintf(stderr, "Couldn't open portfw settings file\n"); - exit(1); - } - - safe_system("/sbin/iptables -t nat -F PORTFW"); - safe_system("/sbin/iptables -t mangle -F PORTFWMANGLE"); - safe_system("/sbin/iptables -F PORTFWACCESS"); - - while (fgets(s, STRING_SIZE, fwdfile) != NULL) - { - if (s[strlen(s) - 1] == '\n') - s[strlen(s) - 1] = '\0'; - result = strtok(s, ","); - - count = 0; - key1 = NULL; - key2 = NULL; - protocol = NULL; - srcip = NULL; - locport = NULL; - remip = NULL; - origip = NULL; - remport = NULL; - enabled = NULL; - while (result) - { - if (count == 0) - key1 = result; - else if (count == 1) - key2 = result; - else if (count == 2) - protocol = result; - else if (count == 3) - locport = result; - else if (count == 4) - remip = result; - else if (count == 5) - remport = result; - else if (count == 6) - enabled = result; - else if (count == 7) - srcip = result; - else if (count == 8) - origip = result; - count++; - result = strtok(NULL, ","); - } - - if (!(key1 && key2 && protocol && locport && remip && remport && enabled - && srcip && origip)) - break; - - if (!VALID_PROTOCOL(protocol)) - { - fprintf(stderr, "Bad protocol: %s\n", protocol); - exit(1); - } - if (strcmp(protocol, "gre") == 0) - { - locport = "0"; - remport = "0"; - } - if (strcmp(origip,"0") && !VALID_IP_AND_MASK(origip)) - { - fprintf(stderr, "Bad IP: %s\n", origip); - exit(1); - } - if (!VALID_PORT_RANGE(locport)) - { - fprintf(stderr, "Bad local port: %s\n", locport); - exit(1); - } - if (!VALID_IP(remip)) - { - fprintf(stderr, "Bad remote IP: %s\n", remip); - exit(1); - } - if (!VALID_PORT_RANGE(remport)) - { - fprintf(stderr, "Bad remote port: %s\n", remport); - exit(1); - } - - /* check for source ip in config file. If it's there - * and it's not 0.0.0.0, use it; else use the - * local ip address. (This makes sure we can use old-style - * config files without the source ip) */ - if (!srcip || !strcmp(srcip, "0.0.0.0")) - srcip = locip; - if (strcmp(srcip,"0") && !VALID_IP(srcip)) - { - fprintf(stderr, "Bad source IP: %s\n", srcip); - exit(1); - } - - /* This may seem complicated... refer to portfw.pl for an explanation of - * the keys and their meaning in certain circumstances */ - - if (strcmp(enabled, "on") == 0) - { - - /* If key2 is a zero, then it is a portfw command, otherwise it is an - * external access command */ - if (strcmp(key2, "0") == 0) - { - memset(command, 0, STRING_SIZE); - if (strcmp(protocol, "gre") == 0) - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t nat -A PORTFW -p %s -d %s -j DNAT --to %s", protocol, srcip, remip); - else - { - char *ctr; - /* If locport contains a - we need to change it to a : */ - if ((ctr = strchr(locport, '-')) != NULL) {*ctr = ':';} - /* If remport contains a : we need to change it to a - */ - if ((ctr = strchr(remport,':')) != NULL){*ctr = '-';} - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t nat -A PORTFW -p %s -d %s --dport %s -j DNAT --to %s:%s", protocol, srcip, locport, remip, remport); - safe_system(command); - /* Now if remport contains a - we need to change it to a : */ - if ((ctr = strchr(remport,'-')) != NULL){*ctr = ':';} - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t mangle -A PORTFWMANGLE -p %s -s %s/%s -d %s --dport %s -j MARK --set-mark 1", protocol, greenip, greenmask, srcip, locport); - if (strlen(bluedev)) - { - safe_system(command); - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t mangle -A PORTFWMANGLE -p %s -s %s/%s -d %s --dport %s -j MARK --set-mark 2", protocol, blueip, bluemask, srcip, locport); - } - if (strlen(orangedev)) - { - safe_system(command); - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t mangle -A PORTFWMANGLE -p %s -s %s/%s -d %s --dport %s -j MARK --set-mark 3", protocol, orangeip, orangemask, srcip, locport); - } - } - safe_system(command); - } - - /* if key2 is not "0" then it's an external access rule, if key2 is "0" - * then the portfw rule may contain external access information if origip - * is not "0" (the only defined not 0 value seems to be 0.0.0.0 - open - * to all; again, check portfw.pl for more details) */ - if(strcmp(key2, "0") || strcmp(origip,"0") ) - { - memset(command, 0, STRING_SIZE); - if (strcmp(protocol, "gre") == 0) - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A PORTFWACCESS -i %s -p %s -s %s -d %s -j ACCEPT", iface, protocol, origip, remip); - else - { - char *ctr; - /* If remport contains a - we need to change it to a : */ - if ((ctr = strchr(remport,'-')) != NULL){*ctr = ':';} - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A PORTFWACCESS -i %s -p %s -s %s -d %s --dport %s -j ACCEPT", iface, protocol, origip, remip, remport); - } - safe_system(command); - } - } - } - - return 0; -} diff --git a/src/misc-progs/setuid.c b/src/misc-progs/setuid.c index d7fabd4..e54b5d3 100644 --- a/src/misc-progs/setuid.c +++ b/src/misc-progs/setuid.c @@ -1,204 +1,169 @@ -/* This file is part of the IPCop Firewall. - * - * IPCop is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * IPCop is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with IPCop; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Copyright (C) 2003-04-22 Robert Kerr rkerr@go.to - * - * $Id: setuid.c,v 1.2.2.1 2005/11/18 14:51:43 franck78 Exp $ - * - */ - -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <unistd.h> -#include <stdlib.h> -#include <sys/types.h> -#include <limits.h> -#include <sys/time.h> -#include <sys/resource.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <grp.h> -#include <signal.h> -#include <sys/wait.h> -#include <glob.h> -#include "setuid.h" - -#ifndef OPEN_MAX -#define OPEN_MAX 256 -#endif - -/* Trusted environment for executing commands */ -char * trusted_env[4]={ - "PATH=/usr/bin:/usr/sbin:/sbin:/bin", - "SHELL=/bin/sh", - "TERM=dumb", - NULL}; - -/* Spawns a child process that uses /bin/sh to interpret a command. - * This is much the same in use and purpose as system(), yet as it uses execve - * to pass a trusted environment it's immune to attacks based upon changing - * IFS, ENV, BASH_ENV and other such variables. - * Note this does NOT guard against any other attacks, inparticular you MUST - * validate the command you are passing. If the command is formed from user - * input be sure to check this input is what you expect. Nasty things can - * happen if a user can inject ; or `` into your command for example */ -int safe_system(char* command) -{ - return system_core( command, 0, 0, "safe_system" ); -} - -/* Much like safe_system but lets you specify a non-root uid and gid to run - * the command as */ -int unpriv_system(char* command, uid_t uid, gid_t gid) -{ - return system_core(command, uid, gid, "unpriv_system" ); -} - -int system_core(char* command, uid_t uid, gid_t gid, char *error) -{ - int pid, status; - - if(!command) - return 1; - - switch( pid = fork() ) - { - case -1: - return -1; - case 0: /* child */ - { - char * argv[4]; - if (gid && setgid(gid)) - { - fprintf(stderr, "%s: ", error); - perror("Couldn't setgid"); - exit(127); - } - if (uid && setuid(uid)) - { - fprintf(stderr, "%s: ", error); - perror("Couldn't setuid"); - exit(127); - } - argv[0] = "sh"; - argv[1] = "-c"; - argv[2] = command; - argv[3] = NULL; - execve("/bin/sh", argv, trusted_env); - fprintf(stderr, "%s: ", error); - perror("execve failed"); - exit(127); - } - default: /* parent */ - do { - if( waitpid(pid, &status, 0) == -1 ) { - if( errno != EINTR ) - return -1; - } else - return status; - } while (1); - } - -} - -/* BSD style safe strcat; from the secure programming cookbook */ -size_t strlcat(char *dst, const char *src, size_t len) { - char *dstptr = dst; - size_t dstlen, tocopy = len; - const char *srcptr = src; - - while (tocopy-- && *dstptr) dstptr++; - dstlen = dstptr - dst; - if (!(tocopy = len - dstlen)) return (dstlen + strlen(src)); - while (*srcptr) { - if (tocopy != 1) { - *dstptr++ = *srcptr; - tocopy--; - } - srcptr++; - } - *dstptr = 0; - - return (dstlen + (srcptr - src)); -} - -/* General routine to initialise a setuid root program, and put the - * environment in a known state. Returns 1 on success, if initsetuid() returns - * 0 then you should exit(1) immediately, DON'T attempt to recover from the - * error */ -int initsetuid(void) -{ - int fds,i; - struct stat st; - struct rlimit rlim; - - /* Prevent signal tricks by ignoring all except SIGKILL and SIGCHILD */ - for( i = 0; i < NSIG; i++ ) { - if( i != SIGKILL && i != SIGCHLD ) - signal(i, SIG_IGN); - } - - /* dump all non-standard file descriptors (a full descriptor table could - * lead to DoS by preventing us opening files) */ - if ((fds = getdtablesize()) == -1) fds = OPEN_MAX; - for( i = 3; i < fds; i++ ) close(i); - - /* check stdin, stdout & stderr are open before going any further */ - for( i = 0; i < 3; i++ ) - if( fstat(i, &st) == -1 && ((errno != EBADF) || (close(i), open("/dev/null", O_RDWR, 0)) != i )) - return 0; - - /* disable core dumps in case we're processing sensitive information */ - rlim.rlim_cur = rlim.rlim_max = 0; - if(setrlimit(RLIMIT_CORE, &rlim)) - { perror("Couldn't disable core dumps"); return 0; } - - /* drop any supplementary groups, set uid & gid to root */ - if (setgroups(0, NULL)) { perror("Couldn't clear group list"); return 0; } - if (setgid(0)) { perror("Couldn't setgid(0)"); return 0; } - if (setuid(0)) { perror("Couldn't setuid(0)"); return 0; } - - return 1; -} - -/* check whether a file exists */ -int file_exists(const char *fname) { - struct stat st; - stat(fname, &st); - return S_ISREG(st.st_mode) ? 1 : 0; -} - -/* check whether a file exists. fname is wildcard eg: file_exists (/tmp/foo*) */ -int file_exists_w(const char *fname) -{ - /* do a quick check first */ - struct stat st; - stat(fname, &st); - if (S_ISREG(st.st_mode)) - return 1; - - /* check for possible wild cards in name */ - glob_t globbuf; - int retval=0; - if (glob(fname, GLOB_ERR, NULL, &globbuf)==0) { - if (globbuf.gl_pathc>0) { - retval=1; - } - } - globfree(&globbuf); - return retval; -} +/* This file is part of the IPCop Firewall. + * + * IPCop is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * IPCop is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with IPCop; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Copyright (C) 2003-04-22 Robert Kerr rkerr@go.to + * + * $Id: setuid.c,v 1.2.2.1 2005/11/18 14:51:43 franck78 Exp $ + * + */ + +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <unistd.h> +#include <stdlib.h> +#include <sys/types.h> +#include <limits.h> +#include <sys/time.h> +#include <sys/resource.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <grp.h> +#include <signal.h> +#include <sys/wait.h> +#include <glob.h> +#include "setuid.h" + +#ifndef OPEN_MAX +#define OPEN_MAX 256 +#endif + +/* Trusted environment for executing commands */ +char * trusted_env[4] = { + "PATH=/usr/bin:/usr/sbin:/sbin:/bin", + "SHELL=/bin/sh", + "TERM=dumb", + NULL +}; + +/* Spawns a child process that uses /bin/sh to interpret a command. + * This is much the same in use and purpose as system(), yet as it uses execve + * to pass a trusted environment it's immune to attacks based upon changing + * IFS, ENV, BASH_ENV and other such variables. + * Note this does NOT guard against any other attacks, inparticular you MUST + * validate the command you are passing. If the command is formed from user + * input be sure to check this input is what you expect. Nasty things can + * happen if a user can inject ; or `` into your command for example */ +int safe_system(char* command) { + return system_core(command, 0, 0, "safe_system"); +} + +/* Much like safe_system but lets you specify a non-root uid and gid to run + * the command as */ +int unpriv_system(char* command, uid_t uid, gid_t gid) { + return system_core(command, uid, gid, "unpriv_system"); +} + +int system_core(char* command, uid_t uid, gid_t gid, char *error) { + int pid, status; + + if(!command) + return 1; + + switch(pid = fork()) { + case -1: + return -1; + + case 0: /* child */ { + char *argv[4]; + + if (gid && setgid(gid)) { + fprintf(stderr, "%s: ", error); + perror("Couldn't setgid"); + exit(127); + } + + if (uid && setuid(uid)) { + fprintf(stderr, "%s: ", error); + perror("Couldn't setuid"); + exit(127); + } + + argv[0] = "sh"; + argv[1] = "-c"; + argv[2] = command; + argv[3] = NULL; + execve("/bin/sh", argv, trusted_env); + fprintf(stderr, "%s: ", error); + perror("execve failed"); + exit(127); + } + + default: /* parent */ + do { + if (waitpid(pid, &status, 0) == -1) { + if (errno != EINTR) + return -1; + } else { + return status; + } + } while (1); + } + +} + +/* General routine to initialise a setuid root program, and put the + * environment in a known state. Returns 1 on success, if initsetuid() returns + * 0 then you should exit(1) immediately, DON'T attempt to recover from the + * error */ +int initsetuid(void) { + int fds, i; + struct stat st; + struct rlimit rlim; + + /* Prevent signal tricks by ignoring all except SIGKILL and SIGCHILD */ + for (i = 0; i < NSIG; i++) { + if (i != SIGKILL && i != SIGCHLD) + signal(i, SIG_IGN); + } + + /* dump all non-standard file descriptors (a full descriptor table could + * lead to DoS by preventing us opening files) */ + if ((fds = getdtablesize()) == -1) + fds = OPEN_MAX; + for (i = 3; i < fds; i++) + close(i); + + /* check stdin, stdout & stderr are open before going any further */ + for (i = 0; i < 3; i++) + if( fstat(i, &st) == -1 && ((errno != EBADF) || (close(i), open("/dev/null", O_RDWR, 0)) != i)) + return 0; + + /* disable core dumps in case we're processing sensitive information */ + rlim.rlim_cur = rlim.rlim_max = 0; + if (setrlimit(RLIMIT_CORE, &rlim)) { + perror("Couldn't disable core dumps"); + return 0; + } + + /* drop any supplementary groups, set uid & gid to root */ + if (setgroups(0, NULL)) { + perror("Couldn't clear group list"); + return 0; + } + + if (setgid(0)) { + perror("Couldn't setgid(0)"); + return 0; + } + + if (setuid(0)) { + perror("Couldn't setuid(0)"); + return 0; + } + + return 1; +} diff --git a/src/misc-progs/setuid.h b/src/misc-progs/setuid.h index e253a76..2e90537 100644 --- a/src/misc-progs/setuid.h +++ b/src/misc-progs/setuid.h @@ -15,60 +15,18 @@ /* As nothing in setuid.c uses STRING_SIZE specifically there's no real reason * to redefine it if it already is set */ #ifndef STRING_SIZE -#define STRING_SIZE 256 +#define STRING_SIZE 1024 #endif -#define LETTERS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" -#define NUMBERS "0123456789" -#define LETTERS_NUMBERS LETTERS NUMBERS -#define IP_NUMBERS "./" NUMBERS -#define PORT_NUMBERS ":-" NUMBERS -#define VALID_FQDN LETTERS_NUMBERS ".-" - - -#define VALID_IP(ip) (strlen(ip) > 6 \ - && strlen(ip) < 16 \ - && strspn(ip, NUMBERS ".") == strlen(ip)) - -#define VALID_IP_AND_MASK(ip) (strlen(ip) > 6 \ - && strlen(ip) < 32 \ - && strspn(ip, IP_NUMBERS) == strlen(ip)) - -#define VALID_PORT(port) (strlen(port) \ - && strlen(port) < 6 \ - && strspn(port, NUMBERS) == strlen(port)) - -#define VALID_PORT_RANGE(port) (strlen(port) \ - && strlen(port) < 12 \ - && strspn(port, PORT_NUMBERS) == strlen(port)) - -#define VALID_SHORT_MASK(ip) (strlen(ip) > 1 \ - && strlen(ip) < 3 \ - && strspn(ip, NUMBERS) == strlen(ip)) - -/* Can't find any info on valid characters/length hopefully these are - * reasonable guesses */ -#define VALID_DEVICE(dev) (strlen(dev) \ - && strlen(dev) < 16 \ - && strspn(dev, LETTERS_NUMBERS ":.") == strlen(dev)) - -/* Again, can't find any hard and fast rules for protocol names, these - * restrictions are based on the keywords currently listed in - * http://www.iana.org/assignments/protocol-numbers - * though currently the ipcop cgis will only pass tcp, udp or gre anyway */ -#define VALID_PROTOCOL(prot) (strlen(prot) \ - && strlen(prot) <16 \ - && strspn(prot, LETTERS_NUMBERS "-") == strlen(prot))
extern char * trusted_env[4];
int system_core(char* command, uid_t uid, gid_t gid, char *error); int safe_system(char* command); int unpriv_system(char* command, uid_t uid, gid_t gid); -size_t strlcat(char *dst, const char *src, size_t len); int initsetuid(void);
-/* check whether a file exists */ -int file_exists(const char *fname); -int file_exists_w(const char *fname); //wildcard filename test +/* Compatibility for the local copy of strlcat, + * which has been removed. */ +#define strlcat(src, dst, size) strncat(src, dst, size)
#endif diff --git a/src/misc-progs/setxtaccess.c b/src/misc-progs/setxtaccess.c deleted file mode 100644 index 27a03e0..0000000 --- a/src/misc-progs/setxtaccess.c +++ /dev/null @@ -1,168 +0,0 @@ -/* SmoothWall helper program - setxtaccess - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Daniel Goscomb, 2001 - * - * Modifications and improvements by Lawrence Manning. - * - * 10/04/01 Aslak added protocol support - * - * (c) Steve Bootes 2002/04/14 - Added source IP support for aliases - * - * 19/04/03 Robert Kerr Fixed root exploit - * - * $Id: setxtaccess.c,v 1.3.2.1 2005/01/04 17:21:40 eoberlander Exp $ - * - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include "setuid.h" - -FILE *ifacefile = NULL; -FILE *fwdfile = NULL; -FILE *ipfile = NULL; - -void exithandler(void) -{ - if (fwdfile) - fclose(fwdfile); -} - -int main(void) -{ - char iface[STRING_SIZE] = ""; - char locip[STRING_SIZE] = ""; - char s[STRING_SIZE] = ""; - int count; - char *protocol; - char *destip; - char *remip; - char *locport; - char *enabled; - char *information; - char *result; - char command[STRING_SIZE]; - - if (!(initsetuid())) - exit(1); - - atexit(exithandler); - - if (!(ipfile = fopen(CONFIG_ROOT "/red/local-ipaddress", "r"))) - { - fprintf(stderr, "Couldn't open local ip file\n"); - exit(1); - } - if (fgets(locip, STRING_SIZE, ipfile)) - { - if (locip[strlen(locip) - 1] == '\n') - locip[strlen(locip) - 1] = '\0'; - } - fclose (ipfile); - if (!VALID_IP(locip)) - { - fprintf(stderr, "Bad local IP: %s\n", locip); - exit(1); - } - - if (!(ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) - { - fprintf(stderr, "Couldn't open iface file\n"); - exit(1); - } - if (fgets(iface, STRING_SIZE, ifacefile)) - { - if (iface[strlen(iface) - 1] == '\n') - iface[strlen(iface) - 1] = '\0'; - } - fclose (ifacefile); - if (!VALID_DEVICE(iface)) - { - fprintf(stderr, "Bad iface: %s\n", iface); - exit(1); - } - - if (!(fwdfile = fopen(CONFIG_ROOT "/xtaccess/config", "r"))) - { - fprintf(stderr, "Couldn't open xtaccess settings file\n"); - exit(1); - } - - safe_system("/sbin/iptables -F XTACCESS"); - - while (fgets(s, STRING_SIZE, fwdfile) != NULL) - { - if (s[strlen(s) - 1] == '\n') - s[strlen(s) - 1] = '\0'; - count = 0; - protocol = NULL; - remip = NULL; - destip = NULL; - locport = NULL; - enabled = NULL; - information = NULL; - result = strtok(s, ","); - while (result) - { - if (count == 0) - protocol = result; - else if (count == 1) - remip = result; - else if (count == 2) - locport = result; - else if (count == 3) - enabled = result; - else if (count == 4) - destip = result; - else - information = result; - count++; - result = strtok(NULL, ","); - } - - if (!(protocol && remip && locport && enabled)) - break; - - if (!VALID_PROTOCOL(protocol)) - { - fprintf(stderr, "Bad protocol: %s\n", protocol); - exit(1); - } - if (!VALID_IP_AND_MASK(remip)) - { - fprintf(stderr, "Bad remote IP: %s\n", remip); - exit(1); - } - if (!VALID_PORT_RANGE(locport)) - { - fprintf(stderr, "Bad local port: %s\n", locport); - exit(1); - } - - /* check for destination ip in config file. If it's there - * and it's not 0.0.0.0, use it; else use the current - * local ip address. (This makes sure we can use old-style - * config files without the destination ip) */ - if (!destip || !strcmp(destip, "0.0.0.0")) - destip = locip; - if (!VALID_IP(destip)) - { - fprintf(stderr, "Bad destination IP: %s\n", remip); - exit(1); - } - - if (strcmp(enabled, "on") == 0) - { - memset(command, 0, STRING_SIZE); - snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A XTACCESS -i %s -p %s -s %s -d %s --dport %s -j ACCEPT", - iface, protocol, remip, destip, locport); - safe_system(command); - } - } - - return 0; -} diff --git a/src/misc-progs/smartctrl.c b/src/misc-progs/smartctrl.c index d9dd846..c6451ac 100644 --- a/src/misc-progs/smartctrl.c +++ b/src/misc-progs/smartctrl.c @@ -13,31 +13,28 @@ #include <fcntl.h> #include "setuid.h"
-#define BUFFER_SIZE 1024 - -char command[BUFFER_SIZE]; - int main(int argc, char *argv[]) { - if (!(initsetuid())) - exit(1); + exit(1);
- if (argc < 2) { - fprintf(stderr, "\nNo argument given.\n\nsmartctrl <device>\n\n"); - exit(1); - } + if (argc < 2) { + fprintf(stderr, "\nNo argument given.\n\nsmartctrl <device>\n\n"); + exit(1); + }
+ char command[STRING_SIZE]; + snprintf(command, STRING_SIZE, "/var/run/hddshutdown-%s", argv[1]);
- sprintf(command, "/var/run/hddshutdown-%s", argv[1]); - FILE *fp = fopen(command,"r"); - if( fp ) { + FILE *fp = fopen(command, "r"); + if (fp != NULL) { fclose(fp); + printf("\nDisk %s is in Standby. Do nothing because we won't wakeup\n",argv[1]); - exit(1); + exit(1); }
- sprintf(command, "smartctl -iHA /dev/%s", argv[1]); - safe_system(command); + snprintf(command, STRING_SIZE, "smartctl -iHA /dev/%s", argv[1]); + safe_system(command);
return 0; } diff --git a/src/misc-progs/syslogdctrl.c b/src/misc-progs/syslogdctrl.c index 993cc93..8111c84 100644 --- a/src/misc-progs/syslogdctrl.c +++ b/src/misc-progs/syslogdctrl.c @@ -19,8 +19,10 @@ #include <fcntl.h> #include <signal.h> #include <errno.h> + #include "libsmooth.h" #include "setuid.h" +#include "netutil.h"
#define ERR_ANY 1 #define ERR_SETTINGS 2 /* error in settings file */ diff --git a/src/misc-progs/wirelessctrl.c b/src/misc-progs/wirelessctrl.c index 12b954b..4a2e6dc 100644 --- a/src/misc-progs/wirelessctrl.c +++ b/src/misc-progs/wirelessctrl.c @@ -5,8 +5,6 @@ * * (c) Alan Hourihane, 2003 * - * $Id: wirelessctrl.c,v 1.2.2.5 2005/07/11 10:56:47 franck78 Exp $ - * */
#include "libsmooth.h" @@ -18,180 +16,159 @@ #include <sys/types.h> #include <sys/stat.h> #include <signal.h> -#include "setuid.h" #include <errno.h>
+#include "setuid.h" +#include "netutil.h" + FILE *fd = NULL; char blue_dev[STRING_SIZE] = ""; char command[STRING_SIZE];
-void exithandler(void) -{ - /* added comment mark to the drop rules to be able to collect the bytes by the collectd */ - if(strlen(blue_dev)) - { - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); - safe_system(command); - } - - if (fd) - fclose(fd); +void exithandler(void) { + /* added comment mark to the drop rules to be able to collect the bytes by the collectd */ + if (strlen(blue_dev) > 0) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -i %s -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -i %s -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); + safe_system(command); + } + + if (fd) + fclose(fd); }
-int main(void) -{ - char green_dev[STRING_SIZE] = ""; - char buffer[STRING_SIZE]; - char *index, *ipaddress, *macaddress, *enabled; - struct keyvalue *kv = NULL; - - if (!(initsetuid())) - exit(1); - - /* flush wireless iptables */ - safe_system("/sbin/iptables -F WIRELESSINPUT > /dev/null 2> /dev/null"); - safe_system("/sbin/iptables -F WIRELESSFORWARD > /dev/null 2> /dev/null"); - - memset(buffer, 0, STRING_SIZE); - - /* Init the keyvalue structure */ - kv=initkeyvalues(); - - /* Read in the current values */ - if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) - { - fprintf(stderr, "Cannot read ethernet settings\n"); - exit(1); - } - - /* Read in the firewall values */ - if (!readkeyvalues(kv, CONFIG_ROOT "/optionsfw/settings")) - { - fprintf(stderr, "Cannot read optionsfw settings\n"); - exit(1); - } - - /* Get the GREEN interface details */ - if(!findkey(kv, "GREEN_DEV", green_dev)) - { - fprintf(stderr, "Cannot read GREEN_DEV\n"); - exit(1); - } - if (!VALID_DEVICE(green_dev)) - { - fprintf(stderr, "Bad GREEN_DEV: %s\n", green_dev); - exit(1); - } - /* Get the BLUE interface details */ - if(!findkey(kv, "BLUE_DEV", blue_dev)) - { - fprintf(stderr, "Cannot read BLUE_DEV\n"); - exit(1); - } - if (strlen(blue_dev) && !VALID_DEVICE(blue_dev)) - { - fprintf(stderr, "Bad BLUE_DEV: %s\n", blue_dev); - exit(1); - } - if(! strlen(blue_dev) > 0) - { - fprintf(stderr, "No BLUE interface\n"); - exit(0); - } - - if ((fd = fopen(CONFIG_ROOT "/wireless/nodrop", "r"))) - return 0; - - /* register exit handler to ensure the block rule is always present */ - atexit(exithandler); - - if (!(fd = fopen(CONFIG_ROOT "/wireless/config", "r"))) - { - exit(0); - } - - /* restrict blue access tp the proxy port */ - if(findkey(kv, "DROPPROXY", buffer) && strcmp(buffer,"off")){ - /* Read the proxy values */ - if (!readkeyvalues(kv, CONFIG_ROOT "/proxy/settings") || !(findkey(kv, "PROXY_PORT", buffer))) - { - fprintf(stderr, "Cannot read proxy settings\n"); - exit(1); - } - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -p tcp ! --dport %s -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev, buffer); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -p tcp ! --dport %s -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev, buffer); - safe_system(command); - } - - /* not allow blue to acces a samba server running on local fire*/ - if(findkey(kv, "DROPSAMBA", buffer) && strcmp(buffer,"off")){ - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -p tcp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -p tcp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -p udp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -p udp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); - safe_system(command); - } - - while (fgets(buffer, STRING_SIZE, fd)) - { - buffer[strlen(buffer) - 1] = 0; - - index = strtok(buffer, ","); - ipaddress = strtok(NULL, ","); - macaddress = strtok(NULL, ","); - enabled = strtok(NULL, ","); - - if (!strncmp(enabled, "on", 2)) { - - /* both specified, added security */ - if ((strlen(macaddress) == 17) && - (VALID_IP_AND_MASK(ipaddress))) { - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -m mac --mac-source %s -s %s -i %s -j ACCEPT", macaddress, ipaddress, blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -s %s -i %s ! -o %s -j ACCEPT", macaddress, ipaddress, blue_dev, green_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -s %s -i %s -j DMZHOLES", macaddress, ipaddress, blue_dev); - safe_system(command); - } else { - - /* correctly formed mac address is 17 chars */ - if (strlen(macaddress) == 17) { - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -m mac --mac-source %s -i %s -j ACCEPT", macaddress, blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -i %s ! -o %s -j ACCEPT", macaddress, blue_dev, green_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -i %s -j DMZHOLES", macaddress, blue_dev); - safe_system(command); - } - - if (VALID_IP_AND_MASK(ipaddress)) { - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -s %s -i %s -j ACCEPT", ipaddress, blue_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -s %s -i %s ! -o %s -j ACCEPT", ipaddress, blue_dev, green_dev); - safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -s %s -i %s -j DMZHOLES", ipaddress, blue_dev); - safe_system(command); - } - } - } +int main(void) { + char green_dev[STRING_SIZE] = ""; + char buffer[STRING_SIZE]; + char *index, *ipaddress, *macaddress, *enabled; + struct keyvalue *kv = NULL; + + if (!(initsetuid())) + exit(1); + + /* flush wireless iptables */ + safe_system("/sbin/iptables --wait -F WIRELESSINPUT > /dev/null 2> /dev/null"); + safe_system("/sbin/iptables --wait -F WIRELESSFORWARD > /dev/null 2> /dev/null"); + + memset(buffer, 0, STRING_SIZE); + + /* Init the keyvalue structure */ + kv=initkeyvalues(); + + /* Read in the current values */ + if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")) { + fprintf(stderr, "Cannot read ethernet settings\n"); + exit(1); + } + + /* Read in the firewall values */ + if (!readkeyvalues(kv, CONFIG_ROOT "/optionsfw/settings")) { + fprintf(stderr, "Cannot read optionsfw settings\n"); + exit(1); + } + + /* Get the GREEN interface details */ + if (findkey(kv, "GREEN_DEV", green_dev) > 0) { + if (!VALID_DEVICE(green_dev)) { + fprintf(stderr, "Bad GREEN_DEV: %s\n", green_dev); + exit(1); + } + } + + /* Get the BLUE interface details */ + if (findkey(kv, "BLUE_DEV", blue_dev) > 0) { + if ((strlen(blue_dev) > 0) && !VALID_DEVICE(blue_dev)) { + fprintf(stderr, "Bad BLUE_DEV: %s\n", blue_dev); + exit(1); + } + } + + if (strlen(blue_dev) == 0) { + exit(0); + } + + if ((fd = fopen(CONFIG_ROOT "/wireless/nodrop", "r"))) + return 0; + + /* register exit handler to ensure the block rule is always present */ + atexit(exithandler); + + if (!(fd = fopen(CONFIG_ROOT "/wireless/config", "r"))) { + exit(0); + } + + /* restrict blue access tp the proxy port */ + if (findkey(kv, "DROPPROXY", buffer) && strcmp(buffer, "on") == 0) { + /* Read the proxy values */ + if (!readkeyvalues(kv, CONFIG_ROOT "/proxy/settings") || !(findkey(kv, "PROXY_PORT", buffer))) { + fprintf(stderr, "Cannot read proxy settings\n"); + exit(1); + } + + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -i %s -p tcp ! --dport %s -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev, buffer); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -i %s -p tcp ! --dport %s -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev, buffer); + safe_system(command); + } + + /* not allow blue to acces a samba server running on local fire*/ + if (findkey(kv, "DROPSAMBA", buffer) && strcmp(buffer, "on") == 0) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -i %s -p tcp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -i %s -p tcp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -i %s -p udp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -i %s -p udp -m multiport --ports 135,137,138,139,445,1025 -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); + safe_system(command); + } + + while (fgets(buffer, STRING_SIZE, fd)) { + buffer[strlen(buffer) - 1] = 0; + + index = strtok(buffer, ","); + ipaddress = strtok(NULL, ","); + macaddress = strtok(NULL, ","); + enabled = strtok(NULL, ","); + + if (strcmp(enabled, "on") == 0) { + /* both specified, added security */ + if ((strlen(macaddress) == 17) && (VALID_IP_AND_MASK(ipaddress))) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -m mac --mac-source %s -s %s -i %s -j ACCEPT", macaddress, ipaddress, blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -m mac --mac-source %s -s %s -i %s -j RETURN", macaddress, ipaddress, blue_dev); + safe_system(command); + } else { + /* correctly formed mac address is 17 chars */ + if (strlen(macaddress) == 17) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -m mac --mac-source %s -i %s -j ACCEPT", macaddress, blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -m mac --mac-source %s -i %s -j RETURN", macaddress, blue_dev); + safe_system(command); }
- /* with this rule you can disable the logging of the dropped wireless input packets*/ - if(!findkey(kv, "DROPWIRELESSINPUT", buffer) || strcmp(buffer,"off")){ - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -j LOG --log-prefix 'DROP_Wirelessinput'", blue_dev); - safe_system(command); + if (VALID_IP_AND_MASK(ipaddress)) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -s %s -i %s -j ACCEPT", ipaddress, blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -s %s -i %s -j RETURN", ipaddress, blue_dev); + safe_system(command); } - /* with this rule you can disable the logging of the dropped wireless forward packets*/ - if(!findkey(kv, "DROPWIRELESSFORWARD", buffer) || strcmp(buffer,"off")){ - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -j LOG --log-prefix 'DROP_Wirelessforward'", blue_dev); - safe_system(command); - } - - return 0; + } + } + } + + /* with this rule you can disable the logging of the dropped wireless input packets*/ + if (findkey(kv, "DROPWIRELESSINPUT", buffer) && strcmp(buffer, "on") == 0) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSINPUT -i %s -j LOG --log-prefix 'DROP_Wirelessinput'", blue_dev); + safe_system(command); + } + + /* with this rule you can disable the logging of the dropped wireless forward packets*/ + if (findkey(kv, "DROPWIRELESSFORWARD", buffer) && strcmp(buffer, "on") == 0) { + snprintf(command, STRING_SIZE-1, "/sbin/iptables --wait -A WIRELESSFORWARD -i %s -j LOG --log-prefix 'DROP_Wirelessforward'", blue_dev); + safe_system(command); + } + + return 0; } diff --git a/src/paks/linux-pae/install.sh b/src/paks/linux-pae/install.sh index ab74051..043bd45 100644 --- a/src/paks/linux-pae/install.sh +++ b/src/paks/linux-pae/install.sh @@ -64,13 +64,13 @@ echo " kernel /vmlinuz-$KVER-ipfire-pae root=$ROOT panic=10$console $MOUNT" >> echo " initrd /ipfirerd-$KVER-pae.img" >> /boot/grub/grub.conf echo " savedefault $ENTRY" >> /boot/grub/grub.conf # -# Made initramdisk -# -/sbin/dracut --force --verbose /boot/ipfirerd-$KVER-pae.img $KVER-ipfire-pae -# # Create new module depency # depmod -a $KVER-ipfire-pae +# +# Made initramdisk +# +/sbin/dracut --force --verbose /boot/ipfirerd-$KVER-pae.img $KVER-ipfire-pae
# Default pae and request a reboot if pae is supported if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then diff --git a/src/paks/linux-xen/install.sh b/src/paks/linux-xen/install.sh deleted file mode 100644 index f3472dd..0000000 --- a/src/paks/linux-xen/install.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2010 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -extract_files -# -KVER=2.6.32.61 -ROOT=`mount | grep " / " | cut -d" " -f1` -ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2` -if [ ! -z $ROOTUUID ]; then - ROOT="UUID=$ROOTUUID" -fi - -MOUNT=`grep "kernel" /boot/grub/grub.conf | tail -n 1` -# Nur den letzten Parameter verwenden -echo $MOUNT > /dev/null -MOUNT=$_ -if [ ! $MOUNT == "rw" ]; then - MOUNT="ro" -fi - -ENTRY=`grep "savedefault" /boot/grub/grub.conf | tail -n 1` -# Nur den letzten Parameter verwenden -echo $ENTRY > /dev/null -let ENTRY=$_+1 -# -# backup grub.conf -# -cp /boot/grub/grub.conf /boot/grub/grub-backup-$KVER-xen.conf -# -# Add new Entry to grub.conf -# -echo "" >> /boot/grub/grub.conf -echo "title IPFire (legacy XEN-Kernel $KVER)" >> /boot/grub/grub.conf -echo " kernel /vmlinuz-$KVER-ipfire-xen root=$ROOT panic=10 console=xvc0 $MOUNT" >> /boot/grub/grub.conf -echo " initrd /ipfirerd-$KVER-xen.img" >> /boot/grub/grub.conf -echo "# savedefault $ENTRY" >> /boot/grub/grub.conf -# -# Test if we running already on xen -# -uname -r | grep "ipfire-xen"; -if [ ${?} = 0 ]; then - #Xen Kernel is active - #Set grub default entry to this kernel - sed -i -e "s|^default .*|default $ENTRY|g" /boot/grub/grub.conf - #Remove ramdisk of normal kernel (not enough space) - rm -f /boot/ipfirerd-$KVER.img -else - #Normal Kernel - #pygrub crash with "default saved" - sed -i -e "s|^default saved|#default saved|g" /boot/grub/grub.conf -fi -# -# Made initramdisk -# -/sbin/dracut --force --verbose /boot/ipfirerd-$KVER-xen.img $KVER-ipfire-xen -# -# Create new module depency -# -depmod -a $KVER-ipfire-xen diff --git a/src/paks/linux-xen/uninstall.sh b/src/paks/linux-xen/uninstall.sh deleted file mode 100644 index fe23165..0000000 --- a/src/paks/linux-xen/uninstall.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2010 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -remove_files -mv -f /boot/grub/grub-backup-2.6.32.*-xen.conf /boot/grub/grub.conf diff --git a/src/paks/linux-xen/update.sh b/src/paks/linux-xen/update.sh deleted file mode 100644 index 89c40d0..0000000 --- a/src/paks/linux-xen/update.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -./uninstall.sh -./install.sh diff --git a/src/patches/binutils-2.22-pt-pax-flags-20111121.patch b/src/patches/binutils-2.22-pt-pax-flags-20111121.patch new file mode 100644 index 0000000..3ba1a87 --- /dev/null +++ b/src/patches/binutils-2.22-pt-pax-flags-20111121.patch @@ -0,0 +1,1859 @@ +--- binutils-2.22/bfd/elf-bfd.h ++++ binutils-2.22/bfd/elf-bfd.h +@@ -1577,6 +1577,9 @@ struct elf_obj_tdata + /* Segment flags for the PT_GNU_STACK segment. */ + unsigned int stack_flags; + ++ /* Segment flags for the PT_PAX_FLAGS segment. */ ++ unsigned int pax_flags; ++ + /* Symbol version definitions in external objects. */ + Elf_Internal_Verdef *verdef; + +--- binutils-2.22/bfd/elf.c ++++ binutils-2.22/bfd/elf.c +@@ -1158,6 +1158,7 @@ get_segment_type (unsigned int p_type) + case PT_GNU_EH_FRAME: pt = "EH_FRAME"; break; + case PT_GNU_STACK: pt = "STACK"; break; + case PT_GNU_RELRO: pt = "RELRO"; break; ++ case PT_PAX_FLAGS: pt = "PAX_FLAGS"; break; + default: pt = NULL; break; + } + return pt; +@@ -2477,6 +2478,9 @@ bfd_section_from_phdr (bfd *abfd, Elf_Internal_Phdr *hdr, int hdr_index) + case PT_GNU_RELRO: + return _bfd_elf_make_section_from_phdr (abfd, hdr, hdr_index, "relro"); + ++ case PT_PAX_FLAGS: ++ return _bfd_elf_make_section_from_phdr (abfd, hdr, hdr_index, "pax_flags"); ++ + default: + /* Check for any processor-specific program segment types. */ + bed = get_elf_backend_data (abfd); +@@ -3551,6 +3555,11 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info) + ++segs; + } + ++ { ++ /* We need a PT_PAX_FLAGS segment. */ ++ ++segs; ++ } ++ + for (s = abfd->sections; s != NULL; s = s->next) + { + if ((s->flags & SEC_LOAD) != 0 +@@ -4153,6 +4162,20 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info) + } + } + ++ { ++ amt = sizeof (struct elf_segment_map); ++ m = bfd_zalloc (abfd, amt); ++ if (m == NULL) ++ goto error_return; ++ m->next = NULL; ++ m->p_type = PT_PAX_FLAGS; ++ m->p_flags = elf_tdata (abfd)->pax_flags; ++ m->p_flags_valid = 1; ++ ++ *pm = m; ++ pm = &m->next; ++ } ++ + free (sections); + elf_tdata (abfd)->segment_map = mfirst; + } +@@ -5417,7 +5440,8 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd) + 6. PT_TLS segment includes only SHF_TLS sections. + 7. SHF_TLS sections are only in PT_TLS or PT_LOAD segments. + 8. PT_DYNAMIC should not contain empty sections at the beginning +- (with the possible exception of .dynamic). */ ++ (with the possible exception of .dynamic). ++ 9. PT_PAX_FLAGS segments do not include any sections. */ + #define IS_SECTION_IN_INPUT_SEGMENT(section, segment, bed) \ + ((((segment->p_paddr \ + ? IS_CONTAINED_BY_LMA (section, segment, segment->p_paddr) \ +@@ -5425,6 +5449,7 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd) + && (section->flags & SEC_ALLOC) != 0) \ + || IS_NOTE (segment, section)) \ + && segment->p_type != PT_GNU_STACK \ ++ && segment->p_type != PT_PAX_FLAGS \ + && (segment->p_type != PT_TLS \ + || (section->flags & SEC_THREAD_LOCAL)) \ + && (segment->p_type == PT_LOAD \ +--- binutils-2.22/bfd/elflink.c ++++ binutils-2.22/bfd/elflink.c +@@ -5545,16 +5545,30 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd, + return TRUE; + + bed = get_elf_backend_data (output_bfd); ++ ++ elf_tdata (output_bfd)->pax_flags = PF_NORANDEXEC; ++ if (info->execheap) ++ elf_tdata (output_bfd)->pax_flags |= PF_NOMPROTECT; ++ else if (info->noexecheap) ++ elf_tdata (output_bfd)->pax_flags |= PF_MPROTECT; ++ + if (info->execstack) +- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X; ++ { ++ elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X; ++ elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP; ++ } + else if (info->noexecstack) +- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W; ++ { ++ elf_tdata (output_bfd)->stack_flags = PF_R | PF_W; ++ elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP; ++ } + else + { + bfd *inputobj; + asection *notesec = NULL; + int exec = 0; + ++ elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP; + for (inputobj = info->input_bfds; + inputobj; + inputobj = inputobj->link_next) +@@ -5567,7 +5581,11 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd, + if (s) + { + if (s->flags & SEC_CODE) +- exec = PF_X; ++ { ++ elf_tdata (output_bfd)->pax_flags &= ~PF_NOEMUTRAMP; ++ elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP; ++ exec = PF_X; ++ } + notesec = s; + } + else if (bed->default_execstack) +--- binutils-2.22/binutils/readelf.c ++++ binutils-2.22/binutils/readelf.c +@@ -2740,6 +2740,7 @@ get_segment_type (unsigned long p_type) + return "GNU_EH_FRAME"; + case PT_GNU_STACK: return "GNU_STACK"; + case PT_GNU_RELRO: return "GNU_RELRO"; ++ case PT_PAX_FLAGS: return "PAX_FLAGS"; + + default: + if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC)) +--- binutils-2.22/include/bfdlink.h ++++ binutils-2.22/include/bfdlink.h +@@ -322,6 +322,14 @@ struct bfd_link_info + /* TRUE if PT_GNU_RELRO segment should be created. */ + unsigned int relro: 1; + ++ /* TRUE if PT_PAX_FLAGS segment should be created with PF_NOMPROTECT ++ flags. */ ++ unsigned int execheap: 1; ++ ++ /* TRUE if PT_PAX_FLAGS segment should be created with PF_MPROTECT ++ flags. */ ++ unsigned int noexecheap: 1; ++ + /* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment + should be created. */ + unsigned int eh_frame_hdr: 1; +--- binutils-2.22/include/elf/common.h ++++ binutils-2.22/include/elf/common.h +@@ -429,6 +429,7 @@ + #define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */ + #define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */ + #define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */ ++#define PT_PAX_FLAGS (PT_LOOS + 0x5041580) /* PaX flags */ + + /* Program segment permissions, in program header p_flags field. */ + +@@ -439,6 +440,21 @@ + #define PF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */ + #define PF_MASKPROC 0xF0000000 /* Processor-specific reserved bits */ + ++/* Flags to control PaX behavior. */ ++ ++#define PF_PAGEEXEC (1 << 4) /* Enable PAGEEXEC */ ++#define PF_NOPAGEEXEC (1 << 5) /* Disable PAGEEXEC */ ++#define PF_SEGMEXEC (1 << 6) /* Enable SEGMEXEC */ ++#define PF_NOSEGMEXEC (1 << 7) /* Disable SEGMEXEC */ ++#define PF_MPROTECT (1 << 8) /* Enable MPROTECT */ ++#define PF_NOMPROTECT (1 << 9) /* Disable MPROTECT */ ++#define PF_RANDEXEC (1 << 10) /* Enable RANDEXEC */ ++#define PF_NORANDEXEC (1 << 11) /* Disable RANDEXEC */ ++#define PF_EMUTRAMP (1 << 12) /* Enable EMUTRAMP */ ++#define PF_NOEMUTRAMP (1 << 13) /* Disable EMUTRAMP */ ++#define PF_RANDMMAP (1 << 14) /* Enable RANDMMAP */ ++#define PF_NORANDMMAP (1 << 15) /* Disable RANDMMAP */ ++ + /* Values for section header, sh_type field. */ + + #define SHT_NULL 0 /* Section header table entry unused */ +--- binutils-2.22/ld/emultempl/elf32.em ++++ binutils-2.22/ld/emultempl/elf32.em +@@ -2285,6 +2285,16 @@ fragment <<EOF + link_info.noexecstack = TRUE; + link_info.execstack = FALSE; + } ++ else if (strcmp (optarg, "execheap") == 0) ++ { ++ link_info.execheap = TRUE; ++ link_info.noexecheap = FALSE; ++ } ++ else if (strcmp (optarg, "noexecheap") == 0) ++ { ++ link_info.noexecheap = TRUE; ++ link_info.execheap = FALSE; ++ } + EOF + if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then + fragment <<EOF +@@ -2368,6 +2378,8 @@ fragment <<EOF + -z defs Report unresolved symbols in object files.\n")); + fprintf (file, _("\ + -z execstack Mark executable as requiring executable stack\n")); ++ fprintf (file, _("\ ++ -z execheap Mark executable as requiring executable heap\n")); + EOF + + if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then +@@ -2391,6 +2403,8 @@ fragment <<EOF + fragment <<EOF + fprintf (file, _("\ + -z noexecstack Mark executable as not requiring executable stack\n")); ++ fprintf (file, _("\ ++ -z noexecheap Mark executable as not requiring executable heap\n")); + EOF + if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then + fragment <<EOF +--- binutils-2.22/ld/ldgram.y ++++ binutils-2.22/ld/ldgram.y +@@ -1119,6 +1119,8 @@ phdr_type: + $$ = exp_intop (0x6474e550); + else if (strcmp (s, "PT_GNU_STACK") == 0) + $$ = exp_intop (0x6474e551); ++ else if (strcmp (s, "PT_PAX_FLAGS") == 0) ++ $$ = exp_intop (0x65041580); + else + { + einfo (_("\ +--- binutils-2.22/ld/testsuite/ld-alpha/tlsbin.rd ++++ binutils-2.22/ld/testsuite/ld-alpha/tlsbin.rd +@@ -35,13 +35,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +- PHDR +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+150 R E 0x8 ++ PHDR +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+188 R E 0x8 + INTERP +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1 + .*Requesting program interpreter.* + LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x10000 + LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x10000 + DYNAMIC +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RW +0x8 + TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 3 entries: +--- binutils-2.22/ld/testsuite/ld-alpha/tlsbinr.rd ++++ binutils-2.22/ld/testsuite/ld-alpha/tlsbinr.rd +@@ -42,6 +42,7 @@ Program Headers: + +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x10000 + +DYNAMIC +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RW +0x8 + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 2 entries: +--- binutils-2.22/ld/testsuite/ld-alpha/tlspic.rd ++++ binutils-2.22/ld/testsuite/ld-alpha/tlspic.rd +@@ -38,6 +38,7 @@ Program Headers: + +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x10000 + +DYNAMIC +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RW +0x8 + +TLS +0x0+10e0 0x0+110e0 0x0+110e0 0x0+60 0x0+80 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 7 entries: +--- binutils-2.22/ld/testsuite/ld-elf/eh1.d ++++ binutils-2.22/ld/testsuite/ld-elf/eh1.d +@@ -22,11 +22,11 @@ Contents of the .eh_frame section: + DW_CFA_nop + DW_CFA_nop + +-00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078 +- DW_CFA_advance_loc: 0 to 00400078 ++00000018 0000001c 0000001c FDE cie=00000000 pc=([0-9a-f]+)..\1 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 (rbp) at cfa-16 +- DW_CFA_advance_loc: 0 to 00400078 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_register: r6 (rbp) + + 00000038 ZERO terminator +--- binutils-2.22/ld/testsuite/ld-elf/eh2.d ++++ binutils-2.22/ld/testsuite/ld-elf/eh2.d +@@ -22,11 +22,11 @@ Contents of the .eh_frame section: + DW_CFA_nop + DW_CFA_nop + +-00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078 +- DW_CFA_advance_loc: 0 to 00400078 ++00000018 0000001c 0000001c FDE cie=00000000 pc=([0-9a-f]+)..\1 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 (rbp) at cfa-16 +- DW_CFA_advance_loc: 0 to 00400078 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_register: r6 (rbp) + + 00000038 ZERO terminator +--- binutils-2.22/ld/testsuite/ld-elf/eh3.d ++++ binutils-2.22/ld/testsuite/ld-elf/eh3.d +@@ -22,11 +22,11 @@ Contents of the .eh_frame section: + DW_CFA_nop + DW_CFA_nop + +-00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078 +- DW_CFA_advance_loc: 0 to 00400078 ++00000018 0000001c 0000001c FDE cie=00000000 pc=([0-9a-f]+)..\1 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 (rbp) at cfa-16 +- DW_CFA_advance_loc: 0 to 00400078 ++ DW_CFA_advance_loc: 0 to [0-9a-f]+ + DW_CFA_def_cfa_register: r6 (rbp) + + 00000038 ZERO terminator +--- binutils-2.22/ld/testsuite/ld-elf/orphan-region.d ++++ binutils-2.22/ld/testsuite/ld-elf/orphan-region.d +@@ -15,7 +15,9 @@ + Program Headers: + Type.* + LOAD[ \t]+0x[0-9a-f]+ 0x0*40000000 0x0*40000000 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x[0-9a-f]+ ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + Segment Sections... + 00 .text .rodata .moredata * ++ 01 + +--- binutils-2.22/ld/testsuite/ld-i386/tlsbin.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsbin.rd +@@ -44,6 +44,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -53,6 +54,7 @@ Program Headers: + +03 +.tdata .dynamic .got .got.plt * + +04 +.dynamic * + +05 +.tdata .tbss * ++ +06 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-i386/tlsbindesc.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsbindesc.rd +@@ -42,6 +42,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -51,6 +52,7 @@ Program Headers: + +03 +.tdata .dynamic .got .got.plt * + +04 +.dynamic * + +05 +.tdata .tbss * ++ +06 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-i386/tlsdesc.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsdesc.rd +@@ -39,6 +39,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+80 R +0x1 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -46,6 +47,7 @@ Program Headers: + +01 +.tdata .dynamic .got .got.plt * + +02 +.dynamic * + +03 +.tdata .tbss * ++ +04 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-i386/tlsdesc.sd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsdesc.sd +@@ -14,7 +14,7 @@ Contents of section .got: + [0-9a-f]+ 6c000000 b4ffffff 4c000000 68000000 .* + [0-9a-f]+ 50000000 70000000 00000000 bcffffff .* + Contents of section .got.plt: +- [0-9a-f]+ b0150000 00000000 00000000 00000000 .* ++ [0-9a-f]+ [a-f]0150000 00000000 00000000 00000000 .* + [0-9a-f]+ 20000000 00000000 60000000 00000000 .* + [0-9a-f]+ 00000000 00000000 00000000 00000000 .* + [0-9a-f]+ 40000000 +.* +--- binutils-2.22/ld/testsuite/ld-i386/tlsgdesc.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsgdesc.rd +@@ -36,12 +36,14 @@ Program Headers: + +LOAD.* + +LOAD.* + +DYNAMIC.* ++ +PAX_FLAGS.* + + Section to Segment mapping: + +Segment Sections... + +00 +.hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text * + +01 +.dynamic .got .got.plt * + +02 +.dynamic * ++ +03 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 8 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-i386/tlsnopic.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlsnopic.rd +@@ -37,6 +37,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+ 0x0+24 R +0x1 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -44,6 +45,7 @@ Program Headers: + +01 +.dynamic .got .got.plt * + +02 +.dynamic * + +03 +.tbss * ++ +04 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-i386/tlspic.rd ++++ binutils-2.22/ld/testsuite/ld-i386/tlspic.rd +@@ -40,6 +40,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+80 R +0x1 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -47,6 +48,7 @@ Program Headers: + +01 +.tdata .dynamic .got .got.plt * + +02 +.dynamic * + +03 +.tdata .tbss * ++ +04 + + + Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 26 entries: + Offset +Info +Type +Sym.Value +Sym. Name +--- binutils-2.22/ld/testsuite/ld-ia64/merge1.d ++++ binutils-2.22/ld/testsuite/ld-ia64/merge1.d +@@ -4,7 +4,7 @@ + #objdump: -d + + #... +-0+1e0 <.text>: ++[a-f0-9]+ <.text>: + [ ]*[a-f0-9]+: 0b 60 80 02 00 24 [MMI] addl r12=32,r1;; + [ ]*[a-f0-9]+: c0 c0 04 00 48 00 addl r12=24,r1 + [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;; +--- binutils-2.22/ld/testsuite/ld-ia64/merge2.d ++++ binutils-2.22/ld/testsuite/ld-ia64/merge2.d +@@ -4,7 +4,7 @@ + #objdump: -d + + #... +-0+1e0 <.text>: ++[a-f0-9]+ <.text>: + [ ]*[a-f0-9]+: 0b 60 80 02 00 24 [MMI] addl r12=32,r1;; + [ ]*[a-f0-9]+: c0 c0 04 00 48 00 addl r12=24,r1 + [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;; +--- binutils-2.22/ld/testsuite/ld-ia64/merge3.d ++++ binutils-2.22/ld/testsuite/ld-ia64/merge3.d +@@ -4,7 +4,7 @@ + #objdump: -d + + #... +-0+210 <.text>: ++[a-f0-9]+ <.text>: + [ ]*[a-f0-9]+: 0b 60 80 02 00 24 [MMI] addl r12=32,r1;; + [ ]*[a-f0-9]+: c0 40 05 00 48 00 addl r12=40,r1 + [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;; +--- binutils-2.22/ld/testsuite/ld-ia64/merge4.d ++++ binutils-2.22/ld/testsuite/ld-ia64/merge4.d +@@ -4,7 +4,7 @@ + #objdump: -d + + #... +-0+240 <.text>: ++[a-f0-9]+ <.text>: + [ ]*[a-f0-9]+: 0b 60 80 02 00 24 [MMI] addl r12=32,r1;; + [ ]*[a-f0-9]+: c0 40 05 00 48 00 addl r12=40,r1 + [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;; +--- binutils-2.22/ld/testsuite/ld-ia64/merge5.d ++++ binutils-2.22/ld/testsuite/ld-ia64/merge5.d +@@ -4,7 +4,7 @@ + #objdump: -d + + #... +-0+270 <.text>: ++[a-f0-9]+ <.text>: + [ ]*[a-f0-9]+: 0b 60 80 02 00 24 [MMI] addl r12=32,r1;; + [ ]*[a-f0-9]+: c0 40 05 00 48 00 addl r12=40,r1 + [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;; +--- binutils-2.22/ld/testsuite/ld-ia64/tlsbin.rd ++++ binutils-2.22/ld/testsuite/ld-ia64/tlsbin.rd +@@ -36,13 +36,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +- +PHDR +0x0+40 0x40+40 0x40+40 0x0+188 0x0+188 R E 0x8 +- +INTERP +0x0+1c8 0x40+1c8 0x40+1c8 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1 ++ +PHDR +0x0+40 0x40+40 0x40+40 (0x[0-9a-f]+) \1 R E 0x8 ++ +INTERP +0x0+([0-9a-f]+) (0x40+\1) \2 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1 + .*Requesting program interpreter.* + +LOAD +0x0+ 0x40+ 0x40+ 0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ R E 0x10000 + +LOAD +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+0[0-9a-f]+ 0x0+0[0-9a-f]+ RW +0x10000 + +DYNAMIC +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+150 0x0+150 RW +0x8 + +TLS +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+60 0x0+a0 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + +IA_64_UNWIND .* R +0x8 + #... + +--- binutils-2.22/ld/testsuite/ld-ia64/tlspic.rd ++++ binutils-2.22/ld/testsuite/ld-ia64/tlspic.rd +@@ -40,6 +40,7 @@ Program Headers: + +LOAD +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+0[0-9a-f]+ 0x0+0[0-9a-f]+ RW +0x10000 + +DYNAMIC +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+140 0x0+140 RW +0x8 + +TLS +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+60 0x0+80 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + +IA_64_UNWIND +0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ 0x0+18 0x0+18 R +0x8 + #... + +--- binutils-2.22/ld/testsuite/ld-mips-elf/multi-got-no-shared.d ++++ binutils-2.22/ld/testsuite/ld-mips-elf/multi-got-no-shared.d +@@ -8,9 +8,9 @@ + .*: +file format.* + + Disassembly of section .text: +-004000b0 <[^>]*> 3c1c0043 lui gp,0x43 +-004000b4 <[^>]*> 279c9ff0 addiu gp,gp,-24592 +-004000b8 <[^>]*> afbc0008 sw gp,8(sp) ++004000d0 <[^>]*> 3c1c0043 lui gp,0x43 ++004000d4 <[^>]*> 279c9ff0 addiu gp,gp,-24592 ++004000d8 <[^>]*> afbc0008 sw gp,8(sp) + #... + 00408d60 <[^>]*> 3c1c0043 lui gp,0x43 + 00408d64 <[^>]*> 279c2c98 addiu gp,gp,11416 +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd +@@ -1,7 +1,7 @@ + + Elf file type is DYN (Shared object file) + Entry point .* +-There are 5 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -9,6 +9,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+00000 * 0x0+00000 [^ ]+ * [^ ]+ * R E * 0x.* + * LOAD * [^ ]+ * 0x0+10000 * 0x0+10000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+00400 * 0x0+00400 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -18,3 +19,4 @@ Program Headers: + *0*2 * .data .got * + *0*3 * .dynamic * + *0*4 * ++ *0*5 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 8 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -13,6 +13,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -25,3 +26,4 @@ Program Headers: + *0*5 *.got .data * + *0*6 *.dynamic * + *0*7 * ++ *0*8 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 8 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -13,6 +13,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -25,3 +26,4 @@ Program Headers: + *0*5 * .got .data .bss * + *0*6 * .dynamic * + *0*7 * ++ *0*8 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 8 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -13,6 +13,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -25,3 +26,4 @@ Program Headers: + *0*5 * .got .data .bss * + *0*6 * .dynamic * + *0*7 * ++ *0*8 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 8 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -13,6 +13,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -25,3 +26,4 @@ Program Headers: + *0*5 * .got .data .bss * + *0*6 * .dynamic * + *0*7 * ++ *0*8 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 7 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -12,6 +12,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -23,3 +24,4 @@ Program Headers: + *0*4 * .got .data .bss * + *0*5 * .dynamic * + *0*6 * ++ *0*7 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.sd ++++ binutils-2.22/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.sd +@@ -1,7 +1,7 @@ + + Elf file type is EXEC (Executable file) + Entry point 0x44000 +-There are 8 program headers, starting at offset .* ++There are [0-9] program headers, starting at offset .* + + Program Headers: + * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align +@@ -13,6 +13,7 @@ Program Headers: + * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.* + * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.* + * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .* ++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + * NULL * .* + + *Section to Segment mapping: +@@ -25,3 +26,4 @@ Program Headers: + *0*5 * .got .data .bss * + *0*6 * .dynamic * + *0*7 * ++ *0*8 * +--- binutils-2.22/ld/testsuite/ld-mips-elf/rel32-n32.d ++++ binutils-2.22/ld/testsuite/ld-mips-elf/rel32-n32.d +@@ -10,6 +10,6 @@ Relocation section '.rel.dyn' at offset .* contains 2 entries: + [0-9a-f ]+R_MIPS_REL32 + + Hex dump of section '.text': +- 0x000002e0 00000000 00000000 00000000 00000000 ................ +- 0x000002f0 000002f0 00000000 00000000 00000000 ................ + 0x00000300 00000000 00000000 00000000 00000000 ................ ++ 0x00000310 00000310 00000000 00000000 00000000 ................ ++ 0x00000320 00000000 00000000 00000000 00000000 ................ +--- binutils-2.22/ld/testsuite/ld-mips-elf/rel32-o32.d ++++ binutils-2.22/ld/testsuite/ld-mips-elf/rel32-o32.d +@@ -10,6 +10,6 @@ Relocation section '.rel.dyn' at offset .* contains 2 entries: + [0-9a-f ]+R_MIPS_REL32 + + Hex dump of section '.text': +- 0x000002e0 00000000 00000000 00000000 00000000 ................ +- 0x000002f0 000002f0 00000000 00000000 00000000 ................ + 0x00000300 00000000 00000000 00000000 00000000 ................ ++ 0x00000310 00000310 00000000 00000000 00000000 ................ ++ 0x00000320 00000000 00000000 00000000 00000000 ................ +--- binutils-2.22/ld/testsuite/ld-mips-elf/rel64.d ++++ binutils-2.22/ld/testsuite/ld-mips-elf/rel64.d +@@ -14,6 +14,6 @@ Relocation section '.rel.dyn' at offset .* contains 2 entries: + +Type3: R_MIPS_NONE + + Hex dump of section '.text': +- 0x00000450 00000000 00000000 00000000 00000000 ................ +- 0x00000460 00000000 00000460 00000000 00000000 ................ +- 0x00000470 00000000 00000000 00000000 00000000 ................ ++ 0x00000490 00000000 00000000 00000000 00000000 ................ ++ 0x000004a0 00000000 000004a0 00000000 00000000 ................ ++ 0x000004b0 00000000 00000000 00000000 00000000 ................ +--- binutils-2.22/ld/testsuite/ld-mips-elf/tlsbin-o32.d ++++ binutils-2.22/ld/testsuite/ld-mips-elf/tlsbin-o32.d +@@ -2,42 +2,42 @@ + + Disassembly of section .text: + +-004000d0 <__start>: +- 4000d0: 3c1c0fc0 lui gp,0xfc0 +- 4000d4: 279c7f30 addiu gp,gp,32560 +- 4000d8: 0399e021 addu gp,gp,t9 +- 4000dc: 27bdfff0 addiu sp,sp,-16 +- 4000e0: afbe0008 sw s8,8(sp) +- 4000e4: 03a0f021 move s8,sp +- 4000e8: afbc0000 sw gp,0(sp) +- 4000ec: 8f998018 lw t9,-32744(gp) +- 4000f0: 27848028 addiu a0,gp,-32728 +- 4000f4: 0320f809 jalr t9 +- 4000f8: 00000000 nop +- 4000fc: 8fdc0000 lw gp,0(s8) +- 400100: 00000000 nop +- 400104: 8f998018 lw t9,-32744(gp) +- 400108: 27848020 addiu a0,gp,-32736 +- 40010c: 0320f809 jalr t9 +- 400110: 00000000 nop +- 400114: 8fdc0000 lw gp,0(s8) +- 400118: 00401021 move v0,v0 +- 40011c: 3c030000 lui v1,0x0 +- 400120: 24638000 addiu v1,v1,-32768 +- 400124: 00621821 addu v1,v1,v0 +- 400128: 7c02283b rdhwr v0,$5 +- 40012c: 8f83801c lw v1,-32740(gp) +- 400130: 00000000 nop +- 400134: 00621821 addu v1,v1,v0 +- 400138: 7c02283b rdhwr v0,$5 +- 40013c: 3c030000 lui v1,0x0 +- 400140: 24639004 addiu v1,v1,-28668 +- 400144: 00621821 addu v1,v1,v0 +- 400148: 03c0e821 move sp,s8 +- 40014c: 8fbe0008 lw s8,8(sp) +- 400150: 03e00008 jr ra +- 400154: 27bd0010 addiu sp,sp,16 ++00400[0-9a-f]{3} <__start>: ++ 400[0-9a-f]{3}: 3c1c0fc0 lui gp,0xfc0 ++ 400[0-9a-f]{3}: 279c7f30 addiu gp,gp,32560 ++ 400[0-9a-f]{3}: 0399e021 addu gp,gp,t9 ++ 400[0-9a-f]{3}: 27bdfff0 addiu sp,sp,-16 ++ 400[0-9a-f]{3}: afbe0008 sw s8,8(sp) ++ 400[0-9a-f]{3}: 03a0f021 move s8,sp ++ 400[0-9a-f]{3}: afbc0000 sw gp,0(sp) ++ 400[0-9a-f]{3}: 8f998018 lw t9,-32744(gp) ++ 400[0-9a-f]{3}: 27848028 addiu a0,gp,-32728 ++ 400[0-9a-f]{3}: 0320f809 jalr t9 ++ 400[0-9a-f]{3}: 00000000 nop ++ 400[0-9a-f]{3}: 8fdc0000 lw gp,0(s8) ++ 400[0-9a-f]{3}: 00000000 nop ++ 400[0-9a-f]{3}: 8f998018 lw t9,-32744(gp) ++ 400[0-9a-f]{3}: 27848020 addiu a0,gp,-32736 ++ 400[0-9a-f]{3}: 0320f809 jalr t9 ++ 400[0-9a-f]{3}: 00000000 nop ++ 400[0-9a-f]{3}: 8fdc0000 lw gp,0(s8) ++ 400[0-9a-f]{3}: 00401021 move v0,v0 ++ 400[0-9a-f]{3}: 3c030000 lui v1,0x0 ++ 400[0-9a-f]{3}: 24638000 addiu v1,v1,-32768 ++ 400[0-9a-f]{3}: 00621821 addu v1,v1,v0 ++ 400[0-9a-f]{3}: 7c02283b rdhwr v0,$5 ++ 400[0-9a-f]{3}: 8f83801c lw v1,-32740(gp) ++ 400[0-9a-f]{3}: 00000000 nop ++ 400[0-9a-f]{3}: 00621821 addu v1,v1,v0 ++ 400[0-9a-f]{3}: 7c02283b rdhwr v0,$5 ++ 400[0-9a-f]{3}: 3c030000 lui v1,0x0 ++ 400[0-9a-f]{3}: 24639004 addiu v1,v1,-28668 ++ 400[0-9a-f]{3}: 00621821 addu v1,v1,v0 ++ 400[0-9a-f]{3}: 03c0e821 move sp,s8 ++ 400[0-9a-f]{3}: 8fbe0008 lw s8,8(sp) ++ 400[0-9a-f]{3}: 03e00008 jr ra ++ 400[0-9a-f]{3}: 27bd0010 addiu sp,sp,16 + +-00400158 <__tls_get_addr>: +- 400158: 03e00008 jr ra +- 40015c: 00000000 nop ++00400[0-9a-f]{3} <__tls_get_addr>: ++ 400[0-9a-f]{3}: 03e00008 jr ra ++ 400[0-9a-f]{3}: 00000000 nop +--- binutils-2.22/ld/testsuite/ld-powerpc/tls.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tls.d +@@ -9,45 +9,45 @@ + + Disassembly of section .text: + +-0+100000e8 <_start>: +- 100000e8: 3c 6d 00 00 addis r3,r13,0 +- 100000ec: 60 00 00 00 nop +- 100000f0: 38 63 90 78 addi r3,r3,-28552 +- 100000f4: 3c 6d 00 00 addis r3,r13,0 +- 100000f8: 60 00 00 00 nop +- 100000fc: 38 63 10 00 addi r3,r3,4096 +- 10000100: 3c 6d 00 00 addis r3,r13,0 +- 10000104: 60 00 00 00 nop +- 10000108: 38 63 90 40 addi r3,r3,-28608 +- 1000010c: 3c 6d 00 00 addis r3,r13,0 +- 10000110: 60 00 00 00 nop +- 10000114: 38 63 10 00 addi r3,r3,4096 +- 10000118: 39 23 80 48 addi r9,r3,-32696 +- 1000011c: 3d 23 00 00 addis r9,r3,0 +- 10000120: 81 49 80 50 lwz r10,-32688(r9) +- 10000124: e9 22 80 10 ld r9,-32752(r2) +- 10000128: 7d 49 18 2a ldx r10,r9,r3 +- 1000012c: 3d 2d 00 00 addis r9,r13,0 +- 10000130: a1 49 90 60 lhz r10,-28576(r9) +- 10000134: 89 4d 90 68 lbz r10,-28568(r13) +- 10000138: 3d 2d 00 00 addis r9,r13,0 +- 1000013c: 99 49 90 70 stb r10,-28560(r9) +- 10000140: 3c 6d 00 00 addis r3,r13,0 +- 10000144: 60 00 00 00 nop +- 10000148: 38 63 90 00 addi r3,r3,-28672 +- 1000014c: 3c 6d 00 00 addis r3,r13,0 +- 10000150: 60 00 00 00 nop +- 10000154: 38 63 10 00 addi r3,r3,4096 +- 10000158: f9 43 80 08 std r10,-32760(r3) +- 1000015c: 3d 23 00 00 addis r9,r3,0 +- 10000160: 91 49 80 10 stw r10,-32752(r9) +- 10000164: e9 22 80 08 ld r9,-32760(r2) +- 10000168: 7d 49 19 2a stdx r10,r9,r3 +- 1000016c: 3d 2d 00 00 addis r9,r13,0 +- 10000170: b1 49 90 60 sth r10,-28576(r9) +- 10000174: e9 4d 90 2a lwa r10,-28632(r13) +- 10000178: 3d 2d 00 00 addis r9,r13,0 +- 1000017c: a9 49 90 30 lha r10,-28624(r9) ++0+10000[0-9a-f]{3} <_start>: ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 78 addi r3,r3,-28552 ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 40 addi r3,r3,-28608 ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 10000[0-9a-f]{3}: 39 23 80 48 addi r9,r3,-32696 ++ 10000[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0 ++ 10000[0-9a-f]{3}: 81 49 80 50 lwz r10,-32688(r9) ++ 10000[0-9a-f]{3}: e9 22 80 10 ld r9,-32752(r2) ++ 10000[0-9a-f]{3}: 7d 49 18 2a ldx r10,r9,r3 ++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0 ++ 10000[0-9a-f]{3}: a1 49 90 60 lhz r10,-28576(r9) ++ 10000[0-9a-f]{3}: 89 4d 90 68 lbz r10,-28568(r13) ++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0 ++ 10000[0-9a-f]{3}: 99 49 90 70 stb r10,-28560(r9) ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 00 addi r3,r3,-28672 ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 10000[0-9a-f]{3}: f9 43 80 08 std r10,-32760(r3) ++ 10000[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0 ++ 10000[0-9a-f]{3}: 91 49 80 10 stw r10,-32752(r9) ++ 10000[0-9a-f]{3}: e9 22 80 08 ld r9,-32760(r2) ++ 10000[0-9a-f]{3}: 7d 49 19 2a stdx r10,r9,r3 ++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0 ++ 10000[0-9a-f]{3}: b1 49 90 60 sth r10,-28576(r9) ++ 10000[0-9a-f]{3}: e9 4d 90 2a lwa r10,-28632(r13) ++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0 ++ 10000[0-9a-f]{3}: a9 49 90 30 lha r10,-28624(r9) + +-0+10000180 <.__tls_get_addr>: +- 10000180: 4e 80 00 20 blr ++0+10000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr +--- binutils-2.22/ld/testsuite/ld-powerpc/tls.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tls.g +@@ -8,5 +8,5 @@ + .*: +file format elf64-powerpc + + Contents of section .got: +- 100101e0 00000000 100181e0 ffffffff ffff8018 .* +- 100101f0 ffffffff ffff8058 .* ++ 10010([0-9a-f]{3}) 00000000 10018\1 ffffffff ffff8018 .* ++ 10010[0-9a-f]{3} ffffffff ffff8058 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tls32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tls32.d +@@ -9,42 +9,42 @@ + + Disassembly of section .text: + +-0+1800094 <_start>: +- 1800094: 3c 62 00 00 addis r3,r2,0 +- 1800098: 38 63 90 3c addi r3,r3,-28612 +- 180009c: 3c 62 00 00 addis r3,r2,0 +- 18000a0: 38 63 10 00 addi r3,r3,4096 +- 18000a4: 3c 62 00 00 addis r3,r2,0 +- 18000a8: 38 63 90 20 addi r3,r3,-28640 +- 18000ac: 3c 62 00 00 addis r3,r2,0 +- 18000b0: 38 63 10 00 addi r3,r3,4096 +- 18000b4: 39 23 80 24 addi r9,r3,-32732 +- 18000b8: 3d 23 00 00 addis r9,r3,0 +- 18000bc: 81 49 80 28 lwz r10,-32728(r9) +- 18000c0: 3d 22 00 00 addis r9,r2,0 +- 18000c4: a1 49 90 30 lhz r10,-28624(r9) +- 18000c8: 89 42 90 34 lbz r10,-28620(r2) +- 18000cc: 3d 22 00 00 addis r9,r2,0 +- 18000d0: 99 49 90 38 stb r10,-28616(r9) +- 18000d4: 3c 62 00 00 addis r3,r2,0 +- 18000d8: 38 63 90 00 addi r3,r3,-28672 +- 18000dc: 3c 62 00 00 addis r3,r2,0 +- 18000e0: 38 63 10 00 addi r3,r3,4096 +- 18000e4: 91 43 80 04 stw r10,-32764(r3) +- 18000e8: 3d 23 00 00 addis r9,r3,0 +- 18000ec: 91 49 80 08 stw r10,-32760(r9) +- 18000f0: 3d 22 00 00 addis r9,r2,0 +- 18000f4: b1 49 90 30 sth r10,-28624(r9) +- 18000f8: a1 42 90 14 lhz r10,-28652(r2) +- 18000fc: 3d 22 00 00 addis r9,r2,0 +- 1800100: a9 49 90 18 lha r10,-28648(r9) ++0+1800[0-9a-f]{3} <_start>: ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 90 3c addi r3,r3,-28612 ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 90 20 addi r3,r3,-28640 ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 1800[0-9a-f]{3}: 39 23 80 24 addi r9,r3,-32732 ++ 1800[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0 ++ 1800[0-9a-f]{3}: 81 49 80 28 lwz r10,-32728(r9) ++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0 ++ 1800[0-9a-f]{3}: a1 49 90 30 lhz r10,-28624(r9) ++ 1800[0-9a-f]{3}: 89 42 90 34 lbz r10,-28620(r2) ++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0 ++ 1800[0-9a-f]{3}: 99 49 90 38 stb r10,-28616(r9) ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 90 00 addi r3,r3,-28672 ++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0 ++ 1800[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 1800[0-9a-f]{3}: 91 43 80 04 stw r10,-32764(r3) ++ 1800[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0 ++ 1800[0-9a-f]{3}: 91 49 80 08 stw r10,-32760(r9) ++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0 ++ 1800[0-9a-f]{3}: b1 49 90 30 sth r10,-28624(r9) ++ 1800[0-9a-f]{3}: a1 42 90 14 lhz r10,-28652(r2) ++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0 ++ 1800[0-9a-f]{3}: a9 49 90 18 lha r10,-28648(r9) + +-0+1800104 <__tls_get_addr>: +- 1800104: 4e 80 00 20 blr ++0+1800[0-9a-f]{3} <__tls_get_addr>: ++ 1800[0-9a-f]{3}: 4e 80 00 20 blr + Disassembly of section .got: + +-0+1810128 <_GLOBAL_OFFSET_TABLE_-0x4>: +- 1810128: 4e 80 00 21 blrl ++0+1810[0-9a-f]{3} <_GLOBAL_OFFSET_TABLE_-0x4>: ++ 1810[0-9a-f]{3}: 4e 80 00 21 blrl + +-0+181012c <_GLOBAL_OFFSET_TABLE_>: ++0+1810[0-9a-f]{3} <_GLOBAL_OFFSET_TABLE_>: + ... +--- binutils-2.22/ld/testsuite/ld-powerpc/tls32.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tls32.g +@@ -8,4 +8,4 @@ + .*: +file format elf32-powerpc + + Contents of section .got: +- 1810128 4e800021 00000000 00000000 00000000 .* ++ 18101[0-9a-f]{2} 4e800021 00000000 00000000 00000000 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tls32.t ++++ binutils-2.22/ld/testsuite/ld-powerpc/tls32.t +@@ -8,5 +8,5 @@ + .*: +file format elf32-powerpc + + Contents of section .tdata: +- 1810108 12345678 23456789 3456789a 456789ab .* +- 1810118 56789abc 6789abcd 789abcde 00c0ffee .* ++ 18101[0-9a-f]{2} 12345678 23456789 3456789a 456789ab .* ++ 18101[0-9a-f]{2} 56789abc 6789abcd 789abcde 00c0ffee .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.d +@@ -44,4 +44,4 @@ Disassembly of section .got: + .*: 4e 80 00 21 blrl + + .* <_GLOBAL_OFFSET_TABLE_>: +-.*: 01 81 02 b8 00 00 00 00 00 00 00 00 .* ++.*: 01 81 02 [bd]8 00 00 00 00 00 00 00 00 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.g +@@ -8,4 +8,4 @@ + + Contents of section .got: + .* 00000000 00000000 00000000 4e800021 .* +-.* 018102b8 00000000 00000000 .* ++.* 018102[bd]8 00000000 00000000 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.r ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsexe32.r +@@ -33,13 +33,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align +- +PHDR +0x000034 0x01800034 0x01800034 0x000c0 0x000c0 R E 0x4 +- +INTERP +0x0000f4 0x018000f4 0x018000f4 0x00011 0x00011 R +0x1 ++ +PHDR +0x000034 0x01800034 0x01800034 (0x000[0-9a-f]{2}) \1 R E 0x4 ++ +INTERP +0x000([0-9a-f]{3}) 0x01800\1 0x01800\1 0x00011 0x00011 R +0x1 + +[Requesting program interpreter: .*] + +LOAD .* R E 0x10000 + +LOAD .* RWE 0x10000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0001c 0x00038 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -49,6 +50,7 @@ Program Headers: + +03 +.tdata .dynamic .got .plt + +04 +.dynamic + +05 +.tdata .tbss ++ +06 + + + Relocation section '.rela.dyn' at offset .* contains 2 entries: + Offset +Info +Type +Sym. Value +Symbol's Name + Addend +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsmark.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsmark.d +@@ -9,29 +9,29 @@ + + Disassembly of section .text: + +-0+100000e8 <_start>: +- 100000e8: 48 00 00 18 b 10000100 <_start+0x18> +- 100000ec: 60 00 00 00 nop +- 100000f0: 38 63 90 00 addi r3,r3,-28672 +- 100000f4: e8 83 00 00 ld r4,0(r3) +- 100000f8: 3c 6d 00 00 addis r3,r13,0 +- 100000fc: 48 00 00 0c b 10000108 <_start+0x20> +- 10000100: 3c 6d 00 00 addis r3,r13,0 +- 10000104: 4b ff ff e8 b 100000ec <_start+0x4> +- 10000108: 60 00 00 00 nop +- 1000010c: 38 63 10 00 addi r3,r3,4096 +- 10000110: e8 83 80 00 ld r4,-32768(r3) +- 10000114: 3c 6d 00 00 addis r3,r13,0 +- 10000118: 48 00 00 0c b 10000124 <_start+0x3c> +- 1000011c: 3c 6d 00 00 addis r3,r13,0 +- 10000120: 48 00 00 14 b 10000134 <_start+0x4c> +- 10000124: 60 00 00 00 nop +- 10000128: 38 63 90 04 addi r3,r3,-28668 +- 1000012c: e8 a3 00 00 ld r5,0(r3) +- 10000130: 4b ff ff ec b 1000011c <_start+0x34> +- 10000134: 60 00 00 00 nop +- 10000138: 38 63 10 00 addi r3,r3,4096 +- 1000013c: e8 a3 80 04 ld r5,-32764(r3) ++0+10000[0-9a-f]{3} <_start>: ++ 10000[0-9a-f]{3}: 48 00 00 18 b 10000[0-9a-f]{3} <_start+0x18> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 00 addi r3,r3,-28672 ++ 10000[0-9a-f]{3}: e8 83 00 00 ld r4,0(r3) ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 48 00 00 0c b 10000[0-9a-f]{3} <_start+0x20> ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 4b ff ff e8 b 10000[0-9a-f]{3} <_start+0x4> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 10000[0-9a-f]{3}: e8 83 80 00 ld r4,-32768(r3) ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 48 00 00 0c b 10000[0-9a-f]{3} <_start+0x3c> ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 48 00 00 14 b 10000[0-9a-f]{3} <_start+0x4c> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 04 addi r3,r3,-28668 ++ 10000[0-9a-f]{3}: e8 a3 00 00 ld r5,0(r3) ++ 10000[0-9a-f]{3}: 4b ff ff ec b 10000[0-9a-f]{3} <_start+0x34> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096 ++ 10000[0-9a-f]{3}: e8 a3 80 04 ld r5,-32764(r3) + +-0+10000140 <.__tls_get_addr>: +- 10000140: 4e 80 00 20 blr ++0+10000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsmark32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsmark32.d +@@ -9,17 +9,17 @@ + + Disassembly of section .text: + +-0+1800094 <_start>: +- 1800094: 48 00 00 14 b 18000a8 <_start+0x14> +- 1800098: 38 63 90 00 addi r3,r3,-28672 +- 180009c: 80 83 00 00 lwz r4,0(r3) +- 18000a0: 3c 62 00 00 addis r3,r2,0 +- 18000a4: 48 00 00 0c b 18000b0 <_start+0x1c> +- 18000a8: 3c 62 00 00 addis r3,r2,0 +- 18000ac: 4b ff ff ec b 1800098 <_start+0x4> +- 18000b0: 38 63 10 00 addi r3,r3,4096 +- 18000b4: 80 83 80 00 lwz r4,-32768(r3) ++0+18000[0-9a-f]{2} <_start>: ++ 18000[0-9a-f]{2}: 48 00 00 14 b 18000[0-9a-f]{2} <_start+0x14> ++ 18000[0-9a-f]{2}: 38 63 90 00 addi r3,r3,-28672 ++ 18000[0-9a-f]{2}: 80 83 00 00 lwz r4,0(r3) ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 48 00 00 0c b 18000[0-9a-f]{2} <_start+0x1c> ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 4b ff ff ec b 18000[0-9a-f]{2} <_start+0x4> ++ 18000[0-9a-f]{2}: 38 63 10 00 addi r3,r3,4096 ++ 18000[0-9a-f]{2}: 80 83 80 00 lwz r4,-32768(r3) + +-0+18000b8 <__tls_get_addr>: +- 18000b8: 4e 80 00 20 blr +-#pass +\ No newline at end of file ++0+18000[0-9a-f]{2} <__tls_get_addr>: ++ 18000[0-9a-f]{2}: 4e 80 00 20 blr ++#pass +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt1.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt1.d +@@ -9,17 +9,17 @@ + + Disassembly of section .text: + +-0+100000e8 <.__tls_get_addr>: +- 100000e8: 4e 80 00 20 blr ++0+10000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr + + Disassembly of section .no_opt1: + +-0+100000ec <.no_opt1>: +- 100000ec: 38 62 80 08 addi r3,r2,-32760 +- 100000f0: 2c 24 00 00 cmpdi r4,0 +- 100000f4: 41 82 00 10 beq- .* +- 100000f8: 4b ff ff f1 bl 100000e8 <.__tls_get_addr> +- 100000fc: 60 00 00 00 nop +- 10000100: 48 00 00 0c b .* +- 10000104: 4b ff ff e5 bl 100000e8 <.__tls_get_addr> +- 10000108: 60 00 00 00 nop ++0+10000[0-9a-f]{3} <.no_opt1>: ++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760 ++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0 ++ 10000[0-9a-f]{3}: 41 82 00 10 beq- .* ++ 10000[0-9a-f]{3}: 4b ff ff f1 bl 10000[0-9a-f]{3} <.__tls_get_addr> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 4b ff ff e5 bl 10000[0-9a-f]{3} <.__tls_get_addr> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt1_32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt1_32.d +@@ -9,16 +9,16 @@ + + Disassembly of section .text: + +-0+1800094 <__tls_get_addr>: +- 1800094: 4e 80 00 20 blr ++0+18000[0-9a-f]{2} <__tls_get_addr>: ++ 18000[0-9a-f]{2}: 4e 80 00 20 blr + + Disassembly of section .no_opt1: + +-0+1800098 <.no_opt1>: +- 1800098: 38 6d ff f4 addi r3,r13,-12 +- 180009c: 2c 04 00 00 cmpwi r4,0 +- 18000a0: 41 82 00 0c beq- .* +- 18000a4: 4b ff ff f1 bl 1800094 <__tls_get_addr> +- 18000a8: 48 00 00 08 b .* +- 18000ac: 4b ff ff e9 bl 1800094 <__tls_get_addr> ++0+18000[0-9a-f]{2} <.no_opt1>: ++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12 ++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0 ++ 18000[0-9a-f]{2}: 41 82 00 0c beq- .* ++ 18000[0-9a-f]{2}: 4b ff ff f1 bl 18000[0-9a-f]{2} <__tls_get_addr> ++ 18000[0-9a-f]{2}: 48 00 00 08 b .* ++ 18000[0-9a-f]{2}: 4b ff ff e9 bl 18000[0-9a-f]{2} <__tls_get_addr> + #pass +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt2.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt2.d +@@ -9,15 +9,15 @@ + + Disassembly of section .text: + +-0+100000e8 <.__tls_get_addr>: +- 100000e8: 4e 80 00 20 blr ++0+10000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr + + Disassembly of section .no_opt2: + +-0+100000ec <.no_opt2>: +- 100000ec: 38 62 80 08 addi r3,r2,-32760 +- 100000f0: 2c 24 00 00 cmpdi r4,0 +- 100000f4: 41 82 00 08 beq- .* +- 100000f8: 38 62 80 08 addi r3,r2,-32760 +- 100000fc: 4b ff ff ed bl 100000e8 <.__tls_get_addr> +- 10000100: 60 00 00 00 nop ++0+10000[0-9a-f]{3} <.no_opt2>: ++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760 ++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0 ++ 10000[0-9a-f]{3}: 41 82 00 08 beq- .* ++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760 ++ 10000[0-9a-f]{3}: 4b ff ff ed bl 10000[0-9a-f]{3} <.__tls_get_addr> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt2_32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt2_32.d +@@ -9,15 +9,15 @@ + + Disassembly of section .text: + +-0+1800094 <__tls_get_addr>: +- 1800094: 4e 80 00 20 blr ++0+18000[0-9a-f]{2} <__tls_get_addr>: ++ 18000[0-9a-f]{2}: 4e 80 00 20 blr + + Disassembly of section .no_opt2: + +-0+1800098 <.no_opt2>: +- 1800098: 38 6d ff f4 addi r3,r13,-12 +- 180009c: 2c 04 00 00 cmpwi r4,0 +- 18000a0: 41 82 00 08 beq- .* +- 18000a4: 38 6d ff f4 addi r3,r13,-12 +- 18000a8: 4b ff ff ed bl 1800094 <__tls_get_addr> ++0+18000[0-9a-f]{2} <.no_opt2>: ++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12 ++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0 ++ 18000[0-9a-f]{2}: 41 82 00 08 beq- .* ++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12 ++ 18000[0-9a-f]{2}: 4b ff ff ed bl 18000[0-9a-f]{2} <__tls_get_addr> + #pass +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt3.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt3.d +@@ -9,18 +9,18 @@ + + Disassembly of section .text: + +-00000000100000e8 <.__tls_get_addr>: +- 100000e8: 4e 80 00 20 blr ++0000000010000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr + + Disassembly of section .no_opt3: + +-00000000100000ec <.no_opt3>: +- 100000ec: 38 62 80 08 addi r3,r2,-32760 +- 100000f0: 48 00 00 0c b .* +- 100000f4: 38 62 80 18 addi r3,r2,-32744 +- 100000f8: 48 00 00 10 b .* +- 100000fc: 4b ff ff ed bl 100000e8 <.__tls_get_addr> +- 10000100: 60 00 00 00 nop +- 10000104: 48 00 00 0c b .* +- 10000108: 4b ff ff e1 bl 100000e8 <.__tls_get_addr> +- 1000010c: 60 00 00 00 nop ++0000000010000[0-9a-f]{3} <.no_opt3>: ++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760 ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 38 62 80 18 addi r3,r2,-32744 ++ 10000[0-9a-f]{3}: 48 00 00 10 b .* ++ 10000[0-9a-f]{3}: 4b ff ff ed bl 10000[0-9a-f]{3} <.__tls_get_addr> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 4b ff ff e1 bl 10000[0-9a-f]{3} <.__tls_get_addr> ++ 10000[0-9a-f]{3}: 60 00 00 00 nop +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt3_32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt3_32.d +@@ -9,17 +9,17 @@ + + Disassembly of section .text: + +-0+1800094 <__tls_get_addr>: +- 1800094: 4e 80 00 20 blr ++0+18000[0-9a-f]{2} <__tls_get_addr>: ++ 18000[0-9a-f]{2}: 4e 80 00 20 blr + + Disassembly of section .no_opt3: + +-0+1800098 <.no_opt3>: +- 1800098: 38 6d ff ec addi r3,r13,-20 +- 180009c: 48 00 00 0c b .* +- 18000a0: 38 6d ff f4 addi r3,r13,-12 +- 18000a4: 48 00 00 0c b .* +- 18000a8: 4b ff ff ed bl 1800094 <__tls_get_addr> +- 18000ac: 48 00 00 08 b .* +- 18000b0: 4b ff ff e5 bl 1800094 <__tls_get_addr> ++0+18000[0-9a-f]{2} <.no_opt3>: ++ 18000[0-9a-f]{2}: 38 6d ff ec addi r3,r13,-20 ++ 18000[0-9a-f]{2}: 48 00 00 0c b .* ++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12 ++ 18000[0-9a-f]{2}: 48 00 00 0c b .* ++ 18000[0-9a-f]{2}: 4b ff ff ed bl 18000[0-9a-f]{2} <__tls_get_addr> ++ 18000[0-9a-f]{2}: 48 00 00 08 b .* ++ 18000[0-9a-f]{2}: 4b ff ff e5 bl 18000[0-9a-f]{2} <__tls_get_addr> + #pass +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt4.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt4.d +@@ -9,40 +9,40 @@ + + Disassembly of section .text: + +-0+100000e8 <.__tls_get_addr>: +- 100000e8: 4e 80 00 20 blr ++0+10000[0-9a-f]{3} <.__tls_get_addr>: ++ 10000[0-9a-f]{3}: 4e 80 00 20 blr + + Disassembly of section .opt1: + +-0+100000ec <.opt1>: +- 100000ec: 3c 6d 00 00 addis r3,r13,0 +- 100000f0: 2c 24 00 00 cmpdi r4,0 +- 100000f4: 41 82 00 10 beq- .* +- 100000f8: 60 00 00 00 nop +- 100000fc: 38 63 90 10 addi r3,r3,-28656 +- 10000100: 48 00 00 0c b .* +- 10000104: 60 00 00 00 nop +- 10000108: 38 63 90 10 addi r3,r3,-28656 ++0+10000[0-9a-f]{3} <.opt1>: ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0 ++ 10000[0-9a-f]{3}: 41 82 00 10 beq- .* ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656 ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656 + + Disassembly of section .opt2: + +-0+1000010c <.opt2>: +- 1000010c: 3c 6d 00 00 addis r3,r13,0 +- 10000110: 2c 24 00 00 cmpdi r4,0 +- 10000114: 41 82 00 08 beq- .* +- 10000118: 3c 6d 00 00 addis r3,r13,0 +- 1000011c: 60 00 00 00 nop +- 10000120: 38 63 90 10 addi r3,r3,-28656 ++0+10000[0-9a-f]{3} <.opt2>: ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0 ++ 10000[0-9a-f]{3}: 41 82 00 08 beq- .* ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656 + + Disassembly of section .opt3: + +-0+10000124 <.opt3>: +- 10000124: 3c 6d 00 00 addis r3,r13,0 +- 10000128: 48 00 00 0c b .* +- 1000012c: 3c 6d 00 00 addis r3,r13,0 +- 10000130: 48 00 00 10 b .* +- 10000134: 60 00 00 00 nop +- 10000138: 38 63 90 10 addi r3,r3,-28656 +- 1000013c: 48 00 00 0c b .* +- 10000140: 60 00 00 00 nop +- 10000144: 38 63 90 08 addi r3,r3,-28664 ++0+10000[0-9a-f]{3} <.opt3>: ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0 ++ 10000[0-9a-f]{3}: 48 00 00 10 b .* ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656 ++ 10000[0-9a-f]{3}: 48 00 00 0c b .* ++ 10000[0-9a-f]{3}: 60 00 00 00 nop ++ 10000[0-9a-f]{3}: 38 63 90 08 addi r3,r3,-28664 +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsopt4_32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsopt4_32.d +@@ -9,36 +9,36 @@ + + Disassembly of section .text: + +-0+1800094 <__tls_get_addr>: +- 1800094: 4e 80 00 20 blr ++0+18000[0-9a-f]{2} <__tls_get_addr>: ++ 18000[0-9a-f]{2}: 4e 80 00 20 blr + + Disassembly of section .opt1: + +-0+1800098 <.opt1>: +- 1800098: 3c 62 00 00 addis r3,r2,0 +- 180009c: 2c 04 00 00 cmpwi r4,0 +- 18000a0: 41 82 00 0c beq- .* +- 18000a4: 38 63 90 10 addi r3,r3,-28656 +- 18000a8: 48 00 00 08 b .* +- 18000ac: 38 63 90 10 addi r3,r3,-28656 ++0+18000[0-9a-f]{2} <.opt1>: ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0 ++ 18000[0-9a-f]{2}: 41 82 00 0c beq- .* ++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656 ++ 18000[0-9a-f]{2}: 48 00 00 08 b .* ++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656 + + Disassembly of section .opt2: + +-0+18000b0 <.opt2>: +- 18000b0: 3c 62 00 00 addis r3,r2,0 +- 18000b4: 2c 04 00 00 cmpwi r4,0 +- 18000b8: 41 82 00 08 beq- .* +- 18000bc: 3c 62 00 00 addis r3,r2,0 +- 18000c0: 38 63 90 10 addi r3,r3,-28656 ++0+18000[0-9a-f]{2} <.opt2>: ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0 ++ 18000[0-9a-f]{2}: 41 82 00 08 beq- .* ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656 + + Disassembly of section .opt3: + +-0+18000c4 <.opt3>: +- 18000c4: 3c 62 00 00 addis r3,r2,0 +- 18000c8: 48 00 00 0c b .* +- 18000cc: 3c 62 00 00 addis r3,r2,0 +- 18000d0: 48 00 00 0c b .* +- 18000d4: 38 63 90 10 addi r3,r3,-28656 +- 18000d8: 48 00 00 08 b .* +- 18000dc: 38 63 90 08 addi r3,r3,-28664 ++0+18000[0-9a-f]{2} <.opt3>: ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 48 00 00 0c b .* ++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0 ++ 18000[0-9a-f]{2}: 48 00 00 0c b .* ++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656 ++ 18000[0-9a-f]{2}: 48 00 00 08 b .* ++ 18000[0-9a-f]{2}: 38 63 90 08 addi r3,r3,-28664 + #pass +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.d ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.d +@@ -42,5 +42,5 @@ Disassembly of section .got: + .* <.got>: + ... + .*: 4e 80 00 21 blrl +-.*: 00 01 03 ec .* ++.*: 00 01 [0-9a-f]{2} [0-9a-f]{2} .* + ... +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.g +@@ -9,5 +9,5 @@ + Contents of section .got: + .* 00000000 00000000 00000000 00000000 .* + .* 00000000 00000000 00000000 00000000 .* +-.* 00000000 4e800021 000103ec 00000000 .* ++.* 00000000 4e800021 00010[0-9a-f]{3} 00000000 .* + .* 00000000 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.r ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.r +@@ -35,6 +35,7 @@ Program Headers: + +LOAD .* RWE 0x10000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0+1c 0x0+38 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -42,6 +43,7 @@ Program Headers: + +01 +.tdata .dynamic .got .plt + +02 +.dynamic + +03 +.tdata .tbss ++ +04 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 18 entries: + Offset +Info +Type +Sym. Value +Symbol's Name + Addend +@@ -52,9 +54,9 @@ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 18 entries: + [0-9a-f ]+R_PPC_TPREL16 +0+30 +le0 + 0 + [0-9a-f ]+R_PPC_TPREL16_HA +0+34 +le1 + 0 + [0-9a-f ]+R_PPC_TPREL16_LO +0+34 +le1 + 0 +-[0-9a-f ]+R_PPC_TPREL16 +0+103d0 +.tdata + 103e4 +-[0-9a-f ]+R_PPC_TPREL16_HA +0+103d0 +.tdata + 103e8 +-[0-9a-f ]+R_PPC_TPREL16_LO +0+103d0 +.tdata + 103e8 ++[0-9a-f ]+R_PPC_TPREL16 +0+103[df]0 +.tdata + 10[0-9a-f]{3} ++[0-9a-f ]+R_PPC_TPREL16_HA +0+103[df]0 +.tdata + 10[0-9a-f]{3} ++[0-9a-f ]+R_PPC_TPREL16_LO +0+103[df]0 +.tdata + 10[0-9a-f]{3} + [0-9a-f ]+R_PPC_DTPMOD32 +0+ + [0-9a-f ]+R_PPC_DTPREL32 +0+ + [0-9a-f ]+R_PPC_DTPMOD32 +0+ +--- binutils-2.22/ld/testsuite/ld-powerpc/tlstoc.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlstoc.g +@@ -8,8 +8,8 @@ + .*: +file format elf64-powerpc + + Contents of section .got: +- 100101a0 00000000 00000001 00000000 00000000 .* +- 100101b0 00000000 00000001 00000000 00000000 .* +- 100101c0 00000000 00000001 00000000 00000000 .* +- 100101d0 00000000 00000001 00000000 00000000 .* +- 100101e0 ffffffff ffff8060 00000000 00000000 .* ++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .* ++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .* ++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .* ++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .* ++ 10010[0-9a-f]{3} ffffffff ffff8060 00000000 00000000 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlstoc.t ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlstoc.t +@@ -8,7 +8,7 @@ + .*: +file format elf64-powerpc + + Contents of section .tdata: +- 10010148 00c0ffee 00000000 12345678 9abcdef0 .* +- 10010158 23456789 abcdef01 3456789a bcdef012 .* +- 10010168 456789ab cdef0123 56789abc def01234 .* +- 10010178 6789abcd ef012345 789abcde f0123456 .* ++ 10010180 00c0ffee 00000000 12345678 9abcdef0 .* ++ 10010190 23456789 abcdef01 3456789a bcdef012 .* ++ 100101a0 456789ab cdef0123 56789abc def01234 .* ++ 100101b0 6789abcd ef012345 789abcde f0123456 .* +--- binutils-2.22/ld/testsuite/ld-powerpc/tlstocso.g ++++ binutils-2.22/ld/testsuite/ld-powerpc/tlstocso.g +@@ -7,7 +7,7 @@ + .*: +file format elf64-powerpc + + Contents of section .got: +-.* 00000000 000186c0 00000000 00000000 .* ++.* 00000000 000186f8 00000000 00000000 .* + .* 00000000 00000000 00000000 00000000 .* + .* 00000000 00000000 00000000 00000000 .* + .* 00000000 00000000 00000000 00000000 .* +--- binutils-2.22/ld/testsuite/ld-s390/tlsbin.rd ++++ binutils-2.22/ld/testsuite/ld-s390/tlsbin.rd +@@ -36,13 +36,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +- +PHDR +0x0+34 0x0+400034 0x0+400034 0x0+c0 0x0+c0 R E 0x4 +- +INTERP +0x0+f4 0x0+4000f4 0x0+4000f4 0x0+11 0x0+11 R +0x1 ++ +PHDR +0x0+34 0x0+400034 0x0+400034 0x0+e0 0x0+e0 R E 0x4 ++ +INTERP +0x0+114 0x0+400114 0x0+400114 0x0+11 0x0+11 R +0x1 + .*Requesting program interpreter.* + +LOAD .* R E 0x1000 + +LOAD .* RW +0x1000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0+60 0x0+a0 R +0x20 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -52,6 +53,7 @@ Program Headers: + +03 +.tdata .dynamic .got * + +04 +.dynamic * + +05 +.tdata .tbss * ++ +06 + + + Relocation section '.rela.dyn' at offset .* contains 4 entries: + Offset +Info +Type +Sym.Value +Sym. Name + Addend +--- binutils-2.22/ld/testsuite/ld-s390/tlsbin_64.rd ++++ binutils-2.22/ld/testsuite/ld-s390/tlsbin_64.rd +@@ -36,13 +36,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +- +PHDR +0x0+40 0x0+80000040 0x0+80000040 0x0+150 0x0+150 R E 0x8 +- +INTERP +0x0+190 0x0+80000190 0x0+80000190 0x0+11 0x0+11 R +0x1 ++ +PHDR +0x0+40 0x0+80000040 0x0+80000040 0x0+188 0x0+188 R E 0x8 ++ +INTERP +0x0+1c8 0x0+800001c8 0x0+800001c8 0x0+11 0x0+11 R +0x1 + .*Requesting program interpreter.* + +LOAD .* R E 0x1000 + +LOAD .* RW +0x1000 + +DYNAMIC .* RW +0x8 + +TLS .* 0x0+60 0x0+a0 R +0x20 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -52,6 +53,7 @@ Program Headers: + +03 +.tdata .dynamic .got * + +04 +.dynamic * + +05 +.tdata .tbss * ++ +06 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries: + +Offset +Info +Type +Symbol's Value +Symbol's Name + Addend +--- binutils-2.22/ld/testsuite/ld-s390/tlspic.rd ++++ binutils-2.22/ld/testsuite/ld-s390/tlspic.rd +@@ -39,6 +39,7 @@ Program Headers: + +LOAD .* RW +0x1000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0+60 0x0+80 R +0x20 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -46,6 +47,7 @@ Program Headers: + +01 +.tdata .dynamic .got + +02 +.dynamic + +03 +.tdata .tbss ++ +04 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: + Offset +Info +Type +Sym.Value +Sym. Name + Addend +--- binutils-2.22/ld/testsuite/ld-s390/tlspic_64.rd ++++ binutils-2.22/ld/testsuite/ld-s390/tlspic_64.rd +@@ -39,6 +39,7 @@ Program Headers: + +LOAD .* RW +0x1000 + +DYNAMIC .* RW +0x8 + +TLS .* 0x0+60 0x0+80 R +0x20 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -46,6 +47,7 @@ Program Headers: + +01 +.tdata .dynamic .got * + +02 +.dynamic * + +03 +.tdata .tbss * ++ +04 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: + +Offset +Info +Type +Symbol's Value +Symbol's Name + Addend +--- binutils-2.22/ld/testsuite/ld-scripts/empty-aligned.d ++++ binutils-2.22/ld/testsuite/ld-scripts/empty-aligned.d +@@ -8,7 +8,9 @@ + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg +Align + +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ [RWE ]+ +0x[0-9a-f]+ ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... + +00 +.text ++ +01 + +--- binutils-2.22/ld/testsuite/ld-sh/tlsbin-2.d ++++ binutils-2.22/ld/testsuite/ld-sh/tlsbin-2.d +@@ -44,6 +44,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+18 0x0+28 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -53,6 +54,7 @@ Program Headers: + +03 +.tdata .dynamic .got * + +04 +.dynamic * + +05 +.tdata .tbss * ++ +06 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries: + Offset +Info +Type +Sym.Value +Sym. Name + Addend +--- binutils-2.22/ld/testsuite/ld-sh/tlspic-2.d ++++ binutils-2.22/ld/testsuite/ld-sh/tlspic-2.d +@@ -32,7 +32,7 @@ Key to Flags: + + Elf file type is DYN (Shared object file) + Entry point 0x[0-9a-f]+ +-There are 4 program headers, starting at offset [0-9]+ ++There are [0-9] program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +@@ -40,6 +40,7 @@ Program Headers: + +LOAD.* + +DYNAMIC.* + +TLS .* 0x0+18 0x0+20 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -47,6 +48,7 @@ Program Headers: + +01 +.tdata .dynamic .got * + +02 +.dynamic * + +03 +.tdata .tbss * ++ +04 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 10 entries: + Offset +Info +Type +Sym.Value +Sym. Name + Addend +--- binutils-2.22/ld/testsuite/ld-sparc/gotop32.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/gotop32.rd +@@ -31,6 +31,7 @@ Program Headers: + +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x10000 + +LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+2000 0x0+2000 RW +0x10000 + +DYNAMIC +0x0+2000 0x0+12000 0x0+12000 0x0+70 0x0+70 RW +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/gotop64.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/gotop64.rd +@@ -31,6 +31,7 @@ Program Headers: + +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x100000 + +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+2000 0x0+2000 RW +0x100000 + +DYNAMIC +0x0+2000 0x0+102000 0x0+102000 0x0+e0 0x0+e0 RW +0x8 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunbin32.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunbin32.rd +@@ -30,13 +30,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align +- +PHDR +0x0+34 0x0+10034 0x0+10034 0x0+c0 0x0+c0 R E 0x4 +- +INTERP +0x0+f4 0x0+100f4 0x0+100f4 0x0+11 0x0+11 R +0x1 ++ +PHDR +0x0+34 0x0+10034 0x0+10034 (0x[0-9a-f]+) \1 R E 0x4 ++ +INTERP +(0x[0-9a-f]+ ){3}0x0+11 0x0+11 R +0x1 + .*Requesting program interpreter.* + +LOAD .* R E 0x10000 + +LOAD .* RW +0x10000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0+1060 0x0+10a0 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunbin64.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunbin64.rd +@@ -30,13 +30,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+ + + Program Headers: + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align +- +PHDR +0x0+40 0x0+100040 0x0+100040 0x0+150 0x0+150 R E 0x8 +- +INTERP +0x0+190 0x0+100190 0x0+100190 0x0+19 0x0+19 R +0x1 ++ +PHDR +0x0+40 0x0+100040 0x0+100040 (0x[0-9a-f]+) \1 R E 0x8 ++ +INTERP +0x0+([0-9a-f]+) (0x0+10+\1) \2 0x0+19 0x0+19 R +0x1 + .*Requesting program interpreter.* + +LOAD .* R E 0x100000 + +LOAD .* RW +0x100000 + +DYNAMIC .* RW +0x8 + +TLS .* 0x0+60 0x0+a0 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunnopic32.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunnopic32.rd +@@ -32,6 +32,7 @@ Program Headers: + +LOAD .* RW +0x10000 + +DYNAMIC .* RW +0x4 + +TLS .* 0x0+ 0x0+24 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 12 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunnopic64.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunnopic64.rd +@@ -32,6 +32,7 @@ Program Headers: + +LOAD .* RW +0x100000 + +DYNAMIC .* RW +0x8 + +TLS .* 0x0+ 0x0+24 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunpic32.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunpic32.rd +@@ -36,6 +36,7 @@ Program Headers: + +LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+184 0x0+184 RWE 0x10000 + +DYNAMIC +0x0+2060 0x0+12060 0x0+12060 0x0+98 0x0+98 RW +0x4 + +TLS +0x0+2000 0x0+12000 0x0+12000 0x0+60 0x0+80 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: +--- binutils-2.22/ld/testsuite/ld-sparc/tlssunpic64.rd ++++ binutils-2.22/ld/testsuite/ld-sparc/tlssunpic64.rd +@@ -36,6 +36,7 @@ Program Headers: + +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+3a0 0x0+3a0 RWE 0x100000 + +DYNAMIC +0x0+2060 0x0+102060 0x0+102060 0x0+130 0x0+130 RW +0x8 + +TLS +0x0+2000 0x0+102000 0x0+102000 0x0+60 0x0+80 R +0x4 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + #... + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: +--- binutils-2.22/ld/testsuite/ld-x86-64/protected3.d ++++ binutils-2.22/ld/testsuite/ld-x86-64/protected3.d +@@ -8,6 +8,6 @@ + Disassembly of section .text: + + 0+[a-f0-9]+ <bar>: +-[ ]*[a-f0-9]+: 8b 05 [a-f0-9][a-f0-9] 00 [a-f0-9][a-f0-9] 00 mov 0x[a-f0-9]+(%rip),%eax # [a-f0-9]+ <foo> ++[ ]*[a-f0-9]+: 8b 05 [a-f0-9][a-f0-9] [a-f0-9][a-f0-9] [a-f0-9][a-f0-9] 00 mov 0x[a-f0-9]+(%rip),%eax # [a-f0-9]+ <foo> + [ ]*[a-f0-9]+: c3 retq + #pass +--- binutils-2.22/ld/testsuite/ld-x86-64/tlsgdesc.rd ++++ binutils-2.22/ld/testsuite/ld-x86-64/tlsgdesc.rd +@@ -36,12 +36,14 @@ Program Headers: + +LOAD.* + +LOAD.* + +DYNAMIC.* ++ +PAX_FLAGS.* + + Section to Segment mapping: + +Segment Sections... + +00 +.hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text * + +01 +.dynamic .got .got.plt * + +02 +.dynamic * ++ +03 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 8 entries: + +Offset +Info +Type +Symbol's Value +Symbol's Name + Addend +--- binutils-2.22/ld/testsuite/ld-x86-64/tlspic.rd ++++ binutils-2.22/ld/testsuite/ld-x86-64/tlspic.rd +@@ -40,6 +40,7 @@ Program Headers: + +LOAD +0x0+11ac 0x0+2011ac 0x0+2011ac 0x0+244 0x0+244 RW +0x200000 + +DYNAMIC +0x0+1210 0x0+201210 0x0+201210 0x0+130 0x0+130 RW +0x8 + +TLS +0x0+11ac 0x0+2011ac 0x0+2011ac 0x0+60 0x0+80 R +0x1 ++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48] + + Section to Segment mapping: + +Segment Sections... +@@ -47,6 +48,7 @@ Program Headers: + +01 +.tdata .dynamic .got .got.plt * + +02 +.dynamic * + +03 +.tdata .tbss * ++ +04 + + + Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries: + +Offset +Info +Type +Symbol's Value +Symbol's Name + Addend diff --git a/src/patches/bridge-utils-1.5-compile-fix-1.patch b/src/patches/bridge-utils-1.5-compile-fix-1.patch new file mode 100644 index 0000000..c269608 --- /dev/null +++ b/src/patches/bridge-utils-1.5-compile-fix-1.patch @@ -0,0 +1,31 @@ +From 5eebb7f9288b7881ffb929b1fd494fe3ac3be27d Mon Sep 17 00:00:00 2001 +From: Russell Senior russell@personaltelco.net +Date: Wed, 06 Mar 2013 20:49:42 +0000 +Subject: bridge-utils: Fix compile against linux-3.8.x + +Linux 3.8 has a header, include/uapi/linux/if_bridge.h that uses a +struct in6_addr but doesn't define it. The trivial seeming fix of +including the header that does define it causes more problems. The +problem was discussed on mailing lists in January 2013. The final +suggestion I found was here: + + http://www.redhat.com/archives/libvir-list/2013-January/msg01253.html + +This is intended to implement that suggestion. + +Signed-off-by: Russell Senior russell@personaltelco.net +--- +diff --git a/libbridge/libbridge.h b/libbridge/libbridge.h +index 39964f2..dd14bae 100644 +--- a/libbridge/libbridge.h ++++ b/libbridge/libbridge.h +@@ -20,6 +20,7 @@ + #define _LIBBRIDGE_H + + #include <sys/socket.h> ++#include <netinet/in.h> + #include <linux/if.h> + #include <linux/if_bridge.h> + +-- +cgit v0.9.2 diff --git a/src/patches/coreutils-5.96-uname-1.patch b/src/patches/coreutils-5.96-uname-1.patch index a05ae04..0ae413f 100644 --- a/src/patches/coreutils-5.96-uname-1.patch +++ b/src/patches/coreutils-5.96-uname-1.patch @@ -1,34 +1,53 @@ -Submitted By: Matthew Burgess <matthew at linuxfromscratch dot org> -Date: 2005-10-23 -Initial Package Version: 5.92 +Submitted By: Robert Connolly robert@linuxfromscratch.org (ashes) +Date: 2005-11-13 +Initial Package Version: 5.93 Upstream Status: pending -Origin: Scot McPherson -Description: Fix the output of uname once and for all. +Origin: Scot McPherson and Zack Winkles +Description: Fix the output of uname once and for all. This is the position independent +version.
- $ uname -m # This always worked. + $ uname -m # This always worked. i686 - $ uname -i # Used to report 'unknown'. + $ uname -i # Used to report 'unknown'. i386 - $ uname -p # Likewise. + $ uname -p # Likewise. athlon-4
-diff -Naur coreutils-5.92.orig/src/uname.c coreutils-5.92/src/uname.c ---- coreutils-5.92.orig/src/uname.c 2005-09-15 20:34:42.000000000 +0000 -+++ coreutils-5.92/src/uname.c 2005-10-23 10:14:06.000000000 +0000 -@@ -29,6 +29,12 @@ +Now 'uname -p' can be used by GCC's mtune/mcpu and march options. For example: + + CFLAGS="-march=$(uname -m) -mtune=$(uname -p)" + +diff -Naur coreutils-5.93.orig/src/uname.c coreutils-5.93/src/uname.c +--- coreutils-5.93.orig/src/uname.c 2005-09-15 19:57:04.000000000 +0000 ++++ coreutils-5.93/src/uname.c 2005-11-13 19:18:35.000000000 +0000 +@@ -29,6 +29,26 @@ # include <sys/systeminfo.h> #endif
+#ifdef linux -+#define cpuid(in,a,b,c,d)\ -+ asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (in)); ++/* Thanks to the ffmpeg team for this PIC version of cpuid() */ ++#ifdef ARCH_X86_64 ++# define REG_b "rbx" ++# define REG_S "rsi" ++#else ++# define REG_b "ebx" ++# define REG_S "esi" ++#endif ++#define cpuid(index,eax,ebx,ecx,edx)\ ++ __asm __volatile\ ++ ("mov %%"REG_b", %%"REG_S"\n\t"\ ++ "cpuid\n\t"\ ++ "xchg %%"REG_b", %%"REG_S\ ++ : "=a" (eax), "=S" (ebx),\ ++ "=c" (ecx), "=d" (edx)\ ++ : "0" (index)); +int has_sse( void ); +#endif + #if HAVE_SYS_SYSCTL_H # if HAVE_SYS_PARAM_H # include <sys/param.h> /* needed for OpenBSD 3.0 */ -@@ -256,6 +262,96 @@ +@@ -256,6 +276,99 @@ if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor)) element = processor; } @@ -75,6 +94,9 @@ diff -Naur coreutils-5.92.orig/src/uname.c coreutils-5.92/src/uname.c + element="pentium3"; + break; + case 15: // Pentium4 ++ if( model == 3 ) // Prescott ++ element="prescott"; ++ else + element="pentium4"; + break; + default: @@ -125,7 +147,7 @@ diff -Naur coreutils-5.92.orig/src/uname.c coreutils-5.92/src/uname.c #endif #ifdef UNAME_PROCESSOR if (element == unknown) -@@ -293,7 +389,7 @@ +@@ -293,7 +406,7 @@
if (toprint & PRINT_HARDWARE_PLATFORM) { @@ -134,7 +156,7 @@ diff -Naur coreutils-5.92.orig/src/uname.c coreutils-5.92/src/uname.c #if HAVE_SYSINFO && defined SI_PLATFORM { static char hardware_platform[257]; -@@ -301,6 +397,15 @@ +@@ -301,6 +414,15 @@ hardware_platform, sizeof hardware_platform)) element = hardware_platform; } @@ -150,7 +172,7 @@ diff -Naur coreutils-5.92.orig/src/uname.c coreutils-5.92/src/uname.c #endif #ifdef UNAME_HARDWARE_PLATFORM if (element == unknown) -@@ -323,3 +428,29 @@ +@@ -323,3 +445,29 @@
exit (EXIT_SUCCESS); } diff --git a/src/patches/dracut-006_add_run_symlink.patch b/src/patches/dracut-006_add_run_symlink.patch new file mode 100644 index 0000000..abe029f --- /dev/null +++ b/src/patches/dracut-006_add_run_symlink.patch @@ -0,0 +1,13 @@ +diff -Naur dracut-006.org/modules.d/99base/init dracut-006/modules.d/99base/init +--- dracut-006.org/modules.d/99base/init 2010-06-17 10:46:29.000000000 +0200 ++++ dracut-006/modules.d/99base/init 2013-10-31 16:51:17.658771341 +0100 +@@ -87,6 +87,9 @@ + + ln -s /proc/self/fd /dev/fd >/dev/null 2>&1 + ++# Add run symlink ++ln -s /var/run /run ++ + if getarg rdinitdebug; then + getarg quiet && DRACUT_QUIET="yes" + mkfifo /dev/initlog.pipe diff --git a/src/patches/dracut-006_remove_scsi_wait.patch b/src/patches/dracut-006_remove_scsi_wait.patch new file mode 100644 index 0000000..cfccf01 --- /dev/null +++ b/src/patches/dracut-006_remove_scsi_wait.patch @@ -0,0 +1,12 @@ +diff -Naur dracut-006.org/modules.d/99base/init dracut-006/modules.d/99base/init +--- dracut-006.org/modules.d/99base/init 2010-06-17 10:46:29.000000000 +0200 ++++ dracut-006/modules.d/99base/init 2013-10-31 17:05:09.135475525 +0100 +@@ -175,7 +175,7 @@ + + $UDEV_QUEUE_EMPTY >/dev/null 2>&1 || continue + +- modprobe scsi_wait_scan && rmmod scsi_wait_scan ++ sleep 0.1 + + $UDEV_QUEUE_EMPTY >/dev/null 2>&1 || continue + diff --git a/src/patches/fireinfo-2.1.7-testing.patch b/src/patches/fireinfo-2.1.7-testing.patch new file mode 100644 index 0000000..7690454 --- /dev/null +++ b/src/patches/fireinfo-2.1.7-testing.patch @@ -0,0 +1,4358 @@ +diff --git a/.gitignore b/.gitignore +index 0caee61..92aa5c5 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -1,2 +1,31 @@ +-build ++/Makefile ++/build-aux ++/libtool ++/missing ++/src/fireinfo/__init__.py + *.py[co] ++/*.tar.bz2 ++/*.tar.gz ++/*.tar.xz ++*.log ++*.a ++*.cache ++*.gmo ++*.la ++*.lo ++*.o ++*.stamp ++*.trs ++*~ ++.deps ++.dirstamp ++.libs ++Makefile.in ++aclocal.m4 ++config.h ++config.h.in ++config.log ++config.status ++configure ++install-sh ++stamp-* +diff --git a/COPYING b/COPYING +new file mode 100644 +index 0000000..94a9ed0 +--- /dev/null ++++ b/COPYING +@@ -0,0 +1,674 @@ ++ GNU GENERAL PUBLIC LICENSE ++ Version 3, 29 June 2007 ++ ++ Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/ ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++ Preamble ++ ++ The GNU General Public License is a free, copyleft license for ++software and other kinds of works. ++ ++ The licenses for most software and other practical works are designed ++to take away your freedom to share and change the works. By contrast, ++the GNU General Public License is intended to guarantee your freedom to ++share and change all versions of a program--to make sure it remains free ++software for all its users. We, the Free Software Foundation, use the ++GNU General Public License for most of our software; it applies also to ++any other work released this way by its authors. You can apply it to ++your programs, too. ++ ++ When we speak of free software, we are referring to freedom, not ++price. Our General Public Licenses are designed to make sure that you ++have the freedom to distribute copies of free software (and charge for ++them if you wish), that you receive source code or can get it if you ++want it, that you can change the software or use pieces of it in new ++free programs, and that you know you can do these things. ++ ++ To protect your rights, we need to prevent others from denying you ++these rights or asking you to surrender the rights. Therefore, you have ++certain responsibilities if you distribute copies of the software, or if ++you modify it: responsibilities to respect the freedom of others. ++ ++ For example, if you distribute copies of such a program, whether ++gratis or for a fee, you must pass on to the recipients the same ++freedoms that you received. You must make sure that they, too, receive ++or can get the source code. And you must show them these terms so they ++know their rights. ++ ++ Developers that use the GNU GPL protect your rights with two steps: ++(1) assert copyright on the software, and (2) offer you this License ++giving you legal permission to copy, distribute and/or modify it. ++ ++ For the developers' and authors' protection, the GPL clearly explains ++that there is no warranty for this free software. For both users' and ++authors' sake, the GPL requires that modified versions be marked as ++changed, so that their problems will not be attributed erroneously to ++authors of previous versions. ++ ++ Some devices are designed to deny users access to install or run ++modified versions of the software inside them, although the manufacturer ++can do so. This is fundamentally incompatible with the aim of ++protecting users' freedom to change the software. The systematic ++pattern of such abuse occurs in the area of products for individuals to ++use, which is precisely where it is most unacceptable. Therefore, we ++have designed this version of the GPL to prohibit the practice for those ++products. If such problems arise substantially in other domains, we ++stand ready to extend this provision to those domains in future versions ++of the GPL, as needed to protect the freedom of users. ++ ++ Finally, every program is threatened constantly by software patents. ++States should not allow patents to restrict development and use of ++software on general-purpose computers, but in those that do, we wish to ++avoid the special danger that patents applied to a free program could ++make it effectively proprietary. To prevent this, the GPL assures that ++patents cannot be used to render the program non-free. ++ ++ The precise terms and conditions for copying, distribution and ++modification follow. ++ ++ TERMS AND CONDITIONS ++ ++ 0. Definitions. ++ ++ "This License" refers to version 3 of the GNU General Public License. ++ ++ "Copyright" also means copyright-like laws that apply to other kinds of ++works, such as semiconductor masks. ++ ++ "The Program" refers to any copyrightable work licensed under this ++License. Each licensee is addressed as "you". "Licensees" and ++"recipients" may be individuals or organizations. ++ ++ To "modify" a work means to copy from or adapt all or part of the work ++in a fashion requiring copyright permission, other than the making of an ++exact copy. The resulting work is called a "modified version" of the ++earlier work or a work "based on" the earlier work. ++ ++ A "covered work" means either the unmodified Program or a work based ++on the Program. ++ ++ To "propagate" a work means to do anything with it that, without ++permission, would make you directly or secondarily liable for ++infringement under applicable copyright law, except executing it on a ++computer or modifying a private copy. Propagation includes copying, ++distribution (with or without modification), making available to the ++public, and in some countries other activities as well. ++ ++ To "convey" a work means any kind of propagation that enables other ++parties to make or receive copies. Mere interaction with a user through ++a computer network, with no transfer of a copy, is not conveying. ++ ++ An interactive user interface displays "Appropriate Legal Notices" ++to the extent that it includes a convenient and prominently visible ++feature that (1) displays an appropriate copyright notice, and (2) ++tells the user that there is no warranty for the work (except to the ++extent that warranties are provided), that licensees may convey the ++work under this License, and how to view a copy of this License. If ++the interface presents a list of user commands or options, such as a ++menu, a prominent item in the list meets this criterion. ++ ++ 1. Source Code. ++ ++ The "source code" for a work means the preferred form of the work ++for making modifications to it. "Object code" means any non-source ++form of a work. ++ ++ A "Standard Interface" means an interface that either is an official ++standard defined by a recognized standards body, or, in the case of ++interfaces specified for a particular programming language, one that ++is widely used among developers working in that language. ++ ++ The "System Libraries" of an executable work include anything, other ++than the work as a whole, that (a) is included in the normal form of ++packaging a Major Component, but which is not part of that Major ++Component, and (b) serves only to enable use of the work with that ++Major Component, or to implement a Standard Interface for which an ++implementation is available to the public in source code form. A ++"Major Component", in this context, means a major essential component ++(kernel, window system, and so on) of the specific operating system ++(if any) on which the executable work runs, or a compiler used to ++produce the work, or an object code interpreter used to run it. ++ ++ The "Corresponding Source" for a work in object code form means all ++the source code needed to generate, install, and (for an executable ++work) run the object code and to modify the work, including scripts to ++control those activities. However, it does not include the work's ++System Libraries, or general-purpose tools or generally available free ++programs which are used unmodified in performing those activities but ++which are not part of the work. For example, Corresponding Source ++includes interface definition files associated with source files for ++the work, and the source code for shared libraries and dynamically ++linked subprograms that the work is specifically designed to require, ++such as by intimate data communication or control flow between those ++subprograms and other parts of the work. ++ ++ The Corresponding Source need not include anything that users ++can regenerate automatically from other parts of the Corresponding ++Source. ++ ++ The Corresponding Source for a work in source code form is that ++same work. ++ ++ 2. Basic Permissions. ++ ++ All rights granted under this License are granted for the term of ++copyright on the Program, and are irrevocable provided the stated ++conditions are met. This License explicitly affirms your unlimited ++permission to run the unmodified Program. The output from running a ++covered work is covered by this License only if the output, given its ++content, constitutes a covered work. This License acknowledges your ++rights of fair use or other equivalent, as provided by copyright law. ++ ++ You may make, run and propagate covered works that you do not ++convey, without conditions so long as your license otherwise remains ++in force. You may convey covered works to others for the sole purpose ++of having them make modifications exclusively for you, or provide you ++with facilities for running those works, provided that you comply with ++the terms of this License in conveying all material for which you do ++not control copyright. Those thus making or running the covered works ++for you must do so exclusively on your behalf, under your direction ++and control, on terms that prohibit them from making any copies of ++your copyrighted material outside their relationship with you. ++ ++ Conveying under any other circumstances is permitted solely under ++the conditions stated below. Sublicensing is not allowed; section 10 ++makes it unnecessary. ++ ++ 3. Protecting Users' Legal Rights From Anti-Circumvention Law. ++ ++ No covered work shall be deemed part of an effective technological ++measure under any applicable law fulfilling obligations under article ++11 of the WIPO copyright treaty adopted on 20 December 1996, or ++similar laws prohibiting or restricting circumvention of such ++measures. ++ ++ When you convey a covered work, you waive any legal power to forbid ++circumvention of technological measures to the extent such circumvention ++is effected by exercising rights under this License with respect to ++the covered work, and you disclaim any intention to limit operation or ++modification of the work as a means of enforcing, against the work's ++users, your or third parties' legal rights to forbid circumvention of ++technological measures. ++ ++ 4. Conveying Verbatim Copies. ++ ++ You may convey verbatim copies of the Program's source code as you ++receive it, in any medium, provided that you conspicuously and ++appropriately publish on each copy an appropriate copyright notice; ++keep intact all notices stating that this License and any ++non-permissive terms added in accord with section 7 apply to the code; ++keep intact all notices of the absence of any warranty; and give all ++recipients a copy of this License along with the Program. ++ ++ You may charge any price or no price for each copy that you convey, ++and you may offer support or warranty protection for a fee. ++ ++ 5. Conveying Modified Source Versions. ++ ++ You may convey a work based on the Program, or the modifications to ++produce it from the Program, in the form of source code under the ++terms of section 4, provided that you also meet all of these conditions: ++ ++ a) The work must carry prominent notices stating that you modified ++ it, and giving a relevant date. ++ ++ b) The work must carry prominent notices stating that it is ++ released under this License and any conditions added under section ++ 7. This requirement modifies the requirement in section 4 to ++ "keep intact all notices". ++ ++ c) You must license the entire work, as a whole, under this ++ License to anyone who comes into possession of a copy. This ++ License will therefore apply, along with any applicable section 7 ++ additional terms, to the whole of the work, and all its parts, ++ regardless of how they are packaged. This License gives no ++ permission to license the work in any other way, but it does not ++ invalidate such permission if you have separately received it. ++ ++ d) If the work has interactive user interfaces, each must display ++ Appropriate Legal Notices; however, if the Program has interactive ++ interfaces that do not display Appropriate Legal Notices, your ++ work need not make them do so. ++ ++ A compilation of a covered work with other separate and independent ++works, which are not by their nature extensions of the covered work, ++and which are not combined with it such as to form a larger program, ++in or on a volume of a storage or distribution medium, is called an ++"aggregate" if the compilation and its resulting copyright are not ++used to limit the access or legal rights of the compilation's users ++beyond what the individual works permit. Inclusion of a covered work ++in an aggregate does not cause this License to apply to the other ++parts of the aggregate. ++ ++ 6. Conveying Non-Source Forms. ++ ++ You may convey a covered work in object code form under the terms ++of sections 4 and 5, provided that you also convey the ++machine-readable Corresponding Source under the terms of this License, ++in one of these ways: ++ ++ a) Convey the object code in, or embodied in, a physical product ++ (including a physical distribution medium), accompanied by the ++ Corresponding Source fixed on a durable physical medium ++ customarily used for software interchange. ++ ++ b) Convey the object code in, or embodied in, a physical product ++ (including a physical distribution medium), accompanied by a ++ written offer, valid for at least three years and valid for as ++ long as you offer spare parts or customer support for that product ++ model, to give anyone who possesses the object code either (1) a ++ copy of the Corresponding Source for all the software in the ++ product that is covered by this License, on a durable physical ++ medium customarily used for software interchange, for a price no ++ more than your reasonable cost of physically performing this ++ conveying of source, or (2) access to copy the ++ Corresponding Source from a network server at no charge. ++ ++ c) Convey individual copies of the object code with a copy of the ++ written offer to provide the Corresponding Source. This ++ alternative is allowed only occasionally and noncommercially, and ++ only if you received the object code with such an offer, in accord ++ with subsection 6b. ++ ++ d) Convey the object code by offering access from a designated ++ place (gratis or for a charge), and offer equivalent access to the ++ Corresponding Source in the same way through the same place at no ++ further charge. You need not require recipients to copy the ++ Corresponding Source along with the object code. If the place to ++ copy the object code is a network server, the Corresponding Source ++ may be on a different server (operated by you or a third party) ++ that supports equivalent copying facilities, provided you maintain ++ clear directions next to the object code saying where to find the ++ Corresponding Source. Regardless of what server hosts the ++ Corresponding Source, you remain obligated to ensure that it is ++ available for as long as needed to satisfy these requirements. ++ ++ e) Convey the object code using peer-to-peer transmission, provided ++ you inform other peers where the object code and Corresponding ++ Source of the work are being offered to the general public at no ++ charge under subsection 6d. ++ ++ A separable portion of the object code, whose source code is excluded ++from the Corresponding Source as a System Library, need not be ++included in conveying the object code work. ++ ++ A "User Product" is either (1) a "consumer product", which means any ++tangible personal property which is normally used for personal, family, ++or household purposes, or (2) anything designed or sold for incorporation ++into a dwelling. In determining whether a product is a consumer product, ++doubtful cases shall be resolved in favor of coverage. For a particular ++product received by a particular user, "normally used" refers to a ++typical or common use of that class of product, regardless of the status ++of the particular user or of the way in which the particular user ++actually uses, or expects or is expected to use, the product. A product ++is a consumer product regardless of whether the product has substantial ++commercial, industrial or non-consumer uses, unless such uses represent ++the only significant mode of use of the product. ++ ++ "Installation Information" for a User Product means any methods, ++procedures, authorization keys, or other information required to install ++and execute modified versions of a covered work in that User Product from ++a modified version of its Corresponding Source. The information must ++suffice to ensure that the continued functioning of the modified object ++code is in no case prevented or interfered with solely because ++modification has been made. ++ ++ If you convey an object code work under this section in, or with, or ++specifically for use in, a User Product, and the conveying occurs as ++part of a transaction in which the right of possession and use of the ++User Product is transferred to the recipient in perpetuity or for a ++fixed term (regardless of how the transaction is characterized), the ++Corresponding Source conveyed under this section must be accompanied ++by the Installation Information. But this requirement does not apply ++if neither you nor any third party retains the ability to install ++modified object code on the User Product (for example, the work has ++been installed in ROM). ++ ++ The requirement to provide Installation Information does not include a ++requirement to continue to provide support service, warranty, or updates ++for a work that has been modified or installed by the recipient, or for ++the User Product in which it has been modified or installed. Access to a ++network may be denied when the modification itself materially and ++adversely affects the operation of the network or violates the rules and ++protocols for communication across the network. ++ ++ Corresponding Source conveyed, and Installation Information provided, ++in accord with this section must be in a format that is publicly ++documented (and with an implementation available to the public in ++source code form), and must require no special password or key for ++unpacking, reading or copying. ++ ++ 7. Additional Terms. ++ ++ "Additional permissions" are terms that supplement the terms of this ++License by making exceptions from one or more of its conditions. ++Additional permissions that are applicable to the entire Program shall ++be treated as though they were included in this License, to the extent ++that they are valid under applicable law. If additional permissions ++apply only to part of the Program, that part may be used separately ++under those permissions, but the entire Program remains governed by ++this License without regard to the additional permissions. ++ ++ When you convey a copy of a covered work, you may at your option ++remove any additional permissions from that copy, or from any part of ++it. (Additional permissions may be written to require their own ++removal in certain cases when you modify the work.) You may place ++additional permissions on material, added by you to a covered work, ++for which you have or can give appropriate copyright permission. ++ ++ Notwithstanding any other provision of this License, for material you ++add to a covered work, you may (if authorized by the copyright holders of ++that material) supplement the terms of this License with terms: ++ ++ a) Disclaiming warranty or limiting liability differently from the ++ terms of sections 15 and 16 of this License; or ++ ++ b) Requiring preservation of specified reasonable legal notices or ++ author attributions in that material or in the Appropriate Legal ++ Notices displayed by works containing it; or ++ ++ c) Prohibiting misrepresentation of the origin of that material, or ++ requiring that modified versions of such material be marked in ++ reasonable ways as different from the original version; or ++ ++ d) Limiting the use for publicity purposes of names of licensors or ++ authors of the material; or ++ ++ e) Declining to grant rights under trademark law for use of some ++ trade names, trademarks, or service marks; or ++ ++ f) Requiring indemnification of licensors and authors of that ++ material by anyone who conveys the material (or modified versions of ++ it) with contractual assumptions of liability to the recipient, for ++ any liability that these contractual assumptions directly impose on ++ those licensors and authors. ++ ++ All other non-permissive additional terms are considered "further ++restrictions" within the meaning of section 10. If the Program as you ++received it, or any part of it, contains a notice stating that it is ++governed by this License along with a term that is a further ++restriction, you may remove that term. If a license document contains ++a further restriction but permits relicensing or conveying under this ++License, you may add to a covered work material governed by the terms ++of that license document, provided that the further restriction does ++not survive such relicensing or conveying. ++ ++ If you add terms to a covered work in accord with this section, you ++must place, in the relevant source files, a statement of the ++additional terms that apply to those files, or a notice indicating ++where to find the applicable terms. ++ ++ Additional terms, permissive or non-permissive, may be stated in the ++form of a separately written license, or stated as exceptions; ++the above requirements apply either way. ++ ++ 8. Termination. ++ ++ You may not propagate or modify a covered work except as expressly ++provided under this License. Any attempt otherwise to propagate or ++modify it is void, and will automatically terminate your rights under ++this License (including any patent licenses granted under the third ++paragraph of section 11). ++ ++ However, if you cease all violation of this License, then your ++license from a particular copyright holder is reinstated (a) ++provisionally, unless and until the copyright holder explicitly and ++finally terminates your license, and (b) permanently, if the copyright ++holder fails to notify you of the violation by some reasonable means ++prior to 60 days after the cessation. ++ ++ Moreover, your license from a particular copyright holder is ++reinstated permanently if the copyright holder notifies you of the ++violation by some reasonable means, this is the first time you have ++received notice of violation of this License (for any work) from that ++copyright holder, and you cure the violation prior to 30 days after ++your receipt of the notice. ++ ++ Termination of your rights under this section does not terminate the ++licenses of parties who have received copies or rights from you under ++this License. If your rights have been terminated and not permanently ++reinstated, you do not qualify to receive new licenses for the same ++material under section 10. ++ ++ 9. Acceptance Not Required for Having Copies. ++ ++ You are not required to accept this License in order to receive or ++run a copy of the Program. Ancillary propagation of a covered work ++occurring solely as a consequence of using peer-to-peer transmission ++to receive a copy likewise does not require acceptance. However, ++nothing other than this License grants you permission to propagate or ++modify any covered work. These actions infringe copyright if you do ++not accept this License. Therefore, by modifying or propagating a ++covered work, you indicate your acceptance of this License to do so. ++ ++ 10. Automatic Licensing of Downstream Recipients. ++ ++ Each time you convey a covered work, the recipient automatically ++receives a license from the original licensors, to run, modify and ++propagate that work, subject to this License. You are not responsible ++for enforcing compliance by third parties with this License. ++ ++ An "entity transaction" is a transaction transferring control of an ++organization, or substantially all assets of one, or subdividing an ++organization, or merging organizations. If propagation of a covered ++work results from an entity transaction, each party to that ++transaction who receives a copy of the work also receives whatever ++licenses to the work the party's predecessor in interest had or could ++give under the previous paragraph, plus a right to possession of the ++Corresponding Source of the work from the predecessor in interest, if ++the predecessor has it or can get it with reasonable efforts. ++ ++ You may not impose any further restrictions on the exercise of the ++rights granted or affirmed under this License. For example, you may ++not impose a license fee, royalty, or other charge for exercise of ++rights granted under this License, and you may not initiate litigation ++(including a cross-claim or counterclaim in a lawsuit) alleging that ++any patent claim is infringed by making, using, selling, offering for ++sale, or importing the Program or any portion of it. ++ ++ 11. Patents. ++ ++ A "contributor" is a copyright holder who authorizes use under this ++License of the Program or a work on which the Program is based. The ++work thus licensed is called the contributor's "contributor version". ++ ++ A contributor's "essential patent claims" are all patent claims ++owned or controlled by the contributor, whether already acquired or ++hereafter acquired, that would be infringed by some manner, permitted ++by this License, of making, using, or selling its contributor version, ++but do not include claims that would be infringed only as a ++consequence of further modification of the contributor version. For ++purposes of this definition, "control" includes the right to grant ++patent sublicenses in a manner consistent with the requirements of ++this License. ++ ++ Each contributor grants you a non-exclusive, worldwide, royalty-free ++patent license under the contributor's essential patent claims, to ++make, use, sell, offer for sale, import and otherwise run, modify and ++propagate the contents of its contributor version. ++ ++ In the following three paragraphs, a "patent license" is any express ++agreement or commitment, however denominated, not to enforce a patent ++(such as an express permission to practice a patent or covenant not to ++sue for patent infringement). To "grant" such a patent license to a ++party means to make such an agreement or commitment not to enforce a ++patent against the party. ++ ++ If you convey a covered work, knowingly relying on a patent license, ++and the Corresponding Source of the work is not available for anyone ++to copy, free of charge and under the terms of this License, through a ++publicly available network server or other readily accessible means, ++then you must either (1) cause the Corresponding Source to be so ++available, or (2) arrange to deprive yourself of the benefit of the ++patent license for this particular work, or (3) arrange, in a manner ++consistent with the requirements of this License, to extend the patent ++license to downstream recipients. "Knowingly relying" means you have ++actual knowledge that, but for the patent license, your conveying the ++covered work in a country, or your recipient's use of the covered work ++in a country, would infringe one or more identifiable patents in that ++country that you have reason to believe are valid. ++ ++ If, pursuant to or in connection with a single transaction or ++arrangement, you convey, or propagate by procuring conveyance of, a ++covered work, and grant a patent license to some of the parties ++receiving the covered work authorizing them to use, propagate, modify ++or convey a specific copy of the covered work, then the patent license ++you grant is automatically extended to all recipients of the covered ++work and works based on it. ++ ++ A patent license is "discriminatory" if it does not include within ++the scope of its coverage, prohibits the exercise of, or is ++conditioned on the non-exercise of one or more of the rights that are ++specifically granted under this License. You may not convey a covered ++work if you are a party to an arrangement with a third party that is ++in the business of distributing software, under which you make payment ++to the third party based on the extent of your activity of conveying ++the work, and under which the third party grants, to any of the ++parties who would receive the covered work from you, a discriminatory ++patent license (a) in connection with copies of the covered work ++conveyed by you (or copies made from those copies), or (b) primarily ++for and in connection with specific products or compilations that ++contain the covered work, unless you entered into that arrangement, ++or that patent license was granted, prior to 28 March 2007. ++ ++ Nothing in this License shall be construed as excluding or limiting ++any implied license or other defenses to infringement that may ++otherwise be available to you under applicable patent law. ++ ++ 12. No Surrender of Others' Freedom. ++ ++ If conditions are imposed on you (whether by court order, agreement or ++otherwise) that contradict the conditions of this License, they do not ++excuse you from the conditions of this License. If you cannot convey a ++covered work so as to satisfy simultaneously your obligations under this ++License and any other pertinent obligations, then as a consequence you may ++not convey it at all. For example, if you agree to terms that obligate you ++to collect a royalty for further conveying from those to whom you convey ++the Program, the only way you could satisfy both those terms and this ++License would be to refrain entirely from conveying the Program. ++ ++ 13. Use with the GNU Affero General Public License. ++ ++ Notwithstanding any other provision of this License, you have ++permission to link or combine any covered work with a work licensed ++under version 3 of the GNU Affero General Public License into a single ++combined work, and to convey the resulting work. The terms of this ++License will continue to apply to the part which is the covered work, ++but the special requirements of the GNU Affero General Public License, ++section 13, concerning interaction through a network will apply to the ++combination as such. ++ ++ 14. Revised Versions of this License. ++ ++ The Free Software Foundation may publish revised and/or new versions of ++the GNU General Public License from time to time. Such new versions will ++be similar in spirit to the present version, but may differ in detail to ++address new problems or concerns. ++ ++ Each version is given a distinguishing version number. If the ++Program specifies that a certain numbered version of the GNU General ++Public License "or any later version" applies to it, you have the ++option of following the terms and conditions either of that numbered ++version or of any later version published by the Free Software ++Foundation. If the Program does not specify a version number of the ++GNU General Public License, you may choose any version ever published ++by the Free Software Foundation. ++ ++ If the Program specifies that a proxy can decide which future ++versions of the GNU General Public License can be used, that proxy's ++public statement of acceptance of a version permanently authorizes you ++to choose that version for the Program. ++ ++ Later license versions may give you additional or different ++permissions. However, no additional obligations are imposed on any ++author or copyright holder as a result of your choosing to follow a ++later version. ++ ++ 15. Disclaimer of Warranty. ++ ++ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY ++APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT ++HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY ++OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ++THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM ++IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ++ALL NECESSARY SERVICING, REPAIR OR CORRECTION. ++ ++ 16. Limitation of Liability. ++ ++ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING ++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS ++THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY ++GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE ++USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF ++DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD ++PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), ++EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF ++SUCH DAMAGES. ++ ++ 17. Interpretation of Sections 15 and 16. ++ ++ If the disclaimer of warranty and limitation of liability provided ++above cannot be given local legal effect according to their terms, ++reviewing courts shall apply local law that most closely approximates ++an absolute waiver of all civil liability in connection with the ++Program, unless a warranty or assumption of liability accompanies a ++copy of the Program in return for a fee. ++ ++ END OF TERMS AND CONDITIONS ++ ++ How to Apply These Terms to Your New Programs ++ ++ If you develop a new program, and you want it to be of the greatest ++possible use to the public, the best way to achieve this is to make it ++free software which everyone can redistribute and change under these terms. ++ ++ To do so, attach the following notices to the program. It is safest ++to attach them to the start of each source file to most effectively ++state the exclusion of warranty; and each file should have at least ++the "copyright" line and a pointer to where the full notice is found. ++ ++ <one line to give the program's name and a brief idea of what it does.> ++ Copyright (C) <year> <name of author> ++ ++ This program is free software: you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation, either version 3 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see http://www.gnu.org/licenses/. ++ ++Also add information on how to contact you by electronic and paper mail. ++ ++ If the program does terminal interaction, make it output a short ++notice like this when it starts in an interactive mode: ++ ++ <program> Copyright (C) <year> <name of author> ++ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. ++ This is free software, and you are welcome to redistribute it ++ under certain conditions; type `show c' for details. ++ ++The hypothetical commands `show w' and `show c' should show the appropriate ++parts of the General Public License. Of course, your program's commands ++might be different; for a GUI interface, you would use an "about box". ++ ++ You should also get your employer (if you work as a programmer) or school, ++if any, to sign a "copyright disclaimer" for the program, if necessary. ++For more information on this, and how to apply and follow the GNU GPL, see ++http://www.gnu.org/licenses/. ++ ++ The GNU General Public License does not permit incorporating your program ++into proprietary programs. If your program is a subroutine library, you ++may consider it more useful to permit linking proprietary applications with ++the library. If this is what you want to do, use the GNU Lesser General ++Public License instead of this License. But first, please read ++http://www.gnu.org/philosophy/why-not-lgpl.html. +diff --git a/MANIFEST b/MANIFEST +deleted file mode 100644 +index 24ca115..0000000 +--- a/MANIFEST ++++ /dev/null +@@ -1,9 +0,0 @@ +-sendprofile +-setup.py +-fireinfo/__init__.py +-fireinfo/cpu.py +-fireinfo/device.py +-fireinfo/hypervisor.py +-fireinfo/network.py +-fireinfo/system.py +-src/fireinfo.c +diff --git a/Makefile.am b/Makefile.am +new file mode 100644 +index 0000000..260f14f +--- /dev/null ++++ b/Makefile.am +@@ -0,0 +1,87 @@ ++############################################################################### ++# # ++# Pakfire - The IPFire package management system # ++# Copyright (C) 2013 Pakfire development team # ++# # ++# This program is free software: you can redistribute it and/or modify # ++# it under the terms of the GNU General Public License as published by # ++# the Free Software Foundation, either version 3 of the License, or # ++# (at your option) any later version. # ++# # ++# This program is distributed in the hope that it will be useful, # ++# but WITHOUT ANY WARRANTY; without even the implied warranty of # ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # ++# GNU General Public License for more details. # ++# # ++# You should have received a copy of the GNU General Public License # ++# along with this program. If not, see http://www.gnu.org/licenses/. # ++# # ++############################################################################### ++ ++ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} ++AM_MAKEFLAGS = --no-print-directory ++AUTOMAKE_OPTIONS = color-tests ++ ++# remove target it the command fails ++.DELETE_ON_ERROR: ++ ++# keep itermediate files ++.SECONDARY: ++ ++CLEANFILES = ++DISTCLEANFILES = ++EXTRA_DIST = ++ ++AM_CPPFLAGS = \ ++ -include $(top_builddir)/config.h \ ++ -I $(top_srcdir)/include \ ++ $(OUR_CPPFLAGS) ++ ++AM_CFLAGS = $(OUR_CFLAGS) ++AM_LDFLAGS = $(OUR_LDFLAGS) ++ ++pkgpyexec_LTLIBRARIES = ++ ++# ------------------------------------------------------------------------------ ++ ++dist_doc_DATA = \ ++ COPYING ++ ++# ------------------------------------------------------------------------------ ++ ++dist_bin_SCRIPTS = \ ++ src/sendprofile ++ ++# ------------------------------------------------------------------------------ ++ ++fireinfo_PYTHON = \ ++ src/fireinfo/__init__.py \ ++ src/fireinfo/bios.py \ ++ src/fireinfo/cpu.py \ ++ src/fireinfo/device.py \ ++ src/fireinfo/hypervisor.py \ ++ src/fireinfo/network.py \ ++ src/fireinfo/system.py ++ ++fireinfodir = $(pythondir)/fireinfo ++ ++# ------------------------------------------------------------------------------ ++ ++pkgpyexec_LTLIBRARIES += \ ++ _fireinfo.la ++ ++_fireinfo_la_SOURCES = \ ++ src/_fireinfo/fireinfo.c ++ ++_fireinfo_la_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(PYTHON_DEVEL_CFLAGS) ++ ++_fireinfo_la_LDFLAGS = \ ++ $(AM_LDFLAGS) \ ++ -shared \ ++ -module \ ++ -avoid-version ++ ++_fireinfo_la_LIBADD = \ ++ $(PYTHON_DEVEL_LIBS) +diff --git a/autogen.sh b/autogen.sh +new file mode 100755 +index 0000000..c08fadf +--- /dev/null ++++ b/autogen.sh +@@ -0,0 +1,3 @@ ++#!/bin/sh ++ ++autoreconf --force --install --symlink +diff --git a/configure.ac b/configure.ac +new file mode 100644 +index 0000000..4d5efef +--- /dev/null ++++ b/configure.ac +@@ -0,0 +1,110 @@ ++############################################################################### ++# # ++# Pakfire - The IPFire package management system # ++# Copyright (C) 2013 Pakfire development team # ++# # ++# This program is free software: you can redistribute it and/or modify # ++# it under the terms of the GNU General Public License as published by # ++# the Free Software Foundation, either version 3 of the License, or # ++# (at your option) any later version. # ++# # ++# This program is distributed in the hope that it will be useful, # ++# but WITHOUT ANY WARRANTY; without even the implied warranty of # ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # ++# GNU General Public License for more details. # ++# # ++# You should have received a copy of the GNU General Public License # ++# along with this program. If not, see http://www.gnu.org/licenses/. # ++# # ++############################################################################### ++ ++AC_PREREQ([2.64]) ++ ++AC_INIT([fireinfo], ++ [2.1.7], ++ [info@ipfire.org], ++ [fireinfo], ++ [http://git.ipfire.org/?p=oddments/fireinfo.git;a=summary]) ++ ++AC_CONFIG_MACRO_DIR([m4]) ++AC_CONFIG_HEADERS([config.h]) ++AC_CONFIG_AUX_DIR([build-aux]) ++ ++AC_USE_SYSTEM_EXTENSIONS ++AC_SYS_LARGEFILE ++AC_PREFIX_DEFAULT([/usr]) ++ ++AM_INIT_AUTOMAKE([ ++ foreign ++ 1.11 ++ -Wall ++ -Wno-portability ++ silent-rules ++ tar-pax ++ subdir-objects ++]) ++AM_SILENT_RULES([yes]) ++LT_PREREQ(2.2) ++LT_INIT([disable-static]) ++ ++# pkg-config ++PKG_PROG_PKG_CONFIG ++# This makes sure pkg.m4 is available. ++m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config]) ++ ++# C Compiler ++AC_PROG_CC ++AC_PROG_CC_C99 ++AC_PROG_CC_C_O ++AC_PROG_GCC_TRADITIONAL ++AC_OPENMP ++ ++CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ ++ -pipe \ ++ -Wall \ ++ -Wextra \ ++ -Wno-inline \ ++ -Wundef \ ++ "-Wformat=2 -Wformat-security -Wformat-nonliteral" \ ++ -Wno-unused-parameter \ ++ -Wno-unused-result \ ++ -fno-strict-aliasing \ ++ -ffunction-sections \ ++ -fdata-sections \ ++ -fstack-protector-all \ ++ --param=ssp-buffer-size=4]) ++AC_SUBST([OUR_CFLAGS], $with_cflags) ++ ++AS_CASE([$CFLAGS], [*-O[[12345g\ ]]*], ++ [CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [\ ++ -Wp,-D_FORTIFY_SOURCE=2])], ++ [AC_MSG_RESULT([skipping -D_FORTIFY_SOURCE, optimization not enabled])]) ++AC_SUBST([OUR_CPPFLAGS], $with_cppflags) ++ ++CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\ ++ -Wl,--as-needed \ ++ -Wl,--no-undefined \ ++ -Wl,--gc-sections \ ++ -Wl,-z,relro \ ++ -Wl,-z,now]) ++AC_SUBST([OUR_LDFLAGS], $with_ldflags) ++ ++# Python ++AM_PATH_PYTHON([2.7]) ++PKG_CHECK_MODULES([PYTHON_DEVEL], [python-${PYTHON_VERSION}]) ++ ++AC_CONFIG_FILES([ ++ Makefile ++ src/fireinfo/__init__.py ++]) ++ ++AC_OUTPUT ++AC_MSG_RESULT([ ++ $PACKAGE_NAME $VERSION ++ ++ CFLAGS: ${OUR_CFLAGS} ${CFLAGS} ++ CPPFLAGS: ${OUR_CPPFLAGS} ${CPPFLAGS} ++ LDFLAGS: ${OUR_LDFLAGS} ${LDFLAGS} ++ PYTHON_CFLAGS: ${PYTHON_DEVEL_CFLAGS} ++ PYTHON_LIBS: ${PYTHON_DEVEL_LIBS} ++]) +diff --git a/fireinfo/__init__.py b/fireinfo/__init__.py +deleted file mode 100644 +index 86fcc66..0000000 +--- a/fireinfo/__init__.py ++++ /dev/null +@@ -1,24 +0,0 @@ +-#!/usr/bin/python +-############################################################################### +-# # +-# Fireinfo # +-# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # +-# # +-# This program is free software: you can redistribute it and/or modify # +-# it under the terms of the GNU General Public License as published by # +-# the Free Software Foundation, either version 3 of the License, or # +-# (at your option) any later version. # +-# # +-# This program is distributed in the hope that it will be useful, # +-# but WITHOUT ANY WARRANTY; without even the implied warranty of # +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +-# GNU General Public License for more details. # +-# # +-# You should have received a copy of the GNU General Public License # +-# along with this program. If not, see http://www.gnu.org/licenses/. # +-# # +-############################################################################### +- +-__version__ = "2.1.7" +- +-from system import System +diff --git a/fireinfo/cpu.py b/fireinfo/cpu.py +deleted file mode 100644 +index 32d885d..0000000 +--- a/fireinfo/cpu.py ++++ /dev/null +@@ -1,194 +0,0 @@ +-#!/usr/bin/python +-############################################################################### +-# # +-# Fireinfo # +-# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # +-# # +-# This program is free software: you can redistribute it and/or modify # +-# it under the terms of the GNU General Public License as published by # +-# the Free Software Foundation, either version 3 of the License, or # +-# (at your option) any later version. # +-# # +-# This program is distributed in the hope that it will be useful, # +-# but WITHOUT ANY WARRANTY; without even the implied warranty of # +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +-# GNU General Public License for more details. # +-# # +-# You should have received a copy of the GNU General Public License # +-# along with this program. If not, see http://www.gnu.org/licenses/. # +-# # +-############################################################################### +- +-import os +- +-import system +- +-PROC_CPUINFO = "/proc/cpuinfo" +- +-class CPU(object): +- """ +- A class that represents the first CPU in a system. +- +- We get all information form the first CPU (or core) and assume that +- all other ones are equal. +- """ +- +- __cpuinfo = {} +- +- def __init__(self): +- """ +- Initialize this class by reading all data from /proc/cpuinfo. +- """ +- self.__cpuinfo = self.read_cpuinfo() +- +- @property +- def system(self): +- return system.System() +- +- @staticmethod +- def read_cpuinfo(): +- """ +- Read information from PROC_CPUINFO and store +- it into a dictionary cpuinfo. +- """ +- cpuinfo = {} +- +- f = open(PROC_CPUINFO) +- while True: +- line = f.readline() +- +- if not line: +- break +- +- try: +- key, val = line.split(":", 1) +- except ValueError: +- # We got a line without key, pass that. +- pass +- +- key = key.strip().replace(" ", "_") +- val = val.strip() +- +- cpuinfo[key] = val +- +- f.close() +- +- return cpuinfo +- +- @property +- def bogomips(self): +- """ +- Return the bogomips of this CPU. +- """ +- try: +- bogomips = self.__cpuinfo["bogomips"] +- except KeyError: +- bogomips = self.__cpuinfo["BogoMIPS"] +- +- return float(bogomips) +- +- @property +- def model(self): +- """ +- Return the model id of this CPU. +- """ +- try: +- model = int(self.__cpuinfo["model"]) +- except KeyError: +- model = None +- +- return model +- +- @property +- def model_string(self): +- """ +- Return the model string of this CPU. +- """ +- try: +- return self.__cpuinfo["model_name"] +- except KeyError: +- return self.__cpuinfo["Processor"] +- +- @property +- def vendor(self): +- """ +- Return the vendor string of this CPU. +- """ +- try: +- vendor = self.__cpuinfo["vendor_id"] +- except KeyError: +- if self.system.arch.startswith("arm"): +- vendor = "ARM" +- else: +- vendor = "" +- +- return vendor +- +- @property +- def stepping(self): +- """ +- Return the stepping id of this CPU. +- """ +- try: +- stepping = int(self.__cpuinfo["stepping"]) +- except KeyError: +- stepping = None +- +- return stepping +- +- @property +- def flags(self): +- """ +- Return all flags of this CPU. +- """ +- try: +- flags = self.__cpuinfo["flags"] +- except KeyError: +- flags = self.__cpuinfo["Features"] +- +- return flags.split() +- +- @property +- def speed(self): +- """ +- Return the speed (in MHz) of this CPU. +- """ +- try: +- speed = float(self.__cpuinfo["cpu_MHz"]) +- except KeyError: +- speed = 0 +- +- return speed +- +- @property +- def family(self): +- """ +- Return the family id of this CPU. +- """ +- try: +- family = int(self.__cpuinfo["cpu_family"]) +- except KeyError: +- family = None +- +- return family +- +- @property +- def count(self): +- """ +- Count number of CPUs (cores). +- """ +- return os.sysconf("SC_NPROCESSORS_ONLN") +- +- +-if __name__ == "__main__": +- c = CPU() +- +- print "Vendor:", c.vendor +- print "Model:", c.model +- print "Stepping:", c.stepping +- print "Flags:", c.flags +- print "Bogomips:", c.bogomips +- print "Speed:", c.speed +- print "Family:", c.family +- print "Count:", c.count +- print "Model string:", c.model_string +diff --git a/fireinfo/device.py b/fireinfo/device.py +deleted file mode 100644 +index 01338b2..0000000 +--- a/fireinfo/device.py ++++ /dev/null +@@ -1,133 +0,0 @@ +-#!/usr/bin/python +-############################################################################### +-# # +-# Fireinfo # +-# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # +-# # +-# This program is free software: you can redistribute it and/or modify # +-# it under the terms of the GNU General Public License as published by # +-# the Free Software Foundation, either version 3 of the License, or # +-# (at your option) any later version. # +-# # +-# This program is distributed in the hope that it will be useful, # +-# but WITHOUT ANY WARRANTY; without even the implied warranty of # +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +-# GNU General Public License for more details. # +-# # +-# You should have received a copy of the GNU General Public License # +-# along with this program. If not, see http://www.gnu.org/licenses/. # +-# # +-############################################################################### +- +-import os.path +- +-class Device(object): +- """ +- This is an abstract class that represents all devices in the system. +- Every single device has its own instance of this class. +- """ +- +- def __init__(self, path): +- """ +- Collect all information about the device by reading the +- "uevent" file and parsing it. +- """ +- +- # Save the path in /sys to the device. +- self.path = path +- +- # Datastructure to store information we read. +- self._uevent = {} +- +- # Open the uevent file and parse all lines. +- with open(os.path.join(path, "uevent")) as f: +- for line in f.readlines(): +- key, val = line.split("=") +- self._uevent[key] = val.rstrip().lower() +- +- @property +- def driver(self): +- """ +- Get the driver/kernel module that device is driven by or return None. +- """ +- return self._uevent.get("DRIVER", None) +- +- +-class PCIDevice(Device): +- """ +- A class that represents all PCI (and PCIe) devices in a system. +- """ +- +- subsystem = "pci" +- +- @property +- def model(self): +- """ +- Return the PCI model id of this device. +- """ +- return self._uevent['PCI_ID'].split(":")[1] +- +- @property +- def vendor(self): +- """ +- Return the PCI vendor id of this device. +- """ +- return self._uevent['PCI_ID'].split(":")[0] +- +- @property +- def deviceclass(self): +- """ +- Return the PCI device class of this device. +- """ +- return self._uevent['PCI_CLASS'] +- +- @property +- def sub_vendor(self): +- """ +- Return the PCI vendor sub id of this device. +- """ +- return self._uevent["PCI_SUBSYS_ID"].split(":")[0] +- +- @property +- def sub_model(self): +- """ +- Return the PCI model sub id of this device. +- """ +- return self._uevent["PCI_SUBSYS_ID"].split(":")[1] +- +- +-class USBDevice(Device): +- """ +- A class that represents all USB devices in a system. +- """ +- +- subsystem = "usb" +- +- def pad(self, s): +- """ +- A function to pad ids that have no leading zeroes. +- """ +- while len(s) < 4: +- s = "0"+s +- return s +- +- @property +- def vendor(self): +- """ +- Return the USB vendor id of this device. +- """ +- return self.pad(self._uevent['PRODUCT'].split("/")[0]) +- +- @property +- def model(self): +- """ +- Return the USB model id of this device. +- """ +- return self.pad(self._uevent['PRODUCT'].split("/")[1]) +- +- @property +- def deviceclass(self): +- """ +- Return the USB device class of this device. +- """ +- return self._uevent.get("INTERFACE", None) +diff --git a/fireinfo/hypervisor.py b/fireinfo/hypervisor.py +deleted file mode 100644 +index 9a3fb09..0000000 +--- a/fireinfo/hypervisor.py ++++ /dev/null +@@ -1,149 +0,0 @@ +-#!/usr/bin/python +-############################################################################### +-# # +-# Fireinfo # +-# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # +-# # +-# This program is free software: you can redistribute it and/or modify # +-# it under the terms of the GNU General Public License as published by # +-# the Free Software Foundation, either version 3 of the License, or # +-# (at your option) any later version. # +-# # +-# This program is distributed in the hope that it will be useful, # +-# but WITHOUT ANY WARRANTY; without even the implied warranty of # +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +-# GNU General Public License for more details. # +-# # +-# You should have received a copy of the GNU General Public License # +-# along with this program. If not, see http://www.gnu.org/licenses/. # +-# # +-############################################################################### +- +-import _fireinfo +-import system +- +-class Hypervisor(object): +- def __init__(self): +- self.__info = _fireinfo.get_hypervisor() +- +- @property +- def system(self): +- """ +- Return the current instance of the System class. +- +- We need to do that as a property because otherwise +- we get a recursion. +- """ +- return system.System() +- +- @property +- def vendor(self): +- """ +- Returns the name of the hypervisor vendor. +- """ +- if not self.virtual: +- return None +- +- # Some of the hypervisors can be detected in a right way. +- # We can return them at this place. +- if self.__info["hypervisor"] in ("Xen", "VMWare", "KVM"): +- return self.__info["hypervisor"] +- +- # Citrix Xen says it is Microsoft Hv. +- if self.__info["hypervisor"] == "Microsoft" and \ +- self.system.bios_vendor == "Xen": +- return "Xen" +- +- if not self.__info["hypervisor"]: +- # On VMWare systems, the bios vendor string contains "VMWare". +- if self.__is_hypervisor_vmware(): +- return "VMWare" +- +- # VirtualBox got "innotek GmbH" as bios vendor. +- elif self.__is_hypervisor_virtualbox(): +- return "VirtualBox" +- +- # Check for qemu. +- elif self.__is_hypervisor_qemu(): +- return "Qemu" +- +- # Check for Microsoft. +- elif self.__is_hypervisor_microsoft(): +- return "Microsoft" +- +- return "unknown" +- +- @property +- def type(self): +- """ +- Returns if the host is running in full virt mode or +- if it is running in a paravirtualized environment. +- """ +- if not self.virtual: +- return None +- +- if self.__info["virtype"]: +- return self.__info["virtype"] +- +- if self.vendor in ("Qemu", "KVM", "VirtualBox", "VMWare"): +- return "full" +- +- return "unknown" +- +- @property +- def virtual(self): +- """ +- Returns true if the host is running in a virtual environment. +- Otherwise: false. +- """ +- return _fireinfo.is_virtualized() or \ +- "hypervisor" in self.system.cpu.flags or \ +- self.__is_hypervisor_virtualbox() or \ +- self.__is_hypervisor_vmware() or \ +- self.__is_hypervisor_qemu() or \ +- self.__is_hypervisor_microsoft() +- +- def __is_hypervisor_virtualbox(self): +- """ +- Check for virtualbox hypervisor by comparing the bios vendor string +- to "innotek GmbH". +- """ +- return self.system.bios_vendor == "innotek GmbH" +- +- def __is_hypervisor_vmware(self): +- """ +- Check for the VMWare hypervisor by the VMWare Hypervisor port check. +- +- http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd... +- """ +- if self.system.vendor: +- return self.system.vendor.startswith("VMware") +- +- # XXX We should use _fireinfo.vmware_hypervisor_port_check() here, too. +- # This currently segfaults (and I have no clue why) on VMware player. +- +- def __is_hypervisor_qemu(self): +- """ +- Check for old qemu emulator. +- """ +- if self.system.bios_vendor: +- return self.system.bios_vendor == "Bochs" +- +- return False +- +- def __is_hypervisor_microsoft(self): +- """ +- Check for Microsoft hypervisor. +- """ +- if self.system.vendor: +- return "Microsoft" in self.system.vendor +- +- return False +- +- +-if __name__ == "__main__": +- h = Hypervisor() +- +- print "Vendor:", h.vendor +- print "Type:", h.type +- print "Virtual:", h.virtual +diff --git a/fireinfo/network.py b/fireinfo/network.py +deleted file mode 100644 +index 063e9ec..0000000 +--- a/fireinfo/network.py ++++ /dev/null +@@ -1,53 +0,0 @@ +-#!/usr/bin/python +-############################################################################### +-# # +-# Fireinfo # +-# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # +-# # +-# This program is free software: you can redistribute it and/or modify # +-# it under the terms of the GNU General Public License as published by # +-# the Free Software Foundation, either version 3 of the License, or # +-# (at your option) any later version. # +-# # +-# This program is distributed in the hope that it will be useful, # +-# but WITHOUT ANY WARRANTY; without even the implied warranty of # +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +-# GNU General Public License for more details. # +-# # +-# You should have received a copy of the GNU General Public License # +-# along with this program. If not, see http://www.gnu.org/licenses/. # +-# # +-############################################################################### +- +-import os +- +-SYS_CLASS_NET = "/sys/class/net" +- +-class Network(object): +- def __init__(self): +- self._devices = os.listdir(SYS_CLASS_NET) +- +- def has_green(self): +- return "green0" in self._devices +- +- def has_red(self): +- for i in ("red0", "ppp0"): +- if i in self._devices: +- return True +- +- return False +- +- def has_blue(self): +- return "blue0" in self._devices +- +- def has_orange(self): +- return "orange0" in self._devices +- +- +-if __name__ == "__main__": +- n = Network() +- +- print "has_green", n.has_green() +- print "has_red", n.has_red() +- print "has_blue", n.has_blue() +- print "has_orange", n.has_orange() +diff --git a/fireinfo/system.py b/fireinfo/system.py +deleted file mode 100644 +index 6f02312..0000000 +--- a/fireinfo/system.py ++++ /dev/null +@@ -1,449 +0,0 @@ +-#!/usr/bin/python +-############################################################################### +-# # +-# Fireinfo # +-# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # +-# # +-# This program is free software: you can redistribute it and/or modify # +-# it under the terms of the GNU General Public License as published by # +-# the Free Software Foundation, either version 3 of the License, or # +-# (at your option) any later version. # +-# # +-# This program is distributed in the hope that it will be useful, # +-# but WITHOUT ANY WARRANTY; without even the implied warranty of # +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +-# GNU General Public License for more details. # +-# # +-# You should have received a copy of the GNU General Public License # +-# along with this program. If not, see http://www.gnu.org/licenses/. # +-# # +-############################################################################### +- +-import hashlib +-import json +-import os +-import string +- +-import _fireinfo +- +-import cpu +-import device +-import hypervisor +-import network +- +-PROFILE_VERSION = 0 +- +-SYS_CLASS_DMI = "/sys/class/dmi/id" +-SECRET_ID_FILE = "/etc/fireinfo-id" +- +-INVALID_ID_STRINGS = ( +- "OEM", "O.E.M.", "o.e.m.", +- "N/A", "n/a", +- "12345", "54321", "202020", +- "Chassis", "chassis", +- "Not Applicable", +- "None", "empty", +- "01010101-0101-0101-0101-010101010101", +- "00020003-0004-0005-0006-000700080009", +- "03000200-0400-0500-0006-000700080009", +- "0000000", "00000000", +-) +- +-class Singleton(type): +- def __init__(cls, name, bases, dict): +- super(Singleton, cls).__init__(name, bases, dict) +- cls.instance = None +- +- def __call__(cls, *args, **kw): +- if cls.instance is None: +- cls.instance = super(Singleton, cls).__call__(*args, **kw) +- +- return cls.instance +- +- +-def read_from_file(filename): +- """ +- Read all data from filename. +- """ +- if not os.path.exists(filename): +- return +- +- try: +- with open(filename) as f: +- return f.read().strip() +- except IOError: +- pass +- +-class System(object): +- __metaclass__ = Singleton +- +- def __init__(self): +- # find all devices +- self.devices = [] +- self.scan() +- self.cpu = cpu.CPU() +- self.hypervisor = hypervisor.Hypervisor() +- +- # Read /proc/cpuinfo for vendor information. +- self.__cpuinfo = self.cpu.read_cpuinfo() +- +- def profile(self): +- p = {} +- p["system"] = { +- # System information +- "model" : self.model, +- "vendor" : self.vendor, +- +- # Indicator if the system is running in a +- # virtual environment. +- "virtual" : self.virtual, +- +- # System language +- "language" : self.language, +- +- # Release information +- "release" : self.release, +- "kernel_release" : self.kernel_release, +- +- "memory" : self.memory, +- "root_size" : self.root_size, +- } +- +- p["devices"] = [] +- for device in self.devices: +- d = { +- "subsystem" : device.subsystem.lower(), +- "vendor" : device.vendor.lower(), +- "model" : device.model.lower(), +- "deviceclass" : device.deviceclass, +- "driver" : device.driver, +- } +- +- # PCI devices provide subsystem information, USB don't. +- if d["subsystem"] == "pci": +- d["sub_model"] = device.sub_model +- d["sub_vendor"] = device.sub_vendor +- +- p["devices"].append(d) +- +- p["cpu"] = { +- "arch" : self.arch, +- "vendor" : self.cpu.vendor, +- "model" : self.cpu.model, +- "model_string" : self.cpu.model_string, +- "stepping" : self.cpu.stepping, +- "flags" : self.cpu.flags, +- "bogomips" : self.cpu.bogomips, +- "speed" : self.cpu.speed, +- "family" : self.cpu.family, +- "count" : self.cpu.count +- } +- +- p["network"] = { +- "green" : self.network.has_green(), +- "blue" : self.network.has_blue(), +- "orange" : self.network.has_orange(), +- "red" : self.network.has_red(), +- } +- +- # Only append hypervisor information if we are virtualized. +- if self.virtual: +- p["hypervisor"] = { +- "type" : self.hypervisor.type, +- "vendor" : self.hypervisor.vendor, +- } +- +- return { +- # Profile version +- "profile_version" : PROFILE_VERSION, +- +- # Identification and authorization codes +- "public_id" : self.public_id, +- "private_id" : self.private_id, +- +- # Actual profile data +- "profile" : p, +- } +- +- +- @property +- def arch(self): +- return os.uname()[4] +- +- @property +- def public_id(self): +- """ +- This returns a globally (hopefully) ID to identify the host +- later (by request) in the database. +- """ +- public_id = self.secret_id +- if not public_id: +- return "0" * 40 +- +- return hashlib.sha1(public_id).hexdigest() +- +- @property +- def private_id(self): +- """ +- The private ID is built out of the _unique_id and used to +- permit a host to do changes on the database. +- +- No one could ever guess this without access to the host. +- """ +- private_id = "" +- for i in reversed(self.secret_id): +- private_id += i +- +- if not private_id: +- return "0" * 40 +- +- return hashlib.sha1(private_id).hexdigest() +- +- @property +- def secret_id(self): +- """ +- Read a "secret" ID from a file if available +- or calculate it from the hardware. +- """ +- if os.path.exists(SECRET_ID_FILE): +- return read_from_file(SECRET_ID_FILE) +- +- return hashlib.sha1(self._unique_id).hexdigest() +- +- @property +- def _unique_id(self): +- """ +- This is a helper ID which is generated out of some hardware information +- that is considered to be constant over a PC's lifetime. +- +- None of the data here is ever sent to the server. +- """ +- ids = [] +- +- # Virtual machines (for example) and some boards have a UUID +- # which is globally unique. +- for file in ("product_uuid", "product_serial", "chassis_serial"): +- id = read_from_file(os.path.join(SYS_CLASS_DMI, file)) +- ids.append(id) +- +- # Sort out all bogous or invalid strings from the list. +- _ids = [] +- for id in ids: +- if id is None: +- continue +- +- for i in INVALID_ID_STRINGS: +- if i in id: +- id = None +- break +- +- if id: +- _ids.append(id) +- +- ids = _ids +- +- # Use serial number from root disk (if available) and if +- # no other ID was found, yet. +- if not ids: +- root_disk_serial = self.root_disk_serial +- if root_disk_serial and not root_disk_serial.startswith("QM000"): +- ids.append(root_disk_serial) +- +- # As last resort, we use the UUID from pakfire. +- if not ids: +- id = read_from_file("/opt/pakfire/db/uuid") +- ids.append(id) +- +- return "#".join(ids) +- +- @property +- def language(self): +- """ +- Return the language code of IPFire or "unknown" if we cannot get it. +- """ +- # Return "unknown" if settings file does not exist. +- filename = "/var/ipfire/main/settings" +- if not os.path.exists(filename): +- return "unknown" +- +- with open(filename, "r") as f: +- for line in f.readlines(): +- key, val = line.split("=", 1) +- if key == "LANGUAGE": +- return val.strip() +- +- @property +- def release(self): +- """ +- Return the system release string. +- """ +- return read_from_file("/etc/system-release") or "unknown" +- +- @property +- def bios_vendor(self): +- """ +- Return the bios vendor name. +- """ +- return read_from_file("/sys/class/dmi/id/bios_vendor") +- +- def vendor_model_tuple(self): +- try: +- s = self.__cpuinfo["Hardware"] +- except KeyError: +- return (None, None) +- +- if s.startswith("ARM-Versatile"): +- return ("ARM", s) +- +- try: +- v, m = s.split(" ", 1) +- except ValueError: +- if s.startswith("BCM"): +- v = "Broadcom" +- m = s +- else: +- v = None +- m = s +- +- return v, m +- +- @property +- def vendor(self): +- """ +- Return the vendor string of this system (if any). +- """ +- ret = None +- for file in ("sys_vendor", "board_vendor", "chassis_vendor",): +- ret = read_from_file(os.path.join(SYS_CLASS_DMI, file)) +- if ret: +- break +- +- if ret is None: +- v, m = self.vendor_model_tuple() +- ret = v +- +- return ret +- +- @property +- def model(self): +- """ +- Return the model string of this system (if any). +- """ +- ret = None +- for file in ("product_name", "board_model", "chassis_model",): +- ret = read_from_file(os.path.join(SYS_CLASS_DMI, file)) +- if ret: +- break +- +- if ret is None: +- v, m = self.vendor_model_tuple() +- ret = m +- +- return ret +- +- @property +- def memory(self): +- """ +- Return the amount of memory in kilobytes. +- """ +- with open("/proc/meminfo", "r") as f: +- firstline = f.readline().strip() +- return int(firstline.split()[1]) +- +- @property +- def kernel_release(self): +- """ +- Return the kernel release string. +- """ +- return os.uname()[2] +- +- @property +- def root_disk(self): +- """ +- Return the dev node of the root disk. +- """ +- with open("/etc/mtab", "r") as f: +- dev, mountpoint, rest = f.readline().split(" ", 2) +- if mountpoint == "/": +- # Cut off /dev +- dev = dev[5:] +- +- # Handle raids and MMC cards like (mmcblk0p3). +- if dev[-2] == "p": +- return dev[:-2] +- +- # Otherwise cut off all digits at end of string +- while dev[-1] in string.digits: +- dev = dev[:-1] +- +- return dev +- +- @property +- def root_size(self): +- """ +- Return the size of the root disk in kilobytes. +- """ +- path = "/sys/block/%s/size" % self.root_disk +- if not os.path.exists(path): +- return +- +- with open(path, "r") as f: +- return int(f.readline()) * 512 / 1024 +- +- @property +- def root_disk_serial(self): +- """ +- Return the serial number of the root disk (if any). +- """ +- serial = _fireinfo.get_harddisk_serial("/dev/%s" % self.root_disk) +- +- if serial: +- # Strip all spaces +- return serial.strip() +- +- def scan(self): +- """ +- Scan for all devices (PCI/USB) in the system and append them +- to our list. +- """ +- self.devices = [] +- +- toscan = ( +- ("/sys/bus/pci/devices", device.PCIDevice), +- ("/sys/bus/usb/devices", device.USBDevice) +- ) +- for path, cls in toscan: +- if not os.path.exists(path): +- continue +- +- dirlist = os.listdir(path) +- for dir in dirlist: +- self.devices.append(cls(os.path.join(path, dir))) +- +- @property +- def virtual(self): +- """ +- Say if the host is running in a virtual environment. +- """ +- return self.hypervisor.virtual +- +- @property +- def network(self): +- """ +- Reference to the network class. +- """ +- return network.Network() +- +- +-if __name__ == "__main__": +- s=System() +- print s.arch +- print s.language +- print s.release +- print s.bios_vendor +- print s.memory +- print s.kernel +- print s.root_disk +- print s.root_size +- print "------------\n", s.devices, "\n------------\n" +- print json.dumps(s.profile(), sort_keys=True, indent=4) +diff --git a/m4/.gitignore b/m4/.gitignore +new file mode 100644 +index 0000000..38066dd +--- /dev/null ++++ b/m4/.gitignore +@@ -0,0 +1,5 @@ ++libtool.m4 ++ltoptions.m4 ++ltsugar.m4 ++ltversion.m4 ++lt~obsolete.m4 +diff --git a/m4/attributes.m4 b/m4/attributes.m4 +new file mode 100644 +index 0000000..7e080da +--- /dev/null ++++ b/m4/attributes.m4 +@@ -0,0 +1,288 @@ ++dnl Macros to check the presence of generic (non-typed) symbols. ++dnl Copyright (c) 2006-2008 Diego Pettenò flameeyes@gmail.com ++dnl Copyright (c) 2006-2008 xine project ++dnl Copyright (c) 2012 Lucas De Marchi lucas.de.marchi@gmail.com ++dnl ++dnl This program is free software; you can redistribute it and/or modify ++dnl it under the terms of the GNU General Public License as published by ++dnl the Free Software Foundation; either version 2, or (at your option) ++dnl any later version. ++dnl ++dnl This program is distributed in the hope that it will be useful, ++dnl but WITHOUT ANY WARRANTY; without even the implied warranty of ++dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++dnl GNU General Public License for more details. ++dnl ++dnl You should have received a copy of the GNU General Public License ++dnl along with this program; if not, write to the Free Software ++dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++dnl 02110-1301, USA. ++dnl ++dnl As a special exception, the copyright owners of the ++dnl macro gives unlimited permission to copy, distribute and modify the ++dnl configure scripts that are the output of Autoconf when processing the ++dnl Macro. You need not follow the terms of the GNU General Public ++dnl License when using or distributing such scripts, even though portions ++dnl of the text of the Macro appear in them. The GNU General Public ++dnl License (GPL) does govern all other use of the material that ++dnl constitutes the Autoconf Macro. ++dnl ++dnl This special exception to the GPL applies to versions of the ++dnl Autoconf Macro released by this project. When you make and ++dnl distribute a modified version of the Autoconf Macro, you may extend ++dnl this special exception to the GPL to apply to your modified version as ++dnl well. ++ ++dnl Check if FLAG in ENV-VAR is supported by compiler and append it ++dnl to WHERE-TO-APPEND variable ++dnl CC_CHECK_FLAG_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG]) ++ ++AC_DEFUN([CC_CHECK_FLAG_APPEND], [ ++ AC_CACHE_CHECK([if $CC supports flag $3 in envvar $2], ++ AS_TR_SH([cc_cv_$2_$3]), ++ [eval "AS_TR_SH([cc_save_$2])='${$2}'" ++ eval "AS_TR_SH([$2])='-Werror $3'" ++ AC_COMPILE_IFELSE([AC_LANG_SOURCE([int a = 0; int main(void) { return a; } ])], ++ [eval "AS_TR_SH([cc_cv_$2_$3])='yes'"], ++ [eval "AS_TR_SH([cc_cv_$2_$3])='no'"]) ++ eval "AS_TR_SH([$2])='$cc_save_$2'"]) ++ ++ AS_IF([eval test x$]AS_TR_SH([cc_cv_$2_$3])[ = xyes], ++ [eval "$1='${$1} $3'"]) ++]) ++ ++dnl CC_CHECK_FLAGS_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG1 FLAG2]) ++AC_DEFUN([CC_CHECK_FLAGS_APPEND], [ ++ for flag in $3; do ++ CC_CHECK_FLAG_APPEND($1, $2, $flag) ++ done ++]) ++ ++dnl Check if the flag is supported by linker (cacheable) ++dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) ++ ++AC_DEFUN([CC_CHECK_LDFLAGS], [ ++ AC_CACHE_CHECK([if $CC supports $1 flag], ++ AS_TR_SH([cc_cv_ldflags_$1]), ++ [ac_save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS $1" ++ AC_LINK_IFELSE([int main() { return 1; }], ++ [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"], ++ [eval "AS_TR_SH([cc_cv_ldflags_$1])="]) ++ LDFLAGS="$ac_save_LDFLAGS" ++ ]) ++ ++ AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes], ++ [$2], [$3]) ++]) ++ ++dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for ++dnl the current linker to avoid undefined references in a shared object. ++AC_DEFUN([CC_NOUNDEFINED], [ ++ dnl We check $host for which systems to enable this for. ++ AC_REQUIRE([AC_CANONICAL_HOST]) ++ ++ case $host in ++ dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads ++ dnl are requested, as different implementations are present; to avoid problems ++ dnl use -Wl,-z,defs only for those platform not behaving this way. ++ *-freebsd* | *-openbsd*) ;; ++ *) ++ dnl First of all check for the --no-undefined variant of GNU ld. This allows ++ dnl for a much more readable commandline, so that people can understand what ++ dnl it does without going to look for what the heck -z defs does. ++ for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do ++ CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"]) ++ break ++ done ++ ;; ++ esac ++ ++ AC_SUBST([LDFLAGS_NOUNDEFINED]) ++]) ++ ++dnl Check for a -Werror flag or equivalent. -Werror is the GCC ++dnl and ICC flag that tells the compiler to treat all the warnings ++dnl as fatal. We usually need this option to make sure that some ++dnl constructs (like attributes) are not simply ignored. ++dnl ++dnl Other compilers don't support -Werror per se, but they support ++dnl an equivalent flag: ++dnl - Sun Studio compiler supports -errwarn=%all ++AC_DEFUN([CC_CHECK_WERROR], [ ++ AC_CACHE_CHECK( ++ [for $CC way to treat warnings as errors], ++ [cc_cv_werror], ++ [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror], ++ [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])]) ++ ]) ++]) ++ ++AC_DEFUN([CC_CHECK_ATTRIBUTE], [ ++ AC_REQUIRE([CC_CHECK_WERROR]) ++ AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))], ++ AS_TR_SH([cc_cv_attribute_$1]), ++ [ac_save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $cc_cv_werror" ++ AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])], ++ [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"], ++ [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"]) ++ CFLAGS="$ac_save_CFLAGS" ++ ]) ++ ++ AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes], ++ [AC_DEFINE( ++ AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1, ++ [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))] ++ ) ++ $4], ++ [$5]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [ ++ CC_CHECK_ATTRIBUTE( ++ [constructor],, ++ [void __attribute__((constructor)) ctor() { int a; }], ++ [$1], [$2]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_FORMAT], [ ++ CC_CHECK_ATTRIBUTE( ++ [format], [format(printf, n, n)], ++ [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }], ++ [$1], [$2]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [ ++ CC_CHECK_ATTRIBUTE( ++ [format_arg], [format_arg(printf)], ++ [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }], ++ [$1], [$2]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [ ++ CC_CHECK_ATTRIBUTE( ++ [visibility_$1], [visibility("$1")], ++ [void __attribute__((visibility("$1"))) $1_function() { }], ++ [$2], [$3]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_NONNULL], [ ++ CC_CHECK_ATTRIBUTE( ++ [nonnull], [nonnull()], ++ [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }], ++ [$1], [$2]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_UNUSED], [ ++ CC_CHECK_ATTRIBUTE( ++ [unused], , ++ [void some_function(void *foo, __attribute__((unused)) void *bar);], ++ [$1], [$2]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [ ++ CC_CHECK_ATTRIBUTE( ++ [sentinel], , ++ [void some_function(void *foo, ...) __attribute__((sentinel));], ++ [$1], [$2]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [ ++ CC_CHECK_ATTRIBUTE( ++ [deprecated], , ++ [void some_function(void *foo, ...) __attribute__((deprecated));], ++ [$1], [$2]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_ALIAS], [ ++ CC_CHECK_ATTRIBUTE( ++ [alias], [weak, alias], ++ [void other_function(void *foo) { } ++ void some_function(void *foo) __attribute__((weak, alias("other_function")));], ++ [$1], [$2]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_MALLOC], [ ++ CC_CHECK_ATTRIBUTE( ++ [malloc], , ++ [void * __attribute__((malloc)) my_alloc(int n);], ++ [$1], [$2]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_PACKED], [ ++ CC_CHECK_ATTRIBUTE( ++ [packed], , ++ [struct astructure { char a; int b; long c; void *d; } __attribute__((packed));], ++ [$1], [$2]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_CONST], [ ++ CC_CHECK_ATTRIBUTE( ++ [const], , ++ [int __attribute__((const)) twopow(int n) { return 1 << n; } ], ++ [$1], [$2]) ++]) ++ ++AC_DEFUN([CC_FLAG_VISIBILITY], [ ++ AC_REQUIRE([CC_CHECK_WERROR]) ++ AC_CACHE_CHECK([if $CC supports -fvisibility=hidden], ++ [cc_cv_flag_visibility], ++ [cc_flag_visibility_save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $cc_cv_werror" ++ CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden], ++ cc_cv_flag_visibility='yes', ++ cc_cv_flag_visibility='no') ++ CFLAGS="$cc_flag_visibility_save_CFLAGS"]) ++ ++ AS_IF([test "x$cc_cv_flag_visibility" = "xyes"], ++ [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1, ++ [Define this if the compiler supports the -fvisibility flag]) ++ $1], ++ [$2]) ++]) ++ ++AC_DEFUN([CC_FUNC_EXPECT], [ ++ AC_REQUIRE([CC_CHECK_WERROR]) ++ AC_CACHE_CHECK([if compiler has __builtin_expect function], ++ [cc_cv_func_expect], ++ [ac_save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $cc_cv_werror" ++ AC_COMPILE_IFELSE([AC_LANG_SOURCE( ++ [int some_function() { ++ int a = 3; ++ return (int)__builtin_expect(a, 3); ++ }])], ++ [cc_cv_func_expect=yes], ++ [cc_cv_func_expect=no]) ++ CFLAGS="$ac_save_CFLAGS" ++ ]) ++ ++ AS_IF([test "x$cc_cv_func_expect" = "xyes"], ++ [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1, ++ [Define this if the compiler supports __builtin_expect() function]) ++ $1], ++ [$2]) ++]) ++ ++AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [ ++ AC_REQUIRE([CC_CHECK_WERROR]) ++ AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported], ++ [cc_cv_attribute_aligned], ++ [ac_save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $cc_cv_werror" ++ for cc_attribute_align_try in 64 32 16 8 4 2; do ++ AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ++ int main() { ++ static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0; ++ return c; ++ }])], [cc_cv_attribute_aligned=$cc_attribute_align_try; break]) ++ done ++ CFLAGS="$ac_save_CFLAGS" ++ ]) ++ ++ if test "x$cc_cv_attribute_aligned" != "x"; then ++ AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned], ++ [Define the highest alignment supported]) ++ fi ++]) +diff --git a/runpychecker.sh b/runpychecker.sh +index 407b7d6..64366fd 100755 +--- a/runpychecker.sh ++++ b/runpychecker.sh +@@ -5,4 +5,4 @@ pychecker --only --limit 1000 \ + --no-callinit --no-local --no-shadow --no-shadowbuiltin \ + --no-import --no-miximport --no-pkgimport --no-reimport \ + --no-argsused --no-varargsused --no-override \ +- fireinfo/*.py ++ src/fireinfo/*.py +diff --git a/sendprofile b/sendprofile +deleted file mode 100644 +index da480ce..0000000 +--- a/sendprofile ++++ /dev/null +@@ -1,132 +0,0 @@ +-#!/usr/bin/python +-############################################################################### +-# # +-# Fireinfo # +-# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # +-# # +-# This program is free software: you can redistribute it and/or modify # +-# it under the terms of the GNU General Public License as published by # +-# the Free Software Foundation, either version 3 of the License, or # +-# (at your option) any later version. # +-# # +-# This program is distributed in the hope that it will be useful, # +-# but WITHOUT ANY WARRANTY; without even the implied warranty of # +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +-# GNU General Public License for more details. # +-# # +-# You should have received a copy of the GNU General Public License # +-# along with this program. If not, see http://www.gnu.org/licenses/. # +-# # +-############################################################################### +- +-import json +-import logging +-import logging.handlers +-import os +-import sys +-import urllib +-import urllib2 +- +-import fireinfo +- +-ENABLED_FILE = "/var/ipfire/main/send_profile" +-PROXY_SETTINGS = "/var/ipfire/proxy/advanced/settings" +- +-log_level = logging.INFO +-if "-d" in sys.argv: +- log_level = logging.DEBUG +- +-# Setup logging +-log = logging.getLogger() +-log.setLevel(log_level) +-log.addHandler(logging.handlers.SysLogHandler("/dev/log")) +-log.addHandler(logging.StreamHandler(sys.stderr)) +-for handler in log.handlers: +- handler.setLevel(log_level) +- +-PROFILE_URL = "http://fireinfo.ipfire.org/send/%(public_id)s" +- +-def get_upstream_proxy(): +- if not os.path.exists(PROXY_SETTINGS): +- return {"host" : ""} +- +- proxy_settings = {} +- with open(PROXY_SETTINGS) as f: +- for line in f.readlines(): +- k, v = line.split("=", 1) +- proxy_settings[k] = v.strip() +- +- return { +- "host" : proxy_settings.get("UPSTREAM_PROXY", ""), +- "user" : proxy_settings.get("UPSTREAM_USER", ""), +- "pass" : proxy_settings.get("UPSTREAM_PASSWORD", ""), +- } +- +-def send_profile(profile): +- logging.debug("Sending profile:") +- for line in json.dumps(profile, sort_keys=True, indent=4).splitlines(): +- logging.debug(line) +- +- request = urllib2.Request(PROFILE_URL % profile, +- data = urllib.urlencode({"profile" : json.dumps(profile)}), +- ) +- request.add_header("User-Agent", "fireinfo/%s" % fireinfo.__version__) +- +- # Set upstream proxy if we have one. +- # XXX this cannot handle authentication +- proxy = get_upstream_proxy() +- if proxy["host"]: +- request.set_proxy(proxy["host"], "http") +- +- try: +- urllib2.urlopen(request, timeout=60) +- except (urllib2.HTTPError, urllib2.URLError), e: +- reason = "Unknown reason" +- +- if isinstance(e, urllib2.HTTPError): +- reason = "%s" % e +- elif isinstance(e, urllib2.URLError): +- reason = e.reason +- +- logging.error("Profile was not sent propertly: %s" % reason) +- return +- +- logging.debug("Profile was sent successfully.") +- +-def main(): +- # Collect system information +- system = fireinfo.System() +- profile = system.profile() +- +- # If --dump is passed -> only dump the output. +- if "--dump" in sys.argv: +- # Remove the private id when dumping the profile because +- # it contains no information and may confuse people. +- del profile["private_id"] +- +- print json.dumps(profile, sort_keys=True, indent=4) +- return 0 +- +- if "--secret-id" in sys.argv: +- print system.secret_id +- return 0 +- +- if "--hardware-string" in sys.argv: +- print system._unique_id +- return 0 +- +- if "--public-id" in sys.argv: +- print system.public_id +- return 0 +- +- if not os.path.exists(ENABLED_FILE): +- del profile["profile"] +- +- try: +- send_profile(profile) +- except urllib2.URLError: +- return 1 +- +- return 0 +- +-sys.exit(main()) +diff --git a/setup.py b/setup.py +deleted file mode 100644 +index 8149f0a..0000000 +--- a/setup.py ++++ /dev/null +@@ -1,37 +0,0 @@ +-#!/usr/bin/python +-############################################################################### +-# # +-# Fireinfo # +-# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # +-# # +-# This program is free software: you can redistribute it and/or modify # +-# it under the terms of the GNU General Public License as published by # +-# the Free Software Foundation, either version 3 of the License, or # +-# (at your option) any later version. # +-# # +-# This program is distributed in the hope that it will be useful, # +-# but WITHOUT ANY WARRANTY; without even the implied warranty of # +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +-# GNU General Public License for more details. # +-# # +-# You should have received a copy of the GNU General Public License # +-# along with this program. If not, see http://www.gnu.org/licenses/. # +-# # +-############################################################################### +- +-from distutils.core import setup, Extension +- +-setup( +- name = "fireinfo", +- version = "2.1.7", +- description = "Hardware information gathering library.", +- license = "GPLv3", +- author = "IPFire.org Team", +- author_email = "info@ipfire.org", +- url = "https://bugzilla.ipfire.org/describecomponents.cgi?product=Fireinfo", +- ext_modules = [ +- Extension("_fireinfo", ["src/fireinfo.c"]) +- ], +- packages = ["fireinfo"], +- scripts = ["sendprofile"], +-) +diff --git a/src/_fireinfo/fireinfo.c b/src/_fireinfo/fireinfo.c +new file mode 100644 +index 0000000..08d714b +--- /dev/null ++++ b/src/_fireinfo/fireinfo.c +@@ -0,0 +1,231 @@ ++/* ++ * Fireinfo ++ * Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see http://www.gnu.org/licenses/. ++ */ ++ ++#include <Python.h> ++ ++#include <errno.h> ++#include <fcntl.h> ++#include <linux/hdreg.h> ++#include <stdbool.h> ++#include <string.h> ++#include <sys/ioctl.h> ++ ++/* hypervisor vendors */ ++enum hypervisors { ++ HYPER_NONE = 0, ++ HYPER_XEN, ++ HYPER_KVM, ++ HYPER_MSHV, ++ HYPER_VMWARE, ++ HYPER_OTHER, ++ HYPER_LAST /* for loop - must be last*/ ++}; ++ ++const char *hypervisor_ids[] = { ++ [HYPER_NONE] = NULL, ++ [HYPER_XEN] = "XenVMMXenVMM", ++ [HYPER_KVM] = "KVMKVMKVM", ++ /* http://msdn.microsoft.com/en-us/library/ff542428.aspx */ ++ [HYPER_MSHV] = "Microsoft Hv", ++ /* http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd... */ ++ [HYPER_VMWARE] = "VMwareVMware", ++ [HYPER_OTHER] = NULL ++}; ++ ++const char *hypervisor_vendors[] = { ++ [HYPER_NONE] = NULL, ++ [HYPER_XEN] = "Xen", ++ [HYPER_KVM] = "KVM", ++ [HYPER_MSHV] = "Microsoft", ++ [HYPER_VMWARE] = "VMWare", ++ [HYPER_OTHER] = "other" ++}; ++ ++#define NEWLINE "\n\r" ++ ++char *truncate_nl(char *s) { ++ assert(s); ++ ++ s[strcspn(s, NEWLINE)] = 0; ++ return s; ++} ++ ++int read_one_line_file(const char *filename, char **line) { ++ assert(filename); ++ assert(line); ++ ++ FILE *f = NULL; ++ f = fopen(filename, "re"); ++ if (!f) ++ return -errno; ++ ++ char t[2048]; ++ if (!fgets(t, sizeof(t), f)) { ++ if (ferror(f)) ++ return errno ? -errno : -EIO; ++ ++ t[0] = 0; ++ } ++ ++ char *c = strdup(t); ++ if (!c) ++ return -ENOMEM; ++ truncate_nl(c); ++ ++ *line = c; ++ return 0; ++} ++ ++/* ++ * This CPUID leaf returns the information about the hypervisor. ++ * EAX : maximum input value for CPUID supported by the hypervisor. ++ * EBX, ECX, EDX : Hypervisor vendor ID signature. E.g. VMwareVMware. ++ */ ++#define HYPERVISOR_INFO_LEAF 0x40000000 ++ ++int detect_hypervisor(int *hypervisor) { ++#if defined(__x86_64__) || defined(__i386__) ++ /* Try high-level hypervisor sysfs file first: */ ++ char *hvtype = NULL; ++ int r = read_one_line_file("/sys/hypervisor/type", &hvtype); ++ if (r >= 0) { ++ if (strcmp(hvtype, "xen") == 0) { ++ *hypervisor = HYPER_XEN; ++ return 1; ++ } ++ } else if (r != -ENOENT) ++ return r; ++ ++ /* http://lwn.net/Articles/301888/ */ ++ ++#if defined(__amd64__) ++#define REG_a "rax" ++#define REG_b "rbx" ++#elif defined(__i386__) ++#define REG_a "eax" ++#define REG_b "ebx" ++#endif ++ ++ uint32_t eax = 1; ++ uint32_t ecx; ++ union { ++ uint32_t sig32[3]; ++ char text[13]; ++ } sig = {}; ++ ++ __asm__ __volatile__ ( ++ /* ebx/rbx is being used for PIC! */ ++ " push %%"REG_b" \n\t" ++ " cpuid \n\t" ++ " pop %%"REG_b" \n\t" ++ ++ : "=a" (eax), "=c" (ecx) ++ : "0" (eax) ++ ); ++ ++ bool has_hypervisor = !!(ecx & 0x80000000U); ++ ++ if (has_hypervisor) { ++ /* There is a hypervisor, see what it is... */ ++ eax = 0x40000000U; ++ __asm__ __volatile__ ( ++ " push %%"REG_b" \n\t" ++ " cpuid \n\t" ++ " mov %%ebx, %1 \n\t" ++ " pop %%"REG_b" \n\t" ++ ++ : "=a" (eax), "=r" (sig.sig32[0]), "=c" (sig.sig32[1]), "=d" (sig.sig32[2]) ++ : "0" (eax) ++ ); ++ sig.text[12] = '\0'; ++ ++ *hypervisor = HYPER_OTHER; ++ ++ int id; ++ for (id = HYPER_NONE + 1; id < HYPER_LAST; id++) { ++ if (strcmp(hypervisor_ids[id], sig.text) == 0) { ++ *hypervisor = id; ++ break; ++ } ++ } ++ ++ return 1; ++ } ++#endif ++ return 0; ++} ++ ++ ++static PyObject * ++do_detect_hypervisor() { ++ /* ++ Get hypervisor from the cpuid command. ++ */ ++ int hypervisor = HYPER_NONE; ++ ++ int r = detect_hypervisor(&hypervisor); ++ if (r >= 1) { ++ const char* hypervisor_vendor = hypervisor_vendors[hypervisor]; ++ if (!hypervisor_vendor) ++ Py_RETURN_NONE; ++ ++ return PyString_FromString(hypervisor_vendor); ++ } ++ ++ Py_RETURN_NONE; ++} ++ ++static PyObject * ++do_get_harddisk_serial(PyObject *o, PyObject *args) { ++ /* ++ Python wrapper around read_harddisk_serial. ++ */ ++ static struct hd_driveid hd; ++ int fd; ++ char *device; ++ ++ if (!PyArg_ParseTuple(args, "s", &device)) ++ return NULL; ++ ++ if ((fd = open(device, O_RDONLY | O_NONBLOCK)) < 0) ++ return NULL; ++ ++ if (!ioctl(fd, HDIO_GET_IDENTITY, &hd)) { ++ char serial[21]; ++ strncpy(serial, (const char *)hd.serial_no, sizeof(serial)); ++ ++ if (serial[0]) ++ return PyString_FromString(serial); ++ } ++ ++ Py_RETURN_NONE; ++} ++ ++static PyMethodDef fireinfoModuleMethods[] = { ++ { "detect_hypervisor", (PyCFunction) do_detect_hypervisor, METH_NOARGS, NULL }, ++ { "get_harddisk_serial", (PyCFunction) do_get_harddisk_serial, METH_VARARGS, NULL }, ++ { NULL, NULL, 0, NULL } ++}; ++ ++void init_fireinfo(void) { ++ PyObject *m; ++ ++ m = Py_InitModule("_fireinfo", fireinfoModuleMethods); ++ if (m == NULL) ++ return; ++} +diff --git a/src/fireinfo.c b/src/fireinfo.c +deleted file mode 100644 +index 25b5333..0000000 +--- a/src/fireinfo.c ++++ /dev/null +@@ -1,427 +0,0 @@ +-/* +- * Fireinfo +- * Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 3 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program. If not, see http://www.gnu.org/licenses/. +- */ +- +-#include <Python.h> +- +-#include <fcntl.h> +-#include <linux/hdreg.h> +-#include <stdbool.h> +-#include <sys/ioctl.h> +- +-/* +- Big parts of this were taken from +- http://git.kernel.org/?p=utils/util-linux-ng/util-linux-ng.git;a=blob;f=sys-... +-*/ +- +-/* /sys paths */ +-#define _PATH_PROC_XEN "/proc/xen" +-#define _PATH_PROC_XENCAP _PATH_PROC_XEN "/capabilities" +-#define _PATH_PROC_PCIDEVS "/proc/bus/pci/devices" +- +-/* Used for the vmware hypervisor port detection */ +-#define VMWARE_HYPERVISOR_MAGIC 0x564D5868 +-#define VMWARE_HYPERVISOR_PORT 0x5658 +- +-#define VMWARE_PORT_CMD_GETVERSION 10 +- +-/* virtualization types */ +-enum { +- VIRT_NONE = 0, +- VIRT_PARA, +- VIRT_FULL +-}; +-const char *virt_types[] = { +- [VIRT_NONE] = "none", +- [VIRT_PARA] = "para", +- [VIRT_FULL] = "full" +-}; +- +-/* hypervisor vendors */ +-enum { +- HYPER_NONE = 0, +- HYPER_XEN, +- HYPER_KVM, +- HYPER_MSHV, +- HYPER_VMWARE +-}; +-const char *hv_vendors[] = { +- [HYPER_NONE] = NULL, +- [HYPER_XEN] = "Xen", +- [HYPER_KVM] = "KVM", +- [HYPER_MSHV] = "Microsoft", +- [HYPER_VMWARE] = "VMWare" +-}; +- +-struct hypervisor_desc { +- int hyper; /* hypervisor vendor ID */ +- int virtype; /* VIRT_PARA|FULL|NONE ? */ +-}; +- +-static size_t sysrootlen; +-static char pathbuf[PATH_MAX]; +- +-static FILE *path_fopen(const char *mode, const char *path, ...) +- __attribute__ ((__format__ (__printf__, 2, 3))); +-static int path_exist(const char *path, ...) +- __attribute__ ((__format__ (__printf__, 1, 2))); +- +-static const char * +-path_vcreate(const char *path, va_list ap) +-{ +- if (sysrootlen) +- vsnprintf(pathbuf + sysrootlen, +- sizeof(pathbuf) - sysrootlen, path, ap); +- else +- vsnprintf(pathbuf, sizeof(pathbuf), path, ap); +- return pathbuf; +-} +- +-static FILE * +-path_vfopen(const char *mode, const char *path, va_list ap) +-{ +- const char *p = path_vcreate(path, ap); +- +- return fopen(p, mode); +-} +- +-static FILE * +-path_fopen(const char *mode, const char *path, ...) +-{ +- FILE *fd; +- va_list ap; +- +- va_start(ap, path); +- fd = path_vfopen(mode, path, ap); +- va_end(ap); +- +- return fd; +-} +- +-static int +-path_exist(const char *path, ...) +-{ +- va_list ap; +- const char *p; +- +- va_start(ap, path); +- p = path_vcreate(path, ap); +- va_end(ap); +- +- return access(p, F_OK) == 0; +-} +- +-static int +-has_pci_device(int vendor, int device) +-{ +- FILE *f; +- int num, fn, ven, dev; +- int res = 1; +- +- f = path_fopen("r", _PATH_PROC_PCIDEVS); +- if (!f) +- return 0; +- +- /* for more details about bus/pci/devices format see +- * drivers/pci/proc.c in linux kernel +- */ +- while(fscanf(f, "%02x%02x\t%04x%04x\t%*[^\n]", +- &num, &fn, &ven, &dev) == 4) { +- +- if (ven == vendor && dev == device) +- goto found; +- } +- +- res = 0; +-found: +- fclose(f); +- return res; +-} +- +-#if defined(__x86_64__) || defined(__i386__) +- +-/* +- * This CPUID leaf returns the information about the hypervisor. +- * EAX : maximum input value for CPUID supported by the hypervisor. +- * EBX, ECX, EDX : Hypervisor vendor ID signature. E.g. VMwareVMware. +- */ +-#define HYPERVISOR_INFO_LEAF 0x40000000 +- +-static inline void +-cpuid(unsigned int op, unsigned int *eax, unsigned int *ebx, +- unsigned int *ecx, unsigned int *edx) +-{ +- __asm__( +-#if defined(__PIC__) && defined(__i386__) +- /* x86 PIC cannot clobber ebx -- gcc bitches */ +- "pushl %%ebx;" +- "cpuid;" +- "movl %%ebx, %%esi;" +- "popl %%ebx;" +- : "=S" (*ebx), +-#else +- "cpuid;" +- : "=b" (*ebx), +-#endif +- "=a" (*eax), +- "=c" (*ecx), +- "=d" (*edx) +- : "1" (op), "c"(0)); +-} +- +-static void +-read_hypervisor_cpuid(struct hypervisor_desc *desc) +-{ +- unsigned int eax = 0, ebx = 0, ecx = 0, edx = 0; +- char hyper_vendor_id[13]; +- +- memset(hyper_vendor_id, 0, sizeof(hyper_vendor_id)); +- +- cpuid(HYPERVISOR_INFO_LEAF, &eax, &ebx, &ecx, &edx); +- memcpy(hyper_vendor_id + 0, &ebx, 4); +- memcpy(hyper_vendor_id + 4, &ecx, 4); +- memcpy(hyper_vendor_id + 8, &edx, 4); +- hyper_vendor_id[12] = '\0'; +- +- if (!hyper_vendor_id[0]) +- return; +- +- if (!strncmp("XenVMMXenVMM", hyper_vendor_id, 12)) +- desc->hyper = HYPER_XEN; +- else if (!strncmp("KVMKVMKVM", hyper_vendor_id, 9)) +- desc->hyper = HYPER_KVM; +- else if (!strncmp("Microsoft Hv", hyper_vendor_id, 12)) +- desc->hyper = HYPER_MSHV; +- else if (!strncmp("VMwareVMware", hyper_vendor_id, 12)) +- desc->hyper = HYPER_VMWARE; +-} +- +-#else /* ! __x86_64__ */ +-static void +-read_hypervisor_cpuid(struct hypervisor_desc *desc) +-{ +-} +-#endif +- +-static void +-read_hypervisor(struct hypervisor_desc *desc) +-{ +- read_hypervisor_cpuid(desc); +- +- if (desc->hyper) +- /* hvm */ +- desc->virtype = VIRT_FULL; +- +- else if (path_exist(_PATH_PROC_XEN)) { +- /* Xen para-virt or dom0 */ +- FILE *fd = path_fopen("r", _PATH_PROC_XENCAP); +- int dom0 = 0; +- +- if (fd) { +- char buf[256]; +- +- if (fscanf(fd, "%s", buf) == 1 && +- !strcmp(buf, "control_d")) +- dom0 = 1; +- fclose(fd); +- } +- desc->virtype = dom0 ? VIRT_NONE : VIRT_PARA; +- desc->hyper = HYPER_XEN; +- +- } else if (has_pci_device(0x5853, 0x0001)) { +- /* Xen full-virt on non-x86_64 */ +- desc->hyper = HYPER_XEN; +- desc->virtype = VIRT_FULL; +- } +-} +- +-static void +-read_harddisk_serial(char *device, char *serial) { +- static struct hd_driveid hd; +- int fd; +- +- if ((fd = open(device, O_RDONLY | O_NONBLOCK)) < 0) { +- return; +- } +- +- if (!ioctl(fd, HDIO_GET_IDENTITY, &hd)) { +- strncpy(serial, (const char *)hd.serial_no, 20); +- } +-} +- +-#if defined(__x86_64__) || defined(__i386__) +-static bool +-is_virtualized() { +- unsigned int eax, ebx, ecx, edx; +- +- cpuid(0x1, &eax, &ebx, &ecx, &edx); +- +- /* +- Bitwise detection of the 31st bit. +- This indicates if a host runs in a virtual environment. +- */ +- if (ecx & (1<<31)) +- return true; +- +- return false; +-} +- +-void +-hypervisor_port(unsigned int cmd, unsigned int *eax, unsigned int *ebx, +- unsigned int *ecx, unsigned int *edx) +-{ +- __asm__( +-#if defined(__PIC__) && defined(__i386__) +- /* x86 PIC really cannot clobber ebx */ +- "pushl %%ebx;" +- "inl (%%dx);" +- "movl %%ebx, %%esi;" +- "popl %%ebx;" +- : "=S" (*ebx), +-#else +- "inl (%%dx);" +- : "=b" (*ebx), +-#endif +- "=a" (*eax), +- "=c" (*ecx), +- "=d" (*edx) +- : "0" (VMWARE_HYPERVISOR_MAGIC), +- "1" (cmd), +- "2" (VMWARE_HYPERVISOR_PORT), +- "3" (UINT_MAX) +- : "memory" +- ); +-} +-#else +-static bool +-is_virtualized() { +- /* +- Always return false, because other architectures +- do not support the virtualization bit. +- */ +- return false; +-} +- +-void +-hypervisor_port(unsigned int cmd, unsigned int *eax, unsigned int *ebx, +- unsigned int *ecx, unsigned int *edx) +-{ +-} +-#endif +- +-int +-hypervisor_port_check(void) { +- uint32_t eax, ebx, ecx, edx; +- +- hypervisor_port(VMWARE_PORT_CMD_GETVERSION, &eax, &ebx, &ecx, &edx); +- +- if (ebx == VMWARE_HYPERVISOR_MAGIC) +- return 1; // Success - running under VMware +- else +- return 0; +-} +- +-static PyObject * +-do_get_hypervisor() { +- /* +- Get hypervisor from the cpuid command. +- */ +- struct hypervisor_desc _desc, *desc = &_desc; +- memset(desc, 0, sizeof(*desc)); +- +- read_hypervisor(desc); +- +- PyObject *d = PyDict_New(); +- PyObject *o; +- +- /* Hypervisor */ +- if (desc->hyper == HYPER_NONE) { +- o = Py_None; +- } else { +- o = PyString_FromString((const char *)hv_vendors[desc->hyper]); +- } +- PyDict_SetItemString(d, "hypervisor", o); +- +- /* Virtualization type */ +- if (desc->virtype == VIRT_NONE) { +- o = Py_None; +- } else { +- o = PyString_FromString((const char *)virt_types[desc->virtype]); +- } +- PyDict_SetItemString(d, "virtype", o); +- +- return d; +-} +- +-static PyObject * +-do_is_virtualized() { +- /* +- Python wrapper around is_virtualized(). +- */ +- +- if (is_virtualized()) +- return Py_True; +- +- return Py_False; +-} +- +-static PyObject * +-do_get_harddisk_serial(PyObject *o, PyObject *args) { +- /* +- Python wrapper around read_harddisk_serial. +- */ +- +- char serial[21]; +- memset(serial, 0, sizeof(serial)); +- +- char *device; +- if (!PyArg_ParseTuple(args, "s", &device)) +- return NULL; +- +- read_harddisk_serial(device, serial); +- +- if (serial[0]) +- return PyString_FromString(serial); +- +- return Py_None; +-} +- +-static PyObject * +-do_hypervisor_port_check() { +- /* +- Python wrapper around hypervisor_port_check(). +- */ +- +- if (hypervisor_port_check()) +- return Py_True; +- +- return Py_False; +-} +- +-static PyMethodDef fireinfoModuleMethods[] = { +- { "get_hypervisor", (PyCFunction) do_get_hypervisor, METH_NOARGS, NULL }, +- { "is_virtualized", (PyCFunction) do_is_virtualized, METH_NOARGS, NULL }, +- { "get_harddisk_serial", (PyCFunction) do_get_harddisk_serial, METH_VARARGS, NULL }, +- { "vmware_hypervisor_port_check", (PyCFunction) do_hypervisor_port_check, METH_NOARGS, NULL }, +- { NULL, NULL, 0, NULL } +-}; +- +-void init_fireinfo(void) { +- PyObject *m; +- +- m = Py_InitModule("_fireinfo", fireinfoModuleMethods); +-} +diff --git a/src/fireinfo/__init__.py.in b/src/fireinfo/__init__.py.in +new file mode 100644 +index 0000000..05c520e +--- /dev/null ++++ b/src/fireinfo/__init__.py.in +@@ -0,0 +1,24 @@ ++#!/usr/bin/python ++############################################################################### ++# # ++# Fireinfo # ++# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # ++# # ++# This program is free software: you can redistribute it and/or modify # ++# it under the terms of the GNU General Public License as published by # ++# the Free Software Foundation, either version 3 of the License, or # ++# (at your option) any later version. # ++# # ++# This program is distributed in the hope that it will be useful, # ++# but WITHOUT ANY WARRANTY; without even the implied warranty of # ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # ++# GNU General Public License for more details. # ++# # ++# You should have received a copy of the GNU General Public License # ++# along with this program. If not, see http://www.gnu.org/licenses/. # ++# # ++############################################################################### ++ ++__version__ = "@PACKAGE_VERSION@" ++ ++from system import System +diff --git a/src/fireinfo/bios.py b/src/fireinfo/bios.py +new file mode 100644 +index 0000000..56e3af0 +--- /dev/null ++++ b/src/fireinfo/bios.py +@@ -0,0 +1,50 @@ ++#!/usr/bin/python ++############################################################################### ++# # ++# Fireinfo # ++# Copyright (C) 2013 IPFire Team (www.ipfire.org) # ++# # ++# This program is free software: you can redistribute it and/or modify # ++# it under the terms of the GNU General Public License as published by # ++# the Free Software Foundation, either version 3 of the License, or # ++# (at your option) any later version. # ++# # ++# This program is distributed in the hope that it will be useful, # ++# but WITHOUT ANY WARRANTY; without even the implied warranty of # ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # ++# GNU General Public License for more details. # ++# # ++# You should have received a copy of the GNU General Public License # ++# along with this program. If not, see http://www.gnu.org/licenses/. # ++# # ++############################################################################### ++ ++import os.path ++ ++DMI_VENDORS = [ ++ "/sys/class/dmi/id/sys_vendor", ++ "/sys/class/dmi/id/board_vendor", ++ "/sys/class/dmi/id/bios_vendor", ++] ++ ++class BIOS(object): ++ def __init__(self, system): ++ self.system = system ++ ++ def check_vendor(self, vendor, startswith=True): ++ for file in DMI_VENDORS: ++ if not os.path.exists(file): ++ continue ++ ++ with open(file, "r") as f: ++ v = f.read() ++ ++ # Strip the vendor string. ++ v = v.strip() ++ ++ if startswith and v.startswith(vendor): ++ return True ++ elif v == vendor: ++ return True ++ ++ return False +diff --git a/src/fireinfo/cpu.py b/src/fireinfo/cpu.py +new file mode 100644 +index 0000000..32d885d +--- /dev/null ++++ b/src/fireinfo/cpu.py +@@ -0,0 +1,194 @@ ++#!/usr/bin/python ++############################################################################### ++# # ++# Fireinfo # ++# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # ++# # ++# This program is free software: you can redistribute it and/or modify # ++# it under the terms of the GNU General Public License as published by # ++# the Free Software Foundation, either version 3 of the License, or # ++# (at your option) any later version. # ++# # ++# This program is distributed in the hope that it will be useful, # ++# but WITHOUT ANY WARRANTY; without even the implied warranty of # ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # ++# GNU General Public License for more details. # ++# # ++# You should have received a copy of the GNU General Public License # ++# along with this program. If not, see http://www.gnu.org/licenses/. # ++# # ++############################################################################### ++ ++import os ++ ++import system ++ ++PROC_CPUINFO = "/proc/cpuinfo" ++ ++class CPU(object): ++ """ ++ A class that represents the first CPU in a system. ++ ++ We get all information form the first CPU (or core) and assume that ++ all other ones are equal. ++ """ ++ ++ __cpuinfo = {} ++ ++ def __init__(self): ++ """ ++ Initialize this class by reading all data from /proc/cpuinfo. ++ """ ++ self.__cpuinfo = self.read_cpuinfo() ++ ++ @property ++ def system(self): ++ return system.System() ++ ++ @staticmethod ++ def read_cpuinfo(): ++ """ ++ Read information from PROC_CPUINFO and store ++ it into a dictionary cpuinfo. ++ """ ++ cpuinfo = {} ++ ++ f = open(PROC_CPUINFO) ++ while True: ++ line = f.readline() ++ ++ if not line: ++ break ++ ++ try: ++ key, val = line.split(":", 1) ++ except ValueError: ++ # We got a line without key, pass that. ++ pass ++ ++ key = key.strip().replace(" ", "_") ++ val = val.strip() ++ ++ cpuinfo[key] = val ++ ++ f.close() ++ ++ return cpuinfo ++ ++ @property ++ def bogomips(self): ++ """ ++ Return the bogomips of this CPU. ++ """ ++ try: ++ bogomips = self.__cpuinfo["bogomips"] ++ except KeyError: ++ bogomips = self.__cpuinfo["BogoMIPS"] ++ ++ return float(bogomips) ++ ++ @property ++ def model(self): ++ """ ++ Return the model id of this CPU. ++ """ ++ try: ++ model = int(self.__cpuinfo["model"]) ++ except KeyError: ++ model = None ++ ++ return model ++ ++ @property ++ def model_string(self): ++ """ ++ Return the model string of this CPU. ++ """ ++ try: ++ return self.__cpuinfo["model_name"] ++ except KeyError: ++ return self.__cpuinfo["Processor"] ++ ++ @property ++ def vendor(self): ++ """ ++ Return the vendor string of this CPU. ++ """ ++ try: ++ vendor = self.__cpuinfo["vendor_id"] ++ except KeyError: ++ if self.system.arch.startswith("arm"): ++ vendor = "ARM" ++ else: ++ vendor = "" ++ ++ return vendor ++ ++ @property ++ def stepping(self): ++ """ ++ Return the stepping id of this CPU. ++ """ ++ try: ++ stepping = int(self.__cpuinfo["stepping"]) ++ except KeyError: ++ stepping = None ++ ++ return stepping ++ ++ @property ++ def flags(self): ++ """ ++ Return all flags of this CPU. ++ """ ++ try: ++ flags = self.__cpuinfo["flags"] ++ except KeyError: ++ flags = self.__cpuinfo["Features"] ++ ++ return flags.split() ++ ++ @property ++ def speed(self): ++ """ ++ Return the speed (in MHz) of this CPU. ++ """ ++ try: ++ speed = float(self.__cpuinfo["cpu_MHz"]) ++ except KeyError: ++ speed = 0 ++ ++ return speed ++ ++ @property ++ def family(self): ++ """ ++ Return the family id of this CPU. ++ """ ++ try: ++ family = int(self.__cpuinfo["cpu_family"]) ++ except KeyError: ++ family = None ++ ++ return family ++ ++ @property ++ def count(self): ++ """ ++ Count number of CPUs (cores). ++ """ ++ return os.sysconf("SC_NPROCESSORS_ONLN") ++ ++ ++if __name__ == "__main__": ++ c = CPU() ++ ++ print "Vendor:", c.vendor ++ print "Model:", c.model ++ print "Stepping:", c.stepping ++ print "Flags:", c.flags ++ print "Bogomips:", c.bogomips ++ print "Speed:", c.speed ++ print "Family:", c.family ++ print "Count:", c.count ++ print "Model string:", c.model_string +diff --git a/src/fireinfo/device.py b/src/fireinfo/device.py +new file mode 100644 +index 0000000..01338b2 +--- /dev/null ++++ b/src/fireinfo/device.py +@@ -0,0 +1,133 @@ ++#!/usr/bin/python ++############################################################################### ++# # ++# Fireinfo # ++# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # ++# # ++# This program is free software: you can redistribute it and/or modify # ++# it under the terms of the GNU General Public License as published by # ++# the Free Software Foundation, either version 3 of the License, or # ++# (at your option) any later version. # ++# # ++# This program is distributed in the hope that it will be useful, # ++# but WITHOUT ANY WARRANTY; without even the implied warranty of # ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # ++# GNU General Public License for more details. # ++# # ++# You should have received a copy of the GNU General Public License # ++# along with this program. If not, see http://www.gnu.org/licenses/. # ++# # ++############################################################################### ++ ++import os.path ++ ++class Device(object): ++ """ ++ This is an abstract class that represents all devices in the system. ++ Every single device has its own instance of this class. ++ """ ++ ++ def __init__(self, path): ++ """ ++ Collect all information about the device by reading the ++ "uevent" file and parsing it. ++ """ ++ ++ # Save the path in /sys to the device. ++ self.path = path ++ ++ # Datastructure to store information we read. ++ self._uevent = {} ++ ++ # Open the uevent file and parse all lines. ++ with open(os.path.join(path, "uevent")) as f: ++ for line in f.readlines(): ++ key, val = line.split("=") ++ self._uevent[key] = val.rstrip().lower() ++ ++ @property ++ def driver(self): ++ """ ++ Get the driver/kernel module that device is driven by or return None. ++ """ ++ return self._uevent.get("DRIVER", None) ++ ++ ++class PCIDevice(Device): ++ """ ++ A class that represents all PCI (and PCIe) devices in a system. ++ """ ++ ++ subsystem = "pci" ++ ++ @property ++ def model(self): ++ """ ++ Return the PCI model id of this device. ++ """ ++ return self._uevent['PCI_ID'].split(":")[1] ++ ++ @property ++ def vendor(self): ++ """ ++ Return the PCI vendor id of this device. ++ """ ++ return self._uevent['PCI_ID'].split(":")[0] ++ ++ @property ++ def deviceclass(self): ++ """ ++ Return the PCI device class of this device. ++ """ ++ return self._uevent['PCI_CLASS'] ++ ++ @property ++ def sub_vendor(self): ++ """ ++ Return the PCI vendor sub id of this device. ++ """ ++ return self._uevent["PCI_SUBSYS_ID"].split(":")[0] ++ ++ @property ++ def sub_model(self): ++ """ ++ Return the PCI model sub id of this device. ++ """ ++ return self._uevent["PCI_SUBSYS_ID"].split(":")[1] ++ ++ ++class USBDevice(Device): ++ """ ++ A class that represents all USB devices in a system. ++ """ ++ ++ subsystem = "usb" ++ ++ def pad(self, s): ++ """ ++ A function to pad ids that have no leading zeroes. ++ """ ++ while len(s) < 4: ++ s = "0"+s ++ return s ++ ++ @property ++ def vendor(self): ++ """ ++ Return the USB vendor id of this device. ++ """ ++ return self.pad(self._uevent['PRODUCT'].split("/")[0]) ++ ++ @property ++ def model(self): ++ """ ++ Return the USB model id of this device. ++ """ ++ return self.pad(self._uevent['PRODUCT'].split("/")[1]) ++ ++ @property ++ def deviceclass(self): ++ """ ++ Return the USB device class of this device. ++ """ ++ return self._uevent.get("INTERFACE", None) +diff --git a/src/fireinfo/hypervisor.py b/src/fireinfo/hypervisor.py +new file mode 100644 +index 0000000..0c07cfa +--- /dev/null ++++ b/src/fireinfo/hypervisor.py +@@ -0,0 +1,119 @@ ++#!/usr/bin/python ++############################################################################### ++# # ++# Fireinfo # ++# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # ++# # ++# This program is free software: you can redistribute it and/or modify # ++# it under the terms of the GNU General Public License as published by # ++# the Free Software Foundation, either version 3 of the License, or # ++# (at your option) any later version. # ++# # ++# This program is distributed in the hope that it will be useful, # ++# but WITHOUT ANY WARRANTY; without even the implied warranty of # ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # ++# GNU General Public License for more details. # ++# # ++# You should have received a copy of the GNU General Public License # ++# along with this program. If not, see http://www.gnu.org/licenses/. # ++# # ++############################################################################### ++ ++import _fireinfo ++import system ++ ++class Hypervisor(object): ++ def __init__(self): ++ self.__hypervisor = _fireinfo.detect_hypervisor() ++ ++ @property ++ def system(self): ++ """ ++ Return the current instance of the System class. ++ ++ We need to do that as a property because otherwise ++ we get a recursion. ++ """ ++ return system.System() ++ ++ @property ++ def vendor(self): ++ """ ++ Returns the name of the hypervisor vendor. ++ """ ++ # Citrix Xen says it is Microsoft Hv. ++ if self.__hypervisor == "Microsoft" and self.system.bios_vendor == "Xen": ++ return "Xen" ++ ++ # Some of the hypervisors can be detected in a right way. ++ # We can return them at this place. ++ if self.__hypervisor: ++ return self.__hypervisor ++ ++ # Check DMI and BIOS information... ++ if self.__bios_is_bochs(): ++ return "Bochs" ++ elif self.__bios_is_microsoft(): ++ return "Microsoft" ++ elif self.__bios_is_qemu(): ++ return "Qemu" ++ elif self.__bios_is_virtualbox(): ++ return "VirtualBox" ++ elif self.__bios_is_vmware(): ++ return "VMWare" ++ elif self.__bios_is_xen(): ++ return "Xen" ++ ++ @property ++ def virtual(self): ++ """ ++ Returns true if the host is running in a virtual environment. ++ Otherwise: false. ++ """ ++ if self.vendor: ++ return True ++ ++ return False ++ ++ def __bios_is_bochs(self): ++ """ ++ Check for Bochs emulator. ++ """ ++ return self.system.bios.check_vendor("Bochs") ++ ++ def __bios_is_microsoft(self): ++ """ ++ Check for Microsoft hypervisor. ++ """ ++ return self.system.bios.check_vendor("Microsoft Corporation") ++ ++ def __bios_is_qemu(self): ++ """ ++ Check for qemu emulator. ++ """ ++ return self.system.bios.check_vendor("QEMU") ++ ++ def __bios_is_virtualbox(self): ++ """ ++ Check for virtualbox hypervisor by comparing the bios vendor string ++ to "innotek GmbH". ++ """ ++ return self.system.bios.check_vendor("innotek GmbH") ++ ++ def __bios_is_vmware(self): ++ if self.system.bios.check_vendor("VMware-"): ++ return True ++ elif self.system.bios.check_vendor("VMW"): ++ return True ++ ++ return False ++ ++ def __bios_is_xen(self): ++ return self.system.bios.check_vendor("Xen") ++ ++ ++if __name__ == "__main__": ++ h = Hypervisor() ++ ++ print "Vendor:", h.vendor ++ print "Virtual:", h.virtual +diff --git a/src/fireinfo/network.py b/src/fireinfo/network.py +new file mode 100644 +index 0000000..063e9ec +--- /dev/null ++++ b/src/fireinfo/network.py +@@ -0,0 +1,53 @@ ++#!/usr/bin/python ++############################################################################### ++# # ++# Fireinfo # ++# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # ++# # ++# This program is free software: you can redistribute it and/or modify # ++# it under the terms of the GNU General Public License as published by # ++# the Free Software Foundation, either version 3 of the License, or # ++# (at your option) any later version. # ++# # ++# This program is distributed in the hope that it will be useful, # ++# but WITHOUT ANY WARRANTY; without even the implied warranty of # ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # ++# GNU General Public License for more details. # ++# # ++# You should have received a copy of the GNU General Public License # ++# along with this program. If not, see http://www.gnu.org/licenses/. # ++# # ++############################################################################### ++ ++import os ++ ++SYS_CLASS_NET = "/sys/class/net" ++ ++class Network(object): ++ def __init__(self): ++ self._devices = os.listdir(SYS_CLASS_NET) ++ ++ def has_green(self): ++ return "green0" in self._devices ++ ++ def has_red(self): ++ for i in ("red0", "ppp0"): ++ if i in self._devices: ++ return True ++ ++ return False ++ ++ def has_blue(self): ++ return "blue0" in self._devices ++ ++ def has_orange(self): ++ return "orange0" in self._devices ++ ++ ++if __name__ == "__main__": ++ n = Network() ++ ++ print "has_green", n.has_green() ++ print "has_red", n.has_red() ++ print "has_blue", n.has_blue() ++ print "has_orange", n.has_orange() +diff --git a/src/fireinfo/system.py b/src/fireinfo/system.py +new file mode 100644 +index 0000000..0a60bcc +--- /dev/null ++++ b/src/fireinfo/system.py +@@ -0,0 +1,451 @@ ++#!/usr/bin/python ++############################################################################### ++# # ++# Fireinfo # ++# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # ++# # ++# This program is free software: you can redistribute it and/or modify # ++# it under the terms of the GNU General Public License as published by # ++# the Free Software Foundation, either version 3 of the License, or # ++# (at your option) any later version. # ++# # ++# This program is distributed in the hope that it will be useful, # ++# but WITHOUT ANY WARRANTY; without even the implied warranty of # ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # ++# GNU General Public License for more details. # ++# # ++# You should have received a copy of the GNU General Public License # ++# along with this program. If not, see http://www.gnu.org/licenses/. # ++# # ++############################################################################### ++ ++import hashlib ++import json ++import os ++import string ++ ++import _fireinfo ++ ++import bios ++import cpu ++import device ++import hypervisor ++import network ++ ++PROFILE_VERSION = 0 ++ ++SYS_CLASS_DMI = "/sys/class/dmi/id" ++SECRET_ID_FILE = "/etc/fireinfo-id" ++ ++INVALID_ID_STRINGS = ( ++ "OEM", "O.E.M.", "o.e.m.", ++ "N/A", "n/a", ++ "12345", "54321", "202020", ++ "Chassis", "chassis", ++ "Not Applicable", ++ "None", "empty", ++ "01010101-0101-0101-0101-010101010101", ++ "00020003-0004-0005-0006-000700080009", ++ "03000200-0400-0500-0006-000700080009", ++ "0000000", "00000000", ++) ++ ++class Singleton(type): ++ def __init__(cls, name, bases, dict): ++ super(Singleton, cls).__init__(name, bases, dict) ++ cls.instance = None ++ ++ def __call__(cls, *args, **kw): ++ if cls.instance is None: ++ cls.instance = super(Singleton, cls).__call__(*args, **kw) ++ ++ return cls.instance ++ ++ ++def read_from_file(filename): ++ """ ++ Read all data from filename. ++ """ ++ if not os.path.exists(filename): ++ return ++ ++ try: ++ with open(filename) as f: ++ return f.read().strip() ++ except IOError: ++ pass ++ ++class System(object): ++ __metaclass__ = Singleton ++ ++ def __init__(self): ++ self.bios = bios.BIOS(self) ++ ++ # find all devices ++ self.devices = [] ++ self.scan() ++ self.cpu = cpu.CPU() ++ self.hypervisor = hypervisor.Hypervisor() ++ ++ # Read /proc/cpuinfo for vendor information. ++ self.__cpuinfo = self.cpu.read_cpuinfo() ++ ++ def profile(self): ++ p = {} ++ p["system"] = { ++ # System information ++ "model" : self.model, ++ "vendor" : self.vendor, ++ ++ # Indicator if the system is running in a ++ # virtual environment. ++ "virtual" : self.virtual, ++ ++ # System language ++ "language" : self.language, ++ ++ # Release information ++ "release" : self.release, ++ "kernel_release" : self.kernel_release, ++ ++ "memory" : self.memory, ++ "root_size" : self.root_size, ++ } ++ ++ p["devices"] = [] ++ for device in self.devices: ++ d = { ++ "subsystem" : device.subsystem.lower(), ++ "vendor" : device.vendor.lower(), ++ "model" : device.model.lower(), ++ "deviceclass" : device.deviceclass, ++ "driver" : device.driver, ++ } ++ ++ # PCI devices provide subsystem information, USB don't. ++ if d["subsystem"] == "pci": ++ d["sub_model"] = device.sub_model ++ d["sub_vendor"] = device.sub_vendor ++ ++ p["devices"].append(d) ++ ++ p["cpu"] = { ++ "arch" : self.arch, ++ "vendor" : self.cpu.vendor, ++ "model" : self.cpu.model, ++ "model_string" : self.cpu.model_string, ++ "stepping" : self.cpu.stepping, ++ "flags" : self.cpu.flags, ++ "bogomips" : self.cpu.bogomips, ++ "speed" : self.cpu.speed, ++ "family" : self.cpu.family, ++ "count" : self.cpu.count ++ } ++ ++ p["network"] = { ++ "green" : self.network.has_green(), ++ "blue" : self.network.has_blue(), ++ "orange" : self.network.has_orange(), ++ "red" : self.network.has_red(), ++ } ++ ++ # Only append hypervisor information if we are virtualized. ++ if self.virtual: ++ p["hypervisor"] = { ++ "vendor" : self.hypervisor.vendor, ++ } ++ ++ return { ++ # Profile version ++ "profile_version" : PROFILE_VERSION, ++ ++ # Identification and authorization codes ++ "public_id" : self.public_id, ++ "private_id" : self.private_id, ++ ++ # Actual profile data ++ "profile" : p, ++ } ++ ++ ++ @property ++ def arch(self): ++ return os.uname()[4] ++ ++ @property ++ def public_id(self): ++ """ ++ This returns a globally (hopefully) ID to identify the host ++ later (by request) in the database. ++ """ ++ public_id = self.secret_id ++ if not public_id: ++ return "0" * 40 ++ ++ return hashlib.sha1(public_id).hexdigest() ++ ++ @property ++ def private_id(self): ++ """ ++ The private ID is built out of the _unique_id and used to ++ permit a host to do changes on the database. ++ ++ No one could ever guess this without access to the host. ++ """ ++ private_id = "" ++ for i in reversed(self.secret_id): ++ private_id += i ++ ++ if not private_id: ++ return "0" * 40 ++ ++ return hashlib.sha1(private_id).hexdigest() ++ ++ @property ++ def secret_id(self): ++ """ ++ Read a "secret" ID from a file if available ++ or calculate it from the hardware. ++ """ ++ if os.path.exists(SECRET_ID_FILE): ++ return read_from_file(SECRET_ID_FILE) ++ ++ return hashlib.sha1(self._unique_id).hexdigest() ++ ++ @property ++ def _unique_id(self): ++ """ ++ This is a helper ID which is generated out of some hardware information ++ that is considered to be constant over a PC's lifetime. ++ ++ None of the data here is ever sent to the server. ++ """ ++ ids = [] ++ ++ # Virtual machines (for example) and some boards have a UUID ++ # which is globally unique. ++ for file in ("product_uuid", "product_serial", "chassis_serial"): ++ id = read_from_file(os.path.join(SYS_CLASS_DMI, file)) ++ ids.append(id) ++ ++ # Sort out all bogous or invalid strings from the list. ++ _ids = [] ++ for id in ids: ++ if id is None: ++ continue ++ ++ for i in INVALID_ID_STRINGS: ++ if i in id: ++ id = None ++ break ++ ++ if id: ++ _ids.append(id) ++ ++ ids = _ids ++ ++ # Use serial number from root disk (if available) and if ++ # no other ID was found, yet. ++ if not ids: ++ root_disk_serial = self.root_disk_serial ++ if root_disk_serial and not root_disk_serial.startswith("QM000"): ++ ids.append(root_disk_serial) ++ ++ # As last resort, we use the UUID from pakfire. ++ if not ids: ++ id = read_from_file("/opt/pakfire/db/uuid") ++ ids.append(id) ++ ++ return "#".join(ids) ++ ++ @property ++ def language(self): ++ """ ++ Return the language code of IPFire or "unknown" if we cannot get it. ++ """ ++ # Return "unknown" if settings file does not exist. ++ filename = "/var/ipfire/main/settings" ++ if not os.path.exists(filename): ++ return "unknown" ++ ++ with open(filename, "r") as f: ++ for line in f.readlines(): ++ key, val = line.split("=", 1) ++ if key == "LANGUAGE": ++ return val.strip() ++ ++ @property ++ def release(self): ++ """ ++ Return the system release string. ++ """ ++ return read_from_file("/etc/system-release") or "unknown" ++ ++ @property ++ def bios_vendor(self): ++ """ ++ Return the bios vendor name. ++ """ ++ return read_from_file("/sys/class/dmi/id/bios_vendor") ++ ++ def vendor_model_tuple(self): ++ try: ++ s = self.__cpuinfo["Hardware"] ++ except KeyError: ++ return (None, None) ++ ++ if s.startswith("ARM-Versatile"): ++ return ("ARM", s) ++ ++ try: ++ v, m = s.split(" ", 1) ++ except ValueError: ++ if s.startswith("BCM"): ++ v = "Broadcom" ++ m = s ++ else: ++ v = None ++ m = s ++ ++ return v, m ++ ++ @property ++ def vendor(self): ++ """ ++ Return the vendor string of this system (if any). ++ """ ++ ret = None ++ for file in ("sys_vendor", "board_vendor", "chassis_vendor",): ++ ret = read_from_file(os.path.join(SYS_CLASS_DMI, file)) ++ if ret: ++ break ++ ++ if ret is None: ++ v, m = self.vendor_model_tuple() ++ ret = v ++ ++ return ret ++ ++ @property ++ def model(self): ++ """ ++ Return the model string of this system (if any). ++ """ ++ ret = None ++ for file in ("product_name", "board_model", "chassis_model",): ++ ret = read_from_file(os.path.join(SYS_CLASS_DMI, file)) ++ if ret: ++ break ++ ++ if ret is None: ++ v, m = self.vendor_model_tuple() ++ ret = m ++ ++ return ret ++ ++ @property ++ def memory(self): ++ """ ++ Return the amount of memory in kilobytes. ++ """ ++ with open("/proc/meminfo", "r") as f: ++ firstline = f.readline().strip() ++ return int(firstline.split()[1]) ++ ++ @property ++ def kernel_release(self): ++ """ ++ Return the kernel release string. ++ """ ++ return os.uname()[2] ++ ++ @property ++ def root_disk(self): ++ """ ++ Return the dev node of the root disk. ++ """ ++ with open("/etc/mtab", "r") as f: ++ dev, mountpoint, fs, rest = f.readline().split(" ", 3) ++ if mountpoint == "/" and not fs == "rootfs": ++ # Cut off /dev ++ dev = dev[5:] ++ ++ # Handle raids and MMC cards like (mmcblk0p3). ++ if dev[-2] == "p": ++ return dev[:-2] ++ ++ # Otherwise cut off all digits at end of string ++ while dev[-1] in string.digits: ++ dev = dev[:-1] ++ ++ return dev ++ ++ @property ++ def root_size(self): ++ """ ++ Return the size of the root disk in kilobytes. ++ """ ++ path = "/sys/block/%s/size" % self.root_disk ++ if not os.path.exists(path): ++ return ++ ++ with open(path, "r") as f: ++ return int(f.readline()) * 512 / 1024 ++ ++ @property ++ def root_disk_serial(self): ++ """ ++ Return the serial number of the root disk (if any). ++ """ ++ serial = _fireinfo.get_harddisk_serial("/dev/%s" % self.root_disk) ++ ++ if serial: ++ # Strip all spaces ++ return serial.strip() ++ ++ def scan(self): ++ """ ++ Scan for all devices (PCI/USB) in the system and append them ++ to our list. ++ """ ++ self.devices = [] ++ ++ toscan = ( ++ ("/sys/bus/pci/devices", device.PCIDevice), ++ ("/sys/bus/usb/devices", device.USBDevice) ++ ) ++ for path, cls in toscan: ++ if not os.path.exists(path): ++ continue ++ ++ dirlist = os.listdir(path) ++ for dir in dirlist: ++ self.devices.append(cls(os.path.join(path, dir))) ++ ++ @property ++ def virtual(self): ++ """ ++ Say if the host is running in a virtual environment. ++ """ ++ return self.hypervisor.virtual ++ ++ @property ++ def network(self): ++ """ ++ Reference to the network class. ++ """ ++ return network.Network() ++ ++ ++if __name__ == "__main__": ++ s=System() ++ print s.arch ++ print s.language ++ print s.release ++ print s.bios_vendor ++ print s.memory ++ print s.kernel ++ print s.root_disk ++ print s.root_size ++ print "------------\n", s.devices, "\n------------\n" ++ print json.dumps(s.profile(), sort_keys=True, indent=4) +diff --git a/src/sendprofile b/src/sendprofile +new file mode 100644 +index 0000000..da480ce +--- /dev/null ++++ b/src/sendprofile +@@ -0,0 +1,132 @@ ++#!/usr/bin/python ++############################################################################### ++# # ++# Fireinfo # ++# Copyright (C) 2010, 2011 IPFire Team (www.ipfire.org) # ++# # ++# This program is free software: you can redistribute it and/or modify # ++# it under the terms of the GNU General Public License as published by # ++# the Free Software Foundation, either version 3 of the License, or # ++# (at your option) any later version. # ++# # ++# This program is distributed in the hope that it will be useful, # ++# but WITHOUT ANY WARRANTY; without even the implied warranty of # ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # ++# GNU General Public License for more details. # ++# # ++# You should have received a copy of the GNU General Public License # ++# along with this program. If not, see http://www.gnu.org/licenses/. # ++# # ++############################################################################### ++ ++import json ++import logging ++import logging.handlers ++import os ++import sys ++import urllib ++import urllib2 ++ ++import fireinfo ++ ++ENABLED_FILE = "/var/ipfire/main/send_profile" ++PROXY_SETTINGS = "/var/ipfire/proxy/advanced/settings" ++ ++log_level = logging.INFO ++if "-d" in sys.argv: ++ log_level = logging.DEBUG ++ ++# Setup logging ++log = logging.getLogger() ++log.setLevel(log_level) ++log.addHandler(logging.handlers.SysLogHandler("/dev/log")) ++log.addHandler(logging.StreamHandler(sys.stderr)) ++for handler in log.handlers: ++ handler.setLevel(log_level) ++ ++PROFILE_URL = "http://fireinfo.ipfire.org/send/%(public_id)s" ++ ++def get_upstream_proxy(): ++ if not os.path.exists(PROXY_SETTINGS): ++ return {"host" : ""} ++ ++ proxy_settings = {} ++ with open(PROXY_SETTINGS) as f: ++ for line in f.readlines(): ++ k, v = line.split("=", 1) ++ proxy_settings[k] = v.strip() ++ ++ return { ++ "host" : proxy_settings.get("UPSTREAM_PROXY", ""), ++ "user" : proxy_settings.get("UPSTREAM_USER", ""), ++ "pass" : proxy_settings.get("UPSTREAM_PASSWORD", ""), ++ } ++ ++def send_profile(profile): ++ logging.debug("Sending profile:") ++ for line in json.dumps(profile, sort_keys=True, indent=4).splitlines(): ++ logging.debug(line) ++ ++ request = urllib2.Request(PROFILE_URL % profile, ++ data = urllib.urlencode({"profile" : json.dumps(profile)}), ++ ) ++ request.add_header("User-Agent", "fireinfo/%s" % fireinfo.__version__) ++ ++ # Set upstream proxy if we have one. ++ # XXX this cannot handle authentication ++ proxy = get_upstream_proxy() ++ if proxy["host"]: ++ request.set_proxy(proxy["host"], "http") ++ ++ try: ++ urllib2.urlopen(request, timeout=60) ++ except (urllib2.HTTPError, urllib2.URLError), e: ++ reason = "Unknown reason" ++ ++ if isinstance(e, urllib2.HTTPError): ++ reason = "%s" % e ++ elif isinstance(e, urllib2.URLError): ++ reason = e.reason ++ ++ logging.error("Profile was not sent propertly: %s" % reason) ++ return ++ ++ logging.debug("Profile was sent successfully.") ++ ++def main(): ++ # Collect system information ++ system = fireinfo.System() ++ profile = system.profile() ++ ++ # If --dump is passed -> only dump the output. ++ if "--dump" in sys.argv: ++ # Remove the private id when dumping the profile because ++ # it contains no information and may confuse people. ++ del profile["private_id"] ++ ++ print json.dumps(profile, sort_keys=True, indent=4) ++ return 0 ++ ++ if "--secret-id" in sys.argv: ++ print system.secret_id ++ return 0 ++ ++ if "--hardware-string" in sys.argv: ++ print system._unique_id ++ return 0 ++ ++ if "--public-id" in sys.argv: ++ print system.public_id ++ return 0 ++ ++ if not os.path.exists(ENABLED_FILE): ++ del profile["profile"] ++ ++ try: ++ send_profile(profile) ++ except urllib2.URLError: ++ return 1 ++ ++ return 0 ++ ++sys.exit(main()) diff --git a/src/patches/gcc-4.4.7-texinfo-5.patch b/src/patches/gcc-4.4.7-texinfo-5.patch new file mode 100644 index 0000000..7b2e945 --- /dev/null +++ b/src/patches/gcc-4.4.7-texinfo-5.patch @@ -0,0 +1,89 @@ +diff -Naur gcc-4.4.7.org/gcc/doc/cppopts.texi gcc-4.4.7/gcc/doc/cppopts.texi +--- gcc-4.4.7.org/gcc/doc/cppopts.texi 2008-06-15 11:42:13.000000000 +0200 ++++ gcc-4.4.7/gcc/doc/cppopts.texi 2013-09-08 16:50:14.353507748 +0200 +@@ -758,7 +758,7 @@ + Enable special code to work around file systems which only permit very + short file names, such as MS-DOS@. + +-@itemx --help ++@item --help + @itemx --target-help + @opindex help + @opindex target-help +diff -Naur gcc-4.4.7.org/gcc/doc/c-tree.texi gcc-4.4.7/gcc/doc/c-tree.texi +--- gcc-4.4.7.org/gcc/doc/c-tree.texi 2009-02-20 16:20:38.000000000 +0100 ++++ gcc-4.4.7/gcc/doc/c-tree.texi 2013-09-08 17:53:21.055167463 +0200 +@@ -2338,13 +2338,13 @@ + not matter. The type of the operands and that of the result are + always of @code{BOOLEAN_TYPE} or @code{INTEGER_TYPE}. + +-@itemx POINTER_PLUS_EXPR ++@item POINTER_PLUS_EXPR + This node represents pointer arithmetic. The first operand is always + a pointer/reference type. The second operand is always an unsigned + integer type compatible with sizetype. This is the only binary + arithmetic operand that can operate on pointer types. + +-@itemx PLUS_EXPR ++@item PLUS_EXPR + @itemx MINUS_EXPR + @itemx MULT_EXPR + These nodes represent various binary arithmetic operations. +diff -Naur gcc-4.4.7.org/gcc/doc/invoke.texi gcc-4.4.7/gcc/doc/invoke.texi +--- gcc-4.4.7.org/gcc/doc/invoke.texi 2011-03-23 23:02:12.000000000 +0100 ++++ gcc-4.4.7/gcc/doc/invoke.texi 2013-09-08 17:10:49.503066254 +0200 +@@ -4645,11 +4645,11 @@ + @option{-fdump-rtl-ce3} enable dumping after the three + if conversion passes. + +-@itemx -fdump-rtl-cprop_hardreg ++@item -fdump-rtl-cprop_hardreg + @opindex fdump-rtl-cprop_hardreg + Dump after hard register copy propagation. + +-@itemx -fdump-rtl-csa ++@item -fdump-rtl-csa + @opindex fdump-rtl-csa + Dump after combining stack adjustments. + +@@ -4660,11 +4660,11 @@ + @option{-fdump-rtl-cse1} and @option{-fdump-rtl-cse2} enable dumping after + the two common sub-expression elimination passes. + +-@itemx -fdump-rtl-dce ++@item -fdump-rtl-dce + @opindex fdump-rtl-dce + Dump after the standalone dead code elimination passes. + +-@itemx -fdump-rtl-dbr ++@item -fdump-rtl-dbr + @opindex fdump-rtl-dbr + Dump after delayed branch scheduling. + +@@ -4709,7 +4709,7 @@ + @opindex fdump-rtl-initvals + Dump after the computation of the initial value sets. + +-@itemx -fdump-rtl-into_cfglayout ++@item -fdump-rtl-into_cfglayout + @opindex fdump-rtl-into_cfglayout + Dump after converting to cfglayout mode. + +@@ -4739,7 +4739,7 @@ + @opindex fdump-rtl-rnreg + Dump after register renumbering. + +-@itemx -fdump-rtl-outof_cfglayout ++@item -fdump-rtl-outof_cfglayout + @opindex fdump-rtl-outof_cfglayout + Dump after converting from cfglayout mode. + +@@ -4751,7 +4751,7 @@ + @opindex fdump-rtl-postreload + Dump after post-reload optimizations. + +-@itemx -fdump-rtl-pro_and_epilogue ++@item -fdump-rtl-pro_and_epilogue + @opindex fdump-rtl-pro_and_epilogue + Dump after generating the function pro and epilogues. + diff --git a/src/patches/glibc/glibc-rh804630.patch b/src/patches/glibc/glibc-rh804630.patch deleted file mode 100644 index 75dbe94..0000000 --- a/src/patches/glibc/glibc-rh804630.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -rup c/resolv/res_send.c d/resolv/res_send.c ---- c/resolv/res_send.c 2012-01-01 05:16:32.000000000 -0700 -+++ d/resolv/res_send.c 2012-03-30 12:39:30.862467628 -0600 -@@ -409,6 +409,7 @@ __libc_res_nsend(res_state statp, const - */ - if (EXT(statp).nsinit == 0) { - unsigned char map[MAXNS]; -+ unsigned int ext_total_nscount; - - memset (map, MAXNS, sizeof (map)); - for (n = 0; n < MAXNS; n++) { -@@ -422,8 +423,9 @@ __libc_res_nsend(res_state statp, const - } - } - n = statp->nscount; -- if (statp->nscount > EXT(statp).nscount) -- for (n = EXT(statp).nscount, ns = 0; -+ ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6; -+ if (statp->nscount > ext_total_nscount) -+ for (n = ext_total_nscount, ns = 0; - n < statp->nscount; n++) { - while (ns < MAXNS - && EXT(statp).nsmap[ns] != MAXNS) diff --git a/src/patches/glibc/glibc-rh804686.patch b/src/patches/glibc/glibc-rh804686.patch new file mode 100644 index 0000000..292cd84 --- /dev/null +++ b/src/patches/glibc/glibc-rh804686.patch @@ -0,0 +1,87 @@ +--- a/resolv/res_query.c 2010-05-04 05:27:23.000000000 -0600 ++++ a/resolv/res_query.c 2012-08-03 13:43:10.761506047 -0600 +@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp, + int *resplen2) + { + HEADER *hp = (HEADER *) answer; ++ HEADER *hp2; + int n, use_malloc = 0; + u_int oflags = statp->_flags; + +@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp, + /* __libc_res_nsend might have reallocated the buffer. */ + hp = (HEADER *) *answerp; + +- /* We simplify the following tests by assigning HP to HP2. It +- is easy to verify that this is the same as ignoring all +- tests of HP2. */ +- HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp; +- +- if (n < (int) sizeof (HEADER) && answerp2 != NULL +- && *resplen2 > (int) sizeof (HEADER)) ++ /* We simplify the following tests by assigning HP to HP2 or ++ vice versa. It is easy to verify that this is the same as ++ ignoring all tests of HP or HP2. */ ++ if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER)) + { +- /* Special case of partial answer. */ +- assert (hp != hp2); +- hp = hp2; ++ hp2 = hp; + } +- else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER) +- && n > (int) sizeof (HEADER)) ++ else + { +- /* Special case of partial answer. */ +- assert (hp != hp2); +- hp2 = hp; ++ hp2 = (HEADER *) *answerp2; ++ if (n < (int) sizeof (HEADER)) ++ { ++ hp = hp2; ++ } + } + ++ /* Make sure both hp and hp2 are defined */ ++ assert((hp != NULL) && (hp2 != NULL)); ++ + if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0) + && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) { + #ifdef DEBUG +--- a/resolv/res_send.c 2012-08-03 13:31:26.622168278 -0600 ++++ a/resolv/res_send.c 2012-08-03 13:43:11.881501862 -0600 +@@ -549,7 +549,7 @@ __libc_res_nsend(res_state statp, const + ns, ansp, ansp2, nansp2, resplen2); + if (n < 0) + return (-1); +- if (n == 0) ++ if (n == 0 && (buf2 == NULL || *resplen2 == 0)) + goto next_ns; + } else { + /* Use datagrams. */ +@@ -559,7 +559,7 @@ __libc_res_nsend(res_state statp, const + ansp2, nansp2, resplen2); + if (n < 0) + return (-1); +- if (n == 0) ++ if (n == 0 && (buf2 == NULL || *resplen2 == 0)) + goto next_ns; + if (v_circuit) + // XXX Check whether both requests failed or +@@ -1275,10 +1275,14 @@ send_dg(res_state statp, + (*thisresplenp > *thisanssizp) + ? *thisanssizp : *thisresplenp); + +- if (recvresp1 || (buf2 != NULL && recvresp2)) ++ if (recvresp1 || (buf2 != NULL && recvresp2)) { ++ *resplen2 = 0; + return resplen; ++ } + if (buf2 != NULL) + { ++ /* No data from the first reply. */ ++ resplen = 0; + /* We are waiting for a possible second reply. */ + if (hp->id == anhp->id) + recvresp1 = 1; diff --git a/src/patches/glibc/glibc-rh806404.patch b/src/patches/glibc/glibc-rh806404.patch new file mode 100644 index 0000000..b78b903 --- /dev/null +++ b/src/patches/glibc/glibc-rh806404.patch @@ -0,0 +1,12 @@ +diff -rup a/nss/getnssent.c b/nss/getnssent.c +--- a/nss/getnssent.c 2004-12-13 14:48:34.000000000 -0700 ++++ b/nss/getnssent.c 2012-03-23 13:46:54.639095121 -0600 +@@ -33,7 +33,7 @@ __nss_getent (getent_r_function func, vo + *buffer = malloc (*buffer_size); + } + +- while (buffer != NULL ++ while (*buffer != NULL + && func (resbuf, *buffer, *buffer_size, &result, h_errnop) == ERANGE + && (h_errnop == NULL || *h_errnop == NETDB_INTERNAL)) + { diff --git a/src/patches/glibc/glibc-rh809726.patch b/src/patches/glibc/glibc-rh809726.patch new file mode 100644 index 0000000..0f264c8 --- /dev/null +++ b/src/patches/glibc/glibc-rh809726.patch @@ -0,0 +1,89 @@ +diff -rup a/localedata/locales/fi_FI b/localedata/locales/fi_FI +--- a/localedata/locales/fi_FI 2012-07-11 14:48:45.994749607 -0600 ++++ b/localedata/locales/fi_FI 2012-07-11 14:50:20.003277477 -0600 +@@ -63,60 +63,65 @@ reorder-after <z> + <a-diaerisis> + <o-diaerisis> + +-reorder-after <U005A> ++reorder-after <U007A> + <U00E5> <a-ring>;<BAS>;<MIN>;IGNORE +-<U00C5> <a-ring>;<BAS>;<CAP>;IGNORE + <U01FB> <a-ring>;<ACA>;<MIN>;IGNORE +-<U01FA> <a-ring>;<ACA>;<CAP>;IGNORE + <U00E4> <a-diaerisis>;<BAS>;<MIN>;IGNORE +-<U00C4> <a-diaerisis>;<BAS>;<CAP>;IGNORE + <U00E6> <a-diaerisis>;<REU>;<MIN>;IGNORE +-<U00C6> <a-diaerisis>;<REU>;<CAP>;IGNORE + <U01FD> <a-diaerisis>;<U01FD>;<MIN>;IGNORE +-<U01FC> <a-diaerisis>;<U01FD>;<CAP>;IGNORE + <U01E3> <a-diaerisis>;<MAC>;<MIN>;IGNORE +-<U01E2> <a-diaerisis>;<MAC>;<CAP>;IGNORE + <U00F6> <o-diaerisis>;<BAS>;<MIN>;IGNORE +-<U00D6> <o-diaerisis>;<BAS>;<CAP>;IGNORE + <U00F8> <o-diaerisis>;<U00D8>;<MIN>;IGNORE +-<U00D8> <o-diaerisis>;<U00D8>;<CAP>;IGNORE + <U01FF> <o-diaerisis>;<U01FF>;<MIN>;IGNORE +-<U01FE> <o-diaerisis>;<U01FF>;<CAP>;IGNORE + <U00F5> <o-diaerisis>;<TIL>;<MIN>;IGNORE ++reorder-after <U005A> ++<U00C5> <a-ring>;<BAS>;<CAP>;IGNORE ++<U01FA> <a-ring>;<ACA>;<CAP>;IGNORE ++<U00C4> <a-diaerisis>;<BAS>;<CAP>;IGNORE ++<U00C6> <a-diaerisis>;<REU>;<CAP>;IGNORE ++<U01FC> <a-diaerisis>;<U01FD>;<CAP>;IGNORE ++<U01E2> <a-diaerisis>;<MAC>;<CAP>;IGNORE ++<U00D6> <o-diaerisis>;<BAS>;<CAP>;IGNORE ++<U00D8> <o-diaerisis>;<U00D8>;<CAP>;IGNORE ++<U01FE> <o-diaerisis>;<U01FF>;<CAP>;IGNORE + <U00D5> <o-diaerisis>;<TIL>;<CAP>;IGNORE + +-reorder-after <U016A> ++reorder-after <U016B> + <U0076> <v>;<U0056>;<BAS>;<MIN> +-<U0056> <v>;<U0056>;<BAS>;<CAP> + <U1E7D> <v>;<U0056>;<TIL>;<MIN> +-<U1E7C> <v>;<U0056>;<TIL>;<CAP> + <U0077> <w>;<U0057>;<BAS>;<MIN> +-<U0057> <w>;<U0057>;<BAS>;<CAP> + <U1E83> <w>;<U0057>;<ACA>;<MIN> +-<U1E82> <w>;<U0057>;<ACA>;<CAP> + <U1E81> <w>;<U0057>;<GRA>;<MIN> +-<U1E80> <w>;<U0057>;<GRA>;<CAP> + <U0175> <w>;<U0057>;<CIR>;<MIN> +-<U0174> <w>;<U0057>;<CIR>;<CAP> + <U1E85> <w>;<U0057>;<REU>;<MIN> +-<U1E84> <w>;<U0057>;<REU>;<CAP> + <U1E87> <w>;<U0057>;<PCT>;<MIN> ++reorder-after <U016A> ++<U0056> <v>;<U0056>;<BAS>;<CAP> ++<U1E7C> <v>;<U0056>;<TIL>;<CAP> ++<U0057> <w>;<U0057>;<BAS>;<CAP> ++<U1E82> <w>;<U0057>;<ACA>;<CAP> ++<U1E80> <w>;<U0057>;<GRA>;<CAP> ++<U0174> <w>;<U0057>;<CIR>;<CAP> ++<U1E84> <w>;<U0057>;<REU>;<CAP> + <U1E86> <w>;<U0057>;<PCT>;<CAP> + + reorder-after <U00FF> + <U00FC> <y>;<DTT>;<MIN>;IGNORE ++reorder-after <U0178> + <U00DC> <y>;<DTT>;<CAP>;IGNORE + + % Present in iso14651_t1, but these definitions seem to have been + % removed from latest iso14651 tables. +-reorder-after <U0162> ++reorder-after <U0163> + <U00FE> "<t><h>";"<LIG><LIG>";"<MIN><MIN>";IGNORE ++reorder-after <U0162> + <U00DE> "<t><h>";"<LIG><LIG>";"<CAP><CAP>";IGNORE + + reorder-after <U0064> + <U00F0> <d>;<PCL>;<MIN>;IGNORE +-<U00D0> <d>;<PCL>;<CAP>;IGNORE + <U0111> <d>;<OBL>;<MIN>;IGNORE ++reorder-after <U0044> ++<U00D0> <d>;<PCL>;<CAP>;IGNORE + <U0110> <d>;<OBL>;<CAP>;IGNORE + + reorder-end diff --git a/src/patches/glibc/glibc-rh823909.patch b/src/patches/glibc/glibc-rh823909.patch new file mode 100644 index 0000000..ed9c4c9 --- /dev/null +++ b/src/patches/glibc/glibc-rh823909.patch @@ -0,0 +1,25 @@ +diff --git a/iconvdata/ibm930.c b/iconvdata/ibm930.c +index 25a9be0..6f758eb 100644 +--- a/iconvdata/ibm930.c ++++ b/iconvdata/ibm930.c +@@ -162,7 +162,8 @@ enum + while (ch > rp2->end) \ + ++rp2; \ + \ +- if (__builtin_expect (ch < rp2->start, 0) \ ++ if (__builtin_expect (rp2->start == 0xffff, 0) \ ++ || __builtin_expect (ch < rp2->start, 0) \ + || (res = __ibm930db_to_ucs4[ch + rp2->idx], \ + __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ + { \ +@@ -215,7 +216,8 @@ enum + while (ch > rp2->end) \ + ++rp2; \ + \ +- if (__builtin_expect (ch < rp2->start, 0) \ ++ if (__builtin_expect (rp2->start == 0xffff, 0) \ ++ || __builtin_expect (ch < rp2->start, 0) \ + || (cp = __ucs4_to_ibm930db[ch + rp2->idx], \ + __builtin_expect (cp[0], L'\1')== L'\0' && ch != '\0')) \ + { \ + diff --git a/src/patches/glibc/glibc-rh826149.patch b/src/patches/glibc/glibc-rh826149.patch new file mode 100644 index 0000000..805572b --- /dev/null +++ b/src/patches/glibc/glibc-rh826149.patch @@ -0,0 +1,80 @@ +diff -Nrup a/posix/fnmatch.c b/posix/fnmatch.c +--- a/posix/fnmatch.c 2012-05-25 12:37:26.566678872 -0400 ++++ b/posix/fnmatch.c 2012-05-25 13:08:44.451972286 -0400 +@@ -333,6 +333,7 @@ fnmatch (pattern, string, flags) + # if HANDLE_MULTIBYTE + if (__builtin_expect (MB_CUR_MAX, 1) != 1) + { ++ const char *orig_pattern = pattern; + mbstate_t ps; + size_t n; + const char *p; +@@ -356,10 +357,9 @@ fnmatch (pattern, string, flags) + alloca_used); + n = mbsrtowcs (wpattern, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ /* Something wrong: Fall back to single byte matching. */ ++ goto try_singlebyte; ++ + if (p) + { + memset (&ps, '\0', sizeof (ps)); +@@ -371,10 +371,8 @@ fnmatch (pattern, string, flags) + prepare_wpattern: + n = mbsrtowcs (NULL, &pattern, 0, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ /* Something wrong: Fall back to single byte matching. */ ++ goto try_singlebyte; + if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0)) + { + __set_errno (ENOMEM); +@@ -401,14 +399,8 @@ fnmatch (pattern, string, flags) + alloca_used); + n = mbsrtowcs (wstring, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- { +- /* Something wrong. +- XXX Do we have to set `errno' to something which +- mbsrtows hasn't already done? */ +- free_return: +- free (wpattern_malloc); +- return -1; +- } ++ /* Something wrong: Fall back to single byte matching. */ ++ goto free_and_try_singlebyte; + if (p) + { + memset (&ps, '\0', sizeof (ps)); +@@ -420,10 +412,8 @@ fnmatch (pattern, string, flags) + prepare_wstring: + n = mbsrtowcs (NULL, &string, 0, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- goto free_return; ++ /* Something wrong: Fall back to single byte matching. */ ++ goto free_and_try_singlebyte; + if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0)) + { + free (wpattern_malloc); +@@ -450,6 +440,11 @@ fnmatch (pattern, string, flags) + free (wpattern_malloc); + + return res; ++ ++ free_and_try_singlebyte: ++ free(wpattern_malloc); ++ try_singlebyte: ++ pattern = orig_pattern; + } + # endif /* mbstate_t and mbsrtowcs or _LIBC. */ + diff --git a/src/patches/glibc/glibc-rh827362.patch b/src/patches/glibc/glibc-rh827362.patch new file mode 100644 index 0000000..7e6d07e --- /dev/null +++ b/src/patches/glibc/glibc-rh827362.patch @@ -0,0 +1,250 @@ +diff -pruN glibc-2.12-2-gc4ccff1/libio/Makefile glibc-2.12-2-gc4ccff1.fseek/libio/Makefile +--- glibc-2.12-2-gc4ccff1/libio/Makefile 2010-05-04 16:57:23.000000000 +0530 ++++ glibc-2.12-2-gc4ccff1.fseek/libio/Makefile 2012-09-05 17:28:08.699360413 +0530 +@@ -58,7 +58,7 @@ tests = tst_swprintf tst_wprintf tst_sws + tst-memstream1 tst-memstream2 \ + tst-wmemstream1 tst-wmemstream2 \ + bug-memstream1 bug-wmemstream1 \ +- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos ++ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek + test-srcs = test-freopen + + all: # Make this the default target; it will be defined in Rules. +diff -pruN glibc-2.12-2-gc4ccff1/libio/tst-fseek.c glibc-2.12-2-gc4ccff1.fseek/libio/tst-fseek.c +--- glibc-2.12-2-gc4ccff1/libio/tst-fseek.c 1970-01-01 05:30:00.000000000 +0530 ++++ glibc-2.12-2-gc4ccff1.fseek/libio/tst-fseek.c 2012-09-05 17:27:33.606359692 +0530 +@@ -0,0 +1,153 @@ ++/* Verify that fseek/ftell combination works for wide chars. ++ ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <locale.h> ++#include <errno.h> ++#include <wchar.h> ++#include <unistd.h> ++#include <string.h> ++ ++/* Defined in test-skeleton.c. */ ++static int create_temp_file (const char *base, char **filename); ++ ++ ++static int ++do_seek_end (FILE *fp) ++{ ++ long save; ++ ++ if (fp == NULL) ++ { ++ printf ("do_seek_end: fopen: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ if (fputws (L"abc\n", fp) == -1) ++ { ++ printf ("do_seek_end: fputws: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ save = ftell (fp); ++ rewind (fp); ++ ++ if (fseek (fp, 0, SEEK_END) == -1) ++ { ++ printf ("do_seek_end: fseek: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ if (save != ftell (fp)) ++ { ++ printf ("save = %ld, ftell = %ld\n", save, ftell (fp)); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++int ++do_seek_set (FILE *fp) ++{ ++ long save; ++ ++ if (fputws (L"abc\n", fp) == -1) ++ { ++ printf ("seek_set: fputws: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ save = ftell (fp); ++ ++ if (fputws (L"xyz\n", fp) == -1) ++ { ++ printf ("seek_set: fputws: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ if (fseek (fp, save, SEEK_SET) == -1) ++ { ++ printf ("seek_set: fseek: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ if (save != ftell (fp)) ++ { ++ printf ("save = %ld, ftell = %ld\n", save, ftell (fp)); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ if (setlocale (LC_ALL, "en_US.utf8") == NULL) ++ { ++ printf ("Cannot set en_US.utf8 locale.\n"); ++ exit (1); ++ } ++ ++ int ret = 0; ++ char *filename; ++ int fd = create_temp_file ("tst-fseek.out", &filename); ++ ++ if (fd == -1) ++ return 1; ++ ++ FILE *fp = fdopen (fd, "w+"); ++ if (fp == NULL) ++ { ++ printf ("seek_set: fopen: %s\n", strerror (errno)); ++ close (fd); ++ return 1; ++ } ++ ++ if (do_seek_set (fp)) ++ { ++ printf ("SEEK_SET test failed\n"); ++ ret = 1; ++ } ++ ++ /* Reopen the file. */ ++ fclose (fp); ++ fp = fopen (filename, "w+"); ++ if (fp == NULL) ++ { ++ printf ("seek_end: fopen: %s\n", strerror (errno)); ++ return 1; ++ } ++ ++ if (do_seek_end (fp)) ++ { ++ printf ("SEEK_END test failed\n"); ++ ret = 1; ++ } ++ ++ fclose (fp); ++ ++ return ret; ++} ++ ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -pruN glibc-2.12-2-gc4ccff1/libio/wfileops.c glibc-2.12-2-gc4ccff1.fseek/libio/wfileops.c +--- glibc-2.12-2-gc4ccff1/libio/wfileops.c 2010-05-04 16:57:23.000000000 +0530 ++++ glibc-2.12-2-gc4ccff1.fseek/libio/wfileops.c 2012-09-05 17:27:33.608359685 +0530 +@@ -547,6 +547,55 @@ _IO_wfile_sync (fp) + } + INTDEF(_IO_wfile_sync) + ++/* Adjust the internal buffer pointers to reflect the state in the external ++ buffer. The content between fp->_IO_read_base and fp->_IO_read_ptr is ++ assumed to be converted and available in the range ++ fp->_wide_data->_IO_read_base and fp->_wide_data->_IO_read_end. */ ++static inline int ++adjust_wide_data (_IO_FILE *fp, bool do_convert) ++{ ++ struct _IO_codecvt *cv = fp->_codecvt; ++ ++ int clen = (*cv->__codecvt_do_encoding) (cv); ++ ++ /* Take the easy way out for constant length encodings if we don't need to ++ convert. */ ++ if (!do_convert && clen > 0) ++ { ++ fp->_wide_data->_IO_read_end += ((fp->_IO_read_ptr - fp->_IO_read_base) ++ / clen); ++ goto done; ++ } ++ ++ enum __codecvt_result status; ++ const char *read_stop = (const char *) fp->_IO_read_base; ++ do ++ { ++ ++ fp->_wide_data->_IO_last_state = fp->_wide_data->_IO_state; ++ status = (*cv->__codecvt_do_in) (cv, &fp->_wide_data->_IO_state, ++ fp->_IO_read_base, fp->_IO_read_ptr, ++ &read_stop, ++ fp->_wide_data->_IO_read_base, ++ fp->_wide_data->_IO_buf_end, ++ &fp->_wide_data->_IO_read_end); ++ ++ /* Should we return EILSEQ? */ ++ if (__builtin_expect (status == __codecvt_error, 0)) ++ { ++ fp->_flags |= _IO_ERR_SEEN; ++ return -1; ++ } ++ } ++ while (__builtin_expect (status == __codecvt_partial, 0)); ++ ++done: ++ /* Now seek to the end of the read buffer. */ ++ fp->_wide_data->_IO_read_ptr = fp->_wide_data->_IO_read_end; ++ ++ return 0; ++} ++ + _IO_off64_t + _IO_wfile_seekoff (fp, offset, dir, mode) + _IO_FILE *fp; +@@ -695,6 +744,10 @@ _IO_wfile_seekoff (fp, offset, dir, mode + fp->_wide_data->_IO_buf_base); + _IO_wsetp (fp, fp->_wide_data->_IO_buf_base, + fp->_wide_data->_IO_buf_base); ++ ++ if (adjust_wide_data (fp, false)) ++ goto dumb; ++ + _IO_mask_flags (fp, 0, _IO_EOF_SEEN); + goto resync; + } +@@ -735,6 +788,10 @@ _IO_wfile_seekoff (fp, offset, dir, mode + _IO_wsetg (fp, fp->_wide_data->_IO_buf_base, + fp->_wide_data->_IO_buf_base, fp->_wide_data->_IO_buf_base); + _IO_wsetp (fp, fp->_wide_data->_IO_buf_base, fp->_wide_data->_IO_buf_base); ++ ++ if (adjust_wide_data (fp, true)) ++ goto dumb; ++ + fp->_offset = result + count; + _IO_mask_flags (fp, 0, _IO_EOF_SEEN); + return offset; diff --git a/src/patches/glibc/glibc-rh830127.patch b/src/patches/glibc/glibc-rh830127.patch new file mode 100644 index 0000000..06dea73 --- /dev/null +++ b/src/patches/glibc/glibc-rh830127.patch @@ -0,0 +1,403 @@ +diff -Nrup a/stdio-common/bug22.c b/stdio-common/bug22.c +--- a/stdio-common/bug22.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdio-common/bug22.c 2012-08-03 13:56:40.887829210 -0600 +@@ -1,12 +1,22 @@ + /* BZ #5424 */ + #include <stdio.h> ++#include <errno.h> + ++/* INT_MAX + 1 */ + #define N 2147483648 + ++/* (INT_MAX / 2) + 2 */ ++#define N2 1073741825 ++ ++/* INT_MAX - 3 */ ++#define N3 2147483644 ++ + #define STRINGIFY(S) #S + #define MAKE_STR(S) STRINGIFY(S) + + #define SN MAKE_STR(N) ++#define SN2 MAKE_STR(N2) ++#define SN3 MAKE_STR(N3) + + static int + do_test (void) +@@ -20,13 +30,27 @@ do_test (void) + return 1; + } + +- ret = fprintf (fp, "%" SN "d%" SN "d", 1, 1); ++ ret = fprintf (fp, "%" SN "d", 1); ++ printf ("ret = %d\n", ret); ++ if (ret != -1 || errno != EOVERFLOW) ++ return 1; ++ ++ ret = fprintf (fp, "%." SN "d", 1); ++ printf ("ret = %d\n", ret); ++ if (ret != -1 || errno != EOVERFLOW) ++ return 1; ++ ++ ret = fprintf (fp, "%." SN3 "d", 1); ++ printf ("ret = %d\n", ret); ++ if (ret != -1 || errno != EOVERFLOW) ++ return 1; + ++ ret = fprintf (fp, "%" SN2 "d%" SN2 "d", 1, 1); + printf ("ret = %d\n", ret); + +- return ret != -1; ++ return ret != -1 || errno != EOVERFLOW; + } + +-#define TIMEOUT 30 ++#define TIMEOUT 60 + #define TEST_FUNCTION do_test () + #include "../test-skeleton.c" +diff -Nrup a/stdio-common/printf-parse.h b/stdio-common/printf-parse.h +--- a/stdio-common/printf-parse.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdio-common/printf-parse.h 2012-08-03 13:57:31.932638761 -0600 +@@ -14,9 +14,8 @@ + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ + + #include <printf.h> + #include <stdint.h> +@@ -69,16 +68,27 @@ union printf_arg + #ifndef DONT_NEED_READ_INT + /* Read a simple integer from a string and update the string pointer. + It is assumed that the first character is a digit. */ +-static unsigned int ++static int + read_int (const UCHAR_T * *pstr) + { +- unsigned int retval = **pstr - L_('0'); ++ int retval = **pstr - L_('0'); + + while (ISDIGIT (*++(*pstr))) +- { +- retval *= 10; +- retval += **pstr - L_('0'); +- } ++ if (retval >= 0) ++ { ++ if (INT_MAX / 10 < retval) ++ retval = -1; ++ else ++ { ++ int digit = **pstr - L_('0'); ++ ++ retval *= 10; ++ if (INT_MAX - digit < retval) ++ retval = -1; ++ else ++ retval += digit; ++ } ++ } + + return retval; + } +diff -Nrup a/stdio-common/printf-parsemb.c b/stdio-common/printf-parsemb.c +--- a/stdio-common/printf-parsemb.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdio-common/printf-parsemb.c 2012-08-03 13:58:44.683366361 -0600 +@@ -13,9 +13,8 @@ + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ + + #include <ctype.h> + #include <limits.h> +@@ -88,12 +87,15 @@ __parse_one_specmb (const UCHAR_T *forma + + n = read_int (&format); + +- if (n > 0 && *format == L_('$')) ++ if (n != 0 && *format == L_('$')) + /* Is positional parameter. */ + { + ++format; /* Skip the '$'. */ +- spec->data_arg = n - 1; +- *max_ref_arg = MAX (*max_ref_arg, n); ++ if (n != -1) ++ { ++ spec->data_arg = n - 1; ++ *max_ref_arg = MAX (*max_ref_arg, n); ++ } + } + else + /* Oops; that was actually the width and/or 0 padding flag. +@@ -161,10 +163,13 @@ __parse_one_specmb (const UCHAR_T *forma + /* The width argument might be found in a positional parameter. */ + n = read_int (&format); + +- if (n > 0 && *format == L_('$')) ++ if (n != 0 && *format == L_('$')) + { +- spec->width_arg = n - 1; +- *max_ref_arg = MAX (*max_ref_arg, n); ++ if (n != -1) ++ { ++ spec->width_arg = n - 1; ++ *max_ref_arg = MAX (*max_ref_arg, n); ++ } + ++format; /* Skip '$'. */ + } + } +@@ -178,9 +183,13 @@ __parse_one_specmb (const UCHAR_T *forma + } + } + else if (ISDIGIT (*format)) +- /* Constant width specification. */ +- spec->info.width = read_int (&format); ++ { ++ int n = read_int (&format); + ++ /* Constant width specification. */ ++ if (n != -1) ++ spec->info.width = n; ++ } + /* Get the precision. */ + spec->prec_arg = -1; + /* -1 means none given; 0 means explicit 0. */ +@@ -197,10 +206,13 @@ __parse_one_specmb (const UCHAR_T *forma + { + n = read_int (&format); + +- if (n > 0 && *format == L_('$')) ++ if (n != 0 && *format == L_('$')) + { +- spec->prec_arg = n - 1; +- *max_ref_arg = MAX (*max_ref_arg, n); ++ if (n != -1) ++ { ++ spec->prec_arg = n - 1; ++ *max_ref_arg = MAX (*max_ref_arg, n); ++ } + ++format; + } + } +@@ -214,7 +226,12 @@ __parse_one_specmb (const UCHAR_T *forma + } + } + else if (ISDIGIT (*format)) +- spec->info.prec = read_int (&format); ++ { ++ int n = read_int (&format); ++ ++ if (n != -1) ++ spec->info.prec = n; ++ } + else + /* "%.?" is treated like "%.0?". */ + spec->info.prec = 0; +@@ -295,9 +312,9 @@ __parse_one_specmb (const UCHAR_T *forma + /* We don't try to get the types for all arguments if the format + uses more than one. The normal case is covered though. If + the call returns -1 we continue with the normal specifiers. */ +- || (spec->ndata_args = (*__printf_arginfo_table[spec->info.spec]) +- (&spec->info, 1, &spec->data_arg_type, +- &spec->size)) < 0) ++ || (int) (spec->ndata_args = (*__printf_arginfo_table[spec->info.spec]) ++ (&spec->info, 1, &spec->data_arg_type, ++ &spec->size)) < 0) + { + /* Find the data argument types of a built-in spec. */ + spec->ndata_args = 1; +diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +--- a/stdio-common/vfprintf.c 2012-08-03 13:31:26.605168350 -0600 ++++ b/stdio-common/vfprintf.c 2012-08-03 14:09:26.836725512 -0600 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991-2008, 2009 Free Software Foundation, Inc. ++/* Copyright (C) 1991-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -12,9 +12,8 @@ + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ + + #include <ctype.h> + #include <limits.h> +@@ -67,10 +66,10 @@ + do { \ + unsigned int _val = val; \ + assert ((unsigned int) done < (unsigned int) INT_MAX); \ +- if (__builtin_expect ((unsigned int) INT_MAX - (unsigned int) done \ +- < _val, 0)) \ ++ if (__builtin_expect (INT_MAX - done < _val, 0)) \ + { \ + done = -1; \ ++ __set_errno (EOVERFLOW); \ + goto all_done; \ + } \ + done += _val; \ +@@ -141,12 +140,17 @@ + do \ + { \ + assert ((size_t) done <= (size_t) INT_MAX); \ +- if ((size_t) PUT (s, (String), (Len)) != (size_t) (Len) \ +- || (size_t) INT_MAX - (size_t) done < (size_t) (Len)) \ ++ if ((size_t) PUT (s, (String), (Len)) != (size_t) (Len)) \ + { \ + done = -1; \ + goto all_done; \ + } \ ++ if (__builtin_expect (INT_MAX - done < (Len), 0)) \ ++ { \ ++ done = -1; \ ++ __set_errno (EOVERFLOW); \ ++ goto all_done; \ ++ } \ + done += (Len); \ + } \ + while (0) +@@ -1435,10 +1439,21 @@ vfprintf (FILE *s, const CHAR_T *format, + const UCHAR_T *tmp; /* Temporary value. */ + + tmp = ++f; +- if (ISDIGIT (*tmp) && read_int (&tmp) && *tmp == L_('$')) +- /* The width comes from a positional parameter. */ +- goto do_positional; ++ if (ISDIGIT (*tmp)) ++ { ++ int pos = read_int (&tmp); + ++ if (pos == -1) ++ { ++ __set_errno (EOVERFLOW); ++ done = -1; ++ goto all_done; ++ } ++ ++ if (pos && *tmp == L_('$')) ++ /* The width comes from a positional parameter. */ ++ goto do_positional; ++ } + width = va_arg (ap, int); + + /* Negative width means left justified. */ +@@ -1449,9 +1464,9 @@ vfprintf (FILE *s, const CHAR_T *format, + left = 1; + } + +- if (__builtin_expect (width >= (size_t) -1 / sizeof (CHAR_T) - 32, 0)) ++ if (__builtin_expect (width >= INT_MAX / sizeof (CHAR_T) - 32, 0)) + { +- __set_errno (ERANGE); ++ __set_errno (EOVERFLOW); + done = -1; + goto all_done; + } +@@ -1481,9 +1496,10 @@ vfprintf (FILE *s, const CHAR_T *format, + LABEL (width): + width = read_int (&f); + +- if (__builtin_expect (width >= (size_t) -1 / sizeof (CHAR_T) - 32, 0)) ++ if (__builtin_expect (width == -1 ++ || width >= INT_MAX / sizeof (CHAR_T) - 32, 0)) + { +- __set_errno (ERANGE); ++ __set_errno (EOVERFLOW); + done = -1; + goto all_done; + } +@@ -1518,10 +1534,21 @@ vfprintf (FILE *s, const CHAR_T *format, + const UCHAR_T *tmp; /* Temporary value. */ + + tmp = ++f; +- if (ISDIGIT (*tmp) && read_int (&tmp) > 0 && *tmp == L_('$')) +- /* The precision comes from a positional parameter. */ +- goto do_positional; ++ if (ISDIGIT (*tmp)) ++ { ++ int pos = read_int (&tmp); ++ ++ if (pos == -1) ++ { ++ __set_errno (EOVERFLOW); ++ done = -1; ++ goto all_done; ++ } + ++ if (pos && *tmp == L_('$')) ++ /* The precision comes from a positional parameter. */ ++ goto do_positional; ++ } + prec = va_arg (ap, int); + + /* If the precision is negative the precision is omitted. */ +@@ -1529,15 +1556,26 @@ vfprintf (FILE *s, const CHAR_T *format, + prec = -1; + } + else if (ISDIGIT (*f)) +- prec = read_int (&f); ++ { ++ prec = read_int (&f); ++ ++ /* The precision was specified in this case as an extremely ++ large positive value. */ ++ if (prec == -1) ++ { ++ __set_errno (EOVERFLOW); ++ done = -1; ++ goto all_done; ++ } ++ } + else + prec = 0; + if (prec > width + && prec > sizeof (work_buffer) / sizeof (work_buffer[0]) - 32) + { +- if (__builtin_expect (prec >= (size_t) -1 / sizeof (CHAR_T) - 32, 0)) ++ if (__builtin_expect (prec >= INT_MAX / sizeof (CHAR_T) - 32, 0)) + { +- __set_errno (ERANGE); ++ __set_errno (EOVERFLOW); + done = -1; + goto all_done; + } +@@ -1722,13 +1760,13 @@ do_positional: + nargs = MAX (nargs, max_ref_arg); + /* Calculate total size needed to represent a single argument across + all three argument-related arrays. */ +- bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) +- + sizeof (*args_type); ++ bytes_per_arg = (sizeof (*args_value) + sizeof (*args_size) ++ + sizeof (*args_type)); + + /* Check for potential integer overflow. */ +- if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0)) ++ if (__builtin_expect (nargs > INT_MAX / bytes_per_arg, 0)) + { +- __set_errno (ERANGE); ++ __set_errno (EOVERFLOW); + done = -1; + goto all_done; + } +@@ -1746,6 +1784,8 @@ do_positional: + } + } + ++ /* Set up the remaining two arrays to each point past the end of the ++ prior array, since space for all three has been allocated now. */ + args_size = &args_value[nargs].pa_int; + args_type = &args_size[nargs]; + memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', diff --git a/src/patches/glibc/glibc-rh832516.patch b/src/patches/glibc/glibc-rh832516.patch new file mode 100644 index 0000000..476af4b --- /dev/null +++ b/src/patches/glibc/glibc-rh832516.patch @@ -0,0 +1,19 @@ +diff -Nrup a/locale/loadlocale.c b/locale/loadlocale.c +--- a/locale/loadlocale.c 2010-05-04 07:27:23.000000000 -0400 ++++ b/locale/loadlocale.c 2012-08-05 17:19:47.761384155 -0400 +@@ -170,7 +170,6 @@ _nl_load_locale (struct loaded_l10nfile + int save_err; + int alloc = ld_mapped; + +- file->decided = 1; + file->data = NULL; + + fd = open_not_cancel_2 (file->filename, O_RDONLY); +@@ -279,6 +278,7 @@ _nl_load_locale (struct loaded_l10nfile + newdata->alloc = alloc; + + file->data = newdata; ++ file->decided = 1; + } + + void diff --git a/src/patches/glibc/glibc-rh832694.patch b/src/patches/glibc/glibc-rh832694.patch new file mode 100644 index 0000000..249afb5 --- /dev/null +++ b/src/patches/glibc/glibc-rh832694.patch @@ -0,0 +1,22 @@ +diff --git a/sysdeps/gnu/errlist.c b/sysdeps/gnu/errlist.c +index e3d2faf..5437ff8 100644 +--- a/sysdeps/gnu/errlist.c ++++ b/sysdeps/gnu/errlist.c +@@ -780,11 +780,12 @@ TRANS The user's disk quota was exceeded. */ + #endif + #ifdef ESTALE + /* +-TRANS Stale NFS file handle. This indicates an internal confusion in the NFS +-TRANS system which is due to file system rearrangements on the server host. +-TRANS Repairing this condition usually requires unmounting and remounting +-TRANS the NFS file system on the local host. */ +- [ERR_REMAP (ESTALE)] = N_("Stale NFS file handle"), ++TRANS Stale file handle. This indicates an internal confusion in the ++TRANS file system which is due to file system rearrangements on the server host ++TRANS for NFS filesystems or corruption in other filesystems. ++TRANS Repairing this condition usually requires unmounting, possibly ++TRANS repairing and remounting the file system. */ ++ [ERR_REMAP (ESTALE)] = N_("Stale file handle"), + # if ESTALE > ERR_MAX + # undef ERR_MAX + # define ERR_MAX ESTALE diff --git a/src/patches/glibc/glibc-rh833716.patch b/src/patches/glibc/glibc-rh833716.patch deleted file mode 100644 index e44573c..0000000 --- a/src/patches/glibc/glibc-rh833716.patch +++ /dev/null @@ -1,45265 +0,0 @@ -diff -Nrup a/stdio-common/Makefile b/stdio-common/Makefile ---- a/stdio-common/Makefile 2012-05-23 14:54:54.670443298 -0600 -+++ b/stdio-common/Makefile 2012-05-22 13:47:51.000000000 -0600 -@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t - tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ - tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ - bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ -- scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs -+ scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs bug23 bug23-2 bug23-3 - - test-srcs = tst-unbputc tst-printf - -diff -Nrup a/stdio-common/bug23-2.c b/stdio-common/bug23-2.c ---- a/stdio-common/bug23-2.c 1969-12-31 17:00:00.000000000 -0700 -+++ b/stdio-common/bug23-2.c 2012-05-24 07:12:55.331644716 -0600 -@@ -0,0 +1,70 @@ -+#include <stdio.h> -+#include <string.h> -+#include <stdlib.h> -+ -+static const char expected[] = "\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; -+ -+static int -+do_test (void) -+{ -+ char *buf = malloc (strlen (expected) + 1); -+ snprintf (buf, strlen (expected) + 1, -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", -+ "a", "b", "c", "d", 5); -+ return strcmp (buf, expected) != 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -diff -Nrup a/stdio-common/bug23-3.c b/stdio-common/bug23-3.c ---- a/stdio-common/bug23-3.c 1969-12-31 17:00:00.000000000 -0700 -+++ b/stdio-common/bug23-3.c 2012-05-24 07:13:26.948480695 -0600 -@@ -0,0 +1,45076 @@ -+#include <stdio.h> -+#include <string.h> -+#include <stdlib.h> -+ -+static const char expected[] = "\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55\ -+\n\ -+a\n\ -+abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; -+ -+ -+ -+int -+do_test (void) -+{ -+ char *buf = malloc (strlen (expected) + 1); -+ snprintf (buf, strlen (expected) + 1, -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", -+ "a", "b", "c", "d", 5); -+ return (strcmp (buf, expected) != 0); -+} -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -+ -diff -Nrup a/stdio-common/bug23.c b/stdio-common/bug23.c ---- a/stdio-common/bug23.c 1969-12-31 17:00:00.000000000 -0700 -+++ b/stdio-common/bug23.c 2012-05-24 07:12:27.636788393 -0600 -@@ -0,0 +1,22 @@ -+#include <stdio.h> -+#include <string.h> -+#include <stdlib.h> -+ -+static const char expected[] = "\ -+\n\ -+a\n\ -+abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; -+ -+static int -+do_test (void) -+{ -+ char *buf = malloc (strlen (expected) + 1); -+ snprintf (buf, strlen (expected) + 1, -+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" -+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", -+ "a", "b", "c", "d", 5); -+ return strcmp (buf, expected) != 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" -diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c ---- a/stdio-common/vfprintf.c 2012-05-23 14:54:54.689443199 -0600 -+++ b/stdio-common/vfprintf.c 2012-05-23 23:16:55.376155638 -0600 -@@ -238,6 +238,12 @@ vfprintf (FILE *s, const CHAR_T *format, - /* For the argument descriptions, which may be allocated on the heap. */ - void *args_malloced = NULL; - -+ /* For positional argument handling. */ -+ struct printf_spec *specs; -+ -+ /* Track if we malloced the SPECS array and thus must free it. */ -+ bool specs_malloced = false; -+ - /* This table maps a character into a number representing a - class. In each step there is a destination label for each - class. */ -@@ -1638,10 +1644,10 @@ do_positional: - /* Array with information about the needed arguments. This has to - be dynamically extensible. */ - size_t nspecs = 0; -- size_t nspecs_max = 32; /* A more or less arbitrary start value. */ -- struct printf_spec *specs -- = alloca (nspecs_max * sizeof (struct printf_spec)); -+ /* A more or less arbitrary start value. */ -+ size_t nspecs_size = 32 * sizeof (struct printf_spec); - -+ specs = alloca (nspecs_size); - /* The number of arguments the format string requests. This will - determine the size of the array needed to store the argument - attributes. */ -@@ -1678,14 +1684,30 @@ do_positional: - - for (f = lead_str_end; *f != L_('\0'); f = specs[nspecs++].next_fmt) - { -- if (nspecs >= nspecs_max) -+ if (nspecs * sizeof (*specs) >= nspecs_size) - { - /* Extend the array of format specifiers. */ - struct printf_spec *old = specs; -- specs = extend_alloca (specs, nspecs_max, 2 * nspecs_max); -+ if (__libc_use_alloca (2 * nspecs_size)) -+ specs = extend_alloca (specs, nspecs_size, 2 * nspecs_size); -+ else -+ { -+ nspecs_size *= 2; -+ specs = malloc (nspecs_size); -+ } -+ - - /* Copy the old array's elements to the new space. */ -- memmove (specs, old, nspecs * sizeof (struct printf_spec)); -+ memmove (specs, old, nspecs * sizeof (*specs)); -+ -+ /* If we had previously malloc'd space for SPECS, then -+ release it after the copy is complete. */ -+ if (specs_malloced) -+ free (old); -+ -+ /* Now set SPECS_MALLOCED if needed. */ -+ if (!__libc_use_alloca (nspecs_size)) -+ specs_malloced = true; - } - - /* Parse the format specifier. */ -@@ -1998,6 +2020,8 @@ do_positional: - } - - all_done: -+ if (specs_malloced) -+ free (specs); - free (args_malloced); - free (workstart); - /* Unlock the stream. */ diff --git a/src/patches/glibc/glibc-rh833717.patch b/src/patches/glibc/glibc-rh833717.patch new file mode 100644 index 0000000..e44573c --- /dev/null +++ b/src/patches/glibc/glibc-rh833717.patch @@ -0,0 +1,45265 @@ +diff -Nrup a/stdio-common/Makefile b/stdio-common/Makefile +--- a/stdio-common/Makefile 2012-05-23 14:54:54.670443298 -0600 ++++ b/stdio-common/Makefile 2012-05-22 13:47:51.000000000 -0600 +@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ + bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ +- scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs ++ scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs bug23 bug23-2 bug23-3 + + test-srcs = tst-unbputc tst-printf + +diff -Nrup a/stdio-common/bug23-2.c b/stdio-common/bug23-2.c +--- a/stdio-common/bug23-2.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23-2.c 2012-05-24 07:12:55.331644716 -0600 +@@ -0,0 +1,70 @@ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++static int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return strcmp (buf, expected) != 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -Nrup a/stdio-common/bug23-3.c b/stdio-common/bug23-3.c +--- a/stdio-common/bug23-3.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23-3.c 2012-05-24 07:13:26.948480695 -0600 +@@ -0,0 +1,45076 @@ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++ ++ ++int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return (strcmp (buf, expected) != 0); ++} ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" ++ +diff -Nrup a/stdio-common/bug23.c b/stdio-common/bug23.c +--- a/stdio-common/bug23.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23.c 2012-05-24 07:12:27.636788393 -0600 +@@ -0,0 +1,22 @@ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++static int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return strcmp (buf, expected) != 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +--- a/stdio-common/vfprintf.c 2012-05-23 14:54:54.689443199 -0600 ++++ b/stdio-common/vfprintf.c 2012-05-23 23:16:55.376155638 -0600 +@@ -238,6 +238,12 @@ vfprintf (FILE *s, const CHAR_T *format, + /* For the argument descriptions, which may be allocated on the heap. */ + void *args_malloced = NULL; + ++ /* For positional argument handling. */ ++ struct printf_spec *specs; ++ ++ /* Track if we malloced the SPECS array and thus must free it. */ ++ bool specs_malloced = false; ++ + /* This table maps a character into a number representing a + class. In each step there is a destination label for each + class. */ +@@ -1638,10 +1644,10 @@ do_positional: + /* Array with information about the needed arguments. This has to + be dynamically extensible. */ + size_t nspecs = 0; +- size_t nspecs_max = 32; /* A more or less arbitrary start value. */ +- struct printf_spec *specs +- = alloca (nspecs_max * sizeof (struct printf_spec)); ++ /* A more or less arbitrary start value. */ ++ size_t nspecs_size = 32 * sizeof (struct printf_spec); + ++ specs = alloca (nspecs_size); + /* The number of arguments the format string requests. This will + determine the size of the array needed to store the argument + attributes. */ +@@ -1678,14 +1684,30 @@ do_positional: + + for (f = lead_str_end; *f != L_('\0'); f = specs[nspecs++].next_fmt) + { +- if (nspecs >= nspecs_max) ++ if (nspecs * sizeof (*specs) >= nspecs_size) + { + /* Extend the array of format specifiers. */ + struct printf_spec *old = specs; +- specs = extend_alloca (specs, nspecs_max, 2 * nspecs_max); ++ if (__libc_use_alloca (2 * nspecs_size)) ++ specs = extend_alloca (specs, nspecs_size, 2 * nspecs_size); ++ else ++ { ++ nspecs_size *= 2; ++ specs = malloc (nspecs_size); ++ } ++ + + /* Copy the old array's elements to the new space. */ +- memmove (specs, old, nspecs * sizeof (struct printf_spec)); ++ memmove (specs, old, nspecs * sizeof (*specs)); ++ ++ /* If we had previously malloc'd space for SPECS, then ++ release it after the copy is complete. */ ++ if (specs_malloced) ++ free (old); ++ ++ /* Now set SPECS_MALLOCED if needed. */ ++ if (!__libc_use_alloca (nspecs_size)) ++ specs_malloced = true; + } + + /* Parse the format specifier. */ +@@ -1998,6 +2020,8 @@ do_positional: + } + + all_done: ++ if (specs_malloced) ++ free (specs); + free (args_malloced); + free (workstart); + /* Unlock the stream. */ diff --git a/src/patches/glibc/glibc-rh837026.patch b/src/patches/glibc/glibc-rh837026.patch deleted file mode 100644 index 558ad4f..0000000 --- a/src/patches/glibc/glibc-rh837026.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -rup a/resolv/res_send.c b/resolv/res_send.c ---- a/resolv/res_send.c 2012-06-28 11:55:38.361886650 -0600 -+++ b/resolv/res_send.c 2012-06-28 11:51:38.253963687 -0600 -@@ -424,17 +424,15 @@ __libc_res_nsend(res_state statp, const - } - n = statp->nscount; - ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6; -- if (statp->nscount > ext_total_nscount) -- for (n = ext_total_nscount, ns = 0; -- n < statp->nscount; n++) { -- while (ns < MAXNS -- && EXT(statp).nsmap[ns] != MAXNS) -- ns++; -- if (ns == MAXNS) -- break; -- EXT(statp).nsmap[ns] = n; -- map[n] = ns++; -- } -+ for (n = 0, ns = 0; n < statp->nscount - ext_total_nscount; n++) { -+ while (ns < MAXNS -+ && EXT(statp).nsmap[ns] != MAXNS) -+ ns++; -+ if (ns == MAXNS) -+ break; -+ EXT(statp).nsmap[ns] = n; -+ map[n] = ns++; -+ } - EXT(statp).nscount = n; - for (ns = 0; ns < EXT(statp).nscount; ns++) { - n = map[ns]; diff --git a/src/patches/glibc/glibc-rh837695.patch b/src/patches/glibc/glibc-rh837695.patch new file mode 100644 index 0000000..03e1e02 --- /dev/null +++ b/src/patches/glibc/glibc-rh837695.patch @@ -0,0 +1,54 @@ +diff -rup a/nss/nsswitch.h b/nss/nsswitch.h +--- a/nss/nsswitch.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/nss/nsswitch.h 2012-07-05 11:28:15.316585117 -0600 +@@ -182,4 +182,8 @@ extern int __nss_hostname_digits_dots (c + int *h_errnop); + libc_hidden_proto (__nss_hostname_digits_dots) + ++/* Maximum number of aliases we allow. */ ++#define MAX_NR_ALIASES 48 ++#define MAX_NR_ADDRS 48 ++ + #endif /* nsswitch.h */ +Only in b/nss: nsswitch.h.orig +diff -rup a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c +--- a/resolv/nss_dns/dns-host.c 2012-07-05 11:27:39.298760961 -0600 ++++ b/resolv/nss_dns/dns-host.c 2012-07-05 11:28:15.317585112 -0600 +@@ -89,10 +89,6 @@ + + #define RESOLVSORT + +-/* Maximum number of aliases we allow. */ +-#define MAX_NR_ALIASES 48 +-#define MAX_NR_ADDRS 48 +- + #if PACKETSZ > 65536 + # define MAXPACKET PACKETSZ + #else +Only in b/resolv/nss_dns: dns-host.c.orig +diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +--- a/sysdeps/posix/getaddrinfo.c 2012-07-05 11:27:39.284761028 -0600 ++++ b/sysdeps/posix/getaddrinfo.c 2012-07-05 14:15:39.785546125 -0600 +@@ -565,7 +565,10 @@ gaih_inet (const char *name, const struc + IPv6 scope ids. */ + if (req->ai_family == AF_INET) + { +- size_t tmpbuflen = 512; ++ /* Add room for struct host_data in resolv/nss_dns/dns-host.c */ ++ size_t tmpbuflen = 512 + (MAX_NR_ALIASES+MAX_NR_ADDRS+1)*sizeof(char*) ++ + 16 * sizeof(char); ++ + assert (tmpbuf == NULL); + tmpbuf = alloca_account (tmpbuflen, alloca_used); + int rc; +@@ -807,7 +810,7 @@ gaih_inet (const char *name, const struc + old_res_options = _res.options; + _res.options &= ~RES_USE_INET6; + +- size_t tmpbuflen = 1024; ++ size_t tmpbuflen = 1024 + sizeof(struct gaih_addrtuple); + malloc_tmpbuf = !__libc_use_alloca (alloca_used + tmpbuflen); + assert (tmpbuf == NULL); + if (!malloc_tmpbuf) +Only in b/sysdeps/posix: getaddrinfo.c.orig +Only in b/sysdeps/posix: getaddrinfo.c.rej diff --git a/src/patches/glibc/glibc-rh837918.patch b/src/patches/glibc/glibc-rh837918.patch new file mode 100644 index 0000000..924d83d --- /dev/null +++ b/src/patches/glibc/glibc-rh837918.patch @@ -0,0 +1,7183 @@ +diff -Nrup a/math/libm-test.inc b/math/libm-test.inc +--- a/math/libm-test.inc 2010-05-04 05:27:23.000000000 -0600 ++++ b/math/libm-test.inc 2012-08-06 09:54:00.821929695 -0600 +@@ -2018,6 +2018,142 @@ cos_test (void) + + + static void ++cos_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cos) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cos_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L); ++ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L); ++ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L); ++ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L); ++ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L); ++ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L); ++ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L); ++ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L); ++ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L); ++ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cos_tonearest); ++} ++ ++ ++static void ++cos_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cos) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cos_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L); ++ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L); ++ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L); ++ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L); ++ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L); ++ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L); ++ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L); ++ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L); ++ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L); ++ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cos_towardzero); ++} ++ ++ ++static void ++cos_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cos) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cos_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L); ++ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L); ++ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L); ++ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L); ++ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L); ++ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L); ++ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L); ++ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L); ++ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L); ++ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cos_downward); ++} ++ ++ ++static void ++cos_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cos) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cos_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L); ++ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L); ++ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L); ++ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L); ++ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L); ++ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L); ++ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L); ++ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L); ++ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L); ++ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cos_upward); ++} ++ ++ ++static void + cosh_test (void) + { + errno = 0; +@@ -2043,6 +2179,114 @@ cosh_test (void) + + + static void ++cosh_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cosh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cosh_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L); ++ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L); ++ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cosh_tonearest); ++} ++ ++ ++static void ++cosh_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cosh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cosh_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L); ++ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L); ++ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cosh_towardzero); ++} ++ ++ ++static void ++cosh_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cosh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cosh_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L); ++ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L); ++ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cosh_downward); ++} ++ ++ ++static void ++cosh_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(cosh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (cosh_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L); ++ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L); ++ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (cosh_upward); ++} ++ ++ ++static void + cpow_test (void) + { + errno = 0; +@@ -2527,6 +2771,114 @@ exp_test (void) + + + static void ++exp_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(exp) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (exp_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (exp, 1, M_El); ++ TEST_f_f (exp, 2, M_E2l); ++ TEST_f_f (exp, 3, M_E3l); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (exp_tonearest); ++} ++ ++ ++static void ++exp_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(exp) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (exp_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (exp, 1, M_El); ++ TEST_f_f (exp, 2, M_E2l); ++ TEST_f_f (exp, 3, M_E3l); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (exp_towardzero); ++} ++ ++ ++static void ++exp_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(exp) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (exp_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (exp, 1, M_El); ++ TEST_f_f (exp, 2, M_E2l); ++ TEST_f_f (exp, 3, M_E3l); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (exp_downward); ++} ++ ++ ++static void ++exp_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(exp) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (exp_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (exp, 1, M_El); ++ TEST_f_f (exp, 2, M_E2l); ++ TEST_f_f (exp, 3, M_E3l); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (exp_upward); ++} ++ ++ ++static void + exp10_test (void) + { + errno = 0; +@@ -4848,22 +5200,127 @@ pow_test (void) + END (pow); + } + ++ + static void +-remainder_test (void) ++pow_test_tonearest (void) + { ++ int save_round_mode; + errno = 0; +- FUNC(remainder) (1.625, 1.0); ++ FUNC(pow) (0, 0); + if (errno == ENOSYS) + /* Function not implemented. */ + return; + +- START (remainder); ++ START (pow_tonearest); + +- TEST_ff_f (remainder, 1, 0, nan_value, INVALID_EXCEPTION); +- TEST_ff_f (remainder, 1, minus_zero, nan_value, INVALID_EXCEPTION); +- TEST_ff_f (remainder, plus_infty, 1, nan_value, INVALID_EXCEPTION); +- TEST_ff_f (remainder, minus_infty, 1, nan_value, INVALID_EXCEPTION); +- TEST_ff_f (remainder, nan_value, nan_value, nan_value); ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L); ++ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (pow_tonearest); ++} ++ ++ ++static void ++pow_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(pow) (0, 0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (pow_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L); ++ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (pow_towardzero); ++} ++ ++ ++static void ++pow_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(pow) (0, 0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (pow_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L); ++ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (pow_downward); ++} ++ ++ ++static void ++pow_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(pow) (0, 0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (pow_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L); ++ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (pow_upward); ++} ++ ++ ++static void ++remainder_test (void) ++{ ++ errno = 0; ++ FUNC(remainder) (1.625, 1.0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (remainder); ++ ++ TEST_ff_f (remainder, 1, 0, nan_value, INVALID_EXCEPTION); ++ TEST_ff_f (remainder, 1, minus_zero, nan_value, INVALID_EXCEPTION); ++ TEST_ff_f (remainder, plus_infty, 1, nan_value, INVALID_EXCEPTION); ++ TEST_ff_f (remainder, minus_infty, 1, nan_value, INVALID_EXCEPTION); ++ TEST_ff_f (remainder, nan_value, nan_value, nan_value); + + TEST_ff_f (remainder, 1.625, 1.0, -0.375); + TEST_ff_f (remainder, -1.625, 1.0, 0.375); +@@ -5545,6 +6002,7 @@ sin_test (void) + + #ifdef TEST_DOUBLE + TEST_f_f (sin, 0.80190127184058835, 0.71867942238767868); ++ TEST_f_f (sin, 2.522464e-1, 2.4957989804940911e-1); + #endif + + END (sin); +@@ -5553,6 +6011,142 @@ sin_test (void) + + + static void ++sin_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sin) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sin_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L); ++ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L); ++ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L); ++ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L); ++ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L); ++ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L); ++ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L); ++ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L); ++ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L); ++ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sin_tonearest); ++} ++ ++ ++static void ++sin_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sin) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sin_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L); ++ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L); ++ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L); ++ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L); ++ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L); ++ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L); ++ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L); ++ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L); ++ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L); ++ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sin_towardzero); ++} ++ ++ ++static void ++sin_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sin) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sin_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L); ++ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L); ++ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L); ++ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L); ++ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L); ++ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L); ++ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L); ++ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L); ++ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L); ++ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sin_downward); ++} ++ ++ ++static void ++sin_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sin) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sin_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L); ++ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L); ++ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L); ++ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L); ++ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L); ++ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L); ++ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L); ++ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L); ++ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L); ++ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sin_upward); ++} ++ ++ ++static void + sincos_test (void) + { + FLOAT sin_res, cos_res; +@@ -5610,6 +6204,115 @@ sinh_test (void) + END (sinh); + } + ++ ++static void ++sinh_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sinh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sinh_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L); ++ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L); ++ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sinh_tonearest); ++} ++ ++ ++static void ++sinh_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sinh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sinh_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L); ++ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L); ++ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sinh_towardzero); ++} ++ ++ ++static void ++sinh_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sinh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sinh_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L); ++ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L); ++ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sinh_downward); ++} ++ ++ ++static void ++sinh_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(sinh) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (sinh_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L); ++ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L); ++ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (sinh_upward); ++} ++ ++ + static void + sqrt_test (void) + { +@@ -5673,6 +6376,143 @@ tan_test (void) + END (tan); + } + ++ ++static void ++tan_test_tonearest (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(tan) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (tan_tonearest); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TONEAREST)) ++ { ++ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L); ++ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L); ++ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L); ++ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L); ++ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L); ++ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L); ++ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L); ++ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L); ++ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L); ++ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (tan_tonearest); ++} ++ ++ ++static void ++tan_test_towardzero (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(tan) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (tan_towardzero); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_TOWARDZERO)) ++ { ++ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L); ++ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L); ++ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L); ++ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L); ++ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L); ++ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L); ++ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L); ++ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L); ++ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L); ++ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (tan_towardzero); ++} ++ ++ ++static void ++tan_test_downward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(tan) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (tan_downward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_DOWNWARD)) ++ { ++ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L); ++ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L); ++ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L); ++ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L); ++ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L); ++ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L); ++ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L); ++ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L); ++ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L); ++ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (tan_downward); ++} ++ ++ ++static void ++tan_test_upward (void) ++{ ++ int save_round_mode; ++ errno = 0; ++ FUNC(tan) (0); ++ if (errno == ENOSYS) ++ /* Function not implemented. */ ++ return; ++ ++ START (tan_upward); ++ ++ save_round_mode = fegetround (); ++ ++ if (!fesetround (FE_UPWARD)) ++ { ++ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L); ++ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L); ++ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L); ++ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L); ++ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L); ++ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L); ++ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L); ++ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L); ++ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L); ++ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L); ++ } ++ ++ fesetround (save_round_mode); ++ ++ END (tan_upward); ++} ++ ++ + static void + tanh_test (void) + { +@@ -6171,20 +7011,44 @@ main (int argc, char **argv) + atan_test (); + atan2_test (); + cos_test (); ++ cos_test_tonearest (); ++ cos_test_towardzero (); ++ cos_test_downward (); ++ cos_test_upward (); + sin_test (); ++ sin_test_tonearest (); ++ sin_test_towardzero (); ++ sin_test_downward (); ++ sin_test_upward (); + sincos_test (); + tan_test (); ++ tan_test_tonearest (); ++ tan_test_towardzero (); ++ tan_test_downward (); ++ tan_test_upward (); + + /* Hyperbolic functions: */ + acosh_test (); + asinh_test (); + atanh_test (); + cosh_test (); ++ cosh_test_tonearest (); ++ cosh_test_towardzero (); ++ cosh_test_downward (); ++ cosh_test_upward (); + sinh_test (); ++ sinh_test_tonearest (); ++ sinh_test_towardzero (); ++ sinh_test_downward (); ++ sinh_test_upward (); + tanh_test (); + + /* Exponential and logarithmic functions: */ + exp_test (); ++ exp_test_tonearest (); ++ exp_test_towardzero (); ++ exp_test_downward (); ++ exp_test_upward (); + exp10_test (); + exp2_test (); + expm1_test (); +@@ -6207,6 +7071,10 @@ main (int argc, char **argv) + fabs_test (); + hypot_test (); + pow_test (); ++ pow_test_tonearest (); ++ pow_test_towardzero (); ++ pow_test_downward (); ++ pow_test_upward (); + sqrt_test (); + + /* Error and gamma functions: */ +diff -Nrup a/math/math_private.h b/math/math_private.h +--- a/math/math_private.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/math/math_private.h 2012-08-06 09:54:00.821929695 -0600 +@@ -357,4 +357,41 @@ extern void __docos (double __x, double + #define math_force_eval(x) __asm __volatile ("" : : "m" (x)) + #endif + ++ ++/* The standards only specify one variant of the fenv.h interfaces. ++ But at least for some architectures we can be more efficient if we ++ know what operations are going to be performed. Therefore we ++ define additional interfaces. By default they refer to the normal ++ interfaces. */ ++#define libc_fegetround() fegetround () ++#define libc_fegetroundf() fegetround () ++#define libc_fegetroundl() fegetround () ++ ++#define libc_fesetround(r) (void) fesetround (r) ++#define libc_fesetroundf(r) (void) fesetround (r) ++#define libc_fesetroundl(r) (void) fesetround (r) ++ ++#define libc_feholdexcept(e) (void) feholdexcept (e) ++#define libc_feholdexceptf(e) (void) feholdexcept (e) ++#define libc_feholdexceptl(e) (void) feholdexcept (e) ++ ++#define libc_feholdexcept_setround(e, r) \ ++ do { feholdexcept (e); fesetround (r); } while (0) ++#define libc_feholdexcept_setroundf(e, r) \ ++ do { feholdexcept (e); fesetround (r); } while (0) ++#define libc_feholdexcept_setroundl(e, r) \ ++ do { feholdexcept (e); fesetround (r); } while (0) ++ ++#define libc_fetestexcept(e) fetestexcept (e) ++#define libc_fetestexceptf(e) fetestexcept (e) ++#define libc_fetestexceptl(e) fetestexcept (e) ++ ++#define libc_fesetenv(e) (void) fesetenv (e) ++#define libc_fesetenvf(e) (void) fesetenv (e) ++#define libc_fesetenvl(e) (void) fesetenv (e) ++ ++#define libc_feupdateenv(e) (void) feupdateenv (e) ++#define libc_feupdateenvf(e) (void) feupdateenv (e) ++#define libc_feupdateenvl(e) (void) feupdateenv (e) ++ + #endif /* _MATH_PRIVATE_H_ */ +diff -Nrup a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps +--- a/sysdeps/i386/fpu/libm-test-ulps 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/i386/fpu/libm-test-ulps 2012-08-06 11:29:16.370874961 -0600 +@@ -9,18 +9,12 @@ ldouble: 1 + Test "asin (-0.5) == -pi/6": + ildouble: 1 + ldouble: 1 +-Test "asin (-1.0) == -pi/2": +-ildouble: 1 +-ldouble: 1 + Test "asin (0.5) == pi/6": + ildouble: 1 + ldouble: 1 + Test "asin (0.75) == 0.848062078981481008052944338998418080": + ildouble: 1 + ldouble: 1 +-Test "asin (1.0) == pi/2": +-ildouble: 1 +-ldouble: 1 + + # atanh + Test "atanh (0.75) == 0.972955074527656652552676371721589865": +@@ -35,20 +29,6 @@ ildouble: 2 + ldouble: 2 + + # cacosh +-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 9 +-idouble: 1 +-ifloat: 9 +-ildouble: 6 +-ldouble: 6 +-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 4 +-idouble: 1 +-ifloat: 4 +-ildouble: 1 +-ldouble: 1 + Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i": + ildouble: 1 + ldouble: 1 +@@ -124,8 +104,6 @@ ldouble: 1 + Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": + float: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i": + double: 1 + idouble: 1 +@@ -149,9 +127,7 @@ float: 1 + idouble: 1 + ifloat: 1 + Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + + # cexp +@@ -186,8 +162,6 @@ ifloat: 1 + Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": + double: 1 + idouble: 1 +-ildouble: 1 +-ldouble: 1 + Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": + double: 1 + float: 1 +@@ -262,27 +236,175 @@ ifloat: 1 + # cos + Test "cos (M_PI_6l * 2.0) == 0.5": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + Test "cos (M_PI_6l * 4.0) == -0.5": + double: 2 + float: 1 + idouble: 2 + ifloat: 1 ++ ++# cos_downward ++Test "cos_downward (1) == 0.5403023058681397174009366074429766037323": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (10) == -0.8390715290764524522588639478240648345199": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "cos_downward (3) == -0.9899924966004454572715727947312613023937": ++double: 1 ++idouble: 1 ++Test "cos_downward (4) == -0.6536436208636119146391681830977503814241": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_downward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (8) == -0.1455000338086135258688413818311946826093": ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (9) == -0.9111302618846769883682947111811653112463": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# cos_tonearest ++Test "cos_tonearest (8) == -0.1455000338086135258688413818311946826093": ++ildouble: 1 ++ldouble: 1 ++Test "cos_tonearest (9) == -0.9111302618846769883682947111811653112463": ++ildouble: 1 ++ldouble: 1 ++ ++# cos_towardzero ++Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199": + ildouble: 1 + ldouble: 1 +-Test "cos (pi/2) == 0": ++Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 ++Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241": ++double: 1 ++idouble: 1 ++Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + +-# cosh +-Test "cosh (0.75) == 1.29468328467684468784170818539018176": ++# cos_upward ++Test "cos_upward (1) == 0.5403023058681397174009366074429766037323": ++float: 1 ++ifloat: 1 ++Test "cos_upward (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (2) == -0.4161468365471423869975682295007621897660": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (4) == -0.6536436208636119146391681830977503814241": ++double: 1 ++idouble: 1 ++Test "cos_upward (5) == 0.2836621854632262644666391715135573083344": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (6) == 0.9601702866503660205456522979229244054519": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + ildouble: 1 ++ldouble: 1 ++Test "cos_upward (7) == 0.7539022543433046381411975217191820122183": ++double: 1 ++idouble: 1 ++Test "cos_upward (8) == -0.1455000338086135258688413818311946826093": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++# cosh_downward ++Test "cosh_downward (22) == 1792456423.065795780980053377632656584997": ++double: 1 ++float: 1 ++ldouble: 2 ++Test "cosh_downward (23) == 4872401723.124451300068625740569997090344": ++double: 1 ++float: 1 ++ldouble: 1 ++Test "cosh_downward (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ldouble: 1 ++ ++# cosh_tonearest ++Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997": ++ldouble: 1 ++ ++# cosh_towardzero ++Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997": ++double: 1 ++float: 1 ++ldouble: 2 ++Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344": ++double: 1 ++float: 1 ++ldouble: 1 ++Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ldouble: 1 ++ ++# cosh_upward ++Test "cosh_upward (23) == 4872401723.124451300068625740569997090344": ++ldouble: 1 ++Test "cosh_upward (24) == 13244561064.92173614708845674912733665919": ++double: 1 + + # cpow + Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": +@@ -353,12 +475,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 + Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -370,40 +488,36 @@ ifloat: 1 + Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": + double: 1 + idouble: 1 +-ildouble: 439 +-ldouble: 439 ++ildouble: 1 ++ldouble: 1 + Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": + float: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 ++ildouble: 1 ++ldouble: 1 + Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 3 + ldouble: 3 + + # ctanh + Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": +-ildouble: 5 +-ldouble: 5 ++ildouble: 3 ++ldouble: 3 + Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": + float: 1 + ifloat: 1 +-ildouble: 25 +-ldouble: 25 ++ildouble: 1 ++ldouble: 1 + Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": + float: 1 + ifloat: 1 + Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": + double: 1 +@@ -419,9 +533,6 @@ double: 1 + idouble: 1 + + # erfc +-Test "erfc (0.75) == 0.288844366346484868401062165408589223": +-float: 1 +-ifloat: 1 + Test "erfc (1.25) == 0.0770998717435417698634765188027188596": + ildouble: 1 + ldouble: 1 +@@ -434,14 +545,6 @@ idouble: 1 + ildouble: 1 + ldouble: 1 + +-# exp +-Test "exp (0.75) == 2.11700001661267466854536981983709561": +-ildouble: 1 +-Test "exp (1000.0) == 0.197007111401704699388887935224332313e435": +-ildouble: 754 +-Test "exp (50.0) == 5184705528587072464087.45332293348538": +-ildouble: 16 +- + # exp10 + Test "exp10 (-1) == 0.1": + ildouble: 1 +@@ -453,6 +556,51 @@ Test "exp10 (3) == 1000": + ildouble: 8 + ldouble: 8 + ++# exp_downward ++Test "exp_downward (1) == e": ++ildouble: 1 ++ldouble: 1 ++Test "exp_downward (2) == e^2": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "exp_downward (3) == e^3": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_towardzero ++Test "exp_towardzero (1) == e": ++ildouble: 1 ++ldouble: 1 ++Test "exp_towardzero (2) == e^2": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "exp_towardzero (3) == e^3": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_upward ++Test "exp_upward (1) == e": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ + # expm1 + Test "expm1 (1) == M_El - 1.0": + ildouble: 1 +@@ -485,26 +633,24 @@ float: 1 + # j0 + Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "j0 (10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 1 + float: 1 +-idouble: 3 ++idouble: 1 + ifloat: 1 + Test "j0 (2.0) == 0.223890779141235668051827454649948626": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "j0 (8.0) == 0.171650807137553906090869407851972001": +@@ -512,13 +658,8 @@ float: 1 + ifloat: 1 + + # j1 +-Test "j1 (0.75) == 0.349243602174862192523281016426251335": +-double: 1 +-idouble: 1 + Test "j1 (10.0) == 0.0434727461688614366697487680258592883": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -526,9 +667,7 @@ Test "j1 (2.0) == 0.57672480775687338720 + double: 1 + idouble: 1 + Test "j1 (8.0) == 0.234636346853914624381276651590454612": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -536,38 +675,31 @@ ldouble: 1 + # jn + Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (0, 10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 1 + float: 1 +-idouble: 3 ++idouble: 1 + ifloat: 1 + Test "jn (0, 2.0) == 0.223890779141235668051827454649948626": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (0, 8.0) == 0.171650807137553906090869407851972001": + float: 1 + ifloat: 1 +-Test "jn (1, 0.75) == 0.349243602174862192523281016426251335": +-double: 1 +-idouble: 1 + Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -575,9 +707,7 @@ Test "jn (1, 2.0) == 0.57672480775687338 + double: 1 + idouble: 1 + Test "jn (1, 8.0) == 0.234636346853914624381276651590454612": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -589,9 +719,7 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10": + float: 1 +@@ -606,38 +734,32 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (10, 10.0) == 0.207486106633358857697278723518753428": +-double: 5 +-float: 2 +-idouble: 5 +-ifloat: 2 ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6": +-double: 2 +-idouble: 2 + ildouble: 1 + ldouble: 1 + Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083": + ildouble: 1 + ldouble: 1 + Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083": + ildouble: 1 + ldouble: 1 + Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563": +-double: 5 +-float: 2 +-idouble: 5 +-ifloat: 2 ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (3, 2.0) == 0.128943249474402051098793332969239835": +-double: 1 +-idouble: 1 + ildouble: 1 + ldouble: 1 + +@@ -648,9 +770,7 @@ idouble: 1 + ildouble: 1 + ldouble: 1 + Test "lgamma (0.7) == 0.260867246531666514385732417016759578": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1": + double: 1 +@@ -660,11 +780,6 @@ ifloat: 2 + ildouble: 1 + ldouble: 1 + +-# log +-Test "log (e) == 1": +-float: 1 +-ifloat: 1 +- + # log10 + Test "log10 (0.75) == -0.124938736608299953132449886193870744": + ildouble: 1 +@@ -675,20 +790,179 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + +-# sincos +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": ++# pow_downward ++Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": + double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# pow_towardzero ++Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674": ++double: 1 + idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948": ++float: 1 + ifloat: 1 +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": ++ildouble: 1 ++ldouble: 1 ++ ++# pow_upward ++Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sin_downward ++Test "sin_downward (1) == 0.8414709848078965066525023216302989996226": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (10) == -0.5440211108893698134047476618513772816836": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (2) == 0.9092974268256816953960198659117448427023": ++double: 1 ++idouble: 1 ++Test "sin_downward (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (4) == -0.7568024953079282513726390945118290941359": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (5) == -0.9589242746631384688931544061559939733525": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (6) == -0.2794154981989258728115554466118947596280": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 ++Test "sin_downward (7) == 0.6569865987187890903969990915936351779369": + ildouble: 1 + ldouble: 1 +-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": ++Test "sin_downward (8) == 0.9893582466233817778081235982452886721164": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (9) == 0.4121184852417565697562725663524351793439": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sin_tonearest ++Test "sin_tonearest (10) == -0.5440211108893698134047476618513772816836": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (4) == -0.7568024953079282513726390945118290941359": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_towardzero ++Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023": ++double: 1 ++idouble: 1 ++Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (7) == 0.6569865987187890903969990915936351779369": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sin_upward ++Test "sin_upward (1) == 0.8414709848078965066525023216302989996226": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "sin_upward (10) == -0.5440211108893698134047476618513772816836": ++float: 1 ++ifloat: 1 ++Test "sin_upward (2) == 0.9092974268256816953960198659117448427023": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (3) == 0.1411200080598672221007448028081102798469": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "sin_upward (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_upward (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++Test "sin_upward (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (7) == 0.6569865987187890903969990915936351779369": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "sin_upward (8) == 0.9893582466233817778081235982452886721164": ++float: 1 ++ifloat: 1 ++ ++# sincos ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": ++double: 1 ++idouble: 1 ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": + double: 1 + float: 1 + idouble: 1 +@@ -698,66 +972,237 @@ ldouble: 1 + + # sinh + Test "sinh (0.75) == 0.822316731935829980703661634446913849": +-double: 1 + ildouble: 1 + +-# tan +-Test "tan (pi/4) == 1": ++# sinh_downward ++Test "sinh_downward (22) == 1792456423.065795780701106568345764104225": + double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ldouble: 4 ++Test "sinh_downward (23) == 4872401723.124451299966006944252978187305": ++double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 ++Test "sinh_downward (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ldouble: 5 + +-# tgamma +-Test "tgamma (-0.5) == -2 sqrt (pi)": +-double: 2 ++# sinh_tonearest ++Test "sinh_tonearest (22) == 1792456423.065795780701106568345764104225": ++ldouble: 3 ++Test "sinh_tonearest (23) == 4872401723.124451299966006944252978187305": ++ldouble: 1 ++Test "sinh_tonearest (24) == 13244561064.92173614705070540368454568168": ++ldouble: 6 ++ ++# sinh_towardzero ++Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ldouble: 4 ++Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ldouble: 5 ++ ++# sinh_upward ++Test "sinh_upward (22) == 1792456423.065795780701106568345764104225": ++ldouble: 16 ++Test "sinh_upward (23) == 4872401723.124451299966006944252978187305": ++ldouble: 27 ++Test "sinh_upward (24) == 13244561064.92173614705070540368454568168": ++double: 1 ++idouble: 1 ++ldouble: 7 ++ ++# tan_downward ++Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "tan_downward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_downward (2) == -2.1850398632615189916433061023136825434320": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "tan_downward (3) == -0.1425465430742778052956354105339134932261": ++double: 1 ++idouble: 1 ++Test "tan_downward (4) == 1.1578212823495775831373424182673239231198": + float: 1 +-idouble: 2 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "tgamma (0.5) == sqrt (pi)": ++Test "tan_downward (5) == -3.3805150062465856369827058794473439087096": ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (6) == -0.2910061913847491570536995888681755428312": ++double: 1 + float: 1 ++idouble: 1 + ifloat: 1 +-Test "tgamma (0.7) == 1.29805533264755778568117117915281162": ++Test "tan_downward (7) == 0.8714479827243187364564508896003135663222": ++double: 1 ++idouble: 1 ++Test "tan_downward (8) == -6.7997114552203786999252627596086333648814": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ ++# tan_tonearest ++Test "tan_tonearest (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (8) == -6.7997114552203786999252627596086333648814": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (9) == -0.4523156594418098405903708757987855343087": ++ildouble: 1 ++ldouble: 1 ++ ++# tan_towardzero ++Test "tan_towardzero (1) == 1.5574077246549022305069748074583601730873": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "tgamma (4) == 6": ++Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_towardzero (2) == -2.1850398632615189916433061023136825434320": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (7) == 0.8714479827243187364564508896003135663222": ++double: 1 ++idouble: 1 ++Test "tan_towardzero (8) == -6.7997114552203786999252627596086333648814": ++double: 1 ++idouble: 1 ++ildouble: 2 ++ldouble: 2 ++Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087": ++double: 1 ++idouble: 1 + ildouble: 1 + ldouble: 1 + +-# y0 +-Test "y0 (0.125) == -1.38968062514384052915582277745018693": ++# tan_upward ++Test "tan_upward (1) == 1.5574077246549022305069748074583601730873": + ildouble: 1 + ldouble: 1 +-Test "y0 (0.75) == -0.137172769385772397522814379396581855": ++Test "tan_upward (10) == 0.6483608274590866712591249330098086768169": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (2) == -2.1850398632615189916433061023136825434320": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (4) == 1.1578212823495775831373424182673239231198": ++double: 1 ++idouble: 1 ++Test "tan_upward (5) == -3.3805150062465856369827058794473439087096": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "y0 (1.0) == 0.0882569642156769579829267660235151628": ++Test "tan_upward (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (7) == 0.8714479827243187364564508896003135663222": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (8) == -6.7997114552203786999252627596086333648814": ++double: 1 ++idouble: 1 ++ildouble: 2 ++ldouble: 2 ++Test "tan_upward (9) == -0.4523156594418098405903708757987855343087": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# tgamma ++Test "tgamma (-0.5) == -2 sqrt (pi)": + double: 2 + float: 1 + idouble: 2 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "y0 (1.5) == 0.382448923797758843955068554978089862": ++Test "tgamma (0.5) == sqrt (pi)": ++float: 1 ++ifloat: 1 ++Test "tgamma (0.7) == 1.29805533264755778568117117915281162": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "y0 (10.0) == 0.0556711672835993914244598774101900481": ++ ++# y0 ++Test "y0 (0.125) == -1.38968062514384052915582277745018693": ++ildouble: 1 ++ldouble: 1 ++Test "y0 (0.75) == -0.137172769385772397522814379396581855": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 ++Test "y0 (1.0) == 0.0882569642156769579829267660235151628": ++ildouble: 1 ++ldouble: 1 ++Test "y0 (10.0) == 0.0556711672835993914244598774101900481": ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "y0 (8.0) == 0.223521489387566220527323400498620359": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -766,9 +1211,6 @@ ldouble: 1 + Test "y1 (0.125) == -5.19993611253477499595928744876579921": + ildouble: 1 + ldouble: 1 +-Test "y1 (1.0) == -0.781212821300288716547150000047964821": +-double: 1 +-idouble: 1 + Test "y1 (10.0) == 0.249015424206953883923283474663222803": + double: 2 + float: 2 +@@ -782,9 +1224,7 @@ ifloat: 2 + ildouble: 1 + ldouble: 1 + Test "y1 (8.0) == -0.158060461731247494255555266187483550": +-double: 1 + float: 2 +-idouble: 1 + ifloat: 2 + ildouble: 1 + ldouble: 1 +@@ -799,37 +1239,21 @@ float: 1 + idouble: 1 + ifloat: 1 + Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628": +-double: 2 +-float: 1 +-idouble: 2 +-ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862": +-double: 1 +-float: 1 +-idouble: 1 +-ifloat: 1 + Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "yn (0, 8.0) == 0.223521489387566220527323400498620359": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "yn (1, 0.125) == -5.19993611253477499595928744876579921": + ildouble: 1 + ldouble: 1 +-Test "yn (1, 1.0) == -0.781212821300288716547150000047964821": +-double: 1 +-idouble: 1 + Test "yn (1, 10.0) == 0.249015424206953883923283474663222803": + double: 2 + float: 2 +@@ -843,17 +1267,13 @@ ifloat: 2 + ildouble: 1 + ldouble: 1 + Test "yn (1, 8.0) == -0.158060461731247494255555266187483550": +-double: 1 + float: 2 +-idouble: 1 + ifloat: 2 + ildouble: 1 + ldouble: 1 + Test "yn (10, 0.125) == -127057845771019398.252538486899753195": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "yn (10, 0.75) == -2133501638.90573424452445412893839236": +@@ -862,28 +1282,22 @@ ifloat: 1 + ildouble: 4 + ldouble: 4 + Test "yn (10, 1.0) == -121618014.278689189288130426667971145": +-double: 1 + float: 2 +-idouble: 1 + ifloat: 2 + Test "yn (10, 10.0) == -0.359814152183402722051986577343560609": + double: 1 +-float: 3 ++float: 1 + idouble: 1 +-ifloat: 3 ++ifloat: 1 + Test "yn (10, 2.0) == -129184.542208039282635913145923304214": +-double: 2 + float: 3 +-idouble: 2 + ifloat: 3 + Test "yn (3, 0.125) == -2612.69757350066712600220955744091741": + ildouble: 1 + ldouble: 1 + Test "yn (3, 0.75) == -12.9877176234475433186319774484809207": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "yn (3, 10.0) == -0.251362657183837329779204747654240998": +@@ -892,15 +1306,13 @@ float: 1 + idouble: 1 + ifloat: 1 + Test "yn (3, 2.0) == -1.12778377684042778608158395773179238": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + + # Maximal error of functions: + Function: "acos": +-ildouble: 622 +-ldouble: 622 ++ildouble: 1 ++ldouble: 1 + + Function: "asin": + ildouble: 1 +@@ -917,18 +1329,6 @@ ildouble: 2 + ldouble: 2 + + Function: Real part of "cacosh": +-double: 1 +-float: 9 +-idouble: 1 +-ifloat: 9 +-ildouble: 6 +-ldouble: 6 +- +-Function: Imaginary part of "cacosh": +-double: 1 +-float: 4 +-idouble: 1 +-ifloat: 4 + ildouble: 1 + ldouble: 1 + +@@ -1033,8 +1433,6 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + + Function: "cos": + double: 2 +@@ -1044,16 +1442,58 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + +-Function: "cosh": ++Function: "cos_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_tonearest": + ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_upward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_downward": ++double: 1 ++float: 1 ++ldouble: 2 ++ ++Function: "cosh_tonearest": ++ldouble: 1 ++ ++Function: "cosh_towardzero": ++double: 1 ++float: 1 ++ldouble: 2 ++ ++Function: "cosh_upward": ++double: 1 ++ldouble: 1 + + Function: Real part of "cpow": + double: 1 + float: 4 + idouble: 1 + ifloat: 4 +-ildouble: 763 +-ldouble: 763 ++ildouble: 6 ++ldouble: 6 + + Function: Imaginary part of "cpow": + double: 2 +@@ -1086,38 +1526,32 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 + + Function: Real part of "ctan": + double: 1 + idouble: 1 +-ildouble: 439 +-ldouble: 439 ++ildouble: 1 ++ldouble: 1 + + Function: Imaginary part of "ctan": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 3 + ldouble: 3 + + Function: Real part of "ctanh": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 +-ildouble: 5 +-ldouble: 5 ++ildouble: 3 ++ldouble: 3 + + Function: Imaginary part of "ctanh": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 25 +-ldouble: 25 ++ildouble: 1 ++ldouble: 1 + + Function: "erf": + double: 1 +@@ -1125,19 +1559,36 @@ idouble: 1 + + Function: "erfc": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 1 + ldouble: 1 + +-Function: "exp": +-ildouble: 754 +- + Function: "exp10": + ildouble: 8 + ldouble: 8 + ++Function: "exp_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "exp_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "exp_upward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ + Function: "expm1": + ildouble: 1 + +@@ -1151,10 +1602,10 @@ Function: "hypot": + float: 1 + + Function: "j0": +-double: 3 +-float: 2 +-idouble: 3 +-ifloat: 2 ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -1167,10 +1618,10 @@ ildouble: 1 + ldouble: 1 + + Function: "jn": +-double: 5 +-float: 2 +-idouble: 5 +-ifloat: 2 ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + +@@ -1192,6 +1643,58 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "pow_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_upward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_upward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + Function: "sincos": + double: 1 + float: 1 +@@ -1201,13 +1704,62 @@ ildouble: 1 + ldouble: 1 + + Function: "sinh": +-double: 1 + ildouble: 1 + ++Function: "sinh_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ldouble: 5 ++ ++Function: "sinh_tonearest": ++ldouble: 6 ++ ++Function: "sinh_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ldouble: 5 ++ ++Function: "sinh_upward": ++double: 1 ++idouble: 1 ++ldouble: 27 ++ + Function: "tan": + double: 1 + idouble: 1 + ++Function: "tan_downward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_towardzero": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "tan_upward": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ + Function: "tgamma": + double: 2 + float: 1 +@@ -1217,9 +1769,9 @@ ildouble: 1 + ldouble: 1 + + Function: "y0": +-double: 2 ++double: 1 + float: 1 +-idouble: 2 ++idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +diff -Nrup a/sysdeps/ieee754/dbl-64/e_exp.c b/sysdeps/ieee754/dbl-64/e_exp.c +--- a/sysdeps/ieee754/dbl-64/e_exp.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/e_exp.c 2012-08-06 09:54:00.823929687 -0600 +@@ -1,7 +1,7 @@ + /* + * IBM Accurate Mathematical Library + * written by International Business Machines Corp. +- * Copyright (C) 2001 Free Software Foundation ++ * Copyright (C) 2001-2012 Free Software Foundation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by +@@ -39,6 +39,7 @@ + #include "MathLib.h" + #include "uexp.tbl" + #include "math_private.h" ++#include <fenv.h> + + double __slowexp(double); + +@@ -53,6 +54,10 @@ double __ieee754_exp(double x) { + int4 k; + #endif + int4 i,j,m,n,ex; ++ fenv_t env; ++ double retval; ++ ++ libc_feholdexcept_setround (&env, FE_TONEAREST); + + junk1.x = x; + m = junk1.i[HIGH_HALF]; +@@ -85,18 +90,19 @@ double __ieee754_exp(double x) { + rem=(bet + bet*eps)+al*eps; + res = al + rem; + cor = (al - res) + rem; +- if (res == (res+cor*err_0)) return res*binexp.x; +- else return __slowexp(x); /*if error is over bound */ ++ if (res == (res+cor*err_0)) { retval = res*binexp.x; goto ret; } ++ else { retval = __slowexp(x); goto ret; } /*if error is over bound */ + } + +- if (n <= smallint) return 1.0; ++ if (n <= smallint) { retval = 1.0; goto ret; } + + if (n >= badint) { +- if (n > infint) return(x+x); /* x is NaN */ +- if (n < infint) return ( (x>0) ? (hhuge*hhuge) : (tiny*tiny) ); ++ if (n > infint) { retval = x+x; goto ret; } /* x is NaN */ ++ if (n < infint) { retval = (x>0) ? (hhuge*hhuge) : (tiny*tiny); goto ret; } + /* x is finite, cause either overflow or underflow */ +- if (junk1.i[LOW_HALF] != 0) return (x+x); /* x is NaN */ +- return ((x>0)?inf.x:zero ); /* |x| = inf; return either inf or 0 */ ++ if (junk1.i[LOW_HALF] != 0) { retval = x+x; goto ret; } /* x is NaN */ ++ retval = (x>0)?inf.x:zero; /* |x| = inf; return either inf or 0 */ ++ goto ret; + } + + y = x*log2e.x + three51.x; +@@ -121,8 +127,8 @@ double __ieee754_exp(double x) { + if (res < 1.0) {res+=res; cor+=cor; ex-=1;} + if (ex >=-1022) { + binexp.i[HIGH_HALF] = (1023+ex)<<20; +- if (res == (res+cor*err_0)) return res*binexp.x; +- else return __slowexp(x); /*if error is over bound */ ++ if (res == (res+cor*err_0)) { retval = res*binexp.x; goto ret; } ++ else { retval = __slowexp(x); goto ret; } /*if error is over bound */ + } + ex = -(1022+ex); + binexp.i[HIGH_HALF] = (1023-ex)<<20; +@@ -135,15 +141,19 @@ double __ieee754_exp(double x) { + cor = (t-res)+y; + if (res == (res + eps*cor)) + { binexp.i[HIGH_HALF] = 0x00100000; +- return (res-1.0)*binexp.x; ++ retval = (res-1.0)*binexp.x; ++ goto ret; + } +- else return __slowexp(x); /* if error is over bound */ ++ else { retval = __slowexp(x); goto ret; } /* if error is over bound */ + } + else { + binexp.i[HIGH_HALF] =(junk1.i[LOW_HALF]+767)<<20; +- if (res == (res+cor*err_0)) return res*binexp.x*t256.x; +- else return __slowexp(x); ++ if (res == (res+cor*err_0)) { retval = res*binexp.x*t256.x; goto ret; } ++ else { retval = __slowexp(x); goto ret; } + } ++ ret: ++ libc_feupdateenv (&env); ++ return retval; + } + + /************************************************************************/ +diff -Nrup a/sysdeps/ieee754/dbl-64/e_exp2.c b/sysdeps/ieee754/dbl-64/e_exp2.c +--- a/sysdeps/ieee754/dbl-64/e_exp2.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/e_exp2.c 2012-08-06 09:54:00.824929683 -0600 +@@ -24,9 +24,6 @@ + 17 (1), March 1991, pp. 26-45. + It has been slightly modified to compute 2^x instead of e^x. + */ +-#ifndef _GNU_SOURCE +-#define _GNU_SOURCE +-#endif + #include <stdlib.h> + #include <float.h> + #include <ieee754.h> +@@ -37,13 +34,8 @@ + + #include "t_exp2.h" + +-/* XXX I know the assembler generates a warning about incorrect section +- attributes. But without the attribute here the compiler places the +- constants in the .data section. Ideally the constant is placed in +- .rodata.cst8 so that it can be merged, but gcc sucks, it ICEs when +- we try to force this section on it. --drepper */ +-static const volatile double TWO1023 = 8.988465674311579539e+307; +-static const volatile double TWOM1000 = 9.3326361850321887899e-302; ++static const double TWO1023 = 8.988465674311579539e+307; ++static const double TWOM1000 = 9.3326361850321887899e-302; + + double + __ieee754_exp2 (double x) +@@ -60,11 +52,7 @@ __ieee754_exp2 (double x) + union ieee754_double ex2_u, scale_u; + fenv_t oldenv; + +- feholdexcept (&oldenv); +-#ifdef FE_TONEAREST +- /* If we don't have this, it's too bad. */ +- fesetround (FE_TONEAREST); +-#endif ++ libc_feholdexcept_setround (&oldenv, FE_TONEAREST); + + /* 1. Argument reduction. + Choose integers ex, -256 <= t < 256, and some real +@@ -108,9 +96,10 @@ __ieee754_exp2 (double x) + * x + .055504110254308625) + * x + .240226506959100583) + * x + .69314718055994495) * ex2_u.d; ++ math_opt_barrier (x22); + + /* 5. Return (2^x2-1) * 2^(t/512+e+ex) + 2^(t/512+e+ex). */ +- fesetenv (&oldenv); ++ libc_fesetenv (&oldenv); + + result = x22 * x + ex2_u.d; + +diff -Nrup a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c +--- a/sysdeps/ieee754/dbl-64/e_pow.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/e_pow.c 2012-08-06 09:54:00.824929683 -0600 +@@ -42,6 +42,7 @@ + #include "MathLib.h" + #include "upow.tbl" + #include "math_private.h" ++#include <fenv.h> + + + double __exp1(double x, double xx, double error); +@@ -79,6 +80,11 @@ double __ieee754_pow(double x, double y) + (u.i[HIGH_HALF]==0 && u.i[LOW_HALF]!=0)) && + /* 2^-1023< x<= 2^-1023 * 0x1.0000ffffffff */ + (v.i[HIGH_HALF]&0x7fffffff) < 0x4ff00000) { /* if y<-1 or y>1 */ ++ fenv_t env; ++ double retval; ++ ++ libc_feholdexcept_setround (&env, FE_TONEAREST); ++ + z = log1(x,&aa,&error); /* x^y =e^(y log (X)) */ + t = y*134217729.0; + y1 = t - (t-y); +@@ -92,7 +98,10 @@ double __ieee754_pow(double x, double y) + a2 = (a-a1)+aa; + error = error*ABS(y); + t = __exp1(a1,a2,1.9e16*error); /* return -10 or 0 if wasn't computed exactly */ +- return (t>0)?t:power1(x,y); ++ retval = (t>0)?t:power1(x,y); ++ ++ libc_feupdateenv (&env); ++ return retval; + } + + if (x == 0) { +diff -Nrup a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c +--- a/sysdeps/ieee754/dbl-64/s_sin.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/s_sin.c 2012-08-06 09:54:00.827929671 -0600 +@@ -55,6 +55,7 @@ + #include "MathLib.h" + #include "sincos.tbl" + #include "math_private.h" ++#include <fenv.h> + + static const double + sn3 = -1.66666666666664880952546298448555E-01, +@@ -97,12 +98,16 @@ double __sin(double x){ + #if 0 + int4 nn; + #endif ++ fenv_t env; ++ double retval = 0; ++ ++ libc_feholdexcept_setround (&env, FE_TONEAREST); + + u.x = x; + m = u.i[HIGH_HALF]; + k = 0x7fffffff&m; /* no sign */ + if (k < 0x3e500000) /* if x->0 =>sin(x)=x */ +- return x; ++ { retval = x; goto ret; } + /*---------------------------- 2^-26 < |x|< 0.25 ----------------------*/ + else if (k < 0x3fd00000){ + xx = x*x; +@@ -110,7 +115,8 @@ double __sin(double x){ + t = ((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + s1.x)*(xx*x); + res = x+t; + cor = (x-res)+t; +- return (res == res + 1.07*cor)? res : slow(x); ++ retval = (res == res + 1.07*cor)? res : slow(x); ++ goto ret; + } /* else if (k < 0x3fd00000) */ + /*---------------------------- 0.25<|x|< 0.855469---------------------- */ + else if (k < 0x3feb6000) { +@@ -127,7 +133,8 @@ double __sin(double x){ + cor=(ssn+s*ccs-sn*c)+cs*s; + res=sn+cor; + cor=(sn-res)+cor; +- return (res==res+1.025*cor)? res : slow1(x); ++ retval = (res==res+1.096*cor)? res : slow1(x); ++ goto ret; + } /* else if (k < 0x3feb6000) */ + + /*----------------------- 0.855469 <|x|<2.426265 ----------------------*/ +@@ -153,7 +160,8 @@ double __sin(double x){ + cor=(ccs-s*ssn-cs*c)-sn*s; + res=cs+cor; + cor=(cs-res)+cor; +- return (res==res+1.020*cor)? ((m>0)?res:-res) : slow2(x); ++ retval = (res==res+1.020*cor)? ((m>0)?res:-res) : slow2(x); ++ goto ret; + } /* else if (k < 0x400368fd) */ + + /*-------------------------- 2.426265<|x|< 105414350 ----------------------*/ +@@ -179,7 +187,8 @@ double __sin(double x){ + res = a+t; + cor = (a-res)+t; + cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps; +- return (res == res + cor)? res : sloww(a,da,x); ++ retval = (res == res + cor)? res : sloww(a,da,x); ++ goto ret; + } + else { + if (a>0) +@@ -200,7 +209,8 @@ double __sin(double x){ + res=sn+cor; + cor=(sn-res)+cor; + cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps; +- return (res==res+cor)? ((m)?res:-res) : sloww1(a,da,x); ++ retval = (res==res+cor)? ((m)?res:-res) : sloww1(a,da,x); ++ goto ret; + } + break; + +@@ -222,7 +232,8 @@ double __sin(double x){ + res=cs+cor; + cor=(cs-res)+cor; + cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps; +- return (res==res+cor)? ((n&2)?-res:res) : sloww2(a,da,x,n); ++ retval = (res==res+cor)? ((n&2)?-res:res) : sloww2(a,da,x,n); ++ goto ret; + + break; + +@@ -258,7 +269,8 @@ double __sin(double x){ + res = a+t; + cor = (a-res)+t; + cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps; +- return (res == res + cor)? res : bsloww(a,da,x,n); ++ retval = (res == res + cor)? res : bsloww(a,da,x,n); ++ goto ret; + } + else { + if (a>0) {m=1;t=a;db=da;} +@@ -277,7 +289,8 @@ double __sin(double x){ + res=sn+cor; + cor=(sn-res)+cor; + cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps; +- return (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n); ++ retval = (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n); ++ goto ret; + } + break; + +@@ -299,7 +312,8 @@ double __sin(double x){ + res=cs+cor; + cor=(cs-res)+cor; + cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps; +- return (res==res+cor)? ((n&2)?-res:res) : bsloww2(a,da,x,n); ++ retval = (res==res+cor)? ((n&2)?-res:res) : bsloww2(a,da,x,n); ++ goto ret; + + break; + +@@ -313,17 +327,20 @@ double __sin(double x){ + n = __branred(x,&a,&da); + switch (n) { + case 0: +- if (a*a < 0.01588) return bsloww(a,da,x,n); +- else return bsloww1(a,da,x,n); ++ if (a*a < 0.01588) retval = bsloww(a,da,x,n); ++ else retval = bsloww1(a,da,x,n); ++ goto ret; + break; + case 2: +- if (a*a < 0.01588) return bsloww(-a,-da,x,n); +- else return bsloww1(-a,-da,x,n); ++ if (a*a < 0.01588) retval = bsloww(-a,-da,x,n); ++ else retval = bsloww1(-a,-da,x,n); ++ goto ret; + break; + + case 1: + case 3: +- return bsloww2(a,da,x,n); ++ retval = bsloww2(a,da,x,n); ++ goto ret; + break; + } + +@@ -333,9 +350,13 @@ double __sin(double x){ + else { + if (k == 0x7ff00000 && u.i[LOW_HALF] == 0) + __set_errno (EDOM); +- return x / x; ++ retval = x / x; ++ goto ret; + } +- return 0; /* unreachable */ ++ ++ ret: ++ libc_feupdateenv (&env); ++ return retval; + } + + +@@ -350,11 +371,16 @@ double __cos(double x) + mynumber u,v; + int4 k,m,n; + ++ fenv_t env; ++ double retval = 0; ++ ++ libc_feholdexcept_setround (&env, FE_TONEAREST); ++ + u.x = x; + m = u.i[HIGH_HALF]; + k = 0x7fffffff&m; + +- if (k < 0x3e400000 ) return 1.0; /* |x|<2^-27 => cos(x)=1 */ ++ if (k < 0x3e400000 ) { retval = 1.0; goto ret; } /* |x|<2^-27 => cos(x)=1 */ + + else if (k < 0x3feb6000 ) {/* 2^-27 < |x| < 0.855469 */ + y=ABS(x); +@@ -371,7 +397,8 @@ double __cos(double x) + cor=(ccs-s*ssn-cs*c)-sn*s; + res=cs+cor; + cor=(cs-res)+cor; +- return (res==res+1.020*cor)? res : cslow2(x); ++ retval = (res==res+1.020*cor)? res : cslow2(x); ++ goto ret; + + } /* else if (k < 0x3feb6000) */ + +@@ -385,7 +412,8 @@ double __cos(double x) + res = a+t; + cor = (a-res)+t; + cor = (cor>0)? 1.02*cor+1.0e-31 : 1.02*cor -1.0e-31; +- return (res == res + cor)? res : csloww(a,da,x); ++ retval = (res == res + cor)? res : csloww(a,da,x); ++ goto ret; + } + else { + if (a>0) {m=1;t=a;db=da;} +@@ -404,7 +432,8 @@ double __cos(double x) + res=sn+cor; + cor=(sn-res)+cor; + cor = (cor>0)? 1.035*cor+1.0e-31 : 1.035*cor-1.0e-31; +- return (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x); ++ retval = (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x); ++ goto ret; + } + + } /* else if (k < 0x400368fd) */ +@@ -431,7 +460,8 @@ double __cos(double x) + res = a+t; + cor = (a-res)+t; + cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps; +- return (res == res + cor)? res : csloww(a,da,x); ++ retval = (res == res + cor)? res : csloww(a,da,x); ++ goto ret; + } + else { + if (a>0) {m=1;t=a;db=da;} +@@ -450,7 +480,8 @@ double __cos(double x) + res=sn+cor; + cor=(sn-res)+cor; + cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps; +- return (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x); ++ retval = (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x); ++ goto ret; + } + break; + +@@ -471,7 +502,8 @@ double __cos(double x) + res=cs+cor; + cor=(cs-res)+cor; + cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps; +- return (res==res+cor)? ((n)?-res:res) : csloww2(a,da,x,n); ++ retval = (res==res+cor)? ((n)?-res:res) : csloww2(a,da,x,n); ++ goto ret; + + break; + +@@ -506,7 +538,8 @@ double __cos(double x) + res = a+t; + cor = (a-res)+t; + cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps; +- return (res == res + cor)? res : bsloww(a,da,x,n); ++ retval = (res == res + cor)? res : bsloww(a,da,x,n); ++ goto ret; + } + else { + if (a>0) {m=1;t=a;db=da;} +@@ -525,7 +558,8 @@ double __cos(double x) + res=sn+cor; + cor=(sn-res)+cor; + cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps; +- return (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n); ++ retval = (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n); ++ goto ret; + } + break; + +@@ -546,7 +580,8 @@ double __cos(double x) + res=cs+cor; + cor=(cs-res)+cor; + cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps; +- return (res==res+cor)? ((n)?-res:res) : bsloww2(a,da,x,n); ++ retval = (res==res+cor)? ((n)?-res:res) : bsloww2(a,da,x,n); ++ goto ret; + break; + + } +@@ -558,17 +593,20 @@ double __cos(double x) + n = __branred(x,&a,&da); + switch (n) { + case 1: +- if (a*a < 0.01588) return bsloww(-a,-da,x,n); +- else return bsloww1(-a,-da,x,n); ++ if (a*a < 0.01588) retval = bsloww(-a,-da,x,n); ++ else retval = bsloww1(-a,-da,x,n); ++ goto ret; + break; + case 3: +- if (a*a < 0.01588) return bsloww(a,da,x,n); +- else return bsloww1(a,da,x,n); ++ if (a*a < 0.01588) retval = bsloww(a,da,x,n); ++ else retval = bsloww1(a,da,x,n); ++ goto ret; + break; + + case 0: + case 2: +- return bsloww2(a,da,x,n); ++ retval = bsloww2(a,da,x,n); ++ goto ret; + break; + } + +@@ -580,10 +618,13 @@ double __cos(double x) + else { + if (k == 0x7ff00000 && u.i[LOW_HALF] == 0) + __set_errno (EDOM); +- return x / x; /* |x| > 2^1024 */ ++ retval = x / x; /* |x| > 2^1024 */ ++ goto ret; + } +- return 0; + ++ ret: ++ libc_feupdateenv (&env); ++ return retval; + } + + /************************************************************************/ +diff -Nrup a/sysdeps/ieee754/dbl-64/s_tan.c b/sysdeps/ieee754/dbl-64/s_tan.c +--- a/sysdeps/ieee754/dbl-64/s_tan.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/s_tan.c 2012-08-06 09:54:00.828929666 -0600 +@@ -40,6 +40,8 @@ + #include "mpa.h" + #include "MathLib.h" + #include "math.h" ++#include "math_private.h" ++#include <fenv.h> + + static double tanMp(double); + void __mptan(double, mp_no *, int); +@@ -58,21 +60,27 @@ double tan(double x) { + mp_no mpy; + #endif + ++ fenv_t env; ++ double retval; ++ + int __branred(double, double *, double *); + int __mpranred(double, mp_no *, int); + ++ libc_feholdexcept_setround (&env, FE_TONEAREST); ++ + /* x=+-INF, x=NaN */ + num.d = x; ux = num.i[HIGH_HALF]; + if ((ux&0x7ff00000)==0x7ff00000) { + if ((ux&0x7fffffff)==0x7ff00000) + __set_errno (EDOM); +- return x-x; ++ retval = x-x; ++ goto ret; + } + + w=(x<ZERO) ? -x : x; + + /* (I) The case abs(x) <= 1.259e-8 */ +- if (w<=g1.d) return x; ++ if (w<=g1.d) { retval = x; goto ret; } + + /* (II) The case 1.259e-8 < abs(x) <= 0.0608 */ + if (w<=g2.d) { +@@ -80,7 +88,7 @@ double tan(double x) { + /* First stage */ + x2 = x*x; + t2 = x*x2*(d3.d+x2*(d5.d+x2*(d7.d+x2*(d9.d+x2*d11.d)))); +- if ((y=x+(t2-u1.d*t2)) == x+(t2+u1.d*t2)) return y; ++ if ((y=x+(t2-u1.d*t2)) == x+(t2+u1.d*t2)) { retval = y; goto ret; } + + /* Second stage */ + c1 = x2*(a15.d+x2*(a17.d+x2*(a19.d+x2*(a21.d+x2*(a23.d+x2*(a25.d+ +@@ -100,8 +108,9 @@ double tan(double x) { + MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8) + MUL2(x ,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8) + ADD2(x ,zero.d,c2,cc2,c1,cc1,t1,t2) +- if ((y=c1+(cc1-u2.d*c1)) == c1+(cc1+u2.d*c1)) return y; +- return tanMp(x); ++ if ((y=c1+(cc1-u2.d*c1)) == c1+(cc1+u2.d*c1)) { retval = y; goto ret; } ++ retval = tanMp(x); ++ goto ret; + } + + /* (III) The case 0.0608 < abs(x) <= 0.787 */ +@@ -112,10 +121,10 @@ double tan(double x) { + z = w-xfg[i][0].d; z2 = z*z; s = (x<ZERO) ? MONE : ONE; + pz = z+z*z2*(e0.d+z2*e1.d); + fi = xfg[i][1].d; gi = xfg[i][2].d; t2 = pz*(gi+fi)/(gi-pz); +- if ((y=fi+(t2-fi*u3.d))==fi+(t2+fi*u3.d)) return (s*y); ++ if ((y=fi+(t2-fi*u3.d))==fi+(t2+fi*u3.d)) { retval = (s*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = fi*ua3.d+t3*ub3.d; +- if ((y=fi+(t2-t4))==fi+(t2+t4)) return (s*y); ++ if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (s*y); goto ret; } + + /* Second stage */ + ffi = xfg[i][3].d; +@@ -133,8 +142,9 @@ double tan(double x) { + SUB2(one.d,zero.d,c3,cc3,c1,cc1,t1,t2) + DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) + +- if ((y=c3+(cc3-u4.d*c3))==c3+(cc3+u4.d*c3)) return (s*y); +- return tanMp(x); ++ if ((y=c3+(cc3-u4.d*c3))==c3+(cc3+u4.d*c3)) { retval = (s*y); goto ret; } ++ retval = tanMp(x); ++ goto ret; + } + + /* (---) The case 0.787 < abs(x) <= 25 */ +@@ -152,7 +162,7 @@ double tan(double x) { + else {ya= a; yya= da; sy= ONE;} + + /* (IV),(V) The case 0.787 < abs(x) <= 25, abs(y) <= 1e-7 */ +- if (ya<=gy1.d) return tanMp(x); ++ if (ya<=gy1.d) { retval = tanMp(x); goto ret; } + + /* (VI) The case 0.787 < abs(x) <= 25, 1e-7 < abs(y) <= 0.0608 */ + if (ya<=gy2.d) { +@@ -162,10 +172,10 @@ double tan(double x) { + /* First stage -cot */ + EADD(a,t2,b,db) + DIV2(one.d,zero.d,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c+(dc-u6.d*c))==c+(dc+u6.d*c)) return (-y); } ++ if ((y=c+(dc-u6.d*c))==c+(dc+u6.d*c)) { retval = (-y); goto ret; } } + else { + /* First stage tan */ +- if ((y=a+(t2-u5.d*a))==a+(t2+u5.d*a)) return y; } ++ if ((y=a+(t2-u5.d*a))==a+(t2+u5.d*a)) { retval = y; goto ret; } } + /* Second stage */ + /* Range reduction by algorithm ii */ + t = (x*hpinv.d + toint.d); +@@ -203,11 +213,12 @@ double tan(double x) { + if (n) { + /* Second stage -cot */ + DIV2(one.d,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c2+(cc2-u8.d*c2)) == c2+(cc2+u8.d*c2)) return (-y); } ++ if ((y=c2+(cc2-u8.d*c2)) == c2+(cc2+u8.d*c2)) { retval = (-y); goto ret; } } + else { + /* Second stage tan */ +- if ((y=c1+(cc1-u7.d*c1)) == c1+(cc1+u7.d*c1)) return y; } +- return tanMp(x); ++ if ((y=c1+(cc1-u7.d*c1)) == c1+(cc1+u7.d*c1)) { retval = y; goto ret; } } ++ retval = tanMp(x); ++ goto ret; + } + + /* (VII) The case 0.787 < abs(x) <= 25, 0.0608 < abs(y) <= 0.787 */ +@@ -221,17 +232,17 @@ double tan(double x) { + if (n) { + /* -cot */ + t2 = pz*(fi+gi)/(fi+pz); +- if ((y=gi-(t2-gi*u10.d))==gi-(t2+gi*u10.d)) return (-sy*y); ++ if ((y=gi-(t2-gi*u10.d))==gi-(t2+gi*u10.d)) { retval = (-sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = gi*ua10.d+t3*ub10.d; +- if ((y=gi-(t2-t4))==gi-(t2+t4)) return (-sy*y); } ++ if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + t2 = pz*(gi+fi)/(gi-pz); +- if ((y=fi+(t2-fi*u9.d))==fi+(t2+fi*u9.d)) return (sy*y); ++ if ((y=fi+(t2-fi*u9.d))==fi+(t2+fi*u9.d)) { retval = (sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = fi*ua9.d+t3*ub9.d; +- if ((y=fi+(t2-t4))==fi+(t2+t4)) return (sy*y); } ++ if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } } + + /* Second stage */ + ffi = xfg[i][3].d; +@@ -252,13 +263,14 @@ double tan(double x) { + if (n) { + /* -cot */ + DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u12.d*c3))==c3+(cc3+u12.d*c3)) return (-sy*y); } ++ if ((y=c3+(cc3-u12.d*c3))==c3+(cc3+u12.d*c3)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u11.d*c3))==c3+(cc3+u11.d*c3)) return (sy*y); } ++ if ((y=c3+(cc3-u11.d*c3))==c3+(cc3+u11.d*c3)) { retval = (sy*y); goto ret; } } + +- return tanMp(x); ++ retval = tanMp(x); ++ goto ret; + } + + /* (---) The case 25 < abs(x) <= 1e8 */ +@@ -280,7 +292,7 @@ double tan(double x) { + else {ya= a; yya= da; sy= ONE;} + + /* (+++) The case 25 < abs(x) <= 1e8, abs(y) <= 1e-7 */ +- if (ya<=gy1.d) return tanMp(x); ++ if (ya<=gy1.d) { retval = tanMp(x); goto ret; } + + /* (VIII) The case 25 < abs(x) <= 1e8, 1e-7 < abs(y) <= 0.0608 */ + if (ya<=gy2.d) { +@@ -290,10 +302,10 @@ double tan(double x) { + /* First stage -cot */ + EADD(a,t2,b,db) + DIV2(one.d,zero.d,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c+(dc-u14.d*c))==c+(dc+u14.d*c)) return (-y); } ++ if ((y=c+(dc-u14.d*c))==c+(dc+u14.d*c)) { retval = (-y); goto ret; } } + else { + /* First stage tan */ +- if ((y=a+(t2-u13.d*a))==a+(t2+u13.d*a)) return y; } ++ if ((y=a+(t2-u13.d*a))==a+(t2+u13.d*a)) { retval = y; goto ret; } } + + /* Second stage */ + MUL2(a,da,a,da,x2,xx2,t1,t2,t3,t4,t5,t6,t7,t8) +@@ -317,11 +329,12 @@ double tan(double x) { + if (n) { + /* Second stage -cot */ + DIV2(one.d,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c2+(cc2-u16.d*c2)) == c2+(cc2+u16.d*c2)) return (-y); } ++ if ((y=c2+(cc2-u16.d*c2)) == c2+(cc2+u16.d*c2)) { retval = (-y); goto ret; } } + else { + /* Second stage tan */ +- if ((y=c1+(cc1-u15.d*c1)) == c1+(cc1+u15.d*c1)) return (y); } +- return tanMp(x); ++ if ((y=c1+(cc1-u15.d*c1)) == c1+(cc1+u15.d*c1)) { retval = (y); goto ret; } } ++ retval = tanMp(x); ++ goto ret; + } + + /* (IX) The case 25 < abs(x) <= 1e8, 0.0608 < abs(y) <= 0.787 */ +@@ -334,17 +347,17 @@ double tan(double x) { + if (n) { + /* -cot */ + t2 = pz*(fi+gi)/(fi+pz); +- if ((y=gi-(t2-gi*u18.d))==gi-(t2+gi*u18.d)) return (-sy*y); ++ if ((y=gi-(t2-gi*u18.d))==gi-(t2+gi*u18.d)) { retval = (-sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = gi*ua18.d+t3*ub18.d; +- if ((y=gi-(t2-t4))==gi-(t2+t4)) return (-sy*y); } ++ if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + t2 = pz*(gi+fi)/(gi-pz); +- if ((y=fi+(t2-fi*u17.d))==fi+(t2+fi*u17.d)) return (sy*y); ++ if ((y=fi+(t2-fi*u17.d))==fi+(t2+fi*u17.d)) { retval = (sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = fi*ua17.d+t3*ub17.d; +- if ((y=fi+(t2-t4))==fi+(t2+t4)) return (sy*y); } ++ if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } } + + /* Second stage */ + ffi = xfg[i][3].d; +@@ -365,12 +378,13 @@ double tan(double x) { + if (n) { + /* -cot */ + DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u20.d*c3))==c3+(cc3+u20.d*c3)) return (-sy*y); } ++ if ((y=c3+(cc3-u20.d*c3))==c3+(cc3+u20.d*c3)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u19.d*c3))==c3+(cc3+u19.d*c3)) return (sy*y); } +- return tanMp(x); ++ if ((y=c3+(cc3-u19.d*c3))==c3+(cc3+u19.d*c3)) { retval = (sy*y); goto ret; } } ++ retval = tanMp(x); ++ goto ret; + } + + /* (---) The case 1e8 < abs(x) < 2**1024 */ +@@ -381,7 +395,7 @@ double tan(double x) { + else {ya= a; yya= da; sy= ONE;} + + /* (+++) The case 1e8 < abs(x) < 2**1024, abs(y) <= 1e-7 */ +- if (ya<=gy1.d) return tanMp(x); ++ if (ya<=gy1.d) { retval = tanMp(x); goto ret; } + + /* (X) The case 1e8 < abs(x) < 2**1024, 1e-7 < abs(y) <= 0.0608 */ + if (ya<=gy2.d) { +@@ -391,10 +405,10 @@ double tan(double x) { + /* First stage -cot */ + EADD(a,t2,b,db) + DIV2(one.d,zero.d,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c+(dc-u22.d*c))==c+(dc+u22.d*c)) return (-y); } ++ if ((y=c+(dc-u22.d*c))==c+(dc+u22.d*c)) { retval = (-y); goto ret; } } + else { + /* First stage tan */ +- if ((y=a+(t2-u21.d*a))==a+(t2+u21.d*a)) return y; } ++ if ((y=a+(t2-u21.d*a))==a+(t2+u21.d*a)) { retval = y; goto ret; } } + + /* Second stage */ + /* Reduction by algorithm iv */ +@@ -423,11 +437,12 @@ double tan(double x) { + if (n) { + /* Second stage -cot */ + DIV2(one.d,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c2+(cc2-u24.d*c2)) == c2+(cc2+u24.d*c2)) return (-y); } ++ if ((y=c2+(cc2-u24.d*c2)) == c2+(cc2+u24.d*c2)) { retval = (-y); goto ret; } } + else { + /* Second stage tan */ +- if ((y=c1+(cc1-u23.d*c1)) == c1+(cc1+u23.d*c1)) return y; } +- return tanMp(x); ++ if ((y=c1+(cc1-u23.d*c1)) == c1+(cc1+u23.d*c1)) { retval = y; goto ret; } } ++ retval = tanMp(x); ++ goto ret; + } + + /* (XI) The case 1e8 < abs(x) < 2**1024, 0.0608 < abs(y) <= 0.787 */ +@@ -440,17 +455,17 @@ double tan(double x) { + if (n) { + /* -cot */ + t2 = pz*(fi+gi)/(fi+pz); +- if ((y=gi-(t2-gi*u26.d))==gi-(t2+gi*u26.d)) return (-sy*y); ++ if ((y=gi-(t2-gi*u26.d))==gi-(t2+gi*u26.d)) { retval = (-sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = gi*ua26.d+t3*ub26.d; +- if ((y=gi-(t2-t4))==gi-(t2+t4)) return (-sy*y); } ++ if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + t2 = pz*(gi+fi)/(gi-pz); +- if ((y=fi+(t2-fi*u25.d))==fi+(t2+fi*u25.d)) return (sy*y); ++ if ((y=fi+(t2-fi*u25.d))==fi+(t2+fi*u25.d)) { retval = (sy*y); goto ret; } + t3 = (t2<ZERO) ? -t2 : t2; + t4 = fi*ua25.d+t3*ub25.d; +- if ((y=fi+(t2-t4))==fi+(t2+t4)) return (sy*y); } ++ if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } } + + /* Second stage */ + ffi = xfg[i][3].d; +@@ -471,15 +486,19 @@ double tan(double x) { + if (n) { + /* -cot */ + DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u28.d*c3))==c3+(cc3+u28.d*c3)) return (-sy*y); } ++ if ((y=c3+(cc3-u28.d*c3))==c3+(cc3+u28.d*c3)) { retval = (-sy*y); goto ret; } } + else { + /* tan */ + DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) +- if ((y=c3+(cc3-u27.d*c3))==c3+(cc3+u27.d*c3)) return (sy*y); } +- return tanMp(x); ++ if ((y=c3+(cc3-u27.d*c3))==c3+(cc3+u27.d*c3)) { retval = (sy*y); goto ret; } } ++ retval = tanMp(x); ++ goto ret; ++ ++ ret: ++ libc_feupdateenv (&env); ++ return retval; + } + +- + /* multiple precision stage */ + /* Convert x to multi precision number,compute tan(x) by mptan() routine */ + /* and converts result back to double */ +diff -Nrup a/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c +--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c 2012-08-06 09:54:00.828929666 -0600 +@@ -24,22 +24,14 @@ + #include "math.h" + #include "math_private.h" + +-#ifdef __STDC__ + static const double +-#else +-static double +-#endif + TWO52[2]={ + 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */ + -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */ + }; + +-#ifdef __STDC__ +- double __nearbyint(double x) +-#else +- double __nearbyint(x) +- double x; +-#endif ++double ++__nearbyint(double x) + { + fenv_t env; + int64_t i0,sx; +@@ -47,20 +39,19 @@ TWO52[2]={ + EXTRACT_WORDS64(i0,x); + sx = (i0>>63)&1; + j0 = ((i0>>52)&0x7ff)-0x3ff; +- if(j0<52) { ++ if(__builtin_expect(j0<52, 1)) { + if(j0<0) { + if((i0&UINT64_C(0x7fffffffffffffff))==0) return x; + uint64_t i = i0 & UINT64_C(0xfffffffffffff); + i0 &= UINT64_C(0xfffe000000000000); + i0 |= (((i|-i) >> 12) & UINT64_C(0x8000000000000)); + INSERT_WORDS64(x,i0); +- feholdexcept (&env); ++ libc_feholdexcept (&env); + double w = TWO52[sx]+x; + double t = w-TWO52[sx]; +- fesetenv (&env); +- EXTRACT_WORDS64(i0,t); +- INSERT_WORDS64(t,(i0&UINT64_C(0x7fffffffffffffff))|(sx<<63)); +- return t; ++ math_opt_barrier(t); ++ libc_fesetenv (&env); ++ return copysign(t, x); + } else { + uint64_t i = UINT64_C(0x000fffffffffffff)>>j0; + if((i0&i)==0) return x; /* x is integral */ +@@ -73,10 +64,11 @@ TWO52[2]={ + else return x; /* x is integral */ + } + INSERT_WORDS64(x,i0); +- feholdexcept (&env); ++ libc_feholdexcept (&env); + double w = TWO52[sx]+x; + double t = w-TWO52[sx]; +- fesetenv (&env); ++ math_opt_barrier (t); ++ libc_fesetenv (&env); + return t; + } + weak_alias (__nearbyint, nearbyint) +diff -Nrup a/sysdeps/ieee754/flt-32/e_exp2f.c b/sysdeps/ieee754/flt-32/e_exp2f.c +--- a/sysdeps/ieee754/flt-32/e_exp2f.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/flt-32/e_exp2f.c 2012-08-06 09:54:00.829929661 -0600 +@@ -56,11 +56,7 @@ __ieee754_exp2f (float x) + union ieee754_float ex2_u, scale_u; + fenv_t oldenv; + +- feholdexcept (&oldenv); +-#ifdef FE_TONEAREST +- /* If we don't have this, it's too bad. */ +- fesetround (FE_TONEAREST); +-#endif ++ libc_feholdexcept_setroundf (&oldenv, FE_TONEAREST); + + /* 1. Argument reduction. + Choose integers ex, -128 <= t < 128, and some real +@@ -103,7 +99,7 @@ __ieee754_exp2f (float x) + x22 = (.24022656679f * x + .69314736128f) * ex2_u.f; + + /* 5. Return (2^x2-1) * 2^(t/512+e+ex) + 2^(t/512+e+ex). */ +- fesetenv (&oldenv); ++ libc_fesetenv (&oldenv); + + result = x22 * x + ex2_u.f; + +diff -Nrup a/sysdeps/ieee754/flt-32/e_expf.c b/sysdeps/ieee754/flt-32/e_expf.c +--- a/sysdeps/ieee754/flt-32/e_expf.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/flt-32/e_expf.c 2012-08-06 09:54:00.829929661 -0600 +@@ -47,9 +47,6 @@ + to perform an 'accurate table method' expf, because of the range reduction + overhead (compare exp2f). + */ +-#ifndef _GNU_SOURCE +-#define _GNU_SOURCE +-#endif + #include <float.h> + #include <ieee754.h> + #include <math.h> +@@ -60,8 +57,8 @@ + extern const float __exp_deltatable[178]; + extern const double __exp_atable[355] /* __attribute__((mode(DF))) */; + +-static const volatile float TWOM100 = 7.88860905e-31; +-static const volatile float TWO127 = 1.7014118346e+38; ++static const float TWOM100 = 7.88860905e-31; ++static const float TWO127 = 1.7014118346e+38; + + float + __ieee754_expf (float x) +@@ -86,10 +83,7 @@ __ieee754_expf (float x) + union ieee754_double ex2_u; + fenv_t oldenv; + +- feholdexcept (&oldenv); +-#ifdef FE_TONEAREST +- fesetround (FE_TONEAREST); +-#endif ++ libc_feholdexcept_setroundf (&oldenv, FE_TONEAREST); + + /* Calculate n. */ + n = x * M_1_LN2 + THREEp22; +@@ -119,7 +113,7 @@ __ieee754_expf (float x) + x22 = (0.5000000496709180453 * dx + 1.0000001192102037084) * dx + delta; + + /* Return result. */ +- fesetenv (&oldenv); ++ libc_fesetenvf (&oldenv); + + result = x22 * ex2_u.d + ex2_u.d; + return (float) result; +diff -Nrup a/sysdeps/ieee754/flt-32/s_nearbyintf.c b/sysdeps/ieee754/flt-32/s_nearbyintf.c +--- a/sysdeps/ieee754/flt-32/s_nearbyintf.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/ieee754/flt-32/s_nearbyintf.c 2012-08-06 09:54:00.891929402 -0600 +@@ -19,22 +19,14 @@ + #include "math.h" + #include "math_private.h" + +-#ifdef __STDC__ + static const float +-#else +-static float +-#endif + TWO23[2]={ + 8.3886080000e+06, /* 0x4b000000 */ + -8.3886080000e+06, /* 0xcb000000 */ + }; + +-#ifdef __STDC__ +- float __nearbyintf(float x) +-#else +- float __nearbyintf(x) +- float x; +-#endif ++float ++__nearbyintf(float x) + { + fenv_t env; + int32_t i0,j0,sx; +@@ -50,13 +42,13 @@ TWO23[2]={ + i0 &= 0xfff00000; + i0 |= ((i1|-i1)>>9)&0x400000; + SET_FLOAT_WORD(x,i0); +- feholdexcept (&env); +- w = TWO23[sx]+x; +- t = w-TWO23[sx]; +- fesetenv (&env); ++ libc_feholdexceptf (&env); ++ w = TWO23[sx]+x; ++ t = w-TWO23[sx]; ++ libc_fesetenvf (&env); + GET_FLOAT_WORD(i0,t); + SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31)); +- return t; ++ return t; + } else { + i = (0x007fffff)>>j0; + if((i0&i)==0) return x; /* x is integral */ +@@ -64,14 +56,14 @@ TWO23[2]={ + if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0); + } + } else { +- if(j0==0x80) return x+x; /* inf or NaN */ ++ if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } + SET_FLOAT_WORD(x,i0); +- feholdexcept (&env); ++ libc_feholdexceptf (&env); + w = TWO23[sx]+x; + t = w-TWO23[sx]; +- fesetenv (&env); ++ libc_fesetenvf (&env); + return t; + } + weak_alias (__nearbyintf, nearbyintf) +diff -Nrup a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps +--- a/sysdeps/powerpc/fpu/libm-test-ulps 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/powerpc/fpu/libm-test-ulps 2012-08-06 10:03:24.424569052 -0600 +@@ -37,16 +37,9 @@ ildouble: 1 + ldouble: 1 + + # cacosh +-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 + Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 ++float: 1 ++ifloat: 1 + + # casin + Test "Real part of: casin (-2 - 3 i) == -0.57065278432109940071028387968566963 - 1.9833870299165354323470769028940395 i": +@@ -84,8 +77,6 @@ ifloat: 1 + + # catan + Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": +-float: 3 +-ifloat: 3 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": +@@ -93,23 +84,14 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i": +-float: 4 +-ifloat: 4 + + # catanh + Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": + double: 4 + idouble: 4 +-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": +-float: 4 +-ifloat: 4 + Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": + double: 1 + idouble: 1 +-Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": +-float: 6 +-ifloat: 6 + + # cbrt + Test "cbrt (-27.0) == -3.0": +@@ -167,8 +149,6 @@ ldouble: 1 + + # clog + Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i": +-float: 3 +-ifloat: 3 + ildouble: 1 + ldouble: 1 + Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i": +@@ -197,9 +177,7 @@ ildouble: 1 + ldouble: 1 + Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": + double: 1 +-float: 5 + idouble: 1 +-ifloat: 5 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": +@@ -298,23 +276,165 @@ ldouble: 1 + # cos + Test "cos (M_PI_6l * 2.0) == 0.5": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + Test "cos (M_PI_6l * 4.0) == -0.5": + double: 2 + float: 1 + idouble: 2 + ifloat: 1 +-Test "cos (pi/2) == 0": +-double: 1 ++ ++# cos_downward ++Test "cos_downward (1) == 0.5403023058681397174009366074429766037323": ++float: 1 ++ifloat: 1 ++ildouble: 4 ++ldouble: 4 ++Test "cos_downward (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++Test "cos_downward (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++Test "cos_downward (4) == -0.6536436208636119146391681830977503814241": ++float: 1 ++ifloat: 1 ++Test "cos_downward (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_downward (6) == 0.9601702866503660205456522979229244054519": ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++Test "cos_downward (8) == -0.1455000338086135258688413818311946826093": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "cos_downward (9) == -0.9111302618846769883682947111811653112463": ++ildouble: 1 ++ldouble: 1 ++ ++# cos_tonearest ++Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ ++# cos_towardzero ++Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323": ++ildouble: 2 ++ldouble: 2 ++Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "cos (16.0) == -0.9576594803233846418996372326511034717803" + ildouble: 2 + ldouble: 2 + ++# cos_upward ++Test "cos_upward (1) == 0.5403023058681397174009366074429766037323": ++ildouble: 2 ++ldouble: 2 ++Test "cos_upward (10) == -0.8390715290764524522588639478240648345199": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (4) == -0.6536436208636119146391681830977503814241": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (5) == 0.2836621854632262644666391715135573083344": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (6) == 0.9601702866503660205456522979229244054519": ++float: 1 ++ifloat: 1 ++Test "cos_upward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (9) == -0.9111302618846769883682947111811653112463": ++float: 2 ++ifloat: 2 ++ ++# cosh_downward ++Test "cosh_downward (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250720 ++ldouble: 5269156250720 ++Test "cosh_downward (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "cosh_downward (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ifloat: 1 ++ildouble: 89137844202 ++ldouble: 89137844202 ++ ++# cosh_tonearest ++Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++Test "cosh_tonearest (23) == 4872401723.124451300068625740569997090344": ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "cosh_tonearest (24) == 13244561064.92173614708845674912733665919": ++ildouble: 89137844202 ++ldouble: 89137844202 ++ ++# cosh_towardzero ++Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250720 ++ldouble: 5269156250720 ++Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ifloat: 1 ++ildouble: 89137844202 ++ldouble: 89137844202 ++ ++# cosh_upward ++Test "cosh_upward (22) == 1792456423.065795780980053377632656584997": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++Test "cosh_upward (23) == 4872401723.124451300068625740569997090344": ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "cosh_upward (24) == 13244561064.92173614708845674912733665919": ++ildouble: 89137844200 ++ldouble: 89137844200 ++ + # cpow + Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": + float: 1 +@@ -386,12 +506,6 @@ float: 1 + ifloat: 1 + + # ctan +-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +-double: 1 +-idouble: 1 +-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +-ildouble: 1 +-ldouble: 1 + Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": + double: 1 + idouble: 1 +@@ -463,6 +577,33 @@ Test "exp2 (10) == 1024": + ildouble: 2 + ldouble: 2 + ++# exp_downward ++Test "exp_downward (2) == e^2": ++float: 1 ++ifloat: 1 ++Test "exp_downward (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_towardzero ++Test "exp_towardzero (2) == e^2": ++float: 1 ++ifloat: 1 ++Test "exp_towardzero (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_upward ++Test "exp_upward (1) == e": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + # expm1 + Test "expm1 (0.75) == 1.11700001661267466854536981983709561": + double: 1 +@@ -505,40 +646,27 @@ ifloat: 1 + # j0 + Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 +-ildouble: 1 +-ldouble: 1 ++ifloat: 1 + Test "j0 (10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 2 + float: 1 +-idouble: 3 ++idouble: 2 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 +-Test "j0 (2.0) == 0.223890779141235668051827454649948626": +-float: 2 +-ifloat: 2 + Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 +-ildouble: 1 +-ldouble: 1 ++ifloat: 1 + Test "j0 (8.0) == 0.171650807137553906090869407851972001": + float: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + + # j1 + Test "j1 (10.0) == 0.0434727461688614366697487680258592883": + float: 2 + ifloat: 2 +-ildouble: 1 +-ldouble: 1 + Test "j1 (2.0) == 0.576724807756873387202448242269137087": + double: 1 + idouble: 1 +@@ -551,38 +679,25 @@ ldouble: 1 + # jn + Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 +-ildouble: 1 +-ldouble: 1 ++ifloat: 1 + Test "jn (0, 10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 2 + float: 1 +-idouble: 3 ++idouble: 2 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 +-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626": +-float: 2 +-ifloat: 2 + Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 +-ildouble: 1 +-ldouble: 1 ++ifloat: 1 + Test "jn (0, 8.0) == 0.171650807137553906090869407851972001": + float: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883": + float: 2 + ifloat: 2 +-ildouble: 1 +-ldouble: 1 + Test "jn (1, 2.0) == 0.576724807756873387202448242269137087": + double: 1 + idouble: 1 +@@ -615,11 +730,8 @@ ifloat: 1 + ildouble: 4 + ldouble: 4 + Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6": +-float: 4 +-ifloat: 4 +-Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083": +-ildouble: 1 +-ldouble: 1 ++float: 3 ++ifloat: 3 + Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4": + double: 1 + float: 1 +@@ -628,21 +740,18 @@ ifloat: 1 + Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2": + double: 1 + idouble: 1 +-Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083": +-ildouble: 1 +-ldouble: 1 + Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563": + double: 3 +-float: 2 ++float: 1 + idouble: 3 +-ifloat: 2 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "jn (3, 2.0) == 0.128943249474402051098793332969239835": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + +@@ -675,115 +784,350 @@ Test "log1p (-0.25) == -0.28768207245178 + float: 1 + ifloat: 1 + +-# log2 +-Test "log2 (e) == M_LOG2El": ++# pow_downward ++Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": + ildouble: 1 + ldouble: 1 +- +-# sin +-Test "sin (16.0) == -0.2879033166650652947844562482186175296207" +-ildouble: 2 +-ldouble: 2 +- +-# sincos +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": +-double: 1 +-float: 1 +-idouble: 1 +-ifloat: 1 +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": +-double: 1 ++Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": +-double: 1 ++ ++# pow_towardzero ++Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674": ++ildouble: 1 ++ldouble: 1 ++Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++ ++# pow_upward ++Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": + float: 1 + ifloat: 1 +- +-# sinh +-Test "sinh (0.75) == 0.822316731935829980703661634446913849": ++Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + ildouble: 1 + ldouble: 1 + +-# tan +-Test "tan (pi/4) == 1": +-double: 1 +-idouble: 1 ++# sin_downward ++Test "sin_downward (1) == 0.8414709848078965066525023216302989996226": ++ildouble: 4 ++ldouble: 4 ++Test "sin_downward (10) == -0.5440211108893698134047476618513772816836": ++float: 1 ++ifloat: 1 ++Test "sin_downward (2) == 0.9092974268256816953960198659117448427023": + ildouble: 1 + ldouble: 1 +- +-# tanh +-Test "tanh (-0.75) == -0.635148952387287319214434357312496495": ++Test "sin_downward (3) == 0.1411200080598672221007448028081102798469": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sin_downward (4) == -0.7568024953079282513726390945118290941359": + ildouble: 1 + ldouble: 1 +-Test "tanh (0.75) == 0.635148952387287319214434357312496495": ++Test "sin_downward (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++Test "sin_downward (6) == -0.2794154981989258728115554466118947596280": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sin_downward (8) == 0.9893582466233817778081235982452886721164": + ildouble: 1 + ldouble: 1 + +-# tgamma +-Test "tgamma (-0.5) == -2 sqrt (pi)": +-double: 1 ++# sin_tonearest ++Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "tgamma (0.5) == sqrt (pi)": ++ ++# sin_towardzero ++Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226": + float: 1 + ifloat: 1 +-Test "tgamma (0.7) == 1.29805533264755778568117117915281162": +-double: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836": + float: 1 +-idouble: 1 + ifloat: 1 +- +-# y0 +-Test "y0 (0.125) == -1.38968062514384052915582277745018693": ++Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023": + ildouble: 1 + ldouble: 1 +-Test "y0 (0.75) == -0.137172769385772397522814379396581855": ++Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469": + ildouble: 1 + ldouble: 1 +-Test "y0 (1.0) == 0.0882569642156769579829267660235151628": +-double: 2 ++Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525": + float: 1 +-idouble: 2 + ifloat: 1 ++Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164": + ildouble: 1 + ldouble: 1 +-Test "y0 (1.5) == 0.382448923797758843955068554978089862": +-double: 2 ++Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439": + float: 1 +-idouble: 2 + ifloat: 1 +-Test "y0 (10.0) == 0.0556711672835993914244598774101900481": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_upward ++Test "sin_upward (1) == 0.8414709848078965066525023216302989996226": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sin_upward (2) == 0.9092974268256816953960198659117448427023": ++float: 2 ++ifloat: 2 ++Test "sin_upward (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (9) == 0.4121184852417565697562725663524351793439": ++float: 1 ++ifloat: 1 ++ ++# sincos ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": ++double: 1 ++idouble: 1 ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 ++Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++float: 1 ++ifloat: 1 ++ ++# sinh ++Test "sinh (0.75) == 0.822316731935829980703661634446913849": + ildouble: 1 + ldouble: 1 +-Test "y0 (2.0) == 0.510375672649745119596606592727157873": ++ ++# sinh_downward ++Test "sinh_downward (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250718 ++ldouble: 5269156250718 ++Test "sinh_downward (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "sinh_downward (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ildouble: 89137844201 ++ldouble: 89137844201 ++ ++# sinh_tonearest ++Test "sinh_tonearest (22) == 1792456423.065795780701106568345764104225": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++Test "sinh_tonearest (23) == 4872401723.124451299966006944252978187305": ++ildouble: 484603564241 ++ldouble: 484603564241 ++Test "sinh_tonearest (24) == 13244561064.92173614705070540368454568168": ++ildouble: 89137844201 ++ldouble: 89137844201 ++ ++# sinh_towardzero ++Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250718 ++ldouble: 5269156250718 ++Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++ildouble: 484603564240 ++ldouble: 484603564240 ++Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ildouble: 89137844201 ++ldouble: 89137844201 ++ ++# sinh_upward ++Test "sinh_upward (22) == 1792456423.065795780701106568345764104225": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++Test "sinh_upward (23) == 4872401723.124451299966006944252978187305": ++ildouble: 484603564241 ++ldouble: 484603564241 ++Test "sinh_upward (24) == 13244561064.92173614705070540368454568168": ++ildouble: 89137844202 ++ldouble: 89137844202 ++ ++# tan ++Test "tan (pi/4) == 1": ++ildouble: 1 ++ldouble: 1 ++ ++# tan_downward ++Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "tan_downward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "tan_downward (2) == -2.1850398632615189916433061023136825434320": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (6) == -0.2910061913847491570536995888681755428312": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (8) == -6.7997114552203786999252627596086333648814": ++float: 1 ++ifloat: 1 ++Test "tan_downward (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# tan_tonearest ++Test "tan_tonearest (10) == 0.6483608274590866712591249330098086768169": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (4) == 1.1578212823495775831373424182673239231198": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (7) == 0.8714479827243187364564508896003135663222": ++ildouble: 1 ++ldouble: 1 ++ ++# tan_towardzero ++Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 3 ++ldouble: 3 ++Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (7) == 0.8714479827243187364564508896003135663222": ++ildouble: 2 ++ldouble: 2 ++Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# tan_upward ++Test "tan_upward (10) == 0.6483608274590866712591249330098086768169": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 3 ++ldouble: 3 ++Test "tan_upward (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (7) == 0.8714479827243187364564508896003135663222": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (9) == -0.4523156594418098405903708757987855343087": ++ildouble: 1 ++ldouble: 1 ++ ++# tanh ++Test "tanh (-0.75) == -0.635148952387287319214434357312496495": ++ildouble: 1 ++ldouble: 1 ++Test "tanh (0.75) == 0.635148952387287319214434357312496495": ++ildouble: 1 ++ldouble: 1 ++ ++# tgamma ++Test "tgamma (-0.5) == -2 sqrt (pi)": + double: 1 ++float: 1 + idouble: 1 +-Test "y0 (8.0) == 0.223521489387566220527323400498620359": ++ifloat: 1 ++Test "tgamma (0.5) == sqrt (pi)": ++float: 1 ++ifloat: 1 ++Test "tgamma (0.7) == 1.29805533264755778568117117915281162": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 ++ ++# y0 ++Test "y0 (0.125) == -1.38968062514384052915582277745018693": + ildouble: 1 + ldouble: 1 +- +-# y1 +-Test "y1 (0.125) == -5.19993611253477499595928744876579921": ++Test "y0 (1.0) == 0.0882569642156769579829267660235151628": ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "y0 (1.5) == 0.382448923797758843955068554978089862": ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 ++Test "y0 (10.0) == 0.0556711672835993914244598774101900481": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "y0 (2.0) == 0.510375672649745119596606592727157873": + double: 1 + idouble: 1 +-Test "y1 (1.5) == -0.412308626973911295952829820633445323": ++Test "y0 (8.0) == 0.223521489387566220527323400498620359": ++double: 1 + float: 1 ++idouble: 1 + ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# y1 + Test "y1 (10.0) == 0.249015424206953883923283474663222803": + double: 3 + float: 1 +@@ -794,30 +1138,27 @@ ldouble: 2 + Test "y1 (2.0) == -0.107032431540937546888370772277476637": + double: 1 + float: 1 +-idouble: 2 +-ifloat: 2 ++idouble: 1 ++ifloat: 1 + Test "y1 (8.0) == -0.158060461731247494255555266187483550": + double: 1 + float: 2 + idouble: 1 + ifloat: 2 +-ildouble: 2 +-ldouble: 2 ++ildouble: 1 ++ldouble: 1 + + # yn + Test "yn (0, 0.125) == -1.38968062514384052915582277745018693": + ildouble: 1 + ldouble: 1 +-Test "yn (0, 0.75) == -0.137172769385772397522814379396581855": +-ildouble: 1 +-ldouble: 1 + Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628": + double: 2 + float: 1 + idouble: 2 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 ++ildouble: 1 ++ldouble: 1 + Test "yn (0, 1.5) == 0.382448923797758843955068554978089862": + double: 2 + float: 1 +@@ -828,8 +1169,6 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 + Test "yn (0, 2.0) == 0.510375672649745119596606592727157873": + double: 1 + idouble: 1 +@@ -838,14 +1177,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 +-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921": +-double: 1 +-idouble: 1 +-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323": +-float: 2 +-ifloat: 2 ++ildouble: 1 ++ldouble: 1 + Test "yn (1, 10.0) == 0.249015424206953883923283474663222803": + double: 3 + float: 1 +@@ -863,14 +1196,8 @@ double: 1 + float: 2 + idouble: 1 + ifloat: 2 +-ildouble: 2 +-ldouble: 2 +-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741": +-double: 1 +-idouble: 1 +-Test "yn (10, 0.125) == -127057845771019398.252538486899753195": +-double: 1 +-idouble: 1 ++ildouble: 1 ++ldouble: 1 + Test "yn (10, 0.75) == -2133501638.90573424452445412893839236": + double: 1 + float: 2 +@@ -881,21 +1208,14 @@ float: 2 + ifloat: 2 + Test "yn (10, 10.0) == -0.359814152183402722051986577343560609": + double: 2 +-float: 2 + idouble: 2 +-ifloat: 2 +-ildouble: 2 +-ldouble: 2 + Test "yn (10, 2.0) == -129184.542208039282635913145923304214": + double: 3 + float: 1 + idouble: 3 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 +-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741": +-double: 1 +-idouble: 1 ++ildouble: 1 ++ldouble: 1 + Test "yn (3, 0.75) == -12.9877176234475433186319774484809207": + float: 1 + ifloat: 1 +@@ -904,8 +1224,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 ++ildouble: 1 ++ldouble: 1 + Test "yn (3, 2.0) == -1.12778377684042778608158395773179238": + double: 1 + idouble: 1 +@@ -950,18 +1270,12 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "cacosh": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 + ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "cacosh": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 ++float: 1 ++ifloat: 1 + + Function: Real part of "casin": + double: 1 +@@ -992,8 +1306,6 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "catan": +-float: 4 +-ifloat: 4 + ildouble: 1 + ldouble: 1 + +@@ -1009,10 +1321,6 @@ Function: Real part of "catanh": + double: 4 + idouble: 4 + +-Function: Imaginary part of "catanh": +-float: 6 +-ifloat: 6 +- + Function: "cbrt": + double: 1 + idouble: 1 +@@ -1066,8 +1374,6 @@ ildouble: 2 + ldouble: 2 + + Function: Imaginary part of "clog": +-float: 3 +-ifloat: 3 + ildouble: 1 + ldouble: 1 + +@@ -1079,9 +1385,9 @@ ldouble: 3 + + Function: Imaginary part of "clog10": + double: 1 +-float: 5 ++float: 1 + idouble: 1 +-ifloat: 5 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -1093,10 +1399,54 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "cos_downward": ++float: 1 ++ifloat: 1 ++ildouble: 4 ++ldouble: 4 ++ ++Function: "cos_tonearest": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "cos_upward": ++float: 2 ++ifloat: 2 ++ildouble: 2 ++ldouble: 2 ++ + Function: "cosh": + ildouble: 1 + ldouble: 1 + ++Function: "cosh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250720 ++ldouble: 5269156250720 ++ ++Function: "cosh_tonearest": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++ ++Function: "cosh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250720 ++ldouble: 5269156250720 ++ ++Function: "cosh_upward": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++ + Function: Real part of "cpow": + double: 2 + float: 5 +@@ -1113,10 +1463,6 @@ ifloat: 2 + ildouble: 2 + ldouble: 2 + +-Function: Imaginary part of "cproj": +-ildouble: 1 +-ldouble: 1 +- + Function: Real part of "csin": + ildouble: 1 + ldouble: 1 +@@ -1146,8 +1492,6 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "ctan": +-double: 1 +-idouble: 1 + ildouble: 1 + ldouble: 1 + +@@ -1201,6 +1545,28 @@ Function: "exp2": + ildouble: 2 + ldouble: 2 + ++Function: "exp_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "exp_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "exp_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "exp_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + Function: "expm1": + double: 1 + float: 1 +@@ -1218,10 +1584,10 @@ ildouble: 1 + ldouble: 1 + + Function: "j0": +-double: 3 +-float: 2 +-idouble: 3 +-ifloat: 2 ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -1235,9 +1601,9 @@ ldouble: 1 + + Function: "jn": + double: 3 +-float: 4 ++float: 3 + idouble: 3 +-ifloat: 4 ++ifloat: 3 + ildouble: 4 + ldouble: 4 + +@@ -1264,8 +1630,6 @@ ldouble: 1 + Function: "log1p": + float: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + + Function: "log2": + ildouble: 1 +@@ -1275,10 +1639,52 @@ Function: "pow": + ildouble: 1 + ldouble: 1 + ++Function: "pow_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + Function: "sin": + ildouble: 1 + ldouble: 1 + ++Function: "sin_downward": ++float: 1 ++ifloat: 1 ++ildouble: 4 ++ldouble: 4 ++ ++Function: "sin_tonearest": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "sin_upward": ++float: 2 ++ifloat: 2 ++ildouble: 2 ++ldouble: 2 ++ + Function: "sincos": + double: 1 + float: 1 +@@ -1291,12 +1697,54 @@ Function: "sinh": + ildouble: 1 + ldouble: 1 + ++Function: "sinh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250718 ++ldouble: 5269156250718 ++ ++Function: "sinh_tonearest": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++ ++Function: "sinh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 5269156250718 ++ldouble: 5269156250718 ++ ++Function: "sinh_upward": ++ildouble: 5269156250719 ++ldouble: 5269156250719 ++ + Function: "tan": + double: 1 + idouble: 1 + ildouble: 1 + ldouble: 1 + ++Function: "tan_downward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "tan_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 3 ++ldouble: 3 ++ ++Function: "tan_upward": ++float: 1 ++ifloat: 1 ++ildouble: 3 ++ldouble: 3 ++ + Function: "tanh": + ildouble: 1 + ldouble: 1 +diff -Nrup a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps +--- a/sysdeps/s390/fpu/libm-test-ulps 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/s390/fpu/libm-test-ulps 2012-08-06 09:54:38.324772546 -0600 +@@ -31,16 +31,9 @@ ildouble: 1 + ldouble: 1 + + # cacosh +-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 + Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -83,17 +76,11 @@ ildouble: 1 + ldouble: 1 + + # catan +-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": +-float: 3 +-ifloat: 3 + Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i": +-float: 4 +-ifloat: 4 + Test "Imaginary part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i": + ildouble: 1 + ldouble: 1 +@@ -102,17 +89,12 @@ ldouble: 1 + Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": + double: 4 + idouble: 4 +-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": +-float: 4 +-ifloat: 4 + Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": + double: 1 + idouble: 1 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": +-float: 6 +-ifloat: 6 + ildouble: 1 + ldouble: 1 + +@@ -185,9 +167,6 @@ ildouble: 1 + ldouble: 1 + + # clog +-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i": +-float: 3 +-ifloat: 3 + Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i": + float: 1 + ifloat: 1 +@@ -210,9 +189,7 @@ ildouble: 1 + ldouble: 1 + Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": + double: 1 +-float: 5 + idouble: 1 +-ifloat: 5 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": +@@ -288,9 +265,7 @@ ifloat: 1 + # cos + Test "cos (M_PI_6l * 2.0) == 0.5": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "cos (M_PI_6l * 4.0) == -0.5": +@@ -300,11 +275,159 @@ idouble: 2 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "cos (pi/2) == 0": +-double: 1 ++ ++# cos_downward ++Test "cos_downward (1) == 0.5403023058681397174009366074429766037323": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (4) == -0.6536436208636119146391681830977503814241": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (6) == 0.9601702866503660205456522979229244054519": ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (8) == -0.1455000338086135258688413818311946826093": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++# cos_tonearest ++Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ ++# cos_towardzero ++Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (6) == 0.9601702866503660205456522979229244054519": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++# cos_upward ++Test "cos_upward (10) == -0.8390715290764524522588639478240648345199": ++float: 1 ++ifloat: 1 ++Test "cos_upward (6) == 0.9601702866503660205456522979229244054519": ++float: 1 ++ifloat: 1 ++Test "cos_upward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++Test "cos_upward (9) == -0.9111302618846769883682947111811653112463": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_downward ++Test "cosh_downward (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_downward (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_downward (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_tonearest ++Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997": ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_towardzero ++Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919": + float: 1 +-idouble: 1 + ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_upward ++Test "cosh_upward (22) == 1792456423.065795780980053377632656584997": ++ildouble: 1 ++ldouble: 1 ++Test "cosh_upward (23) == 4872401723.124451300068625740569997090344": ++ildouble: 1 ++ldouble: 1 ++Test "cosh_upward (24) == 13244561064.92173614708845674912733665919": ++ildouble: 1 ++ldouble: 1 + + # cpow + Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": +@@ -393,8 +516,6 @@ ldouble: 1 + + # ctan + Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +-double: 1 +-idouble: 1 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +@@ -467,6 +588,37 @@ Test "exp2 (10) == 1024": + ildouble: 2 + ldouble: 2 + ++# exp_downward ++Test "exp_downward (2) == e^2": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "exp_downward (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_towardzero ++Test "exp_towardzero (2) == e^2": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "exp_towardzero (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_upward ++Test "exp_upward (1) == e": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + # expm1 + Test "expm1 (0.75) == 1.11700001661267466854536981983709561": + double: 1 +@@ -513,29 +665,27 @@ ifloat: 1 + # j0 + Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + Test "j0 (0.75) == 0.864242275166648623555731103820923211": + float: 1 + ifloat: 1 + Test "j0 (10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 2 + float: 1 +-idouble: 3 ++idouble: 2 + ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "j0 (2.0) == 0.223890779141235668051827454649948626": +-float: 2 +-ifloat: 2 + ildouble: 2 + ldouble: 2 + Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + Test "j0 (8.0) == 0.171650807137553906090869407851972001": + float: 1 + ifloat: 1 +@@ -569,29 +719,27 @@ ldouble: 4 + # jn + Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + Test "jn (0, 0.75) == 0.864242275166648623555731103820923211": + float: 1 + ifloat: 1 + Test "jn (0, 10.0) == -0.245935764451348335197760862485328754": +-double: 3 ++double: 2 + float: 1 +-idouble: 3 ++idouble: 2 + ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "jn (0, 2.0) == 0.223890779141235668051827454649948626": +-float: 2 +-ifloat: 2 + ildouble: 2 + ldouble: 2 + Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + Test "jn (0, 8.0) == 0.171650807137553906090869407851972001": + float: 1 + ifloat: 1 +@@ -640,15 +788,13 @@ Test "jn (10, 1.0) == 0.2630615123687453 + ildouble: 1 + ldouble: 1 + Test "jn (10, 10.0) == 0.207486106633358857697278723518753428": +-double: 4 +-float: 3 +-idouble: 4 +-ifloat: 3 ++float: 1 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6": +-float: 4 +-ifloat: 4 ++float: 3 ++ifloat: 3 + Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4": + double: 1 + float: 1 +@@ -661,16 +807,16 @@ idouble: 1 + ifloat: 1 + Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563": + double: 3 +-float: 2 ++float: 1 + idouble: 3 +-ifloat: 2 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "jn (3, 2.0) == 0.128943249474402051098793332969239835": + double: 1 +-float: 2 ++float: 1 + idouble: 1 +-ifloat: 2 ++ifloat: 1 + + # lgamma + Test "lgamma (-0.5) == log(2*sqrt(pi))": +@@ -713,71 +859,315 @@ Test "log2 (0.75) == -.41503749927884381 + ildouble: 1 + ldouble: 1 + +-# sincos +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": +-double: 1 ++# pow_downward ++Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + float: 1 +-idouble: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": +-double: 1 ++ ++# pow_towardzero ++Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948": ++float: 1 ++ifloat: 1 ++ ++# pow_upward ++Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": +-double: 1 ++ ++# sin_downward ++Test "sin_downward (1) == 0.8414709848078965066525023216302989996226": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (10) == -0.5440211108893698134047476618513772816836": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++Test "sin_downward (2) == 0.9092974268256816953960198659117448427023": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (3) == 0.1411200080598672221007448028081102798469": + float: 1 + ifloat: 1 +- +-# sqrt +-Test "sqrt (2) == M_SQRT2l": + ildouble: 1 + ldouble: 1 +- +-# tan +-Test "tan (pi/4) == 1": +-double: 1 +-idouble: 1 +- +-# tanh +-Test "tanh (-0.75) == -0.635148952387287319214434357312496495": ++Test "sin_downward (4) == -0.7568024953079282513726390945118290941359": + ildouble: 1 + ldouble: 1 +-Test "tanh (-1.0) == -0.7615941559557648881194582826047935904": ++Test "sin_downward (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "tanh (0.75) == 0.635148952387287319214434357312496495": ++Test "sin_downward (6) == -0.2794154981989258728115554466118947596280": ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "tanh (1.0) == 0.7615941559557648881194582826047935904": ++Test "sin_downward (8) == 0.9893582466233817778081235982452886721164": + ildouble: 1 + ldouble: 1 + +-# tgamma +-Test "tgamma (-0.5) == -2 sqrt (pi)": +-double: 1 ++# sin_tonearest ++Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226": + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "tgamma (0.5) == sqrt (pi)": ++Test "sin_tonearest (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_towardzero ++Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226": + float: 1 + ifloat: 1 +-Test "tgamma (0.7) == 1.29805533264755778568117117915281162": +-double: 1 ++Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836": + float: 1 +-idouble: 1 + ifloat: 1 +-Test "tgamma (4) == 6": ++Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++# sin_upward ++Test "sin_upward (1) == 0.8414709848078965066525023216302989996226": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (10) == -0.5440211108893698134047476618513772816836": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (2) == 0.9092974268256816953960198659117448427023": ++float: 2 ++ifloat: 2 ++Test "sin_upward (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (7) == 0.6569865987187890903969990915936351779369": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (9) == 0.4121184852417565697562725663524351793439": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sincos ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": ++double: 1 ++idouble: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++float: 1 ++ifloat: 1 ++ ++# sinh_downward ++Test "sinh_downward (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sinh_downward (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sinh_downward (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sinh_towardzero ++Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ ++# sinh_upward ++Test "sinh_upward (22) == 1792456423.065795780701106568345764104225": ++ildouble: 1 ++ldouble: 1 ++Test "sinh_upward (23) == 4872401723.124451299966006944252978187305": ++ildouble: 1 ++ldouble: 1 ++Test "sinh_upward (24) == 13244561064.92173614705070540368454568168": ++ildouble: 1 ++ldouble: 1 ++ ++# sqrt ++Test "sqrt (2) == M_SQRT2l": ++ildouble: 1 ++ldouble: 1 ++ ++# tan_downward ++Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_downward (2) == -2.1850398632615189916433061023136825434320": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (6) == -0.2910061913847491570536995888681755428312": ++float: 1 ++ifloat: 1 ++Test "tan_downward (8) == -6.7997114552203786999252627596086333648814": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ ++# tan_towardzero ++Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# tan_upward ++Test "tan_upward (1) == 1.5574077246549022305069748074583601730873": ++float: 1 ++ifloat: 1 ++Test "tan_upward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (2) == -2.1850398632615189916433061023136825434320": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (4) == 1.1578212823495775831373424182673239231198": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (9) == -0.4523156594418098405903708757987855343087": ++ildouble: 1 ++ldouble: 1 ++ ++# tanh ++Test "tanh (-0.75) == -0.635148952387287319214434357312496495": ++ildouble: 1 ++ldouble: 1 ++Test "tanh (-1.0) == -0.7615941559557648881194582826047935904": ++ildouble: 1 ++ldouble: 1 ++Test "tanh (0.75) == 0.635148952387287319214434357312496495": ++ildouble: 1 ++ldouble: 1 ++Test "tanh (1.0) == 0.7615941559557648881194582826047935904": ++ildouble: 1 ++ldouble: 1 ++ ++# tgamma ++Test "tgamma (-0.5) == -2 sqrt (pi)": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tgamma (0.5) == sqrt (pi)": ++float: 1 ++ifloat: 1 ++Test "tgamma (0.7) == 1.29805533264755778568117117915281162": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++Test "tgamma (4) == 6": + ildouble: 1 + ldouble: 1 + +@@ -917,17 +1307,13 @@ ifloat: 2 + ildouble: 5 + ldouble: 5 + Test "yn (10, 1.0) == -121618014.278689189288130426667971145": +-double: 1 + float: 2 +-idouble: 1 + ifloat: 2 + ildouble: 1 + ldouble: 1 + Test "yn (10, 10.0) == -0.359814152183402722051986577343560609": + double: 2 +-float: 2 + idouble: 2 +-ifloat: 2 + ildouble: 2 + ldouble: 2 + Test "yn (10, 2.0) == -129184.542208039282635913145923304214": +@@ -941,9 +1327,7 @@ Test "yn (3, 0.125) == -2612.69757350066 + double: 1 + idouble: 1 + Test "yn (3, 0.75) == -12.9877176234475433186319774484809207": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 2 + ldouble: 2 +@@ -973,17 +1357,9 @@ Function: Imaginary part of "cacos": + ildouble: 1 + ldouble: 1 + +-Function: Real part of "cacosh": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 +- + Function: Imaginary part of "cacosh": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -1013,10 +1389,6 @@ ifloat: 6 + ildouble: 2 + ldouble: 2 + +-Function: Real part of "catan": +-float: 4 +-ifloat: 4 +- + Function: Imaginary part of "catan": + double: 1 + float: 1 +@@ -1032,8 +1404,6 @@ ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "catanh": +-float: 6 +-ifloat: 6 + ildouble: 1 + ldouble: 1 + +@@ -1089,10 +1459,6 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + +-Function: Imaginary part of "clog": +-float: 3 +-ifloat: 3 +- + Function: Real part of "clog10": + float: 1 + ifloat: 1 +@@ -1101,9 +1467,9 @@ ldouble: 1 + + Function: Imaginary part of "clog10": + double: 1 +-float: 5 ++float: 1 + idouble: 1 +-ifloat: 5 ++ifloat: 1 + ildouble: 1 + ldouble: 1 + +@@ -1115,6 +1481,48 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "cos_downward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "cos_tonearest": ++float: 1 ++ifloat: 1 ++ ++Function: "cos_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "cos_upward": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_upward": ++ildouble: 1 ++ldouble: 1 ++ + Function: Real part of "cpow": + double: 2 + float: 4 +@@ -1162,8 +1570,6 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "ctan": +-double: 1 +-idouble: 1 + ildouble: 1 + ldouble: 1 + +@@ -1211,6 +1617,24 @@ Function: "exp2": + ildouble: 2 + ldouble: 2 + ++Function: "exp_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "exp_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "exp_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + Function: "expm1": + double: 1 + float: 1 +@@ -1228,10 +1652,10 @@ float: 1 + ifloat: 1 + + Function: "j0": +-double: 3 +-float: 2 +-idouble: 3 +-ifloat: 2 ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 + ildouble: 2 + ldouble: 2 + +@@ -1244,10 +1668,10 @@ ildouble: 4 + ldouble: 4 + + Function: "jn": +-double: 4 +-float: 4 +-idouble: 4 +-ifloat: 4 ++double: 3 ++float: 3 ++idouble: 3 ++ifloat: 3 + ildouble: 4 + ldouble: 4 + +@@ -1277,6 +1701,44 @@ Function: "log2": + ildouble: 1 + ldouble: 1 + ++Function: "pow_downward": ++float: 1 ++ifloat: 1 ++ ++Function: "pow_towardzero": ++float: 1 ++ifloat: 1 ++ ++Function: "pow_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_tonearest": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "sin_upward": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++ + Function: "sincos": + double: 1 + float: 1 +@@ -1285,6 +1747,22 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "sinh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "sinh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "sinh_upward": ++ildouble: 1 ++ldouble: 1 ++ + Function: "sqrt": + ildouble: 1 + ldouble: 1 +@@ -1293,6 +1771,24 @@ Function: "tan": + double: 1 + idouble: 1 + ++Function: "tan_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ + Function: "tanh": + ildouble: 1 + ldouble: 1 +diff -Nrup a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps +--- a/sysdeps/x86_64/fpu/libm-test-ulps 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/x86_64/fpu/libm-test-ulps 2012-08-06 11:02:14.602759422 -0600 +@@ -42,26 +42,13 @@ ldouble: 1 + + # cacos + Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i": +-float: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + + # cacosh +-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 +-ildouble: 6 +-ldouble: 6 + Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 +-ildouble: 1 +-ldouble: 1 ++float: 1 ++ifloat: 1 + Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i": + ildouble: 1 + ldouble: 1 +@@ -75,8 +62,6 @@ ifloat: 1 + ildouble: 2 + ldouble: 2 + Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i": +-float: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + +@@ -103,21 +88,15 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ldouble: 1 + ildouble: 1 ++ldouble: 1 + + # catan +-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": +-float: 3 +-ifloat: 3 + Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i": +-float: 4 +-ifloat: 4 + + # catanh + Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": +@@ -125,15 +104,9 @@ double: 4 + idouble: 4 + ildouble: 1 + ldouble: 1 +-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": +-float: 4 +-ifloat: 4 + Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": + double: 1 + idouble: 1 +-Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i": +-float: 6 +-ifloat: 6 + + # cbrt + Test "cbrt (-0.001) == -0.1": +@@ -152,14 +125,9 @@ ildouble: 1 + ldouble: 1 + + # ccos +-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": +-double: 1 +-idouble: 1 + Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": + float: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 + Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i": + double: 1 + float: 1 +@@ -168,19 +136,17 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i": +-ildouble: 1 +-ldouble: 1 + float: 1 + ifloat: 1 ++ildouble: 1 ++ldouble: 1 + + # ccosh + Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": + float: 1 + ifloat: 1 + Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -205,9 +171,6 @@ ildouble: 1 + ldouble: 1 + + # clog +-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i": +-float: 3 +-ifloat: 3 + Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i": + float: 1 + ifloat: 1 +@@ -227,11 +190,7 @@ idouble: 1 + ifloat: 1 + Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": + double: 1 +-float: 5 + idouble: 1 +-ifloat: 5 +-ildouble: 1 +-ldouble: 1 + Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": + double: 1 + float: 1 +@@ -276,9 +235,7 @@ float: 1 + idouble: 1 + ifloat: 1 + Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -306,33 +263,164 @@ ifloat: 1 + # cos + Test "cos (M_PI_6l * 2.0) == 0.5": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + Test "cos (M_PI_6l * 4.0) == -0.5": + double: 2 + float: 1 + idouble: 2 + ifloat: 1 ++ ++# cos_downward ++Test "cos_downward (1) == 0.5403023058681397174009366074429766037323": ++float: 1 ++ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "cos (pi/2) == 0": +-double: 1 ++Test "cos_downward (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++Test "cos_downward (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++Test "cos_downward (4) == -0.6536436208636119146391681830977503814241": + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "cos (0.80190127184058835) == 0.69534156199418473": +-double: 1 +-idouble: 1 ++Test "cos_downward (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_downward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (8) == -0.1455000338086135258688413818311946826093": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_downward (9) == -0.9111302618846769883682947111811653112463": ++ildouble: 1 ++ldouble: 1 ++ ++# cos_tonearest ++Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++Test "cos_tonearest (8) == -0.1455000338086135258688413818311946826093": ++ildouble: 1 ++ldouble: 1 ++Test "cos_tonearest (9) == -0.9111302618846769883682947111811653112463": ++ildouble: 1 ++ldouble: 1 ++ ++# cos_towardzero ++Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199": ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344": ++float: 1 ++ifloat: 1 ++Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093": ++float: 1 ++ifloat: 1 ++ ++# cos_upward ++Test "cos_upward (10) == -0.8390715290764524522588639478240648345199": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (2) == -0.4161468365471423869975682295007621897660": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (3) == -0.9899924966004454572715727947312613023937": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (5) == 0.2836621854632262644666391715135573083344": ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (6) == 0.9601702866503660205456522979229244054519": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cos_upward (7) == 0.7539022543433046381411975217191820122183": ++float: 1 ++ifloat: 1 ++Test "cos_upward (9) == -0.9111302618846769883682947111811653112463": ++float: 2 ++ifloat: 2 ++ ++# cosh_downward ++Test "cosh_downward (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "cosh_downward (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_downward (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_tonearest ++Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997": ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_towardzero ++Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# cosh_upward ++Test "cosh_upward (23) == 4872401723.124451300068625740569997090344": ++ildouble: 1 ++ldouble: 1 + + # cpow + Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": + float: 1 + ifloat: 1 +-ldouble: 1 + ildouble: 1 ++ldouble: 1 + Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": + float: 1 + ifloat: 1 +@@ -363,9 +451,9 @@ ildouble: 1 + ldouble: 1 + Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": + double: 1 +-float: 5 ++float: 4 + idouble: 1 +-ifloat: 5 ++ifloat: 4 + Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": + float: 2 + ifloat: 2 +@@ -383,22 +471,11 @@ ldouble: 1 + Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i": + ildouble: 1 + ldouble: 1 +-Test "Imaginary part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i": +-float: 1 +-ifloat: 1 +-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i": +-double: 1 +-idouble: 1 + + # csinh +-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i": +-double: 1 +-idouble: 1 + Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i": + double: 1 + idouble: 1 +-ildouble: 2 +-ldouble: 2 + Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i": + float: 1 + ifloat: 1 +@@ -418,37 +495,31 @@ ifloat: 1 + + # ctan + Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +-double: 1 +-idouble: 1 +-ildouble: 439 +-ldouble: 439 ++ildouble: 1 ++ldouble: 1 + Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +-float: 1 +-ifloat: 1 +-ildouble: 2 +-ldouble: 2 ++ildouble: 1 ++ldouble: 1 + Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": + ildouble: 1 + ldouble: 1 + Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 3 + ldouble: 3 + + # ctanh + Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": +-float: 2 +-ifloat: 2 +-ildouble: 5 +-ldouble: 5 + double: 1 ++float: 2 + idouble: 1 ++ifloat: 2 ++ildouble: 3 ++ldouble: 3 + Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": +-ildouble: 25 +-ldouble: 25 ++ildouble: 1 ++ldouble: 1 + Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": + float: 1 + ifloat: 1 +@@ -456,10 +527,10 @@ Test "Real part of: ctanh (0.75 + 1.25 i + double: 1 + idouble: 1 + Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i": +-ildouble: 1 +-ldouble: 1 + double: 1 + idouble: 1 ++ildouble: 1 ++ldouble: 1 + + # erf + Test "erf (1.25) == 0.922900128256458230136523481197281140": +@@ -481,26 +552,61 @@ ldouble: 1 + + # exp10 + Test "exp10 (-1) == 0.1": +-ildouble: 1 +-ldouble: 1 +-float: 1 +-ifloat: 1 + double: 2 +-idouble: 2 +-Test "exp10 (0.75) == 5.62341325190349080394951039776481231": +-ildouble: 2 +-ldouble: 2 + float: 1 ++idouble: 2 + ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "exp10 (0.75) == 5.62341325190349080394951039776481231": + double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 + Test "exp10 (3) == 1000": +-ildouble: 8 +-ldouble: 8 +-float: 2 +-ifloat: 2 + double: 6 ++float: 2 + idouble: 6 ++ifloat: 2 ++ildouble: 3 ++ldouble: 3 ++ ++# exp_downward ++Test "exp_downward (1) == e": ++ildouble: 1 ++ldouble: 1 ++Test "exp_downward (2) == e^2": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "exp_downward (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_towardzero ++Test "exp_towardzero (1) == e": ++ildouble: 1 ++ldouble: 1 ++Test "exp_towardzero (2) == e^2": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++Test "exp_towardzero (3) == e^3": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# exp_upward ++Test "exp_upward (1) == e": ++float: 1 ++ifloat: 1 + + # expm1 + Test "expm1 (0.75) == 1.11700001661267466854536981983709561": +@@ -570,9 +676,7 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "j0 (8.0) == 0.171650807137553906090869407851972001": +-double: 2 + float: 1 +-idouble: 2 + ifloat: 1 + + # j1 +@@ -617,9 +721,7 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + Test "jn (0, 8.0) == 0.171650807137553906090869407851972001": +-double: 2 + float: 1 +-idouble: 2 + ifloat: 1 + Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883": + float: 2 +@@ -714,12 +816,12 @@ ldouble: 1 + + # log10 + Test "log10 (0.75) == -0.124938736608299953132449886193870744": +-ildouble: 1 +-ldouble: 1 +-float: 2 +-ifloat: 2 + double: 1 ++float: 2 + idouble: 1 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 + Test "log10 (e) == log10(e)": + float: 1 + ifloat: 1 +@@ -731,37 +833,309 @@ Test "log1p (-0.25) == -0.28768207245178 + float: 1 + ifloat: 1 + +-# sincos +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": +-double: 1 +-float: 1 +-idouble: 1 +-ifloat: 1 +-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": +-double: 1 +-float: 1 +-idouble: 1 +-ifloat: 1 ++# pow_downward ++Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": + ildouble: 1 + ldouble: 1 +-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": +-double: 1 ++Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++ ++# pow_towardzero ++Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674": ++ildouble: 1 ++ldouble: 1 ++Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# pow_upward ++Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_downward ++Test "sin_downward (1) == 0.8414709848078965066525023216302989996226": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (10) == -0.5440211108893698134047476618513772816836": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (3) == 0.1411200080598672221007448028081102798469": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (4) == -0.7568024953079282513726390945118290941359": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (6) == -0.2794154981989258728115554466118947596280": ++float: 1 ++ifloat: 1 ++Test "sin_downward (7) == 0.6569865987187890903969990915936351779369": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (8) == 0.9893582466233817778081235982452886721164": ++ildouble: 1 ++ldouble: 1 ++Test "sin_downward (9) == 0.4121184852417565697562725663524351793439": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_tonearest ++Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226": ++float: 1 ++ifloat: 1 ++Test "sin_tonearest (10) == -0.5440211108893698134047476618513772816836": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (4) == -0.7568024953079282513726390945118290941359": ++ildouble: 1 ++ldouble: 1 ++Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439": ++ildouble: 1 ++ldouble: 1 ++ ++# sin_towardzero ++Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226": + float: 1 + ifloat: 1 +-Test "sincos (0.80190127184058835, &sin_res, &cos_res) puts 0.69534156199418473 in cos_res": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525": ++float: 1 ++ifloat: 1 ++Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (7) == 0.6569865987187890903969990915936351779369": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164": ++ildouble: 1 ++ldouble: 1 ++Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# sin_upward ++Test "sin_upward (1) == 0.8414709848078965066525023216302989996226": ++float: 1 ++ifloat: 1 ++Test "sin_upward (2) == 0.9092974268256816953960198659117448427023": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (4) == -0.7568024953079282513726390945118290941359": ++float: 1 ++ifloat: 1 ++Test "sin_upward (6) == -0.2794154981989258728115554466118947596280": ++ildouble: 1 ++ldouble: 1 ++Test "sin_upward (9) == 0.4121184852417565697562725663524351793439": ++float: 1 ++ifloat: 1 ++ ++# sincos ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": + double: 1 + idouble: 1 +- +-# tan +-Test "tan (pi/4) == 1": ++Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": + double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": ++float: 1 ++ifloat: 1 ++ ++# sinh_downward ++Test "sinh_downward (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 4 ++ldouble: 4 ++Test "sinh_downward (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++Test "sinh_downward (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ildouble: 5 ++ldouble: 5 ++ ++# sinh_tonearest ++Test "sinh_tonearest (22) == 1792456423.065795780701106568345764104225": ++ildouble: 3 ++ldouble: 3 ++Test "sinh_tonearest (23) == 4872401723.124451299966006944252978187305": ++ildouble: 1 ++ldouble: 1 ++Test "sinh_tonearest (24) == 13244561064.92173614705070540368454568168": ++ildouble: 6 ++ldouble: 6 ++ ++# sinh_towardzero ++Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225": ++float: 1 ++ifloat: 1 ++ildouble: 4 ++ldouble: 4 ++Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305": ++float: 1 ++ifloat: 1 ++Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168": ++float: 1 ++ifloat: 1 ++ildouble: 5 ++ldouble: 5 ++ ++# sinh_upward ++Test "sinh_upward (22) == 1792456423.065795780701106568345764104225": ++ildouble: 16 ++ldouble: 16 ++Test "sinh_upward (23) == 4872401723.124451299966006944252978187305": ++ildouble: 27 ++ldouble: 27 ++Test "sinh_upward (24) == 13244561064.92173614705070540368454568168": ++ildouble: 7 ++ldouble: 7 ++ ++# tan_downward ++Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": ++float: 1 ++ifloat: 1 ++Test "tan_downward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_downward (2) == -2.1850398632615189916433061023136825434320": ++float: 1 ++ifloat: 1 ++Test "tan_downward (4) == 1.1578212823495775831373424182673239231198": ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (5) == -3.3805150062465856369827058794473439087096": ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (6) == -0.2910061913847491570536995888681755428312": ++float: 1 ++ifloat: 1 ++Test "tan_downward (8) == -6.7997114552203786999252627596086333648814": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_downward (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ ++# tan_tonearest ++Test "tan_tonearest (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (8) == -6.7997114552203786999252627596086333648814": ++ildouble: 1 ++ldouble: 1 ++Test "tan_tonearest (9) == -0.4523156594418098405903708757987855343087": ++ildouble: 1 ++ldouble: 1 ++ ++# tan_towardzero ++Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++Test "tan_towardzero (2) == -2.1850398632615189916433061023136825434320": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_towardzero (8) == -6.7997114552203786999252627596086333648814": ++ildouble: 2 ++ldouble: 2 ++Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++# tan_upward ++Test "tan_upward (1) == 1.5574077246549022305069748074583601730873": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (10) == 0.6483608274590866712591249330098086768169": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (2) == -2.1850398632615189916433061023136825434320": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (3) == -0.1425465430742778052956354105339134932261": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (5) == -3.3805150062465856369827058794473439087096": ++float: 1 ++ifloat: 1 ++Test "tan_upward (6) == -0.2910061913847491570536995888681755428312": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (7) == 0.8714479827243187364564508896003135663222": ++ildouble: 1 ++ldouble: 1 ++Test "tan_upward (8) == -6.7997114552203786999252627596086333648814": ++ildouble: 2 ++ldouble: 2 ++Test "tan_upward (9) == -0.4523156594418098405903708757987855343087": ++ildouble: 1 ++ldouble: 1 + + # tgamma + Test "tgamma (-0.5) == -2 sqrt (pi)": +@@ -779,9 +1153,6 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-Test "tgamma (4) == 6": +-ildouble: 1 +-ldouble: 1 + + # y0 + Test "y0 (0.125) == -1.38968062514384052915582277745018693": +@@ -960,27 +1331,17 @@ ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "cacos": +-float: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + + Function: Real part of "cacosh": +-double: 1 +-float: 7 +-idouble: 1 +-ifloat: 7 +-ildouble: 6 +-ldouble: 6 +- +-Function: Imaginary part of "cacosh": +-double: 1 +-float: 3 +-idouble: 1 +-ifloat: 3 + ildouble: 1 + ldouble: 1 + ++Function: Imaginary part of "cacosh": ++float: 1 ++ifloat: 1 ++ + Function: Real part of "casin": + double: 1 + float: 1 +@@ -990,8 +1351,6 @@ ildouble: 2 + ldouble: 2 + + Function: Imaginary part of "casin": +-float: 1 +-ifloat: 1 + ildouble: 2 + ldouble: 2 + +@@ -1011,10 +1370,6 @@ ifloat: 6 + ildouble: 5 + ldouble: 5 + +-Function: Real part of "catan": +-float: 4 +-ifloat: 4 +- + Function: Imaginary part of "catan": + double: 1 + float: 1 +@@ -1027,10 +1382,6 @@ idouble: 4 + ildouble: 1 + ldouble: 1 + +-Function: Imaginary part of "catanh": +-float: 6 +-ifloat: 6 +- + Function: "cbrt": + double: 1 + idouble: 1 +@@ -1058,9 +1409,7 @@ idouble: 1 + ifloat: 1 + + Function: Imaginary part of "ccosh": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -1081,25 +1430,17 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + +-Function: Imaginary part of "clog": +-float: 3 +-ifloat: 3 +- + Function: Real part of "clog10": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "clog10": + double: 1 +-float: 5 ++float: 1 + idouble: 1 +-ifloat: 5 +-ildouble: 1 +-ldouble: 1 ++ifloat: 1 + + Function: "cos": + double: 2 +@@ -1109,11 +1450,55 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "cos_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_tonearest": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cos_upward": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "cosh_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "cosh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "cosh_upward": ++ildouble: 1 ++ldouble: 1 ++ + Function: Real part of "cpow": + double: 2 +-float: 5 ++float: 4 + idouble: 2 +-ifloat: 5 ++ifloat: 4 + ildouble: 5 + ldouble: 5 + +@@ -1129,16 +1514,8 @@ Function: Real part of "csin": + ildouble: 1 + ldouble: 1 + +-Function: Imaginary part of "csin": +-double: 1 +-float: 1 +-idouble: 1 +-ifloat: 1 +- + Function: Real part of "csinh": +-double: 1 + float: 1 +-idouble: 1 + ifloat: 1 + ildouble: 1 + ldouble: 1 +@@ -1148,24 +1525,18 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 + + Function: Real part of "csqrt": + float: 1 + ifloat: 1 + + Function: Real part of "ctan": +-double: 1 +-idouble: 1 +-ildouble: 439 +-ldouble: 439 ++ildouble: 1 ++ldouble: 1 + + Function: Imaginary part of "ctan": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + ildouble: 3 + ldouble: 3 + +@@ -1174,16 +1545,16 @@ double: 1 + float: 2 + idouble: 1 + ifloat: 2 +-ildouble: 5 +-ldouble: 5 ++ildouble: 3 ++ldouble: 3 + + Function: Imaginary part of "ctanh": +-float: 1 +-ifloat: 1 +-ildouble: 25 +-ldouble: 25 + double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 + + Function: "erf": + double: 1 +@@ -1196,12 +1567,28 @@ ildouble: 1 + ldouble: 1 + + Function: "exp10": +-ildouble: 8 +-ldouble: 8 +-float: 2 +-ifloat: 2 + double: 6 ++float: 2 + idouble: 6 ++ifloat: 2 ++ildouble: 3 ++ldouble: 3 ++ ++Function: "exp_downward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "exp_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "exp_upward": ++float: 1 ++ifloat: 1 + + Function: "expm1": + double: 1 +@@ -1250,17 +1637,59 @@ ildouble: 1 + ldouble: 1 + + Function: "log10": ++double: 1 + float: 2 ++idouble: 1 + ifloat: 2 + ildouble: 1 + ldouble: 1 +-double: 1 +-idouble: 1 + + Function: "log1p": + float: 1 + ifloat: 1 + ++Function: "pow_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "pow_upward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_tonearest": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "sin_upward": ++float: 2 ++ifloat: 2 ++ildouble: 1 ++ldouble: 1 ++ + Function: "sincos": + double: 1 + float: 1 +@@ -1269,10 +1698,52 @@ ifloat: 1 + ildouble: 1 + ldouble: 1 + ++Function: "sinh_downward": ++float: 1 ++ifloat: 1 ++ildouble: 5 ++ldouble: 5 ++ ++Function: "sinh_tonearest": ++ildouble: 6 ++ldouble: 6 ++ ++Function: "sinh_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 5 ++ldouble: 5 ++ ++Function: "sinh_upward": ++ildouble: 27 ++ldouble: 27 ++ + Function: "tan": + double: 1 + idouble: 1 + ++Function: "tan_downward": ++float: 1 ++ifloat: 1 ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_tonearest": ++ildouble: 1 ++ldouble: 1 ++ ++Function: "tan_towardzero": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ ++Function: "tan_upward": ++float: 1 ++ifloat: 1 ++ildouble: 2 ++ldouble: 2 ++ + Function: "tgamma": + double: 1 + float: 1 +diff -Nrup a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h +--- a/sysdeps/x86_64/fpu/math_private.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/x86_64/fpu/math_private.h 2012-08-06 09:54:00.893929393 -0600 +@@ -56,3 +56,82 @@ do { \ + } while (0) + + #endif ++ ++ ++/* Specialized variants of the <fenv.h> interfaces which only handle ++ either the FPU or the SSE unit. */ ++#undef libc_fegetround ++#define libc_fegetround() \ ++ ({ \ ++ unsigned int mxcsr; \ ++ asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ (mxcsr & 0x6000) >> 3; \ ++ }) ++#undef libc_fegetroundf ++#define libc_fegetroundf() libc_fegetround () ++// #define libc_fegetroundl() fegetround () ++ ++#undef libc_fesetround ++#define libc_fesetround(r) \ ++ do { \ ++ unsigned int mxcsr; \ ++ asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ mxcsr = (mxcsr & ~0x6000) | ((r) << 3); \ ++ asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ ++ } while (0) ++#undef libc_fesetroundf ++#define libc_fesetroundf(r) libc_fesetround (r) ++// #define libc_fesetroundl(r) (void) fesetround (r) ++ ++#undef libc_feholdexcept ++#define libc_feholdexcept(e) \ ++ do { \ ++ unsigned int mxcsr; \ ++ asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ (e)->__mxcsr = mxcsr; \ ++ mxcsr = (mxcsr | 0x1f80) & ~0x3f; \ ++ asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ ++ } while (0) ++#undef libc_feholdexceptf ++#define libc_feholdexceptf(e) libc_feholdexcept (e) ++// #define libc_feholdexceptl(e) (void) feholdexcept (e) ++ ++#undef libc_feholdexcept_setround ++#define libc_feholdexcept_setround(e, r) \ ++ do { \ ++ unsigned int mxcsr; \ ++ asm ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ (e)->__mxcsr = mxcsr; \ ++ mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | ((r) << 3); \ ++ asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \ ++ } while (0) ++#undef libc_feholdexcept_setroundf ++#define libc_feholdexcept_setroundf(e, r) libc_feholdexcept_setround (e, r) ++// #define libc_feholdexcept_setroundl(e, r) ... ++ ++#undef libc_fetestexcept ++#define libc_fetestexcept(e) \ ++ ({ unsigned int mxcsr; asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ mxcsr & (e) & FE_ALL_EXCEPT; }) ++#undef libc_fetestexceptf ++#define libc_fetestexceptf(e) libc_fetestexcept (e) ++// #define libc_fetestexceptl(e) fetestexcept (e) ++ ++#undef libc_fesetenv ++#define libc_fesetenv(e) \ ++ asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr)) ++#undef libc_fesetenvf ++#define libc_fesetenvf(e) libc_fesetenv (e) ++// #define libc_fesetenvl(e) (void) fesetenv (e) ++ ++#undef libc_feupdateenv ++#define libc_feupdateenv(e) \ ++ do { \ ++ unsigned int mxcsr; \ ++ asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ ++ asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr)); \ ++ feraiseexcept (mxcsr & FE_ALL_EXCEPT); \ ++ } while (0) ++#undef libc_feupdateenvf ++#define libc_feupdateenvf(e) libc_feupdateenv (e) ++// #define libc_feupdateenvl(e) (void) feupdateenv (e) diff --git a/src/patches/glibc/glibc-rh841787.patch b/src/patches/glibc/glibc-rh841787.patch new file mode 100644 index 0000000..3cec783 --- /dev/null +++ b/src/patches/glibc/glibc-rh841787.patch @@ -0,0 +1,42 @@ +diff -rup a/resolv/res_init.c b/resolv/res_init.c +--- a/resolv/res_init.c 2012-07-26 15:10:45.655638776 -0600 ++++ b/resolv/res_init.c 2012-07-26 15:11:27.731423002 -0600 +@@ -314,9 +314,9 @@ __res_vinit(res_state statp, int preinit + cp++; + if ((*cp != '\0') && (*cp != '\n') + && __inet_aton(cp, &a)) { +- statp->nsaddr_list[nservall].sin_addr = a; +- statp->nsaddr_list[nservall].sin_family = AF_INET; +- statp->nsaddr_list[nservall].sin_port = ++ statp->nsaddr_list[nserv].sin_addr = a; ++ statp->nsaddr_list[nserv].sin_family = AF_INET; ++ statp->nsaddr_list[nserv].sin_port = + htons(NAMESERVER_PORT); + nserv++; + #ifdef _LIBC +diff -rup a/resolv/res_send.c b/resolv/res_send.c +--- a/resolv/res_send.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/resolv/res_send.c 2012-07-26 15:34:58.398261659 -0600 +@@ -421,10 +421,10 @@ __libc_res_nsend(res_state statp, const + EXT(statp).nsmap[n] = MAXNS; + } + } +- n = statp->nscount; +- if (statp->nscount > EXT(statp).nscount) ++ n = statp->nscount - EXT(statp).nscount6; ++ if (n > EXT(statp).nscount) + for (n = EXT(statp).nscount, ns = 0; +- n < statp->nscount; n++) { ++ n < statp->nscount - EXT(statp).nscount6; n++) { + while (ns < MAXNS + && EXT(statp).nsmap[ns] != MAXNS) + ns++; +@@ -441,7 +441,7 @@ __libc_res_nsend(res_state statp, const + malloc(sizeof (struct sockaddr_in6)); + if (EXT(statp).nsaddrs[n] != NULL) { + memset (mempcpy(EXT(statp).nsaddrs[n], +- &statp->nsaddr_list[n], ++ &statp->nsaddr_list[ns], + sizeof (struct sockaddr_in)), + '\0', + sizeof (struct sockaddr_in6) diff --git a/src/patches/glibc/glibc-rh843673.patch b/src/patches/glibc/glibc-rh843673.patch new file mode 100644 index 0000000..a2ff262 --- /dev/null +++ b/src/patches/glibc/glibc-rh843673.patch @@ -0,0 +1,31 @@ +diff -Brup a/stdlib/msort.c b/stdlib/msort.c +--- a/stdlib/msort.c 2010-05-04 07:27:23.000000000 -0400 ++++ b/stdlib/msort.c 2012-08-07 13:30:14.131765346 -0400 +@@ -25,6 +25,8 @@ + #include <unistd.h> + #include <memcopy.h> + #include <errno.h> ++#include <atomic.h> ++ + + struct msort_param + { +@@ -182,7 +184,7 @@ qsort_r (void *b, size_t n, size_t s, __ + static long int phys_pages; + static int pagesize; + +- if (phys_pages == 0) ++ if (pagesize == 0) + { + phys_pages = __sysconf (_SC_PHYS_PAGES); + +@@ -197,6 +199,9 @@ qsort_r (void *b, size_t n, size_t s, __ + a quarter of the physical memory. */ + phys_pages /= 4; + ++ /* Make sure phys_pages is written to memory. */ ++ atomic_write_barrier (); ++ + pagesize = __sysconf (_SC_PAGESIZE); + } + diff --git a/src/patches/glibc/glibc-rh846342.patch b/src/patches/glibc/glibc-rh846342.patch new file mode 100644 index 0000000..8cfca05 --- /dev/null +++ b/src/patches/glibc/glibc-rh846342.patch @@ -0,0 +1,48 @@ +This is a workaround for broken code which issues memcpy requests with +overlapping arguments. With this patch installed, if the file +/etc/sysconfig/32bit_ssse3_memcpy_via_32bit_ssse3_memmove exists then a +32bit memcpy call which normally would be handled by the SSSE3 memcpy +implementation would instead be handled by the 32bit SSSE3 memmove +implementation which is more tolerant of overlaps. + +diff -Nrup a/sysdeps/i386/i686/multiarch/memcpy.S b/sysdeps/i386/i686/multiarch/memcpy.S +--- a/sysdeps/i386/i686/multiarch/memcpy.S 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/i386/i686/multiarch/memcpy.S 2012-11-20 14:19:52.890780415 -0700 +@@ -21,6 +21,10 @@ + #include <sysdep.h> + #include <init-arch.h> + ++ .section .rodata ++L(magicfile): ++ .ascii "/etc/sysconfig/32bit_ssse3_memcpy_via_32bit_ssse3_memmove" ++ + /* Define multiple versions only for the definition in lib and for + DSO. In static binaries we need memcpy before the initialization + happened. */ +@@ -48,6 +52,26 @@ ENTRY(memcpy) + 1: leal __memcpy_ia32@GOTOFF(%ebx), %eax + testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features@GOTOFF(%ebx) + jz 2f ++ ++ /* This is an inlined access (magicfile, 0) syscall. ++ ++ Note that it clobbers %ebx, so we have to save/restore ++ it around the syscall. */ ++ mov %ebx, %edx ++ leal L(magicfile)@GOTOFF(%ebx), %ebx ++ xor %ecx, %ecx ++ movl $33, %eax ++ int $0x80 ++ mov %edx, %ebx ++ ++ /* If the file did not exist, then %eax will be -1..-4095 and we ++ do nothing special. */ ++ cmpl $-4095, %eax ++ jae 4f ++ ++ leal __memmove_ssse3@GOTOFF(%ebx), %eax ++ jmp 2f ++4: + leal __memcpy_ssse3@GOTOFF(%ebx), %eax + testl $bit_Fast_Rep_String, FEATURE_OFFSET+index_Fast_Rep_String+__cpu_features@GOTOFF(%ebx) + jz 2f diff --git a/src/patches/glibc/glibc-rh847932.patch b/src/patches/glibc/glibc-rh847932.patch new file mode 100644 index 0000000..33ea851 --- /dev/null +++ b/src/patches/glibc/glibc-rh847932.patch @@ -0,0 +1,364 @@ +diff -Nrup a/stdlib/Makefile b/stdlib/Makefile +--- a/stdlib/Makefile 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdlib/Makefile 2012-08-15 09:25:37.812443006 -0600 +@@ -71,7 +71,7 @@ tests := tst-strtol tst-strtod testmb t + tst-atof1 tst-atof2 tst-strtod2 tst-strtod3 tst-rand48-2 \ + tst-makecontext tst-strtod4 tst-strtod5 tst-qsort2 \ + tst-makecontext2 tst-strtod6 tst-unsetenv1 \ +- tst-makecontext3 ++ tst-makecontext3 tst-strtod-overflow + + include ../Makeconfig + +diff -Nrup a/stdlib/strtod_l.c b/stdlib/strtod_l.c +--- a/stdlib/strtod_l.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdlib/strtod_l.c 2012-08-15 09:34:29.550281346 -0600 +@@ -62,6 +62,7 @@ extern unsigned long long int ____strtou + #include <math.h> + #include <stdlib.h> + #include <string.h> ++#include <stdint.h> + + /* The gmp headers need some configuration frobs. */ + #define HAVE_ALLOCA 1 +@@ -176,19 +177,19 @@ extern const mp_limb_t _tens_in_limb[MAX + /* Return a floating point number of the needed type according to the given + multi-precision number after possible rounding. */ + static FLOAT +-round_and_return (mp_limb_t *retval, int exponent, int negative, ++round_and_return (mp_limb_t *retval, intmax_t exponent, int negative, + mp_limb_t round_limb, mp_size_t round_bit, int more_bits) + { + if (exponent < MIN_EXP - 1) + { +- mp_size_t shift = MIN_EXP - 1 - exponent; +- +- if (shift > MANT_DIG) ++ if (exponent < MIN_EXP - 1 - MANT_DIG) + { + __set_errno (EDOM); + return 0.0; + } + ++ mp_size_t shift = MIN_EXP - 1 - exponent; ++ + more_bits |= (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0; + if (shift == MANT_DIG) + /* This is a special case to handle the very seldom case where +@@ -235,6 +236,9 @@ round_and_return (mp_limb_t *retval, int + __set_errno (ERANGE); + } + ++ if (exponent > MAX_EXP) ++ goto overflow; ++ + if ((round_limb & (((mp_limb_t) 1) << round_bit)) != 0 + && (more_bits || (retval[0] & 1) != 0 + || (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0)) +@@ -260,6 +264,7 @@ round_and_return (mp_limb_t *retval, int + } + + if (exponent > MAX_EXP) ++ overflow: + return negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL; + + return MPN2FLOAT (retval, exponent, negative); +@@ -273,7 +278,7 @@ round_and_return (mp_limb_t *retval, int + factor for the resulting number (see code) multiply by it. */ + static const STRING_TYPE * + str_to_mpn (const STRING_TYPE *str, int digcnt, mp_limb_t *n, mp_size_t *nsize, +- int *exponent ++ intmax_t *exponent + #ifndef USE_WIDE_CHAR + , const char *decimal, size_t decimal_len, const char *thousands + #endif +@@ -337,7 +342,7 @@ str_to_mpn (const STRING_TYPE *str, int + } + while (--digcnt > 0); + +- if (*exponent > 0 && cnt + *exponent <= MAX_DIG_PER_LIMB) ++ if (*exponent > 0 && *exponent <= MAX_DIG_PER_LIMB - cnt) + { + low *= _tens_in_limb[*exponent]; + start = _tens_in_limb[cnt + *exponent]; +@@ -415,7 +420,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + { + int negative; /* The sign of the number. */ + MPN_VAR (num); /* MP representation of the number. */ +- int exponent; /* Exponent of the number. */ ++ intmax_t exponent; /* Exponent of the number. */ + + /* Numbers starting `0X' or `0x' have to be processed with base 16. */ + int base = 10; +@@ -437,7 +442,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + /* Points at the character following the integer and fractional digits. */ + const STRING_TYPE *expp; + /* Total number of digit and number of digits in integer part. */ +- int dig_no, int_no, lead_zero; ++ size_t dig_no, int_no, lead_zero; + /* Contains the last character read. */ + CHAR_TYPE c; + +@@ -769,7 +774,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + are all or any is really a fractional digit will be decided + later. */ + int_no = dig_no; +- lead_zero = int_no == 0 ? -1 : 0; ++ lead_zero = int_no == 0 ? (size_t) -1 : 0; + + /* Read the fractional digits. A special case are the 'american + style' numbers like `16.' i.e. with decimal point but without +@@ -791,12 +796,13 @@ ____STRTOF_INTERNAL (nptr, endptr, group + (base == 16 && ({ CHAR_TYPE lo = TOLOWER (c); + lo >= L_('a') && lo <= L_('f'); }))) + { +- if (c != L_('0') && lead_zero == -1) ++ if (c != L_('0') && lead_zero == (size_t) -1) + lead_zero = dig_no - int_no; + ++dig_no; + c = *++cp; + } + } ++ assert (dig_no <= (uintmax_t) INTMAX_MAX); + + /* Remember start of exponent (if any). */ + expp = cp; +@@ -819,24 +825,80 @@ ____STRTOF_INTERNAL (nptr, endptr, group + + if (c >= L_('0') && c <= L_('9')) + { +- int exp_limit; ++ intmax_t exp_limit; + + /* Get the exponent limit. */ + if (base == 16) +- exp_limit = (exp_negative ? +- -MIN_EXP + MANT_DIG + 4 * int_no : +- MAX_EXP - 4 * int_no + 4 * lead_zero + 3); ++ { ++ if (exp_negative) ++ { ++ assert (int_no <= (uintmax_t) (INTMAX_MAX ++ + MIN_EXP - MANT_DIG) / 4); ++ exp_limit = -MIN_EXP + MANT_DIG + 4 * (intmax_t) int_no; ++ } ++ else ++ { ++ if (int_no) ++ { ++ assert (lead_zero == 0 ++ && int_no <= (uintmax_t) INTMAX_MAX / 4); ++ exp_limit = MAX_EXP - 4 * (intmax_t) int_no + 3; ++ } ++ else if (lead_zero == (size_t) -1) ++ { ++ /* The number is zero and this limit is ++ arbitrary. */ ++ exp_limit = MAX_EXP + 3; ++ } ++ else ++ { ++ assert (lead_zero ++ <= (uintmax_t) (INTMAX_MAX - MAX_EXP - 3) / 4); ++ exp_limit = (MAX_EXP ++ + 4 * (intmax_t) lead_zero ++ + 3); ++ } ++ } ++ } + else +- exp_limit = (exp_negative ? +- -MIN_10_EXP + MANT_DIG + int_no : +- MAX_10_EXP - int_no + lead_zero + 1); ++ { ++ if (exp_negative) ++ { ++ assert (int_no ++ <= (uintmax_t) (INTMAX_MAX + MIN_10_EXP - MANT_DIG)); ++ exp_limit = -MIN_10_EXP + MANT_DIG + (intmax_t) int_no; ++ } ++ else ++ { ++ if (int_no) ++ { ++ assert (lead_zero == 0 ++ && int_no <= (uintmax_t) INTMAX_MAX); ++ exp_limit = MAX_10_EXP - (intmax_t) int_no + 1; ++ } ++ else if (lead_zero == (size_t) -1) ++ { ++ /* The number is zero and this limit is ++ arbitrary. */ ++ exp_limit = MAX_10_EXP + 1; ++ } ++ else ++ { ++ assert (lead_zero ++ <= (uintmax_t) (INTMAX_MAX - MAX_10_EXP - 1)); ++ exp_limit = MAX_10_EXP + (intmax_t) lead_zero + 1; ++ } ++ } ++ } ++ ++ if (exp_limit < 0) ++ exp_limit = 0; + + do + { +- exponent *= 10; +- exponent += c - L_('0'); +- +- if (__builtin_expect (exponent > exp_limit, 0)) ++ if (__builtin_expect ((exponent > exp_limit / 10 ++ || (exponent == exp_limit / 10 ++ && c - L_('0') > exp_limit % 10)), 0)) + /* The exponent is too large/small to represent a valid + number. */ + { +@@ -845,7 +907,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + /* We have to take care for special situation: a joker + might have written "0.0e100000" which is in fact + zero. */ +- if (lead_zero == -1) ++ if (lead_zero == (size_t) -1) + result = negative ? -0.0 : 0.0; + else + { +@@ -864,6 +926,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group + /* NOTREACHED */ + } + ++ exponent *= 10; ++ exponent += c - L_('0'); ++ + c = *++cp; + } + while (c >= L_('0') && c <= L_('9')); +@@ -932,7 +997,14 @@ ____STRTOF_INTERNAL (nptr, endptr, group + } + #endif + startp += lead_zero + decimal_len; +- exponent -= base == 16 ? 4 * lead_zero : lead_zero; ++ assert (lead_zero <= (base == 16 ++ ? (uintmax_t) INTMAX_MAX / 4 ++ : (uintmax_t) INTMAX_MAX)); ++ assert (lead_zero <= (base == 16 ++ ? ((uintmax_t) exponent ++ - (uintmax_t) INTMAX_MIN) / 4 ++ : ((uintmax_t) exponent - (uintmax_t) INTMAX_MIN))); ++ exponent -= base == 16 ? 4 * (intmax_t) lead_zero : (intmax_t) lead_zero; + dig_no -= lead_zero; + } + +@@ -974,7 +1046,10 @@ ____STRTOF_INTERNAL (nptr, endptr, group + } + + /* Adjust the exponent for the bits we are shifting in. */ +- exponent += bits - 1 + (int_no - 1) * 4; ++ assert (int_no <= (uintmax_t) (exponent < 0 ++ ? (INTMAX_MAX - bits + 1) / 4 ++ : (INTMAX_MAX - exponent - bits + 1) / 4)); ++ exponent += bits - 1 + ((intmax_t) int_no - 1) * 4; + + while (--dig_no > 0 && idx >= 0) + { +@@ -1014,13 +1089,15 @@ ____STRTOF_INTERNAL (nptr, endptr, group + really integer digits or belong to the fractional part; i.e. we normalize + 123e-2 to 1.23. */ + { +- register int incr = (exponent < 0 ? MAX (-int_no, exponent) +- : MIN (dig_no - int_no, exponent)); ++ register intmax_t incr = (exponent < 0 ++ ? MAX (-(intmax_t) int_no, exponent) ++ : MIN ((intmax_t) dig_no - (intmax_t) int_no, ++ exponent)); + int_no += incr; + exponent -= incr; + } + +- if (__builtin_expect (int_no + exponent > MAX_10_EXP + 1, 0)) ++ if (__builtin_expect (exponent > MAX_10_EXP + 1 - (intmax_t) int_no, 0)) + { + __set_errno (ERANGE); + return negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL; +@@ -1205,7 +1282,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + digits we should have enough bits for the result. The remaining + decimal digits give us the information that more bits are following. + This can be used while rounding. (Two added as a safety margin.) */ +- if (dig_no - int_no > (MANT_DIG - bits + 2) / 3 + 2) ++ if ((intmax_t) dig_no > (intmax_t) int_no + (MANT_DIG - bits + 2) / 3 + 2) + { + dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 2; + more_bits = 1; +@@ -1213,7 +1290,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group + else + more_bits = 0; + +- neg_exp = dig_no - int_no - exponent; ++ neg_exp = (intmax_t) dig_no - (intmax_t) int_no - exponent; + + /* Construct the denominator. */ + densize = 0; +@@ -1491,7 +1568,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group + register int i; + (void) __mpn_lshift (&retval[used + / BITS_PER_MP_LIMB], +- retval, RETURN_LIMB_SIZE, ++ retval, ++ (RETURN_LIMB_SIZE ++ - used / BITS_PER_MP_LIMB), + used % BITS_PER_MP_LIMB); + for (i = used / BITS_PER_MP_LIMB - 1; i >= 0; --i) + retval[i] = 0; +diff -Nrup a/stdlib/tst-strtod-overflow.c b/stdlib/tst-strtod-overflow.c +--- a/stdlib/tst-strtod-overflow.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdlib/tst-strtod-overflow.c 2012-08-15 09:25:01.098592764 -0600 +@@ -0,0 +1,48 @@ ++/* Test for integer/buffer overflow in strtod. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#define EXPONENT "e-2147483649" ++#define SIZE 214748364 ++ ++static int ++do_test (void) ++{ ++ char *p = malloc (1 + SIZE + sizeof (EXPONENT)); ++ if (p == NULL) ++ { ++ puts ("malloc failed, cannot test for overflow"); ++ return 0; ++ } ++ p[0] = '1'; ++ memset (p + 1, '0', SIZE); ++ memcpy (p + 1 + SIZE, EXPONENT, sizeof (EXPONENT)); ++ double d = strtod (p, NULL); ++ if (d != 0) ++ { ++ printf ("strtod returned wrong value: %a\n", d); ++ return 1; ++ } ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/src/patches/glibc/glibc-rh848082.patch b/src/patches/glibc/glibc-rh848082.patch new file mode 100644 index 0000000..dfb96bf --- /dev/null +++ b/src/patches/glibc/glibc-rh848082.patch @@ -0,0 +1,88 @@ +commit 4f031072a5055abd83717820b59efdaa463d5853 +Author: Ulrich Drepper drepper@gmail.com +Date: Sat May 28 16:59:30 2011 -0400 + + Handle failure of _nl_explode_name in all cases + + 2011-05-28 Ulrich Drepper drepper@gmail.com + + * locale/findlocale.c (_nl_find_locale): Return right away if + _nl_explode_name failed. + * locale/programs/locarchive.c (add_locale_to_archive): Likewise. + +diff --git a/locale/findlocale.c b/locale/findlocale.c +index 6b88c96..2fec9a7 100644 +--- a/locale/findlocale.c ++++ b/locale/findlocale.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1996-2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. ++/* Copyright (C) 1996-2003, 2006, 2010, 2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper drepper@cygnus.com, 1996. + +@@ -140,6 +140,9 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, + */ + mask = _nl_explode_name (loc_name, &language, &modifier, &territory, + &codeset, &normalized_codeset); ++ if (mask == -1) ++ /* Memory allocate problem. */ ++ return NULL; + + /* If exactly this locale was already asked for we have an entry with + the complete name. */ +diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c +index 85ba77d..e95bcf1 100644 +--- a/locale/programs/locarchive.c ++++ b/locale/programs/locarchive.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002, 2003, 2005, 2007, 2009 Free Software Foundation, Inc. ++/* Copyright (C) 2002,2003,2005,2007,2009,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper drepper@redhat.com, 2002. + +@@ -1079,6 +1079,8 @@ add_locale_to_archive (ah, name, data, replace) + int mask = _nl_explode_name (strdupa (name), + &language, &modifier, &territory, + &codeset, &normalized_codeset); ++ if (mask == -1) ++ return -1; + + if (mask & XPG_NORM_CODESET) + /* This name contains a codeset in unnormalized form. +@@ -1128,6 +1130,7 @@ add_locale_to_archive (ah, name, data, replace) + + /* Now read the locale.alias files looking for lines whose + right hand side matches our name after normalization. */ ++ int result = 0; + if (alias_file != NULL) + { + FILE *fp; +@@ -1207,6 +1210,11 @@ add_locale_to_archive (ah, name, data, replace) + &rhs_territory, + &rhs_codeset, + &rhs_normalized_codeset); ++ if (rhs_mask == 1) ++ { ++ result = -1; ++ goto out; ++ } + if (!strcmp (language, rhs_language) + && ((rhs_mask & XPG_CODESET) + /* He has a codeset, it must match normalized. */ +@@ -1240,6 +1248,7 @@ add_locale_to_archive (ah, name, data, replace) + } + } + ++ out: + fclose (fp); + } + +@@ -1248,7 +1257,7 @@ add_locale_to_archive (ah, name, data, replace) + if (mask & XPG_NORM_CODESET) + free ((char *) normalized_codeset); + +- return 0; ++ return result; + } + + diff --git a/src/patches/glibc/glibc-rh849203.patch b/src/patches/glibc/glibc-rh849203.patch new file mode 100644 index 0000000..ea50593 --- /dev/null +++ b/src/patches/glibc/glibc-rh849203.patch @@ -0,0 +1,195 @@ +diff -Nrup a/intl/Makefile b/intl/Makefile +--- a/intl/Makefile 2010-05-04 05:27:23.000000000 -0600 ++++ b/intl/Makefile 2012-08-17 14:40:00.457226629 -0600 +@@ -74,6 +74,16 @@ ifneq (no,$(PERL)) + tests: $(objpfx)mtrace-tst-gettext + endif + endif ++ ++# Multiple tests use this data. Create it once to avoid racing and ++# spurious test failures. ++codeset_mo = $(objpfx)domaindir/de_DE/LC_MESSAGES/codeset.mo ++ ++$(codeset_mo): ++ $(make-target-directory) ++ msgfmt -o $@T tstcodeset.po ++ mv -f $@T $@ ++ + $(objpfx)mtrace-tst-gettext: $(objpfx)tst-gettext.out + $(common-objpfx)malloc/mtrace $(objpfx)tst-gettext.mtrace > $@ + $(objpfx)tst-gettext.out: tst-gettext.sh $(objpfx)tst-gettext +@@ -83,16 +93,14 @@ $(objpfx)tst-translit.out: tst-translit. + $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/ + $(objpfx)tst-gettext2.out: tst-gettext2.sh $(objpfx)tst-gettext2 + $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/ +-$(objpfx)tst-codeset.out: tst-codeset.sh $(objpfx)tst-codeset +- $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/ +-$(objpfx)tst-gettext3.out: tst-gettext3.sh $(objpfx)tst-gettext3 +- $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/ + $(objpfx)tst-gettext4.out: tst-gettext4.sh $(objpfx)tst-gettext4 + $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ +-$(objpfx)tst-gettext5.out: tst-gettext5.sh $(objpfx)tst-gettext5 +- $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ + $(objpfx)tst-gettext6.out: tst-gettext6.sh $(objpfx)tst-gettext6 + $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ ++ ++$(objpfx)tst-codeset.out: $(codeset_mo) ++$(objpfx)tst-gettext3.out: $(codeset_mo) ++$(objpfx)tst-gettext5.out: $(codeset_mo) + endif + endif + +@@ -109,6 +117,11 @@ CFLAGS-tst-gettext4.c = -DOBJPFX="$(obj + CFLAGS-tst-gettext5.c = -DOBJPFX="$(objpfx)" + CFLAGS-tst-gettext6.c = -DOBJPFX="$(objpfx)" + ++LOCPATH-ENV = LOCPATH=$(common-objpfx)localedata ++tst-codeset-ENV = $(LOCPATH-ENV) ++tst-gettext3-ENV = $(LOCPATH-ENV) ++tst-gettext5-ENV = $(LOCPATH-ENV) ++ + ifeq ($(have-thread-library),yes) + ifeq (yes,$(build-shared)) + $(addprefix $(objpfx),$(multithread-test-srcs)): $(shared-thread-library) +diff -Nrup a/intl/tst-codeset.sh b/intl/tst-codeset.sh +--- a/intl/tst-codeset.sh 2010-05-04 05:27:23.000000000 -0600 ++++ b/intl/tst-codeset.sh 1969-12-31 17:00:00.000000000 -0700 +@@ -1,43 +0,0 @@ +-#! /bin/sh +-# Test of bind_textdomain_codeset. +-# Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. +-# This file is part of the GNU C Library. +-# +- +-# The GNU C Library is free software; you can redistribute it and/or +-# modify it under the terms of the GNU Lesser General Public +-# License as published by the Free Software Foundation; either +-# version 2.1 of the License, or (at your option) any later version. +- +-# The GNU C Library is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-# Lesser General Public License for more details. +- +-# You should have received a copy of the GNU Lesser General Public +-# License along with the GNU C Library; if not, write to the Free +-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +-# 02111-1307 USA. +- +-common_objpfx=$1 +-objpfx=$2 +- +-LC_ALL=C +-export LC_ALL +- +-# Generate the test data. +-msgfmt -o ${objpfx}codeset.mo.$$ tstcodeset.po || exit +-# Create the domain directories. +-mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES +-# Populate them. +-mv -f ${objpfx}codeset.mo.$$ ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo +- +-GCONV_PATH=${common_objpfx}iconvdata +-export GCONV_PATH +-LOCPATH=${common_objpfx}localedata +-export LOCPATH +- +-${common_objpfx}elf/ld.so --library-path $common_objpfx \ +-${objpfx}tst-codeset > ${objpfx}tst-codeset.out +- +-exit $? +diff -Nrup a/intl/tst-gettext3.sh b/intl/tst-gettext3.sh +--- a/intl/tst-gettext3.sh 2010-05-04 05:27:23.000000000 -0600 ++++ b/intl/tst-gettext3.sh 1969-12-31 17:00:00.000000000 -0700 +@@ -1,44 +0,0 @@ +-#! /bin/sh +-# Test that the gettext() results come out in the correct encoding for +-# locales that differ only in their encoding. +-# Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. +-# This file is part of the GNU C Library. +-# +- +-# The GNU C Library is free software; you can redistribute it and/or +-# modify it under the terms of the GNU Lesser General Public +-# License as published by the Free Software Foundation; either +-# version 2.1 of the License, or (at your option) any later version. +- +-# The GNU C Library is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-# Lesser General Public License for more details. +- +-# You should have received a copy of the GNU Lesser General Public +-# License along with the GNU C Library; if not, write to the Free +-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +-# 02111-1307 USA. +- +-common_objpfx=$1 +-objpfx=$2 +- +-LC_ALL=C +-export LC_ALL +- +-# Generate the test data. +-msgfmt -o ${objpfx}codeset.mo.$$ tstcodeset.po || exit +-# Create the domain directories. +-mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES +-# Populate them. +-mv -f ${objpfx}codeset.mo.$$ ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo +- +-GCONV_PATH=${common_objpfx}iconvdata +-export GCONV_PATH +-LOCPATH=${common_objpfx}localedata +-export LOCPATH +- +-${common_objpfx}elf/ld.so --library-path $common_objpfx \ +-${objpfx}tst-gettext3 > ${objpfx}tst-gettext3.out +- +-exit $? +diff -Nrup a/intl/tst-gettext5.sh b/intl/tst-gettext5.sh +--- a/intl/tst-gettext5.sh 2010-05-04 05:27:23.000000000 -0600 ++++ b/intl/tst-gettext5.sh 1969-12-31 17:00:00.000000000 -0700 +@@ -1,43 +0,0 @@ +-#! /bin/sh +-# Test that gettext() in multithreaded applications works correctly if +-# different threads operate in different locales referring to the same +-# catalog file but with different encodings. +-# Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. +-# This file is part of the GNU C Library. +-# +- +-# The GNU C Library is free software; you can redistribute it and/or +-# modify it under the terms of the GNU Lesser General Public +-# License as published by the Free Software Foundation; either +-# version 2.1 of the License, or (at your option) any later version. +- +-# The GNU C Library is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-# Lesser General Public License for more details. +- +-# You should have received a copy of the GNU Lesser General Public +-# License along with the GNU C Library; if not, write to the Free +-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +-# 02111-1307 USA. +- +-common_objpfx=$1 +-run_program_prefix=$2 +-objpfx=$3 +- +-LC_ALL=C +-export LC_ALL +- +-# Create the domain directories. +-mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES +-# Populate them. +-msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo tstcodeset.po +- +-GCONV_PATH=${common_objpfx}iconvdata +-export GCONV_PATH +-LOCPATH=${common_objpfx}localedata +-export LOCPATH +- +-${run_program_prefix} ${objpfx}tst-gettext5 > ${objpfx}tst-gettext5.out +- +-exit $? diff --git a/src/patches/glibc/glibc-rh849651.patch b/src/patches/glibc/glibc-rh849651.patch new file mode 100644 index 0000000..97a5144 --- /dev/null +++ b/src/patches/glibc/glibc-rh849651.patch @@ -0,0 +1,343 @@ +diff -Nrup a/sysdeps/x86_64/fpu/e_expf.S b/sysdeps/x86_64/fpu/e_expf.S +--- a/sysdeps/x86_64/fpu/e_expf.S 1969-12-31 17:00:00.000000000 -0700 ++++ b/sysdeps/x86_64/fpu/e_expf.S 2012-08-20 09:47:15.551971545 -0600 +@@ -0,0 +1,339 @@ ++/* Optimized __ieee754_expf function. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ Contributed by Intel Corporation. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ http://www.gnu.org/licenses/. */ ++ ++#include <sysdep.h> ++ ++/* Short algorithm description: ++ * ++ * Let K = 64 (table size). ++ * e^x = 2^(x/log(2)) = 2^n * T[j] * (1 + P(y)) ++ * where ++ * x = m*log(2)/K + y, y in [0.0..log(2)/K] ++ * m = n*K + j, m,n,j - signed integer, j in [0..K-1] ++ * values of 2^(j/K) are tabulated as T[j]. ++ * ++ * P(y) is a minimax polynomial approximation of expf(x)-1 ++ * on small interval [0.0..log(2)/K]. ++ * ++ * P(y) = P3*y*y*y*y + P2*y*y*y + P1*y*y + P0*y, calculated as ++ * z = y*y; P(y) = (P3*z + P1)*z + (P2*z + P0)*y ++ * ++ * Special cases: ++ * expf(NaN) = NaN ++ * expf(+INF) = +INF ++ * expf(-INF) = 0 ++ * expf(x) = 1 for subnormals ++ * for finite argument, only expf(0)=1 is exact ++ * expf(x) overflows if x>88.7228317260742190 ++ * expf(x) underflows if x<-103.972076416015620 ++ */ ++ ++ .text ++ENTRY(__ieee754_expf) ++ /* Input: single precision x in %xmm0 */ ++ cvtss2sd %xmm0, %xmm1 /* Convert x to double precision */ ++ movd %xmm0, %ecx /* Copy x */ ++ movsd L(DP_KLN2)(%rip), %xmm2 /* DP K/log(2) */ ++ movsd L(DP_P2)(%rip), %xmm3 /* DP P2 */ ++ movl %ecx, %eax /* x */ ++ mulsd %xmm1, %xmm2 /* DP x*K/log(2) */ ++ andl $0x7fffffff, %ecx /* |x| */ ++ lea L(DP_T)(%rip), %rsi /* address of table T[j] */ ++ cmpl $0x42ad496b, %ecx /* |x|<125*log(2) ? */ ++ movsd L(DP_P3)(%rip), %xmm4 /* DP P3 */ ++ addsd L(DP_RS)(%rip), %xmm2 /* DP x*K/log(2)+RS */ ++ jae L(special_paths) ++ ++ /* Here if |x|<125*log(2) */ ++ cmpl $0x31800000, %ecx /* |x|<2^(-28) ? */ ++ jb L(small_arg) ++ ++ /* Main path: here if 2^(-28)<=|x|<125*log(2) */ ++ cvtsd2ss %xmm2, %xmm2 /* SP x*K/log(2)+RS */ ++ movd %xmm2, %eax /* bits of n*K+j with trash */ ++ subss L(SP_RS)(%rip), %xmm2 /* SP t=round(x*K/log(2)) */ ++ movl %eax, %edx /* n*K+j with trash */ ++ cvtss2sd %xmm2, %xmm2 /* DP t */ ++ andl $0x3f, %eax /* bits of j */ ++ mulsd L(DP_NLN2K)(%rip), %xmm2/* DP -t*log(2)/K */ ++ andl $0xffffffc0, %edx /* bits of n */ ++#ifdef __AVX__ ++ vaddsd %xmm1, %xmm2, %xmm0 /* DP y=x-t*log(2)/K */ ++ vmulsd %xmm0, %xmm0, %xmm2 /* DP z=y*y */ ++#else ++ addsd %xmm1, %xmm2 /* DP y=x-t*log(2)/K */ ++ movaps %xmm2, %xmm0 /* DP y */ ++ mulsd %xmm2, %xmm2 /* DP z=y*y */ ++#endif ++ mulsd %xmm2, %xmm4 /* DP P3*z */ ++ addl $0x1fc0, %edx /* bits of n + SP exponent bias */ ++ mulsd %xmm2, %xmm3 /* DP P2*z */ ++ shll $17, %edx /* SP 2^n */ ++ addsd L(DP_P1)(%rip), %xmm4 /* DP P3*z+P1 */ ++ addsd L(DP_P0)(%rip), %xmm3 /* DP P2*z+P0 */ ++ movd %edx, %xmm1 /* SP 2^n */ ++ mulsd %xmm2, %xmm4 /* DP (P3*z+P1)*z */ ++ mulsd %xmm3, %xmm0 /* DP (P2*z+P0)*y */ ++ addsd %xmm4, %xmm0 /* DP P(y) */ ++ mulsd (%rsi,%rax,8), %xmm0 /* DP P(y)*T[j] */ ++ addsd (%rsi,%rax,8), %xmm0 /* DP T[j]*(P(y)+1) */ ++ cvtsd2ss %xmm0, %xmm0 /* SP T[j]*(P(y)+1) */ ++ mulss %xmm1, %xmm0 /* SP result=2^n*(T[j]*(P(y)+1)) */ ++ ret ++ ++ .p2align 4 ++L(small_arg): ++ /* Here if 0<=|x|<2^(-28) */ ++ addss L(SP_ONE)(%rip), %xmm0 /* 1.0 + x */ ++ /* Return 1.0 with inexact raised, except for x==0 */ ++ ret ++ ++ .p2align 4 ++L(special_paths): ++ /* Here if 125*log(2)<=|x| */ ++ shrl $31, %eax /* Get sign bit of x, and depending on it: */ ++ lea L(SP_RANGE)(%rip), %rdx /* load over/underflow bound */ ++ cmpl (%rdx,%rax,4), %ecx /* |x|<under/overflow bound ? */ ++ jbe L(near_under_or_overflow) ++ ++ /* Here if |x|>under/overflow bound */ ++ cmpl $0x7f800000, %ecx /* |x| is finite ? */ ++ jae L(arg_inf_or_nan) ++ ++ /* Here if |x|>under/overflow bound, and x is finite */ ++ testq %rax, %rax /* sign of x nonzero ? */ ++ je L(res_overflow) ++ ++ /* Here if -inf<x<underflow bound (x<0) */ ++ movss L(SP_SMALL)(%rip), %xmm0/* load small value 2^(-100) */ ++ mulss %xmm0, %xmm0 /* Return underflowed result (zero or subnormal) */ ++ ret ++ ++ .p2align 4 ++L(res_overflow): ++ /* Here if overflow bound<x<inf (x>0) */ ++ movss L(SP_LARGE)(%rip), %xmm0/* load large value 2^100 */ ++ mulss %xmm0, %xmm0 /* Return overflowed result (Inf or max normal) */ ++ ret ++ ++ .p2align 4 ++L(arg_inf_or_nan): ++ /* Here if |x| is Inf or NAN */ ++ jne L(arg_nan) /* |x| is Inf ? */ ++ ++ /* Here if |x| is Inf */ ++ lea L(SP_INF_0)(%rip), %rdx /* depending on sign of x: */ ++ movss (%rdx,%rax,4), %xmm0 /* return zero or Inf */ ++ ret ++ ++ .p2align 4 ++L(arg_nan): ++ /* Here if |x| is NaN */ ++ addss %xmm0, %xmm0 /* Return x+x (raise invalid) */ ++ ret ++ ++ .p2align 4 ++L(near_under_or_overflow): ++ /* Here if 125*log(2)<=|x|<under/overflow bound */ ++ cvtsd2ss %xmm2, %xmm2 /* SP x*K/log(2)+RS */ ++ movd %xmm2, %eax /* bits of n*K+j with trash */ ++ subss L(SP_RS)(%rip), %xmm2 /* SP t=round(x*K/log(2)) */ ++ movl %eax, %edx /* n*K+j with trash */ ++ cvtss2sd %xmm2, %xmm2 /* DP t */ ++ andl $0x3f, %eax /* bits of j */ ++ mulsd L(DP_NLN2K)(%rip), %xmm2/* DP -t*log(2)/K */ ++ andl $0xffffffc0, %edx /* bits of n */ ++#ifdef __AVX__ ++ vaddsd %xmm1, %xmm2, %xmm0 /* DP y=x-t*log(2)/K */ ++ vmulsd %xmm0, %xmm0, %xmm2 /* DP z=y*y */ ++#else ++ addsd %xmm1, %xmm2 /* DP y=x-t*log(2)/K */ ++ movaps %xmm2, %xmm0 /* DP y */ ++ mulsd %xmm2, %xmm2 /* DP z=y*y */ ++#endif ++ mulsd %xmm2, %xmm4 /* DP P3*z */ ++ addl $0xffc0, %edx /* bits of n + DP exponent bias */ ++ mulsd %xmm2, %xmm3 /* DP P2*z */ ++ shlq $46, %rdx /* DP 2^n */ ++ addsd L(DP_P1)(%rip), %xmm4 /* DP P3*z+P1 */ ++ addsd L(DP_P0)(%rip), %xmm3 /* DP P2*z+P0 */ ++ movd %rdx, %xmm1 /* DP 2^n */ ++ mulsd %xmm2, %xmm4 /* DP (P3*z+P1)*z */ ++ mulsd %xmm3, %xmm0 /* DP (P2*z+P0)*y */ ++ addsd %xmm4, %xmm0 /* DP P(y) */ ++ mulsd (%rsi,%rax,8), %xmm0 /* DP P(y)*T[j] */ ++ addsd (%rsi,%rax,8), %xmm0 /* DP T[j]*(P(y)+1) */ ++ mulsd %xmm1, %xmm0 /* DP result=2^n*(T[j]*(P(y)+1)) */ ++ cvtsd2ss %xmm0, %xmm0 /* convert result to single precision */ ++ ret ++END(__ieee754_expf) ++ ++ .section .rodata, "a" ++ .p2align 3 ++L(DP_T): /* table of double precision values 2^(j/K) for j=[0..K-1] */ ++ .long 0x00000000, 0x3ff00000 ++ .long 0x3e778061, 0x3ff02c9a ++ .long 0xd3158574, 0x3ff059b0 ++ .long 0x18759bc8, 0x3ff08745 ++ .long 0x6cf9890f, 0x3ff0b558 ++ .long 0x32d3d1a2, 0x3ff0e3ec ++ .long 0xd0125b51, 0x3ff11301 ++ .long 0xaea92de0, 0x3ff1429a ++ .long 0x3c7d517b, 0x3ff172b8 ++ .long 0xeb6fcb75, 0x3ff1a35b ++ .long 0x3168b9aa, 0x3ff1d487 ++ .long 0x88628cd6, 0x3ff2063b ++ .long 0x6e756238, 0x3ff2387a ++ .long 0x65e27cdd, 0x3ff26b45 ++ .long 0xf51fdee1, 0x3ff29e9d ++ .long 0xa6e4030b, 0x3ff2d285 ++ .long 0x0a31b715, 0x3ff306fe ++ .long 0xb26416ff, 0x3ff33c08 ++ .long 0x373aa9cb, 0x3ff371a7 ++ .long 0x34e59ff7, 0x3ff3a7db ++ .long 0x4c123422, 0x3ff3dea6 ++ .long 0x21f72e2a, 0x3ff4160a ++ .long 0x6061892d, 0x3ff44e08 ++ .long 0xb5c13cd0, 0x3ff486a2 ++ .long 0xd5362a27, 0x3ff4bfda ++ .long 0x769d2ca7, 0x3ff4f9b2 ++ .long 0x569d4f82, 0x3ff5342b ++ .long 0x36b527da, 0x3ff56f47 ++ .long 0xdd485429, 0x3ff5ab07 ++ .long 0x15ad2148, 0x3ff5e76f ++ .long 0xb03a5585, 0x3ff6247e ++ .long 0x82552225, 0x3ff66238 ++ .long 0x667f3bcd, 0x3ff6a09e ++ .long 0x3c651a2f, 0x3ff6dfb2 ++ .long 0xe8ec5f74, 0x3ff71f75 ++ .long 0x564267c9, 0x3ff75feb ++ .long 0x73eb0187, 0x3ff7a114 ++ .long 0x36cf4e62, 0x3ff7e2f3 ++ .long 0x994cce13, 0x3ff82589 ++ .long 0x9b4492ed, 0x3ff868d9 ++ .long 0x422aa0db, 0x3ff8ace5 ++ .long 0x99157736, 0x3ff8f1ae ++ .long 0xb0cdc5e5, 0x3ff93737 ++ .long 0x9fde4e50, 0x3ff97d82 ++ .long 0x82a3f090, 0x3ff9c491 ++ .long 0x7b5de565, 0x3ffa0c66 ++ .long 0xb23e255d, 0x3ffa5503 ++ .long 0x5579fdbf, 0x3ffa9e6b ++ .long 0x995ad3ad, 0x3ffae89f ++ .long 0xb84f15fb, 0x3ffb33a2 ++ .long 0xf2fb5e47, 0x3ffb7f76 ++ .long 0x904bc1d2, 0x3ffbcc1e ++ .long 0xdd85529c, 0x3ffc199b ++ .long 0x2e57d14b, 0x3ffc67f1 ++ .long 0xdcef9069, 0x3ffcb720 ++ .long 0x4a07897c, 0x3ffd072d ++ .long 0xdcfba487, 0x3ffd5818 ++ .long 0x03db3285, 0x3ffda9e6 ++ .long 0x337b9b5f, 0x3ffdfc97 ++ .long 0xe78b3ff6, 0x3ffe502e ++ .long 0xa2a490da, 0x3ffea4af ++ .long 0xee615a27, 0x3ffefa1b ++ .long 0x5b6e4540, 0x3fff5076 ++ .long 0x819e90d8, 0x3fffa7c1 ++ .type L(DP_T), @object ++ ASM_SIZE_DIRECTIVE(L(DP_T)) ++ ++ .section .rodata.cst8,"aM",@progbits,8 ++ .p2align 3 ++L(DP_KLN2): /* double precision K/log(2) */ ++ .long 0x652b82fe, 0x40571547 ++ .type L(DP_KLN2), @object ++ ASM_SIZE_DIRECTIVE(L(DP_KLN2)) ++ ++ .p2align 3 ++L(DP_NLN2K): /* double precision -log(2)/K */ ++ .long 0xfefa39ef, 0xbf862e42 ++ .type L(DP_NLN2K), @object ++ ASM_SIZE_DIRECTIVE(L(DP_NLN2K)) ++ ++ .p2align 3 ++L(DP_RS): /* double precision 2^23+2^22 */ ++ .long 0x00000000, 0x41680000 ++ .type L(DP_RS), @object ++ ASM_SIZE_DIRECTIVE(L(DP_RS)) ++ ++ .p2align 3 ++L(DP_P3): /* double precision polynomial coefficient P3 */ ++ .long 0xeb78fa85, 0x3fa56420 ++ .type L(DP_P3), @object ++ ASM_SIZE_DIRECTIVE(L(DP_P3)) ++ ++ .p2align 3 ++L(DP_P1): /* double precision polynomial coefficient P1 */ ++ .long 0x008d6118, 0x3fe00000 ++ .type L(DP_P1), @object ++ ASM_SIZE_DIRECTIVE(L(DP_P1)) ++ ++ .p2align 3 ++L(DP_P2): /* double precision polynomial coefficient P2 */ ++ .long 0xda752d4f, 0x3fc55550 ++ .type L(DP_P2), @object ++ ASM_SIZE_DIRECTIVE(L(DP_P2)) ++ ++ .p2align 3 ++L(DP_P0): /* double precision polynomial coefficient P0 */ ++ .long 0xffffe7c6, 0x3fefffff ++ .type L(DP_P0), @object ++ ASM_SIZE_DIRECTIVE(L(DP_P0)) ++ ++ .p2align 2 ++L(SP_RANGE): /* single precision overflow/underflow bounds */ ++ .long 0x42b17217 /* if x>this bound, then result overflows */ ++ .long 0x42cff1b4 /* if x<this bound, then result underflows */ ++ .type L(SP_RANGE), @object ++ ASM_SIZE_DIRECTIVE(L(SP_RANGE)) ++ ++ .p2align 2 ++L(SP_INF_0): ++ .long 0x7f800000 /* single precision Inf */ ++ .long 0 /* single precision zero */ ++ .type L(SP_INF_0), @object ++ ASM_SIZE_DIRECTIVE(L(SP_INF_0)) ++ ++ .section .rodata.cst4,"aM",@progbits,4 ++ .p2align 2 ++L(SP_RS): /* single precision 2^23+2^22 */ ++ .long 0x4b400000 ++ .type L(SP_RS), @object ++ ASM_SIZE_DIRECTIVE(L(SP_RS)) ++ ++ .p2align 2 ++L(SP_SMALL): /* single precision small value 2^(-100) */ ++ .long 0x0d800000 ++ .type L(SP_SMALL), @object ++ ASM_SIZE_DIRECTIVE(L(SP_SMALL)) ++ ++ .p2align 2 ++L(SP_LARGE): /* single precision large value 2^100 */ ++ .long 0x71800000 ++ .type L(SP_LARGE), @object ++ ASM_SIZE_DIRECTIVE(L(SP_LARGE)) ++ ++ .p2align 2 ++L(SP_ONE): /* single precision 1.0 */ ++ .long 0x3f800000 ++ .type L(SP_ONE), @object ++ ASM_SIZE_DIRECTIVE(L(SP_ONE)) ++ ++strong_alias (__ieee754_expf, __expf_finite) diff --git a/src/patches/glibc/glibc-rh852445.patch b/src/patches/glibc/glibc-rh852445.patch new file mode 100644 index 0000000..3c4e13f --- /dev/null +++ b/src/patches/glibc/glibc-rh852445.patch @@ -0,0 +1,105 @@ +From libc-alpha-return-31329-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org Wed Jul 11 11:36:39 2012 +Return-Path: <libc-alpha-return-31329-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org> +Delivered-To: listarch-libc-alpha at sources dot redhat dot com +Received: (qmail 15677 invoked by alias); 11 Jul 2012 11:36:39 -0000 +Received: (qmail 15654 invoked by uid 22791); 11 Jul 2012 11:36:37 -0000 +X-SWARE-Spam-Status: No, hits=-4.3 required=5.0 + tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE +X-Spam-Check-By: sourceware.org +Date: Wed, 11 Jul 2012 21:06:06 +0930 +From: Alan Modra <amodra at gmail dot com> +To: libc-alpha at sourceware dot org +Cc: rsa at linux dot vnet dot ibm dot com +Subject: powerpc pthread_once bug fix +Message-ID: 20120711113606.GM3117@bubble.grove.modra.org +MIME-Version: 1.0 +Content-Type: text/plain; charset=us-ascii +Content-Disposition: inline +User-Agent: Mutt/1.5.21 (2010-09-15) +Mailing-List: contact libc-alpha-help at sourceware dot org; run by ezmlm +Precedence: bulk +List-Id: <libc-alpha.sourceware.org> +List-Subscribe: <mailto:libc-alpha-subscribe at sourceware dot org> +List-Archive: http://sourceware.org/ml/libc-alpha/ +List-Post: <mailto:libc-alpha at sourceware dot org> +List-Help: <mailto:libc-alpha-help at sourceware dot org>, <http://sourceware dot org/ml/#faqs> +Sender: libc-alpha-owner at sourceware dot org +Delivered-To: mailing list libc-alpha at sourceware dot org + +This fixes some bugs in the powerpc pthread_once code. Ref +gcc.gnu.org/bugzilla/show_bug.cgi?id=52839#c10 + +Release barriers are needed to ensure any memory written by +init_routine is seen by other threads before *once_control changes. +In the case of clear_once_control we need to flush any partially +written state. + +2012-06-28 Alan Modra amodra@gmail.com + + * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once): + Add release barrier before setting once_control to say + initialisation is done. Add hints on lwarx. Use macro in + place of isync. + (clear_once_control): Add release barrier. + +[ This was slightly edited -- the constraint for operand 0 in the last asm was changed + from "=&r" to "=&b" as using r0 in that context results in a load immediate 1 into + the target rather than incrementing the target. ] + +diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c b/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c +index 4e3d7bd..bb1ebf2 100644 +--- a/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c ++++ b/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c +@@ -28,6 +28,7 @@ clear_once_control (void *arg) + { + pthread_once_t *once_control = (pthread_once_t *) arg; + ++ __asm __volatile (__lll_rel_instr); + *once_control = 0; + lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE); + } +@@ -47,15 +48,15 @@ __pthread_once (pthread_once_t *once_control, void (*init_routine) (void)) + oldval = *once_control; + if ((oldval & 2) == 0) + *once_control = newval; +- Do this atomically. ++ Do this atomically with an acquire barrier. + */ + newval = __fork_generation | 1; +- __asm __volatile ("1: lwarx %0,0,%3\n" ++ __asm __volatile ("1: lwarx %0,0,%3" MUTEX_HINT_ACQ "\n" + " andi. %1,%0,2\n" + " bne 2f\n" + " stwcx. %4,0,%3\n" + " bne 1b\n" +- "2: isync" ++ "2: " __lll_acq_instr + : "=&r" (oldval), "=&r" (tmp), "=m" (*once_control) + : "r" (once_control), "r" (newval), "m" (*once_control) + : "cr0"); +@@ -87,8 +88,18 @@ __pthread_once (pthread_once_t *once_control, void (*init_routine) (void)) + pthread_cleanup_pop (0); + + +- /* Add one to *once_control to take the bottom 2 bits from 01 to 10. */ +- atomic_increment (once_control); ++ /* Add one to *once_control to take the bottom 2 bits from 01 to 10. ++ A release barrier is needed to ensure memory written by init_routine ++ is seen in other threads before *once_control changes. */ ++ int tmp; ++ __asm __volatile (__lll_rel_instr "\n" ++ "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" ++ " addi %0,%0,1\n" ++ " stwcx. %0,0,%2\n" ++ " bne- 1b" ++ : "=&b" (tmp), "=m" (*once_control) ++ : "r" (once_control), "m" (*once_control) ++ : "cr0"); + + /* Wake up all other threads. */ + lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE); + +-- +Alan Modra +Australia Development Lab, IBM + diff --git a/src/patches/glibc/glibc-rh861167.patch b/src/patches/glibc/glibc-rh861167.patch new file mode 100644 index 0000000..d7e982f --- /dev/null +++ b/src/patches/glibc/glibc-rh861167.patch @@ -0,0 +1,86 @@ +commit be08eda54c7cf833ccfa4b8d1f1b1d668c26af66 +Author: Andreas Jaeger aj@suse.de +Date: Wed May 23 09:27:39 2012 +0200 + + Update from Linux 3.4 + +[ Partial, unrelated bits not included. ] + +2012-05-23 Andreas Jaeger aj@suse.de + + * sysdeps/unix/sysv/linux/powerpc/bits/mman.h + (MADV_DONTDUMP,MADV_DODUMP): New macros from Linux 3.4. + macro. + * sysdeps/unix/sysv/linux/s390/bits/mman.h + (MADV_DONTDUMP,MADV_DODUMP): Likewise. + * sysdeps/unix/sysv/linux/i386/bits/mman.h + (MADV_DONTDUMP,MADV_DODUMP): Likewise. + * sysdeps/unix/sysv/linux/x86_64/bits/mman.h + (MADV_DONTDUMP,MADV_DODUMP): Likewise. + +diff -Nrup a/sysdeps/unix/sysv/linux/i386/bits/mman.h b/sysdeps/unix/sysv/linux/i386/bits/mman.h +--- a/sysdeps/unix/sysv/linux/i386/bits/mman.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/unix/sysv/linux/i386/bits/mman.h 2012-09-27 11:44:26.985150148 -0600 +@@ -1,5 +1,5 @@ + /* Definitions for POSIX memory map interface. Linux/i386 version. +- Copyright (C) 1997,2000,2003,2005,2006,2009 Free Software Foundation, Inc. ++ Copyright (C) 1997-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -94,6 +94,9 @@ + # define MADV_DOFORK 11 /* Do inherit across fork. */ + # define MADV_MERGEABLE 12 /* KSM may merge identical pages. */ + # define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages. */ ++# define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, ++ overrides the coredump filter bits. */ ++# define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag. */ + # define MADV_HWPOISON 100 /* Poison a page for testing. */ + #endif + +diff -Nrup a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h +--- a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h 2012-09-27 11:43:37.161351259 -0600 +@@ -96,6 +96,9 @@ + # define MADV_DOFORK 11 /* Do inherit across fork. */ + # define MADV_MERGEABLE 12 /* KSM may merge identical pages. */ + # define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages. */ ++# define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, ++ overrides the coredump filter bits. */ ++# define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag. */ + # define MADV_HWPOISON 100 /* Poison a page for testing. */ + #endif + +diff -Nrup a/sysdeps/unix/sysv/linux/s390/bits/mman.h b/sysdeps/unix/sysv/linux/s390/bits/mman.h +--- a/sysdeps/unix/sysv/linux/s390/bits/mman.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/unix/sysv/linux/s390/bits/mman.h 2012-09-27 11:44:49.745059646 -0600 +@@ -94,6 +94,9 @@ + # define MADV_DOFORK 11 /* Do inherit across fork. */ + # define MADV_MERGEABLE 12 /* KSM may merge identical pages. */ + # define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages. */ ++# define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, ++ overrides the coredump filter bits. */ ++# define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag. */ + # define MADV_HWPOISON 100 /* Poison a page for testing. */ + #endif + +diff -Nrup a/sysdeps/unix/sysv/linux/x86_64/bits/mman.h b/sysdeps/unix/sysv/linux/x86_64/bits/mman.h +--- a/sysdeps/unix/sysv/linux/x86_64/bits/mman.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/unix/sysv/linux/x86_64/bits/mman.h 2012-09-27 11:42:08.314725733 -0600 +@@ -1,5 +1,5 @@ + /* Definitions for POSIX memory map interface. Linux/x86_64 version. +- Copyright (C) 2001, 2003, 2005, 2006, 2009 Free Software Foundation, Inc. ++ Copyright (C) 2001-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -95,6 +95,9 @@ + # define MADV_DOFORK 11 /* Do inherit across fork. */ + # define MADV_MERGEABLE 12 /* KSM may merge identical pages. */ + # define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages. */ ++# define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, ++ overrides the coredump filter bits. */ ++# define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag. */ + # define MADV_HWPOISON 100 /* Poison a page for testing. */ + #endif + diff --git a/src/patches/glibc/glibc-rh863453.patch b/src/patches/glibc/glibc-rh863453.patch new file mode 100644 index 0000000..96fb769 --- /dev/null +++ b/src/patches/glibc/glibc-rh863453.patch @@ -0,0 +1,81 @@ +--- glibc-2.12-2-gc4ccff1/nscd/grpcache.c.lrgrpissue 2002-03-19 01:06:04.905969517 +0530 ++++ glibc-2.12-2-gc4ccff1/nscd/grpcache.c 2002-03-19 01:09:46.495970850 +0530 +@@ -207,10 +207,11 @@ cache_addgr (struct database_dyn *db, in + change. Allocate memory on the cache since it is likely + discarded anyway. If it turns out to be necessary to have a + new record we can still allocate real memory. */ +- bool dataset_in_stack_or_freed = false; ++ bool dataset_temporary = false; ++ bool dataset_malloced = false; + dataset = NULL; + +- if (he == NULL || ! __libc_use_alloca (alloca_used + total + n)) ++ if (he == NULL) + dataset = (struct dataset *) mempool_alloc (db, total + n, 1); + + if (dataset == NULL) +@@ -218,10 +219,16 @@ cache_addgr (struct database_dyn *db, in + /* We cannot permanently add the result in the moment. But + we can provide the result as is. Store the data in some + temporary memory. */ +- dataset = (struct dataset *) alloca_account (total + n, alloca_used); +- ++ if (! __libc_use_alloca (alloca_used + total + n)) ++ { ++ /* XXX What to do if malloc fails? */ ++ dataset = (struct dataset *) malloc (total + n); ++ dataset_malloced = true; ++ } ++ else ++ dataset = (struct dataset *) alloca_account (total + n, alloca_used); + /* We cannot add this record to the permanent database. */ +- dataset_in_stack_or_freed = true; ++ dataset_temporary = true; + } + + dataset->head.allocsize = total + n; +@@ -276,13 +283,10 @@ cache_addgr (struct database_dyn *db, in + dh->timeout = dataset->head.timeout; + ++dh->nreloads; + +- /* If the new record was not allocated on the stack, then it must +- be freed. Note that it can no longer be used. */ +- if (! dataset_in_stack_or_freed) +- { +- free (dataset); +- dataset_in_stack_or_freed = true; +- } ++ /* If the new record was allocated via malloc, then we ++ must free it here. */ ++ if (dataset_malloced) ++ free (dataset); + } + else + { +@@ -298,7 +302,7 @@ cache_addgr (struct database_dyn *db, in + key_copy = (char *) newp + (key_copy - (char *) dataset); + + dataset = memcpy (newp, dataset, total + n); +- dataset_in_stack_or_freed = false; ++ dataset_temporary = false; + } + + /* Mark the old record as obsolete. */ +@@ -313,7 +317,7 @@ cache_addgr (struct database_dyn *db, in + assert (fd != -1); + + #ifdef HAVE_SENDFILE +- if (__builtin_expect (db->mmap_used, 1) && !dataset_in_stack_or_freed) ++ if (__builtin_expect (db->mmap_used, 1) && ! dataset_temporary) + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +@@ -340,7 +344,7 @@ cache_addgr (struct database_dyn *db, in + + /* Add the record to the database. But only if it has not been + stored on the stack. */ +- if (! dataset_in_stack_or_freed) ++ if (! dataset_temporary) + { + /* If necessary, we also propagate the data to disk. */ + if (db->persistent) diff --git a/src/patches/glibc/glibc-rh864322.patch b/src/patches/glibc/glibc-rh864322.patch new file mode 100644 index 0000000..565a146 --- /dev/null +++ b/src/patches/glibc/glibc-rh864322.patch @@ -0,0 +1,12 @@ +diff -rup a/sysdeps/generic/netinet/ip.h b/sysdeps/generic/netinet/ip.h +--- a/sysdeps/generic/netinet/ip.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/sysdeps/generic/netinet/ip.h 2012-10-11 09:22:12.620160387 -0600 +@@ -194,7 +194,7 @@ struct ip_timestamp + */ + + #define IPTOS_CLASS_MASK 0xe0 +-#define IPTOS_CLASS(class) ((tos) & IPTOS_CLASS_MASK) ++#define IPTOS_CLASS(class) ((class) & IPTOS_CLASS_MASK) + #define IPTOS_CLASS_CS0 0x00 + #define IPTOS_CLASS_CS1 0x20 + #define IPTOS_CLASS_CS2 0x40 diff --git a/src/patches/glibc/glibc-rh929388.patch b/src/patches/glibc/glibc-rh929388.patch new file mode 100644 index 0000000..44ddd17 --- /dev/null +++ b/src/patches/glibc/glibc-rh929388.patch @@ -0,0 +1,21 @@ +diff -pruN glibc-2.5-20061008T1257/sysdeps/x86_64/fpu/math_private.h glibc-2.5-20061008T1257.patched/sysdeps/x86_64/fpu/math_private.h +--- glibc-2.5-20061008T1257/sysdeps/x86_64/fpu/math_private.h 2013-02-12 07:05:08.000000000 -0500 ++++ glibc-2.5-20061008T1257.patched/sysdeps/x86_64/fpu/math_private.h 2013-02-12 06:59:08.000000000 -0500 +@@ -90,10 +90,14 @@ while (0) + #undef libc_feupdateenv + #define libc_feupdateenv(e) \ + do { \ +- unsigned int mxcsr; \ ++ unsigned int mxcsr, new_mxcsr; \ + asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \ +- asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr)); \ +- feraiseexcept (mxcsr & FE_ALL_EXCEPT); \ ++ /* Merge in the old exceptions. */ \ ++ new_mxcsr = mxcsr & FE_ALL_EXCEPT | (e)->__mxcsr; \ ++ asm volatile ("ldmxcsr %0" : : "m" (*&new_mxcsr)); \ ++ /* Only raise exception if there are any that are not masked. */ \ ++ if (~(mxcsr >> 7) & mxcsr & FE_ALL_EXCEPT) \ ++ feraiseexcept (mxcsr & FE_ALL_EXCEPT); \ + } while (0) + #undef libc_feupdateenvf + #define libc_feupdateenvf(e) libc_feupdateenv (e) diff --git a/src/patches/glibc/glibc-rh970992.patch b/src/patches/glibc/glibc-rh970992.patch new file mode 100644 index 0000000..42aa819 --- /dev/null +++ b/src/patches/glibc/glibc-rh970992.patch @@ -0,0 +1,190 @@ +# +# Patch provided by Ulrich Drepper in BZ#919562. +# +# Patch has not been sent upstream. +# +# 2013-03-08 Ulrich Drepper drepper@gmail.com +# +# * elf/rtld.c (dl_main): Correctly determine when the application +# required DSOs with TLS and bump the generation counter in that +# case. The current condition does not account for an audit +# module using TLS. +# * elf/dl-tls.c (_dl_count_modids): New function. +# (_dl_allocate_tls_init): Add assertion to check TLS +# generation. +# * sysdeps/generic/ldsodefs.h: Declare _dl_count_modids. +# * elf/Makefile: Add rules to build and run tst-audit9. +# * elf/tst-audit9.c: New file. +# * elf/tst-auditmod9a.c: New file. +# * elf/tst-auditmod9b.c: New file. +# +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/dl-tls.c glibc-2.12-2-gc4ccff1/elf/dl-tls.c +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-tls.c 2013-04-24 16:06:10.410756438 -0400 ++++ glibc-2.12-2-gc4ccff1/elf/dl-tls.c 2013-04-24 16:06:49.092604707 -0400 +@@ -109,6 +109,28 @@ + } + + ++size_t ++internal_function ++_dl_count_modids (void) ++{ ++ if (! __builtin_expect (GL(dl_tls_dtv_gaps), true)) ++ return GL(dl_tls_max_dtv_idx); ++ ++ size_t n = 0; ++ struct dtv_slotinfo_list *runp = GL(dl_tls_dtv_slotinfo_list); ++ while (runp != NULL) ++ { ++ for (size_t i = 0; i < runp->len; ++i) ++ if (runp->slotinfo[i].map != NULL) ++ ++n; ++ ++ runp = runp->next; ++ } ++ ++ return n; ++} ++ ++ + #ifdef SHARED + void + internal_function +@@ -411,6 +433,7 @@ + + /* Keep track of the maximum generation number. This might + not be the generation counter. */ ++ assert (listp->slotinfo[cnt].gen <= GL(dl_tls_generation)); + maxgen = MAX (maxgen, listp->slotinfo[cnt].gen); + + if (map->l_tls_offset == NO_TLS_OFFSET +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/Makefile glibc-2.12-2-gc4ccff1/elf/Makefile +--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile 2013-04-24 16:06:10.408756448 -0400 ++++ glibc-2.12-2-gc4ccff1/elf/Makefile 2013-04-24 16:07:29.475457962 -0400 +@@ -97,6 +97,8 @@ + tst-audit6.c tst-auditmod6a.c tst-auditmod6b.c \ + tst-auditmod6c.c \ + tst-audit7.c tst-auditmod7a.c tst-auditmod7b.c \ ++ tst-audit9.c \ ++ tst-auditmod9a.c tst-auditmod9b.c \ + order2mod1.c order2mod2.c order2mod3.c order2mod4.c \ + tst-stackguard1.c tst-stackguard1-static.c \ + tst-array5.c tst-array5-static.c tst-array5dep.c \ +@@ -198,7 +200,7 @@ + tst-dlmodcount tst-dlopenrpath tst-deep1 \ + tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \ + unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \ +- tst-audit1 tst-audit2 \ ++ tst-audit1 tst-audit2 tst-audit9 \ + tst-stackguard1 tst-addr1 tst-thrlock \ + tst-unique1 tst-unique2 + # reldep9 +@@ -251,7 +253,8 @@ + unload8mod1 unload8mod1x unload8mod2 unload8mod3 \ + order2mod1 order2mod2 order2mod3 order2mod4 \ + tst-unique1mod1 tst-unique1mod2 \ +- tst-unique2mod1 tst-unique2mod2 ++ tst-unique2mod1 tst-unique2mod2 \ ++ tst-auditmod9a tst-auditmod9b + ifeq (yes,$(have-initfini-array)) + modules-names += tst-array2dep tst-array5dep + endif +@@ -574,6 +577,8 @@ + ifuncmod1.so-no-z-defs = yes + ifuncmod5.so-no-z-defs = yes + ifuncmod6.so-no-z-defs = yes ++tst-auditmod9a.so-no-z-defs = yes ++tst-auditmod9b.so-no-z-defs = yes + + ifeq ($(build-shared),yes) + # Build all the modules even when not actually running test programs. +@@ -1015,6 +1020,10 @@ + $(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so + tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so + ++$(objpfx)tst-audit9: $(libdl) ++$(objpfx)tst-audit9.out: $(objpfx)tst-auditmod9a.so $(objpfx)tst-auditmod9b.so ++tst-audit9-ENV = LD_AUDIT=$(objpfx)tst-auditmod9a.so ++ + $(objpfx)tst-global1: $(libdl) + $(objpfx)tst-global1.out: $(objpfx)testobj6.so $(objpfx)testobj2.so + +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/rtld.c glibc-2.12-2-gc4ccff1/elf/rtld.c +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c 2013-04-24 16:06:10.410756438 -0400 ++++ glibc-2.12-2-gc4ccff1/elf/rtld.c 2013-04-24 16:06:49.096604693 -0400 +@@ -1637,6 +1637,10 @@ + } + } + ++ /* Keep track of the currently loaded modules to count how many ++ non-audit modules which use TLS are loaded. */ ++ size_t count_modids = _dl_count_modids (); ++ + /* Set up debugging before the debugger is notified for the first time. */ + #ifdef ELF_MACHINE_DEBUG_SETUP + /* Some machines (e.g. MIPS) don't use DT_DEBUG in this way. */ +@@ -2281,7 +2285,8 @@ + # define NONTLS_INIT_TP do { } while (0) + #endif + +- if (!was_tls_init_tp_called && GL(dl_tls_max_dtv_idx) > 0) ++ if ((!was_tls_init_tp_called && GL(dl_tls_max_dtv_idx) > 0) ++ || count_modids != _dl_count_modids ()) + ++GL(dl_tls_generation); + + /* Now that we have completed relocation, the initializer data +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/tst-audit9.c glibc-2.12-2-gc4ccff1/elf/tst-audit9.c +--- glibc-2.12-2-gc4ccff1.orig/elf/tst-audit9.c 1969-12-31 19:00:00.000000000 -0500 ++++ glibc-2.12-2-gc4ccff1/elf/tst-audit9.c 2013-04-24 16:06:49.096604693 -0400 +@@ -0,0 +1,8 @@ ++#include <dlfcn.h> ++ ++int main(void) ++{ ++ void *h = dlopen("$ORIGIN/tst-auditmod9b.so", RTLD_LAZY); ++ int (*fp)(void) = dlsym(h, "f"); ++ return fp() - 1; ++} +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9a.c glibc-2.12-2-gc4ccff1/elf/tst-auditmod9a.c +--- glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9a.c 1969-12-31 19:00:00.000000000 -0500 ++++ glibc-2.12-2-gc4ccff1/elf/tst-auditmod9a.c 2013-04-24 16:06:49.097604689 -0400 +@@ -0,0 +1,16 @@ ++#include <stdint.h> ++ ++__thread int var; ++ ++unsigned int ++la_version (unsigned int v) ++{ ++ return v; ++} ++ ++void ++la_activity (uintptr_t *cookie, unsigned int flag) ++{ ++ ++var; ++} ++ +diff -urN glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9b.c glibc-2.12-2-gc4ccff1/elf/tst-auditmod9b.c +--- glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9b.c 1969-12-31 19:00:00.000000000 -0500 ++++ glibc-2.12-2-gc4ccff1/elf/tst-auditmod9b.c 2013-04-24 16:06:49.097604689 -0400 +@@ -0,0 +1,6 @@ ++__thread int a; ++ ++int f(void) ++{ ++ return ++a; ++} +diff -urN glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h 2013-04-24 16:06:10.545755798 -0400 ++++ glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h 2013-04-24 16:06:49.098604686 -0400 +@@ -1031,6 +1031,9 @@ + /* Determine next available module ID. */ + extern size_t _dl_next_tls_modid (void) internal_function attribute_hidden; + ++/* Count the modules with TLS segments. */ ++extern size_t _dl_count_modids (void) internal_function attribute_hidden; ++ + /* Calculate offset of the TLS blocks in the static TLS block. */ + extern void _dl_determine_tlsoffset (void) internal_function attribute_hidden; + diff --git a/src/patches/glibc/glibc-rh989558-2.patch b/src/patches/glibc/glibc-rh989558-2.patch new file mode 100644 index 0000000..ad895c7 --- /dev/null +++ b/src/patches/glibc/glibc-rh989558-2.patch @@ -0,0 +1,107 @@ +2013-05-03 Carlos O'Donell <carlos at redhat.com> + + * intl/dcigettext.c (DCIGETTEXT): Skip translating if _nl_find_msg returns -1. + (_nl_find_msg): Return -1 if recursive call returned -1. If newmem is null + return -1. + * intl/loadmsgcat.c (_nl_load_domain): If _nl_find_msg returns -1 abort + loading the domain. + +diff -Nrup a/intl/dcigettext.c b/intl/dcigettext.c +--- a/intl/dcigettext.c 2010-05-04 07:27:23.000000000 -0400 ++++ b/intl/dcigettext.c 2013-08-01 00:11:54.616363264 -0400 +@@ -640,6 +640,11 @@ DCIGETTEXT (domainname, msgid1, msgid2, + retval = _nl_find_msg (domain->successor[cnt], binding, + msgid1, 1, &retlen); + ++ /* Resource problems are not fatal, instead we return no ++ translation. */ ++ if (__builtin_expect (retval == (char *) -1, 0)) ++ goto no_translation; ++ + if (retval != NULL) + { + domain = domain->successor[cnt]; +@@ -943,6 +948,11 @@ _nl_find_msg (domain_file, domainbinding + nullentry = + _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen); + ++ /* Resource problems are fatal. If we continue onwards we will ++ only attempt to calloc a new conv_tab and fail later. */ ++ if (__builtin_expect (nullentry == (char *) -1, 0)) ++ return (char *) -1; ++ + if (nullentry != NULL) + { + const char *charsetstr; +@@ -1156,7 +1166,7 @@ _nl_find_msg (domain_file, domainbinding + freemem_size); + # ifdef _LIBC + if (newmem != NULL) +- transmem_list = transmem_list->next; ++ transmem_list = newmem; + else + { + struct transmem_list *old = transmem_list; +@@ -1171,6 +1181,16 @@ _nl_find_msg (domain_file, domainbinding + malloc_count = 1; + freemem_size = INITIAL_BLOCK_SIZE; + newmem = (transmem_block_t *) malloc (freemem_size); ++# ifdef _LIBC ++ if (newmem != NULL) ++ { ++ /* Add the block to the list of blocks we have to free ++ at some point. */ ++ newmem->next = transmem_list; ++ transmem_list = newmem; ++ } ++ /* Fall through and return -1. */ ++# endif + } + if (__builtin_expect (newmem == NULL, 0)) + { +@@ -1181,11 +1201,6 @@ _nl_find_msg (domain_file, domainbinding + } + + # ifdef _LIBC +- /* Add the block to the list of blocks we have to free +- at some point. */ +- newmem->next = transmem_list; +- transmem_list = newmem; +- + freemem = (unsigned char *) newmem->data; + freemem_size -= offsetof (struct transmem_list, data); + # else +@@ -1402,7 +1417,7 @@ get_output_charset (domainbinding) + return _NL_CURRENT (LC_CTYPE, CODESET); + # else + # if HAVE_ICONV +- extern const char *locale_charset PARAMS ((void); ++ extern const char *locale_charset PARAMS ((void)); + return locale_charset (); + # endif + # endif +diff -Nrup a/intl/loadmsgcat.c b/intl/loadmsgcat.c +--- a/intl/loadmsgcat.c 2010-05-04 07:27:23.000000000 -0400 ++++ b/intl/loadmsgcat.c 2013-08-01 00:12:48.448237849 -0400 +@@ -1235,7 +1235,7 @@ _nl_load_domain (domain_file, domainbind + default: + /* This is an invalid revision. */ + invalid: +- /* This is an invalid .mo file. */ ++ /* This is an invalid .mo file or we ran out of resources. */ + free (domain->malloced); + #ifdef HAVE_MMAP + if (use_mmap) +@@ -1255,6 +1255,12 @@ _nl_load_domain (domain_file, domainbind + + /* Get the header entry and look for a plural specification. */ + nullentry = _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen); ++ if (__builtin_expect (nullentry == (char *) -1, 0)) ++ { ++ __libc_rwlock_fini (domain->conversions_lock); ++ goto invalid; ++ } ++ + EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals); + + out: diff --git a/src/patches/glibc/glibc-rh989558.patch b/src/patches/glibc/glibc-rh989558.patch new file mode 100644 index 0000000..61ddbe8 --- /dev/null +++ b/src/patches/glibc/glibc-rh989558.patch @@ -0,0 +1,181 @@ +# +# Red Hat BZ: +# https://bugzilla.redhat.com/show_bug.cgi?id=816647 +# +# ChangeLog +# +#2013-04-30 Patsy Franklin pfrankli@redhat.com +# +# * iconv/gconv_cache.c (find_module): Demangle init_fct before +# checking for NULL. Mangle __btowc_fct if init_fct is non-NULL. +# * iconv/gconv_db.c (free_derivation): Check that __shlib_handle +# is non-NULL before demangling the end_fct. Check for NULL +# end_fct after demangling. +# (__gconv_release_step): Demangle the end_fct before checking +# it for NULL. Remove assert on __shlibc_handle != NULL. +# (gen_steps): Don't check btowc_fct for NULL before mangling. +# Demangle init_fct before checking for NULL. +# (increment_counter): Likewise +# * gconv_dl.c (__gconv_find_shlib): Don't check init_fct or +# end_fct for NULL before mangling. +# * wcsmbs/btowc.c (__btowc): Demangle btowc_fct before checking +# for NULL. +# +diff -Nrup a/iconv/gconv_cache.c b/iconv/gconv_cache.c +--- a/iconv/gconv_cache.c 2012-12-24 22:02:13.000000000 -0500 ++++ b/iconv/gconv_cache.c 2013-04-30 11:34:20.112389987 -0400 +@@ -207,17 +207,16 @@ find_module (const char *directory, cons + result->__data = NULL; + + /* Call the init function. */ +- if (result->__init_fct != NULL) +- { +- __gconv_init_fct init_fct = result->__init_fct; ++ __gconv_init_fct init_fct = result->__init_fct; + #ifdef PTR_DEMANGLE +- PTR_DEMANGLE (init_fct); ++ PTR_DEMANGLE (init_fct); + #endif ++ if (init_fct != NULL) ++ { + status = DL_CALL_FCT (init_fct, (result)); + + #ifdef PTR_MANGLE +- if (result->__btowc_fct != NULL) +- PTR_MANGLE (result->__btowc_fct); ++ PTR_MANGLE (result->__btowc_fct); + #endif + } + } +diff -Nrup a/iconv/gconv_db.c b/iconv/gconv_db.c +--- a/iconv/gconv_db.c 2012-12-24 22:02:13.000000000 -0500 ++++ b/iconv/gconv_db.c 2013-04-30 11:32:42.700592914 -0400 +@@ -179,16 +179,15 @@ free_derivation (void *p) + size_t cnt; + + for (cnt = 0; cnt < deriv->nsteps; ++cnt) +- if (deriv->steps[cnt].__counter > 0 +- && deriv->steps[cnt].__end_fct != NULL) ++ if ((deriv->steps[cnt].__counter > 0) ++ && (deriv->steps[cnt].__shlib_handle != NULL)) + { +- assert (deriv->steps[cnt].__shlib_handle != NULL); +- + __gconv_end_fct end_fct = deriv->steps[cnt].__end_fct; + #ifdef PTR_DEMANGLE + PTR_DEMANGLE (end_fct); + #endif +- DL_CALL_FCT (end_fct, (&deriv->steps[cnt])); ++ if (end_fct != NULL) ++ DL_CALL_FCT (end_fct, (&deriv->steps[cnt])); + } + + /* Free the name strings. */ +@@ -212,16 +211,12 @@ __gconv_release_step (struct __gconv_ste + if (step->__shlib_handle != NULL && --step->__counter == 0) + { + /* Call the destructor. */ +- if (step->__end_fct != NULL) +- { +- assert (step->__shlib_handle != NULL); +- +- __gconv_end_fct end_fct = step->__end_fct; ++ __gconv_end_fct end_fct = step->__end_fct; + #ifdef PTR_DEMANGLE +- PTR_DEMANGLE (end_fct); ++ PTR_DEMANGLE (end_fct); + #endif +- DL_CALL_FCT (end_fct, (step)); +- } ++ if (end_fct != NULL) ++ DL_CALL_FCT (end_fct, (step)); + + #ifndef STATIC_GCONV + /* Release the loaded module. */ +@@ -293,13 +288,11 @@ gen_steps (struct derivation_step *best, + + /* Call the init function. */ + __gconv_init_fct init_fct = result[step_cnt].__init_fct; +- if (init_fct != NULL) +- { +- assert (result[step_cnt].__shlib_handle != NULL); +- + # ifdef PTR_DEMANGLE +- PTR_DEMANGLE (init_fct); ++ PTR_DEMANGLE (init_fct); + # endif ++ if (init_fct != NULL) ++ { + status = DL_CALL_FCT (init_fct, (&result[step_cnt])); + + if (__builtin_expect (status, __GCONV_OK) != __GCONV_OK) +@@ -312,8 +305,7 @@ gen_steps (struct derivation_step *best, + } + + # ifdef PTR_MANGLE +- if (result[step_cnt].__btowc_fct != NULL) +- PTR_MANGLE (result[step_cnt].__btowc_fct); ++ PTR_MANGLE (result[step_cnt].__btowc_fct); + # endif + } + } +@@ -393,16 +385,15 @@ increment_counter (struct __gconv_step * + + /* Call the init function. */ + __gconv_init_fct init_fct = step->__init_fct; +- if (init_fct != NULL) +- { + #ifdef PTR_DEMANGLE +- PTR_DEMANGLE (init_fct); ++ PTR_DEMANGLE (init_fct); + #endif ++ if (init_fct != NULL) ++ { + DL_CALL_FCT (init_fct, (step)); + + #ifdef PTR_MANGLE +- if (step->__btowc_fct != NULL) +- PTR_MANGLE (step->__btowc_fct); ++ PTR_MANGLE (step->__btowc_fct); + #endif + } + } +diff -Nrup a/iconv/gconv_dl.c b/iconv/gconv_dl.c +--- a/iconv/gconv_dl.c 2012-12-24 22:02:13.000000000 -0500 ++++ b/iconv/gconv_dl.c 2013-04-30 11:32:42.701592922 -0400 +@@ -132,10 +132,8 @@ __gconv_find_shlib (const char *name) + + #ifdef PTR_MANGLE + PTR_MANGLE (found->fct); +- if (found->init_fct != NULL) +- PTR_MANGLE (found->init_fct); +- if (found->end_fct != NULL) +- PTR_MANGLE (found->end_fct); ++ PTR_MANGLE (found->init_fct); ++ PTR_MANGLE (found->end_fct); + #endif + + /* We have succeeded in loading the shared object. */ +diff -Nrup a/wcsmbs/btowc.c b/wcsmbs/btowc.c +--- a/wcsmbs/btowc.c 2012-12-24 22:02:13.000000000 -0500 ++++ b/wcsmbs/btowc.c 2013-04-30 11:32:42.701592922 -0400 +@@ -47,15 +47,15 @@ __btowc (c) + /* Get the conversion functions. */ + fcts = get_gconv_fcts (_NL_CURRENT_DATA (LC_CTYPE)); + __gconv_btowc_fct btowc_fct = fcts->towc->__btowc_fct; ++#ifdef PTR_DEMANGLE ++ if (fcts->towc->__shlib_handle != NULL) ++ PTR_DEMANGLE (btowc_fct); ++#endif + + if (__builtin_expect (fcts->towc_nsteps == 1, 1) + && __builtin_expect (btowc_fct != NULL, 1)) + { + /* Use the shortcut function. */ +-#ifdef PTR_DEMANGLE +- if (fcts->towc->__shlib_handle != NULL) +- PTR_DEMANGLE (btowc_fct); +-#endif + return DL_CALL_FCT (btowc_fct, (fcts->towc, (unsigned char) c)); + } + else diff --git a/src/patches/imq_kernel3.10.23.patch b/src/patches/imq_kernel3.10.23.patch new file mode 100644 index 0000000..9ee85e7 --- /dev/null +++ b/src/patches/imq_kernel3.10.23.patch @@ -0,0 +1,1568 @@ +diff -uNr linux-3.9.1/drivers/net/imq.c linux-3.9.1-imqmq/drivers/net/imq.c +--- linux-3.9.1/drivers/net/imq.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.9.1-imqmq/drivers/net/imq.c 2013-05-08 17:30:41.715552053 +0300 +@@ -0,0 +1,861 @@ ++/* ++ * Pseudo-driver for the intermediate queue device. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version ++ * 2 of the License, or (at your option) any later version. ++ * ++ * Authors: Patrick McHardy, kaber@trash.net ++ * ++ * The first version was written by Martin Devera, devik@cdi.cz ++ * ++ * Credits: Jan Rafaj imq2t@cedric.vabo.cz ++ * - Update patch to 2.4.21 ++ * Sebastian Strollo sstrollo@nortelnetworks.com ++ * - Fix "Dead-loop on netdevice imq"-issue ++ * Marcel Sebek sebek64@post.cz ++ * - Update to 2.6.2-rc1 ++ * ++ * After some time of inactivity there is a group taking care ++ * of IMQ again: http://www.linuximq.net ++ * ++ * ++ * 2004/06/30 - New version of IMQ patch to kernels <=2.6.7 ++ * including the following changes: ++ * ++ * - Correction of ipv6 support "+"s issue (Hasso Tepper) ++ * - Correction of imq_init_devs() issue that resulted in ++ * kernel OOPS unloading IMQ as module (Norbert Buchmuller) ++ * - Addition of functionality to choose number of IMQ devices ++ * during kernel config (Andre Correa) ++ * - Addition of functionality to choose how IMQ hooks on ++ * PRE and POSTROUTING (after or before NAT) (Andre Correa) ++ * - Cosmetic corrections (Norbert Buchmuller) (Andre Correa) ++ * ++ * ++ * 2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were ++ * released with almost no problems. 2.6.14-x was released ++ * with some important changes: nfcache was removed; After ++ * some weeks of trouble we figured out that some IMQ fields ++ * in skb were missing in skbuff.c - skb_clone and copy_skb_header. ++ * These functions are correctly patched by this new patch version. ++ * ++ * Thanks for all who helped to figure out all the problems with ++ * 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX, ++ * Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully ++ * I didn't forget anybody). I apologize again for my lack of time. ++ * ++ * ++ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead ++ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid ++ * recursive locking. New initialization routines to fix 'rmmod' not ++ * working anymore. Used code from ifb.c. (Jussi Kivilinna) ++ * ++ * 2008/08/06 - 2.6.26 - (JK) ++ * - Replaced tasklet with 'netif_schedule()'. ++ * - Cleaned up and added comments for imq_nf_queue(). ++ * ++ * 2009/04/12 ++ * - Add skb_save_cb/skb_restore_cb helper functions for backuping ++ * control buffer. This is needed because qdisc-layer on kernels ++ * 2.6.27 and newer overwrite control buffer. (Jussi Kivilinna) ++ * - Add better locking for IMQ device. Hopefully this will solve ++ * SMP issues. (Jussi Kivilinna) ++ * - Port to 2.6.27 ++ * - Port to 2.6.28 ++ * - Port to 2.6.29 + fix rmmod not working ++ * ++ * 2009/04/20 - (Jussi Kivilinna) ++ * - Use netdevice feature flags to avoid extra packet handling ++ * by core networking layer and possibly increase performance. ++ * ++ * 2009/09/26 - (Jussi Kivilinna) ++ * - Add imq_nf_reinject_lockless to fix deadlock with ++ * imq_nf_queue/imq_nf_reinject. ++ * ++ * 2009/12/08 - (Jussi Kivilinna) ++ * - Port to 2.6.32 ++ * - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit() ++ * - Also add better error checking for skb->nf_queue_entry usage ++ * ++ * 2010/02/25 - (Jussi Kivilinna) ++ * - Port to 2.6.33 ++ * ++ * 2010/08/15 - (Jussi Kivilinna) ++ * - Port to 2.6.35 ++ * - Simplify hook registration by using nf_register_hooks. ++ * - nf_reinject doesn't need spinlock around it, therefore remove ++ * imq_nf_reinject function. Other nf_reinject users protect ++ * their own data with spinlock. With IMQ however all data is ++ * needed is stored per skbuff, so no locking is needed. ++ * - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of ++ * NF_QUEUE, this allows working coexistance of IMQ and other ++ * NF_QUEUE users. ++ * - Make IMQ multi-queue. Number of IMQ device queues can be ++ * increased with 'numqueues' module parameters. Default number ++ * of queues is 1, in other words by default IMQ works as ++ * single-queue device. Multi-queue selection is based on ++ * IFB multi-queue patch by Changli Gao xiaosuo@gmail.com. ++ * ++ * 2011/03/18 - (Jussi Kivilinna) ++ * - Port to 2.6.38 ++ * ++ * 2011/07/12 - (syoder89@gmail.com) ++ * - Crash fix that happens when the receiving interface has more ++ * than one queue (add missing skb_set_queue_mapping in ++ * imq_select_queue). ++ * ++ * 2011/07/26 - (Jussi Kivilinna) ++ * - Add queue mapping checks for packets exiting IMQ. ++ * - Port to 3.0 ++ * ++ * 2011/08/16 - (Jussi Kivilinna) ++ * - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2 ++ * ++ * 2011/11/03 - Germano Michel germanomichel@gmail.com ++ * - Fix IMQ for net namespaces ++ * ++ * 2011/11/04 - Jussi Kivilinna jussi.kivilinna@mbnet.fi ++ * - Port to 3.1 ++ * - Clean-up, move 'get imq device pointer by imqX name' to ++ * separate function from imq_nf_queue(). ++ * ++ * 2012/01/05 - Jussi Kivilinna jussi.kivilinna@mbnet.fi ++ * - Port to 3.2 ++ * ++ * 2012/03/19 - Jussi Kivilinna jussi.kivilinna@mbnet.fi ++ * - Port to 3.3 ++ * ++ * 2012/12/12 - Jussi Kivilinna jussi.kivilinna@mbnet.fi ++ * - Port to 3.7 ++ * - Fix checkpatch.pl warnings ++ * ++ * Also, many thanks to pablo Sebastian Greco for making the initial ++ * patch and to those who helped the testing. ++ * ++ * More info at: http://www.linuximq.net/ (Andre Correa) ++ */ ++ ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/moduleparam.h> ++#include <linux/list.h> ++#include <linux/skbuff.h> ++#include <linux/netdevice.h> ++#include <linux/etherdevice.h> ++#include <linux/rtnetlink.h> ++#include <linux/if_arp.h> ++#include <linux/netfilter.h> ++#include <linux/netfilter_ipv4.h> ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ #include <linux/netfilter_ipv6.h> ++#endif ++#include <linux/imq.h> ++#include <net/pkt_sched.h> ++#include <net/netfilter/nf_queue.h> ++#include <net/sock.h> ++#include <linux/ip.h> ++#include <linux/ipv6.h> ++#include <linux/if_vlan.h> ++#include <linux/if_pppox.h> ++#include <net/ip.h> ++#include <net/ipv6.h> ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned int queue_num); ++ ++static nf_hookfn imq_nf_hook; ++ ++static struct nf_hook_ops imq_ops[] = { ++ { ++ /* imq_ingress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP_PRI_LAST, ++#else ++ .priority = NF_IP_PRI_NAT_SRC - 1, ++#endif ++ }, ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ { ++ /* imq_ingress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP6_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP6_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP6_PRI_LAST, ++#else ++ .priority = NF_IP6_PRI_NAT_SRC - 1, ++#endif ++ }, ++#endif ++}; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++static int numdevs = CONFIG_IMQ_NUM_DEVS; ++#else ++static int numdevs = IMQ_MAX_DEVS; ++#endif ++ ++static struct net_device *imq_devs_cache[IMQ_MAX_DEVS]; ++ ++#define IMQ_MAX_QUEUES 32 ++static int numqueues = 1; ++static u32 imq_hashrnd; ++ ++static inline __be16 pppoe_proto(const struct sk_buff *skb) ++{ ++ return *((__be16 *)(skb_mac_header(skb) + ETH_HLEN + ++ sizeof(struct pppoe_hdr))); ++} ++ ++static u16 imq_hash(struct net_device *dev, struct sk_buff *skb) ++{ ++ unsigned int pull_len; ++ u16 protocol = skb->protocol; ++ u32 addr1, addr2; ++ u32 hash, ihl = 0; ++ union { ++ u16 in16[2]; ++ u32 in32; ++ } ports; ++ u8 ip_proto; ++ ++ pull_len = 0; ++ ++recheck: ++ switch (protocol) { ++ case htons(ETH_P_8021Q): { ++ if (unlikely(skb_pull(skb, VLAN_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += VLAN_HLEN; ++ skb->network_header += VLAN_HLEN; ++ ++ protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto; ++ goto recheck; ++ } ++ ++ case htons(ETH_P_PPP_SES): { ++ if (unlikely(skb_pull(skb, PPPOE_SES_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += PPPOE_SES_HLEN; ++ skb->network_header += PPPOE_SES_HLEN; ++ ++ protocol = pppoe_proto(skb); ++ goto recheck; ++ } ++ ++ case htons(ETH_P_IP): { ++ const struct iphdr *iph = ip_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct iphdr)))) ++ goto other; ++ ++ addr1 = iph->daddr; ++ addr2 = iph->saddr; ++ ++ ip_proto = !(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ? ++ iph->protocol : 0; ++ ihl = ip_hdrlen(skb); ++ ++ break; ++ } ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ case htons(ETH_P_IPV6): { ++ const struct ipv6hdr *iph = ipv6_hdr(skb); ++ __be16 fo = 0; ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr)))) ++ goto other; ++ ++ addr1 = iph->daddr.s6_addr32[3]; ++ addr2 = iph->saddr.s6_addr32[3]; ++ ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto, ++ &fo); ++ if (unlikely(ihl < 0)) ++ goto other; ++ ++ break; ++ } ++#endif ++ default: ++other: ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ return (u16)(ntohs(protocol) % dev->real_num_tx_queues); ++ } ++ ++ if (addr1 > addr2) ++ swap(addr1, addr2); ++ ++ switch (ip_proto) { ++ case IPPROTO_TCP: ++ case IPPROTO_UDP: ++ case IPPROTO_DCCP: ++ case IPPROTO_ESP: ++ case IPPROTO_AH: ++ case IPPROTO_SCTP: ++ case IPPROTO_UDPLITE: { ++ if (likely(skb_copy_bits(skb, ihl, &ports.in32, 4) >= 0)) { ++ if (ports.in16[0] > ports.in16[1]) ++ swap(ports.in16[0], ports.in16[1]); ++ break; ++ } ++ /* fall-through */ ++ } ++ default: ++ ports.in32 = 0; ++ break; ++ } ++ ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ hash = jhash_3words(addr1, addr2, ports.in32, imq_hashrnd ^ ip_proto); ++ ++ return (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++} ++ ++static inline bool sk_tx_queue_recorded(struct sock *sk) ++{ ++ return (sk_tx_queue_get(sk) >= 0); ++} ++ ++static struct netdev_queue *imq_select_queue(struct net_device *dev, ++ struct sk_buff *skb) ++{ ++ u16 queue_index = 0; ++ u32 hash; ++ ++ if (likely(dev->real_num_tx_queues == 1)) ++ goto out; ++ ++ /* IMQ can be receiving ingress or engress packets. */ ++ ++ /* Check first for if rx_queue is set */ ++ if (skb_rx_queue_recorded(skb)) { ++ queue_index = skb_get_rx_queue(skb); ++ goto out; ++ } ++ ++ /* Check if socket has tx_queue set */ ++ if (sk_tx_queue_recorded(skb->sk)) { ++ queue_index = sk_tx_queue_get(skb->sk); ++ goto out; ++ } ++ ++ /* Try use socket hash */ ++ if (skb->sk && skb->sk->sk_hash) { ++ hash = skb->sk->sk_hash; ++ queue_index = ++ (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++ goto out; ++ } ++ ++ /* Generate hash from packet data */ ++ queue_index = imq_hash(dev, skb); ++ ++out: ++ if (unlikely(queue_index >= dev->real_num_tx_queues)) ++ queue_index = (u16)((u32)queue_index % dev->real_num_tx_queues); ++ ++ skb_set_queue_mapping(skb, queue_index); ++ return netdev_get_tx_queue(dev, queue_index); ++} ++ ++static struct net_device_stats *imq_get_stats(struct net_device *dev) ++{ ++ return &dev->stats; ++} ++ ++/* called for packets kfree'd in qdiscs at places other than enqueue */ ++static void imq_skb_destructor(struct sk_buff *skb) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ ++ if (entry) { ++ nf_queue_entry_release_refs(entry); ++ kfree(entry); ++ } ++ ++ skb_restore_cb(skb); /* kfree backup */ ++} ++ ++static void imq_done_check_queue_mapping(struct sk_buff *skb, ++ struct net_device *dev) ++{ ++ unsigned int queue_index; ++ ++ /* Don't let queue_mapping be left too large after exiting IMQ */ ++ if (likely(skb->dev != dev && skb->dev != NULL)) { ++ queue_index = skb_get_queue_mapping(skb); ++ if (unlikely(queue_index >= skb->dev->real_num_tx_queues)) { ++ queue_index = (u16)((u32)queue_index % ++ skb->dev->real_num_tx_queues); ++ skb_set_queue_mapping(skb, queue_index); ++ } ++ } else { ++ /* skb->dev was IMQ device itself or NULL, be on safe side and ++ * just clear queue mapping. ++ */ ++ skb_set_queue_mapping(skb, 0); ++ } ++} ++ ++static netdev_tx_t imq_dev_xmit(struct sk_buff *skb, struct net_device *dev) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ dev->trans_start = jiffies; ++ ++ dev->stats.tx_bytes += skb->len; ++ dev->stats.tx_packets++; ++ ++ if (unlikely(entry == NULL)) { ++ /* We don't know what is going on here.. packet is queued for ++ * imq device, but (probably) not by us. ++ * ++ * If this packet was not send here by imq_nf_queue(), then ++ * skb_save_cb() was not used and skb_free() should not show: ++ * WARNING: IMQ: kfree_skb: skb->cb_next:.. ++ * and/or ++ * WARNING: IMQ: kfree_skb: skb->nf_queue_entry... ++ * ++ * However if this message is shown, then IMQ is somehow broken ++ * and you should report this to linuximq.net. ++ */ ++ ++ /* imq_dev_xmit is black hole that eats all packets, report that ++ * we eat this packet happily and increase dropped counters. ++ */ ++ ++ dev->stats.tx_dropped++; ++ dev_kfree_skb(skb); ++ ++ return NETDEV_TX_OK; ++ } ++ ++ skb_restore_cb(skb); /* restore skb->cb */ ++ ++ skb->imq_flags = 0; ++ skb->destructor = NULL; ++ ++ imq_done_check_queue_mapping(skb, dev); ++ ++ nf_reinject(entry, NF_ACCEPT); ++ ++ return NETDEV_TX_OK; ++} ++ ++static struct net_device *get_imq_device_by_index(int index) ++{ ++ struct net_device *dev = NULL; ++ struct net *net; ++ char buf[8]; ++ ++ /* get device by name and cache result */ ++ snprintf(buf, sizeof(buf), "imq%d", index); ++ ++ /* Search device from all namespaces. */ ++ for_each_net(net) { ++ dev = dev_get_by_name(net, buf); ++ if (dev) ++ break; ++ } ++ ++ if (WARN_ON_ONCE(dev == NULL)) { ++ /* IMQ device not found. Exotic config? */ ++ return ERR_PTR(-ENODEV); ++ } ++ ++ imq_devs_cache[index] = dev; ++ dev_put(dev); ++ ++ return dev; ++} ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned int queue_num) ++{ ++ struct net_device *dev; ++ struct sk_buff *skb_orig, *skb, *skb_shared; ++ struct Qdisc *q; ++ struct netdev_queue *txq; ++ spinlock_t *root_lock; ++ int users, index; ++ int retval = -EINVAL; ++ unsigned int orig_queue_index; ++ ++ index = entry->skb->imq_flags & IMQ_F_IFMASK; ++ if (unlikely(index > numdevs - 1)) { ++ if (net_ratelimit()) ++ pr_warn("IMQ: invalid device specified, highest is %u\n", ++ numdevs - 1); ++ retval = -EINVAL; ++ goto out; ++ } ++ ++ /* check for imq device by index from cache */ ++ dev = imq_devs_cache[index]; ++ if (unlikely(!dev)) { ++ dev = get_imq_device_by_index(index); ++ if (IS_ERR(dev)) { ++ retval = PTR_ERR(dev); ++ goto out; ++ } ++ } ++ ++ if (unlikely(!(dev->flags & IFF_UP))) { ++ entry->skb->imq_flags = 0; ++ nf_reinject(entry, NF_ACCEPT); ++ retval = 0; ++ goto out; ++ } ++ dev->last_rx = jiffies; ++ ++ skb = entry->skb; ++ skb_orig = NULL; ++ ++ /* skb has owner? => make clone */ ++ if (unlikely(skb->destructor)) { ++ skb_orig = skb; ++ skb = skb_clone(skb, GFP_ATOMIC); ++ if (unlikely(!skb)) { ++ retval = -ENOMEM; ++ goto out; ++ } ++ entry->skb = skb; ++ } ++ ++ skb->nf_queue_entry = entry; ++ ++ dev->stats.rx_bytes += skb->len; ++ dev->stats.rx_packets++; ++ ++ if (!skb->dev) { ++ /* skb->dev == NULL causes problems, try the find cause. */ ++ if (net_ratelimit()) { ++ dev_warn(&dev->dev, ++ "received packet with skb->dev == NULL\n"); ++ dump_stack(); ++ } ++ ++ skb->dev = dev; ++ } ++ ++ /* Disables softirqs for lock below */ ++ rcu_read_lock_bh(); ++ ++ /* Multi-queue selection */ ++ orig_queue_index = skb_get_queue_mapping(skb); ++ txq = imq_select_queue(dev, skb); ++ ++ q = rcu_dereference(txq->qdisc); ++ if (unlikely(!q->enqueue)) ++ goto packet_not_eaten_by_imq_dev; ++ ++ root_lock = qdisc_lock(q); ++ spin_lock(root_lock); ++ ++ users = atomic_read(&skb->users); ++ ++ skb_shared = skb_get(skb); /* increase reference count by one */ ++ ++ /* backup skb->cb, as qdisc layer will overwrite it */ ++ skb_save_cb(skb_shared); ++ qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */ ++ ++ if (likely(atomic_read(&skb_shared->users) == users + 1)) { ++ kfree_skb(skb_shared); /* decrease reference count by one */ ++ ++ skb->destructor = &imq_skb_destructor; ++ ++ /* cloned? */ ++ if (unlikely(skb_orig)) ++ kfree_skb(skb_orig); /* free original */ ++ ++ spin_unlock(root_lock); ++ rcu_read_unlock_bh(); ++ ++ /* schedule qdisc dequeue */ ++ __netif_schedule(q); ++ ++ retval = 0; ++ goto out; ++ } else { ++ skb_restore_cb(skb_shared); /* restore skb->cb */ ++ skb->nf_queue_entry = NULL; ++ /* ++ * qdisc dropped packet and decreased skb reference count of ++ * skb, so we don't really want to and try refree as that would ++ * actually destroy the skb. ++ */ ++ spin_unlock(root_lock); ++ goto packet_not_eaten_by_imq_dev; ++ } ++ ++packet_not_eaten_by_imq_dev: ++ skb_set_queue_mapping(skb, orig_queue_index); ++ rcu_read_unlock_bh(); ++ ++ /* cloned? restore original */ ++ if (unlikely(skb_orig)) { ++ kfree_skb(skb); ++ entry->skb = skb_orig; ++ } ++ retval = -1; ++out: ++ return retval; ++} ++ ++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb, ++ const struct net_device *indev, ++ const struct net_device *outdev, ++ int (*okfn)(struct sk_buff *)) ++{ ++ return (pskb->imq_flags & IMQ_F_ENQUEUE) ? NF_IMQ_QUEUE : NF_ACCEPT; ++} ++ ++static int imq_close(struct net_device *dev) ++{ ++ netif_stop_queue(dev); ++ return 0; ++} ++ ++static int imq_open(struct net_device *dev) ++{ ++ netif_start_queue(dev); ++ return 0; ++} ++ ++static const struct net_device_ops imq_netdev_ops = { ++ .ndo_open = imq_open, ++ .ndo_stop = imq_close, ++ .ndo_start_xmit = imq_dev_xmit, ++ .ndo_get_stats = imq_get_stats, ++}; ++ ++static void imq_setup(struct net_device *dev) ++{ ++ dev->netdev_ops = &imq_netdev_ops; ++ dev->type = ARPHRD_VOID; ++ dev->mtu = 16000; /* too small? */ ++ dev->tx_queue_len = 11000; /* too big? */ ++ dev->flags = IFF_NOARP; ++ dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | ++ NETIF_F_GSO | NETIF_F_HW_CSUM | ++ NETIF_F_HIGHDMA; ++ dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | ++ IFF_TX_SKB_SHARING); ++} ++ ++static int imq_validate(struct nlattr *tb[], struct nlattr *data[]) ++{ ++ int ret = 0; ++ ++ if (tb[IFLA_ADDRESS]) { ++ if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) { ++ ret = -EINVAL; ++ goto end; ++ } ++ if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) { ++ ret = -EADDRNOTAVAIL; ++ goto end; ++ } ++ } ++ return 0; ++end: ++ pr_warn("IMQ: imq_validate failed (%d)\n", ret); ++ return ret; ++} ++ ++static struct rtnl_link_ops imq_link_ops __read_mostly = { ++ .kind = "imq", ++ .priv_size = 0, ++ .setup = imq_setup, ++ .validate = imq_validate, ++}; ++ ++static const struct nf_queue_handler imq_nfqh = { ++ .outfn = imq_nf_queue, ++}; ++ ++static int __init imq_init_hooks(void) ++{ ++ int ret; ++ ++ nf_register_queue_imq_handler(&imq_nfqh); ++ ++ ret = nf_register_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ if (ret < 0) ++ nf_unregister_queue_imq_handler(); ++ ++ return ret; ++} ++ ++static int __init imq_init_one(int index) ++{ ++ struct net_device *dev; ++ int ret; ++ ++ dev = alloc_netdev_mq(0, "imq%d", imq_setup, numqueues); ++ if (!dev) ++ return -ENOMEM; ++ ++ ret = dev_alloc_name(dev, dev->name); ++ if (ret < 0) ++ goto fail; ++ ++ dev->rtnl_link_ops = &imq_link_ops; ++ ret = register_netdevice(dev); ++ if (ret < 0) ++ goto fail; ++ ++ return 0; ++fail: ++ free_netdev(dev); ++ return ret; ++} ++ ++static int __init imq_init_devs(void) ++{ ++ int err, i; ++ ++ if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) { ++ pr_err("IMQ: numdevs has to be betweed 1 and %u\n", ++ IMQ_MAX_DEVS); ++ return -EINVAL; ++ } ++ ++ if (numqueues < 1 || numqueues > IMQ_MAX_QUEUES) { ++ pr_err("IMQ: numqueues has to be betweed 1 and %u\n", ++ IMQ_MAX_QUEUES); ++ return -EINVAL; ++ } ++ ++ get_random_bytes(&imq_hashrnd, sizeof(imq_hashrnd)); ++ ++ rtnl_lock(); ++ err = __rtnl_link_register(&imq_link_ops); ++ ++ for (i = 0; i < numdevs && !err; i++) ++ err = imq_init_one(i); ++ ++ if (err) { ++ __rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ } ++ rtnl_unlock(); ++ ++ return err; ++} ++ ++static int __init imq_init_module(void) ++{ ++ int err; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK); ++#endif ++ ++ err = imq_init_devs(); ++ if (err) { ++ pr_err("IMQ: Error trying imq_init_devs(net)\n"); ++ return err; ++ } ++ ++ err = imq_init_hooks(); ++ if (err) { ++ pr_err(KERN_ERR "IMQ: Error trying imq_init_hooks()\n"); ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ return err; ++ } ++ ++ pr_info("IMQ driver loaded successfully. (numdevs = %d, numqueues = %d)\n", ++ numdevs, numqueues); ++ ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ pr_info("\tHooking IMQ before NAT on PREROUTING.\n"); ++#else ++ pr_info("\tHooking IMQ after NAT on PREROUTING.\n"); ++#endif ++#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ pr_info("\tHooking IMQ before NAT on POSTROUTING.\n"); ++#else ++ pr_info("\tHooking IMQ after NAT on POSTROUTING.\n"); ++#endif ++ ++ return 0; ++} ++ ++static void __exit imq_unhook(void) ++{ ++ nf_unregister_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ nf_unregister_queue_imq_handler(); ++} ++ ++static void __exit imq_cleanup_devs(void) ++{ ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++} ++ ++static void __exit imq_exit_module(void) ++{ ++ imq_unhook(); ++ imq_cleanup_devs(); ++ pr_info("IMQ driver unloaded successfully.\n"); ++} ++ ++module_init(imq_init_module); ++module_exit(imq_exit_module); ++ ++module_param(numdevs, int, 0); ++module_param(numqueues, int, 0); ++MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will be created)"); ++MODULE_PARM_DESC(numqueues, "number of queues per IMQ device"); ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS_RTNL_LINK("imq"); ++ +diff -uNr linux-3.9.1/drivers/net/Kconfig linux-3.9.1-imqmq/drivers/net/Kconfig +--- linux-3.9.1/drivers/net/Kconfig 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/drivers/net/Kconfig 2013-05-08 17:30:29.011952562 +0300 +@@ -206,6 +206,125 @@ + depends on RIONET + default "128" + ++config IMQ ++ tristate "IMQ (intermediate queueing device) support" ++ depends on NETDEVICES && NETFILTER ++ ---help--- ++ The IMQ device(s) is used as placeholder for QoS queueing ++ disciplines. Every packet entering/leaving the IP stack can be ++ directed through the IMQ device where it's enqueued/dequeued to the ++ attached qdisc. This allows you to treat network devices as classes ++ and distribute bandwidth among them. Iptables is used to specify ++ through which IMQ device, if any, packets travel. ++ ++ More information at: http://www.linuximq.net/ ++ ++ To compile this driver as a module, choose M here: the module ++ will be called imq. If unsure, say N. ++ ++choice ++ prompt "IMQ behavior (PRE/POSTROUTING)" ++ depends on IMQ ++ default IMQ_BEHAVIOR_AB ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ IMQ can work in any of the following ways: ++ ++ PREROUTING | POSTROUTING ++ -----------------|------------------- ++ #1 After NAT | After NAT ++ #2 After NAT | Before NAT ++ #3 Before NAT | After NAT ++ #4 Before NAT | Before NAT ++ ++ The default behavior is to hook before NAT on PREROUTING ++ and after NAT on POSTROUTING (#3). ++ ++ This settings are specially usefull when trying to use IMQ ++ to shape NATed clients. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AA ++ bool "IMQ AA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AB ++ bool "IMQ AB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BA ++ bool "IMQ BA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BB ++ bool "IMQ BB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++endchoice ++ ++config IMQ_NUM_DEVS ++ int "Number of IMQ devices" ++ range 2 16 ++ depends on IMQ ++ default "16" ++ help ++ This setting defines how many IMQ devices will be created. ++ ++ The default value is 16. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ + config TUN + tristate "Universal TUN/TAP device driver support" + select CRC32 +diff -uNr linux-3.9.1/drivers/net/Makefile linux-3.9.1-imqmq/drivers/net/Makefile +--- linux-3.9.1/drivers/net/Makefile 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/drivers/net/Makefile 2013-05-08 17:30:29.011952562 +0300 +@@ -9,6 +9,7 @@ + obj-$(CONFIG_DUMMY) += dummy.o + obj-$(CONFIG_EQUALIZER) += eql.o + obj-$(CONFIG_IFB) += ifb.o ++obj-$(CONFIG_IMQ) += imq.o + obj-$(CONFIG_MACVLAN) += macvlan.o + obj-$(CONFIG_MACVTAP) += macvtap.o + obj-$(CONFIG_MII) += mii.o +diff -uNr linux-3.9.1/include/linux/imq.h linux-3.9.1-imqmq/include/linux/imq.h +--- linux-3.9.1/include/linux/imq.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.9.1-imqmq/include/linux/imq.h 2013-05-08 17:30:29.011952562 +0300 +@@ -0,0 +1,13 @@ ++#ifndef _IMQ_H ++#define _IMQ_H ++ ++/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */ ++#define IMQ_F_BITS 5 ++ ++#define IMQ_F_IFMASK 0x0f ++#define IMQ_F_ENQUEUE 0x10 ++ ++#define IMQ_MAX_DEVS (IMQ_F_IFMASK + 1) ++ ++#endif /* _IMQ_H */ ++ +diff -uNr linux-3.9.1/include/linux/netfilter/xt_IMQ.h linux-3.9.1-imqmq/include/linux/netfilter/xt_IMQ.h +--- linux-3.9.1/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.9.1-imqmq/include/linux/netfilter/xt_IMQ.h 2013-05-08 17:30:29.011952562 +0300 +@@ -0,0 +1,9 @@ ++#ifndef _XT_IMQ_H ++#define _XT_IMQ_H ++ ++struct xt_imq_info { ++ unsigned int todev; /* target imq device */ ++}; ++ ++#endif /* _XT_IMQ_H */ ++ +diff -uNr linux-3.9.1/include/linux/netfilter_ipv4/ipt_IMQ.h linux-3.9.1-imqmq/include/linux/netfilter_ipv4/ipt_IMQ.h +--- linux-3.9.1/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.9.1-imqmq/include/linux/netfilter_ipv4/ipt_IMQ.h 2013-05-08 17:30:29.011952562 +0300 +@@ -0,0 +1,10 @@ ++#ifndef _IPT_IMQ_H ++#define _IPT_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include <linux/netfilter/xt_IMQ.h> ++ ++#define ipt_imq_info xt_imq_info ++ ++#endif /* _IPT_IMQ_H */ ++ +diff -uNr linux-3.9.1/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-3.9.1-imqmq/include/linux/netfilter_ipv6/ip6t_IMQ.h +--- linux-3.9.1/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.9.1-imqmq/include/linux/netfilter_ipv6/ip6t_IMQ.h 2013-05-08 17:30:29.011952562 +0300 +@@ -0,0 +1,10 @@ ++#ifndef _IP6T_IMQ_H ++#define _IP6T_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include <linux/netfilter/xt_IMQ.h> ++ ++#define ip6t_imq_info xt_imq_info ++ ++#endif /* _IP6T_IMQ_H */ ++ +diff -uNr linux-3.9.1/include/net/netfilter/nf_queue.h linux-3.9.1-imqmq/include/net/netfilter/nf_queue.h +--- linux-3.9.1/include/net/netfilter/nf_queue.h 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/include/net/netfilter/nf_queue.h 2013-05-08 17:30:29.015285965 +0300 +@@ -26,5 +26,11 @@ + void nf_register_queue_handler(const struct nf_queue_handler *qh); + void nf_unregister_queue_handler(void); + extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); ++extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry); ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh); ++extern void nf_unregister_queue_imq_handler(void); ++#endif + + #endif /* _NF_QUEUE_H */ +diff -uNr linux-3.9.1/include/uapi/linux/netfilter.h linux-3.9.1-imqmq/include/uapi/linux/netfilter.h +--- linux-3.9.1/include/uapi/linux/netfilter.h 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/include/uapi/linux/netfilter.h 2013-05-08 17:30:29.015285965 +0300 +@@ -13,7 +13,8 @@ + #define NF_QUEUE 3 + #define NF_REPEAT 4 + #define NF_STOP 5 +-#define NF_MAX_VERDICT NF_STOP ++#define NF_IMQ_QUEUE 6 ++#define NF_MAX_VERDICT NF_IMQ_QUEUE + + /* we overload the higher bits for encoding auxiliary data such as the queue + * number or errno values. Not nice, but better than additional function +diff -uNr linux-3.9.1/net/core/dev.c linux-3.9.1-imqmq/net/core/dev.c +--- linux-3.9.1/net/core/dev.c 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/net/core/dev.c 2013-05-08 17:30:29.018619368 +0300 +@@ -129,6 +129,9 @@ + #include <linux/inetdevice.h> + #include <linux/cpu_rmap.h> + #include <linux/static_key.h> ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include <linux/imq.h> ++#endif + + #include "net-sysfs.h" + +@@ -2529,7 +2532,12 @@ + } + } + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ if (!list_empty(&ptype_all) && ++ !(skb->imq_flags & IMQ_F_ENQUEUE)) ++#else + if (!list_empty(&ptype_all)) ++#endif + dev_queue_xmit_nit(skb, dev); + + skb_len = skb->len; +diff -uNr linux-3.9.1/net/core/skbuff.c linux-3.9.1-imqmq/net/core/skbuff.c +--- linux-3.9.1/net/core/skbuff.c 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/net/core/skbuff.c 2013-05-08 17:30:29.021952772 +0300 +@@ -73,6 +73,9 @@ + + struct kmem_cache *skbuff_head_cache __read_mostly; + static struct kmem_cache *skbuff_fclone_cache __read_mostly; ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static struct kmem_cache *skbuff_cb_store_cache __read_mostly; ++#endif + + static void sock_pipe_buf_release(struct pipe_inode_info *pipe, + struct pipe_buffer *buf) +@@ -92,6 +95,82 @@ + return 1; + } + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++/* Control buffer save/restore for IMQ devices */ ++struct skb_cb_table { ++ char cb[48] __aligned(8); ++ void *cb_next; ++ atomic_t refcnt; ++}; ++ ++static DEFINE_SPINLOCK(skb_cb_store_lock); ++ ++int skb_save_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC); ++ if (!next) ++ return -ENOMEM; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(next->cb, skb->cb, sizeof(skb->cb)); ++ next->cb_next = skb->cb_next; ++ ++ atomic_set(&next->refcnt, 1); ++ ++ skb->cb_next = next; ++ return 0; ++} ++EXPORT_SYMBOL(skb_save_cb); ++ ++int skb_restore_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ if (!skb->cb_next) ++ return 0; ++ ++ next = skb->cb_next; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(skb->cb, next->cb, sizeof(skb->cb)); ++ skb->cb_next = next->cb_next; ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ if (atomic_dec_and_test(&next->refcnt)) ++ kmem_cache_free(skbuff_cb_store_cache, next); ++ ++ spin_unlock(&skb_cb_store_lock); ++ ++ return 0; ++} ++EXPORT_SYMBOL(skb_restore_cb); ++ ++static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old) ++{ ++ struct skb_cb_table *next; ++ struct sk_buff *old; ++ ++ if (!__old->cb_next) { ++ new->cb_next = NULL; ++ return; ++ } ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ old = (struct sk_buff *)__old; ++ ++ next = old->cb_next; ++ atomic_inc(&next->refcnt); ++ new->cb_next = next; ++ ++ spin_unlock(&skb_cb_store_lock); ++} ++#endif + + /* Pipe buffer operations for a socket. */ + static const struct pipe_buf_operations sock_pipe_buf_ops = { +@@ -562,6 +641,28 @@ + WARN_ON(in_irq()); + skb->destructor(skb); + } ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ /* ++ * This should not happen. When it does, avoid memleak by restoring ++ * the chain of cb-backups. ++ */ ++ while (skb->cb_next != NULL) { ++ if (net_ratelimit()) ++ pr_warn("IMQ: kfree_skb: skb->cb_next: %08x\n", ++ (unsigned int)skb->cb_next); ++ ++ skb_restore_cb(skb); ++ } ++ /* ++ * This should not happen either, nf_queue_entry is nullified in ++ * imq_dev_xmit(). If we have non-NULL nf_queue_entry then we are ++ * leaking entry pointers, maybe memory. We don't know if this is ++ * pointer to already freed memory, or should this be freed. ++ * If this happens we need to add refcounting, etc for nf_queue_entry. ++ */ ++ if (skb->nf_queue_entry && net_ratelimit()) ++ pr_warn("%s\n", "IMQ: kfree_skb: skb->nf_queue_entry != NULL"); ++#endif + #if IS_ENABLED(CONFIG_NF_CONNTRACK) + nf_conntrack_put(skb->nfct); + #endif +@@ -683,6 +784,9 @@ + new->sp = secpath_get(old->sp); + #endif + memcpy(new->cb, old->cb, sizeof(old->cb)); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skb_copy_stored_cb(new, old); ++#endif + new->csum = old->csum; + new->local_df = old->local_df; + new->pkt_type = old->pkt_type; +@@ -3053,6 +3157,13 @@ + 0, + SLAB_HWCACHE_ALIGN|SLAB_PANIC, + NULL); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache", ++ sizeof(struct skb_cb_table), ++ 0, ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC, ++ NULL); ++#endif + } + + /** +diff -uNr linux-3.9.1/net/ipv6/ip6_output.c linux-3.9.1-imqmq/net/ipv6/ip6_output.c +--- linux-3.9.1/net/ipv6/ip6_output.c 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/net/ipv6/ip6_output.c 2013-05-08 17:30:29.021952772 +0300 +@@ -89,9 +89,6 @@ + struct in6_addr *nexthop; + int ret; + +- skb->protocol = htons(ETH_P_IPV6); +- skb->dev = dev; +- + if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { + struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); + +@@ -167,6 +164,13 @@ + return 0; + } + ++ /* ++ * IMQ-patch: moved setting skb->dev and skb->protocol from ++ * ip6_finish_output2 to fix crashing at netif_skb_features(). ++ */ ++ skb->protocol = htons(ETH_P_IPV6); ++ skb->dev = dev; ++ + return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev, + ip6_finish_output, + !(IP6CB(skb)->flags & IP6SKB_REROUTED)); +diff -uNr linux-3.9.1/net/netfilter/core.c linux-3.9.1-imqmq/net/netfilter/core.c +--- linux-3.9.1/net/netfilter/core.c 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/net/netfilter/core.c 2013-05-08 17:30:29.025286174 +0300 +@@ -188,9 +188,11 @@ + ret = NF_DROP_GETERR(verdict); + if (ret == 0) + ret = -EPERM; +- } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) { ++ } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE || ++ (verdict & NF_VERDICT_MASK) == NF_IMQ_QUEUE) { + int err = nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -uNr linux-3.9.1/net/netfilter/Kconfig linux-3.9.1-imqmq/net/netfilter/Kconfig +--- linux-3.9.1/net/netfilter/Kconfig 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/net/netfilter/Kconfig 2013-05-08 17:30:29.025286174 +0300 +@@ -641,6 +641,18 @@ + + To compile it as a module, choose M here. If unsure, say N. + ++config NETFILTER_XT_TARGET_IMQ ++ tristate '"IMQ" target support' ++ depends on NETFILTER_XTABLES ++ depends on IP_NF_MANGLE || IP6_NF_MANGLE ++ select IMQ ++ default m if NETFILTER_ADVANCED=n ++ help ++ This option adds a `IMQ' target which is used to specify if and ++ to which imq device packets should get enqueued/dequeued. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ + config NETFILTER_XT_TARGET_MARK + tristate '"MARK" target support' + depends on NETFILTER_ADVANCED +diff -uNr linux-3.9.1/net/netfilter/Makefile linux-3.9.1-imqmq/net/netfilter/Makefile +--- linux-3.9.1/net/netfilter/Makefile 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/net/netfilter/Makefile 2013-05-08 17:30:29.025286174 +0300 +@@ -82,6 +82,7 @@ + obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o + obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o + obj-$(CONFIG_NETFILTER_XT_TARGET_HMARK) += xt_HMARK.o ++obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o + obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o + obj-$(CONFIG_NETFILTER_XT_TARGET_LOG) += xt_LOG.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NETMAP) += xt_NETMAP.o +diff -uNr linux-3.9.1/net/netfilter/nf_internals.h linux-3.9.1-imqmq/net/netfilter/nf_internals.h +--- linux-3.9.1/net/netfilter/nf_internals.h 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/net/netfilter/nf_internals.h 2013-05-08 17:30:29.025286174 +0300 +@@ -29,7 +29,7 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum); ++ unsigned int queuenum, unsigned int queuetype); + extern int __init netfilter_queue_init(void); + + /* nf_log.c */ +diff -uNr linux-3.9.1/net/netfilter/nf_queue.c linux-3.9.1-imqmq/net/netfilter/nf_queue.c +--- linux-3.9.1/net/netfilter/nf_queue.c 2013-05-08 06:58:03.000000000 +0300 ++++ linux-3.9.1-imqmq/net/netfilter/nf_queue.c 2013-05-08 17:30:29.025286174 +0300 +@@ -22,6 +22,23 @@ + */ + static const struct nf_queue_handler __rcu *queue_handler __read_mostly; + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static const struct nf_queue_handler __rcu *queue_imq_handler __read_mostly; ++ ++void nf_register_queue_imq_handler(const struct nf_queue_handler *qh) ++{ ++ rcu_assign_pointer(queue_imq_handler, qh); ++} ++EXPORT_SYMBOL_GPL(nf_register_queue_imq_handler); ++ ++void nf_unregister_queue_imq_handler(void) ++{ ++ RCU_INIT_POINTER(queue_imq_handler, NULL); ++ synchronize_rcu(); ++} ++EXPORT_SYMBOL_GPL(nf_unregister_queue_imq_handler); ++#endif ++ + /* return EBUSY when somebody else is registered, return EEXIST if the + * same handler is registered, return 0 in case of success. */ + void nf_register_queue_handler(const struct nf_queue_handler *qh) +@@ -71,7 +89,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + int status = -ENOENT; + struct nf_queue_entry *entry = NULL; +@@ -85,7 +104,17 @@ + /* QUEUE == DROP if no one is waiting, to be safe. */ + rcu_read_lock(); + +- qh = rcu_dereference(queue_handler); ++ if (queuetype == NF_IMQ_QUEUE) { ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ qh = rcu_dereference(queue_imq_handler); ++#else ++ BUG(); ++ goto err_unlock; ++#endif ++ } else { ++ qh = rcu_dereference(queue_handler); ++ } ++ + if (!qh) { + status = -ESRCH; + goto err_unlock; +@@ -233,9 +261,11 @@ + local_bh_enable(); + break; + case NF_QUEUE: ++ case NF_IMQ_QUEUE: + err = nf_queue(skb, elem, entry->pf, entry->hook, + entry->indev, entry->outdev, entry->okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -uNr linux-3.9.1/net/netfilter/xt_IMQ.c linux-3.9.1-imqmq/net/netfilter/xt_IMQ.c +--- linux-3.9.1/net/netfilter/xt_IMQ.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.9.1-imqmq/net/netfilter/xt_IMQ.c 2013-05-08 17:30:29.025286174 +0300 +@@ -0,0 +1,72 @@ ++/* ++ * This target marks packets to be enqueued to an imq device ++ */ ++#include <linux/module.h> ++#include <linux/skbuff.h> ++#include <linux/netfilter/x_tables.h> ++#include <linux/netfilter/xt_IMQ.h> ++#include <linux/imq.h> ++ ++static unsigned int imq_target(struct sk_buff *pskb, ++ const struct xt_action_param *par) ++{ ++ const struct xt_imq_info *mr = par->targinfo; ++ ++ pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE; ++ ++ return XT_CONTINUE; ++} ++ ++static int imq_checkentry(const struct xt_tgchk_param *par) ++{ ++ struct xt_imq_info *mr = par->targinfo; ++ ++ if (mr->todev > IMQ_MAX_DEVS - 1) { ++ pr_warn("IMQ: invalid device specified, highest is %u\n", ++ IMQ_MAX_DEVS - 1); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static struct xt_target xt_imq_reg[] __read_mostly = { ++ { ++ .name = "IMQ", ++ .family = AF_INET, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++ { ++ .name = "IMQ", ++ .family = AF_INET6, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++}; ++ ++static int __init imq_init(void) ++{ ++ return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++static void __exit imq_fini(void) ++{ ++ xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++module_init(imq_init); ++module_exit(imq_fini); ++ ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("ipt_IMQ"); ++MODULE_ALIAS("ip6t_IMQ"); ++ +diff -uNr linux-3.10.23/include/linux/skbuff.h linux-3.10.23-imqmq/include/linux/skbuff.h +--- linux-3.10.23/include/linux/skbuff.h 2013-12-08 17:17:21.000000000 +0100 ++++ linux-3.10.23-imqmq/include/linux/skbuff.h 2013-12-09 15:49:26.329991968 +0100 +@@ -33,6 +33,9 @@ + #include <linux/dma-mapping.h> + #include <linux/netdev_features.h> + #include <net/flow_keys.h> ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include <linux/imq.h> ++#endif + + /* Don't change this without changing skb_csum_unnecessary! */ + #define CHECKSUM_NONE 0 +@@ -414,6 +417,9 @@ + * first. This is owned by whoever has the skb queued ATM. + */ + char cb[48] __aligned(8); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ void *cb_next; ++#endif + + unsigned long _skb_refdst; + #ifdef CONFIG_XFRM +@@ -449,6 +455,9 @@ + #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) + struct nf_conntrack *nfct; + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ struct nf_queue_entry *nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + struct nf_bridge_info *nf_bridge; + #endif +@@ -488,6 +497,10 @@ + /* 7/9 bit hole (depending on ndisc_nodetype presence) */ + kmemcheck_bitfield_end(flags2); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ __u8 imq_flags:IMQ_F_BITS; ++#endif ++ + #ifdef CONFIG_NET_DMA + dma_cookie_t dma_cookie; + #endif +@@ -617,6 +630,12 @@ + return (struct rtable *)skb_dst(skb); + } + ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern int skb_save_cb(struct sk_buff *skb); ++extern int skb_restore_cb(struct sk_buff *skb); ++#endif ++ + extern void kfree_skb(struct sk_buff *skb); + extern void kfree_skb_list(struct sk_buff *segs); + extern void skb_tx_error(struct sk_buff *skb); +@@ -2730,6 +2749,10 @@ + nf_conntrack_get(src->nfct); + dst->nfctinfo = src->nfctinfo; + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ dst->imq_flags = src->imq_flags; ++ dst->nf_queue_entry = src->nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + dst->nf_bridge = src->nf_bridge; + nf_bridge_get(src->nf_bridge); diff --git a/src/patches/imspector-20101008-ssl.patch b/src/patches/imspector-20101008-ssl.patch new file mode 100644 index 0000000..32ac766 --- /dev/null +++ b/src/patches/imspector-20101008-ssl.patch @@ -0,0 +1,11 @@ +--- imspector/sslstate.h 2010-02-23 18:21:56.000000000 +0100 ++++ imspector/sslstate.h 2013-12-14 15:40:04.796370688 +0100 +@@ -52,7 +52,7 @@ + int sslverify; //!< Our VERIFY_ choice. + + bool localdebugmode; //!< Saves us from passing this around. +- SSL_METHOD *method; //!< openssl method handle. ++ const SSL_METHOD *method; //!< openssl method handle. + SSL_CTX *connectctx; //!< Our IM server-sde CTX. + SSL_CTX *ctx; //!< Our IM client-side CTX. + diff --git a/src/patches/kernel/utilite/linux-3.10-compulab-utilite-support.patch b/src/patches/kernel/utilite/linux-3.10-compulab-utilite-support.patch new file mode 100644 index 0000000..3d7f676 --- /dev/null +++ b/src/patches/kernel/utilite/linux-3.10-compulab-utilite-support.patch @@ -0,0 +1,96 @@ +Add initial support for cm-fx6 module. + +cm-fx6 is a module based on mx6q SoC with the following features: +- Up to 4GB of DDR3 +- 1 LCD/DVI output port +- 1 HDMI output port +- 2 LVDS LCD ports +- Gigabit Ethernet +- Analog Audio +- CAN +- SATA +- NAND +- PCIE + +This patch allows to boot up the module, configures the serial console, +the Ethernet adapter and the heartbeat led. + +cm-fx6 is embedded inside the Utilite computer. + +Signed-off-by: Valentin Raevsky valentin@compulab.co.il +Signed-off-by: Igor Grinberg grinberg@compulab.co.il +--- + +Shawn, can this still be applied for 3.13 ? + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index f0895c5..7521a34 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -117,6 +117,7 @@ dtb-$(CONFIG_ARCH_MXC) += \ + imx6dl-sabresd.dtb \ + imx6dl-wandboard.dtb \ + imx6q-arm2.dtb \ ++ imx6q-cm-fx6.dtb \ + imx6q-sabreauto.dtb \ + imx6q-sabrelite.dtb \ + imx6q-sabresd.dtb \ +diff --git a/arch/arm/boot/dts/imx6q-cm-fx6.dts b/arch/arm/boot/dts/imx6q-cm-fx6.dts +new file mode 100644 +index 0000000..2419751 +--- /dev/null ++++ b/arch/arm/boot/dts/imx6q-cm-fx6.dts +@@ -0,0 +1,53 @@ ++/* ++ * Copyright 2013 CompuLab Ltd. ++ * ++ * Author: Valentin Raevsky valentin@compulab.co.il ++ * ++ * The code contained herein is licensed under the GNU General Public ++ * License. You may obtain a copy of the GNU General Public License ++ * Version 2 or later at the following locations: ++ * ++ * http://www.opensource.org/licenses/gpl-license.html ++ * http://www.gnu.org/copyleft/gpl.html ++ */ ++ ++/dts-v1/; ++#include "imx6q.dtsi" ++ ++/ { ++ model = "CompuLab CM-FX6"; ++ compatible = "compulab,cm-fx6", "fsl,imx6q"; ++ ++ memory { ++ reg = <0x10000000 0x80000000>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ heartbeat-led { ++ label = "Heartbeat"; ++ gpios = <&gpio2 31 0>; ++ linux,default-trigger = "heartbeat"; ++ }; ++ }; ++}; ++ ++&fec { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_enet_1>; ++ phy-mode = "rgmii"; ++ status = "okay"; ++}; ++ ++&gpmi { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_gpmi_nand_1>; ++ status = "okay"; ++}; ++ ++&uart4 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart4_1>; ++ status = "okay"; ++}; diff --git a/src/patches/kernel/wandboard/dts/0001-imx6qdl-wandboard-dts-backport.patch b/src/patches/kernel/wandboard/dts/0001-imx6qdl-wandboard-dts-backport.patch new file mode 100644 index 0000000..e1c6bea --- /dev/null +++ b/src/patches/kernel/wandboard/dts/0001-imx6qdl-wandboard-dts-backport.patch @@ -0,0 +1,6354 @@ +commit a97d4c27dd2eef64af9e5d778d05a8915cba6822 +Author: Stefan Schantl stefan.schantl@ipfire.org +Date: Mon Nov 18 21:34:31 2013 +0100 + + Backport dts for imx6qdl. + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index f0895c5..a3d2869 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -120,7 +120,8 @@ dtb-$(CONFIG_ARCH_MXC) += \ + imx6q-sabreauto.dtb \ + imx6q-sabrelite.dtb \ + imx6q-sabresd.dtb \ +- imx6q-sbc6x.dtb ++ imx6q-sbc6x.dtb \ ++ imx6q-wandboard.dtb + dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ + imx23-olinuxino.dtb \ + imx23-stmp378x_devb.dtb \ +diff --git a/arch/arm/boot/dts/imx6dl-pinfunc.h b/arch/arm/boot/dts/imx6dl-pinfunc.h +index 9aab950..b81a7a4 100644 +--- a/arch/arm/boot/dts/imx6dl-pinfunc.h ++++ b/arch/arm/boot/dts/imx6dl-pinfunc.h +@@ -14,1072 +14,1076 @@ + * The pin function ID is a tuple of + * <mux_reg conf_reg input_reg mux_mode input_val> + */ +-#define MX6DL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x04c 0x360 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT10__AUD3_RXC 0x04c 0x360 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT10__ECSPI2_MISO 0x04c 0x360 0x7f8 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT10__UART1_TX_DATA 0x04c 0x360 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT10__UART1_RX_DATA 0x04c 0x360 0x8fc 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT10__GPIO5_IO28 0x04c 0x360 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT10__ARM_TRACE07 0x04c 0x360 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x050 0x364 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT11__AUD3_RXFS 0x050 0x364 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT11__ECSPI2_SS0 0x050 0x364 0x800 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT11__UART1_RX_DATA 0x050 0x364 0x8fc 0x3 0x1 +-#define MX6DL_PAD_CSI0_DAT11__UART1_TX_DATA 0x050 0x364 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT11__GPIO5_IO29 0x050 0x364 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT11__ARM_TRACE08 0x050 0x364 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x054 0x368 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT12__EIM_DATA08 0x054 0x368 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT12__UART4_TX_DATA 0x054 0x368 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT12__UART4_RX_DATA 0x054 0x368 0x914 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT12__GPIO5_IO30 0x054 0x368 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT12__ARM_TRACE09 0x054 0x368 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x058 0x36c 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT13__EIM_DATA09 0x058 0x36c 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT13__UART4_RX_DATA 0x058 0x36c 0x914 0x3 0x1 +-#define MX6DL_PAD_CSI0_DAT13__UART4_TX_DATA 0x058 0x36c 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT13__GPIO5_IO31 0x058 0x36c 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT13__ARM_TRACE10 0x058 0x36c 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x05c 0x370 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT14__EIM_DATA10 0x05c 0x370 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT14__UART5_TX_DATA 0x05c 0x370 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT14__UART5_RX_DATA 0x05c 0x370 0x91c 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT14__GPIO6_IO00 0x05c 0x370 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT14__ARM_TRACE11 0x05c 0x370 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x060 0x374 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT15__EIM_DATA11 0x060 0x374 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT15__UART5_RX_DATA 0x060 0x374 0x91c 0x3 0x1 +-#define MX6DL_PAD_CSI0_DAT15__UART5_TX_DATA 0x060 0x374 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT15__GPIO6_IO01 0x060 0x374 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT15__ARM_TRACE12 0x060 0x374 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x064 0x378 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT16__EIM_DATA12 0x064 0x378 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT16__UART4_RTS_B 0x064 0x378 0x910 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT16__UART4_CTS_B 0x064 0x378 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT16__GPIO6_IO02 0x064 0x378 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT16__ARM_TRACE13 0x064 0x378 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x068 0x37c 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT17__EIM_DATA13 0x068 0x37c 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT17__UART4_CTS_B 0x068 0x37c 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT17__UART4_RTS_B 0x068 0x37c 0x910 0x3 0x1 +-#define MX6DL_PAD_CSI0_DAT17__GPIO6_IO03 0x068 0x37c 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT17__ARM_TRACE14 0x068 0x37c 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x06c 0x380 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT18__EIM_DATA14 0x06c 0x380 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT18__UART5_RTS_B 0x06c 0x380 0x918 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT18__UART5_CTS_B 0x06c 0x380 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT18__GPIO6_IO04 0x06c 0x380 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT18__ARM_TRACE15 0x06c 0x380 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x070 0x384 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT19__EIM_DATA15 0x070 0x384 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT19__UART5_CTS_B 0x070 0x384 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT19__UART5_RTS_B 0x070 0x384 0x918 0x3 0x1 +-#define MX6DL_PAD_CSI0_DAT19__GPIO6_IO05 0x070 0x384 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT4__IPU1_CSI0_DATA04 0x074 0x388 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT4__EIM_DATA02 0x074 0x388 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT4__ECSPI1_SCLK 0x074 0x388 0x7d8 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT4__KEY_COL5 0x074 0x388 0x8c0 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT4__AUD3_TXC 0x074 0x388 0x000 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT4__GPIO5_IO22 0x074 0x388 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT4__ARM_TRACE01 0x074 0x388 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT5__IPU1_CSI0_DATA05 0x078 0x38c 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT5__EIM_DATA03 0x078 0x38c 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT5__ECSPI1_MOSI 0x078 0x38c 0x7e0 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT5__KEY_ROW5 0x078 0x38c 0x8cc 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT5__AUD3_TXD 0x078 0x38c 0x000 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT5__GPIO5_IO23 0x078 0x38c 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT5__ARM_TRACE02 0x078 0x38c 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT6__IPU1_CSI0_DATA06 0x07c 0x390 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT6__EIM_DATA04 0x07c 0x390 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT6__ECSPI1_MISO 0x07c 0x390 0x7dc 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT6__KEY_COL6 0x07c 0x390 0x8c4 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT6__AUD3_TXFS 0x07c 0x390 0x000 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT6__GPIO5_IO24 0x07c 0x390 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT6__ARM_TRACE03 0x07c 0x390 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x080 0x394 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT7__EIM_DATA05 0x080 0x394 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT7__ECSPI1_SS0 0x080 0x394 0x7e4 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT7__KEY_ROW6 0x080 0x394 0x8d0 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT7__AUD3_RXD 0x080 0x394 0x000 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT7__GPIO5_IO25 0x080 0x394 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT7__ARM_TRACE04 0x080 0x394 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x084 0x398 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT8__EIM_DATA06 0x084 0x398 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT8__ECSPI2_SCLK 0x084 0x398 0x7f4 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT8__KEY_COL7 0x084 0x398 0x8c8 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT8__I2C1_SDA 0x084 0x398 0x86c 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT8__GPIO5_IO26 0x084 0x398 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT8__ARM_TRACE05 0x084 0x398 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x088 0x39c 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DAT9__EIM_DATA07 0x088 0x39c 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DAT9__ECSPI2_MOSI 0x088 0x39c 0x7fc 0x2 0x0 +-#define MX6DL_PAD_CSI0_DAT9__KEY_ROW7 0x088 0x39c 0x8d4 0x3 0x0 +-#define MX6DL_PAD_CSI0_DAT9__I2C1_SCL 0x088 0x39c 0x868 0x4 0x0 +-#define MX6DL_PAD_CSI0_DAT9__GPIO5_IO27 0x088 0x39c 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DAT9__ARM_TRACE06 0x088 0x39c 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x08c 0x3a0 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_DATA_EN__EIM_DATA00 0x08c 0x3a0 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x08c 0x3a0 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_DATA_EN__ARM_TRACE_CLK 0x08c 0x3a0 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x090 0x3a4 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_MCLK__CCM_CLKO1 0x090 0x3a4 0x000 0x3 0x0 +-#define MX6DL_PAD_CSI0_MCLK__GPIO5_IO19 0x090 0x3a4 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_MCLK__ARM_TRACE_CTL 0x090 0x3a4 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x094 0x3a8 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x094 0x3a8 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_PIXCLK__ARM_EVENTO 0x094 0x3a8 0x000 0x7 0x0 +-#define MX6DL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x098 0x3ac 0x000 0x0 0x0 +-#define MX6DL_PAD_CSI0_VSYNC__EIM_DATA01 0x098 0x3ac 0x000 0x1 0x0 +-#define MX6DL_PAD_CSI0_VSYNC__GPIO5_IO21 0x098 0x3ac 0x000 0x5 0x0 +-#define MX6DL_PAD_CSI0_VSYNC__ARM_TRACE00 0x098 0x3ac 0x000 0x7 0x0 +-#define MX6DL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x09c 0x3b0 0x000 0x0 0x0 +-#define MX6DL_PAD_DI0_DISP_CLK__LCD_CLK 0x09c 0x3b0 0x000 0x1 0x0 +-#define MX6DL_PAD_DI0_DISP_CLK__GPIO4_IO16 0x09c 0x3b0 0x000 0x5 0x0 +-#define MX6DL_PAD_DI0_DISP_CLK__LCD_WR_RWN 0x09c 0x3b0 0x000 0x8 0x0 +-#define MX6DL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x0a0 0x3b4 0x000 0x0 0x0 +-#define MX6DL_PAD_DI0_PIN15__LCD_ENABLE 0x0a0 0x3b4 0x000 0x1 0x0 +-#define MX6DL_PAD_DI0_PIN15__AUD6_TXC 0x0a0 0x3b4 0x000 0x2 0x0 +-#define MX6DL_PAD_DI0_PIN15__GPIO4_IO17 0x0a0 0x3b4 0x000 0x5 0x0 +-#define MX6DL_PAD_DI0_PIN15__LCD_RD_E 0x0a0 0x3b4 0x000 0x8 0x0 +-#define MX6DL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x0a4 0x3b8 0x000 0x0 0x0 +-#define MX6DL_PAD_DI0_PIN2__LCD_HSYNC 0x0a4 0x3b8 0x8d8 0x1 0x0 +-#define MX6DL_PAD_DI0_PIN2__AUD6_TXD 0x0a4 0x3b8 0x000 0x2 0x0 +-#define MX6DL_PAD_DI0_PIN2__GPIO4_IO18 0x0a4 0x3b8 0x000 0x5 0x0 +-#define MX6DL_PAD_DI0_PIN2__LCD_RS 0x0a4 0x3b8 0x000 0x8 0x0 +-#define MX6DL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x0a8 0x3bc 0x000 0x0 0x0 +-#define MX6DL_PAD_DI0_PIN3__LCD_VSYNC 0x0a8 0x3bc 0x000 0x1 0x0 +-#define MX6DL_PAD_DI0_PIN3__AUD6_TXFS 0x0a8 0x3bc 0x000 0x2 0x0 +-#define MX6DL_PAD_DI0_PIN3__GPIO4_IO19 0x0a8 0x3bc 0x000 0x5 0x0 +-#define MX6DL_PAD_DI0_PIN3__LCD_CS 0x0a8 0x3bc 0x000 0x8 0x0 +-#define MX6DL_PAD_DI0_PIN4__IPU1_DI0_PIN04 0x0ac 0x3c0 0x000 0x0 0x0 +-#define MX6DL_PAD_DI0_PIN4__LCD_BUSY 0x0ac 0x3c0 0x8d8 0x1 0x1 +-#define MX6DL_PAD_DI0_PIN4__AUD6_RXD 0x0ac 0x3c0 0x000 0x2 0x0 +-#define MX6DL_PAD_DI0_PIN4__SD1_WP 0x0ac 0x3c0 0x92c 0x3 0x0 +-#define MX6DL_PAD_DI0_PIN4__GPIO4_IO20 0x0ac 0x3c0 0x000 0x5 0x0 +-#define MX6DL_PAD_DI0_PIN4__LCD_RESET 0x0ac 0x3c0 0x000 0x8 0x0 +-#define MX6DL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x0b0 0x3c4 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT0__LCD_DATA00 0x0b0 0x3c4 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x0b0 0x3c4 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT0__GPIO4_IO21 0x0b0 0x3c4 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x0b4 0x3c8 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT1__LCD_DATA01 0x0b4 0x3c8 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x0b4 0x3c8 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT1__GPIO4_IO22 0x0b4 0x3c8 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x0b8 0x3cc 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT10__LCD_DATA10 0x0b8 0x3cc 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT10__GPIO4_IO31 0x0b8 0x3cc 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x0bc 0x3d0 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT11__LCD_DATA11 0x0bc 0x3d0 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT11__GPIO5_IO05 0x0bc 0x3d0 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x0c0 0x3d4 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT12__LCD_DATA12 0x0c0 0x3d4 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT12__GPIO5_IO06 0x0c0 0x3d4 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x0c4 0x3d8 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT13__LCD_DATA13 0x0c4 0x3d8 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT13__AUD5_RXFS 0x0c4 0x3d8 0x7bc 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT13__GPIO5_IO07 0x0c4 0x3d8 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x0c8 0x3dc 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT14__LCD_DATA14 0x0c8 0x3dc 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT14__AUD5_RXC 0x0c8 0x3dc 0x7b8 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT14__GPIO5_IO08 0x0c8 0x3dc 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x0cc 0x3e0 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT15__LCD_DATA15 0x0cc 0x3e0 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT15__ECSPI1_SS1 0x0cc 0x3e0 0x7e8 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT15__ECSPI2_SS1 0x0cc 0x3e0 0x804 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT15__GPIO5_IO09 0x0cc 0x3e0 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x0d0 0x3e4 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT16__LCD_DATA16 0x0d0 0x3e4 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT16__ECSPI2_MOSI 0x0d0 0x3e4 0x7fc 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT16__AUD5_TXC 0x0d0 0x3e4 0x7c0 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT16__SDMA_EXT_EVENT0 0x0d0 0x3e4 0x8e8 0x4 0x0 +-#define MX6DL_PAD_DISP0_DAT16__GPIO5_IO10 0x0d0 0x3e4 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x0d4 0x3e8 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT17__LCD_DATA17 0x0d4 0x3e8 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT17__ECSPI2_MISO 0x0d4 0x3e8 0x7f8 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT17__AUD5_TXD 0x0d4 0x3e8 0x7b4 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT17__SDMA_EXT_EVENT1 0x0d4 0x3e8 0x8ec 0x4 0x0 +-#define MX6DL_PAD_DISP0_DAT17__GPIO5_IO11 0x0d4 0x3e8 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x0d8 0x3ec 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT18__LCD_DATA18 0x0d8 0x3ec 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT18__ECSPI2_SS0 0x0d8 0x3ec 0x800 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT18__AUD5_TXFS 0x0d8 0x3ec 0x7c4 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT18__AUD4_RXFS 0x0d8 0x3ec 0x7a4 0x4 0x0 +-#define MX6DL_PAD_DISP0_DAT18__GPIO5_IO12 0x0d8 0x3ec 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT18__EIM_CS2_B 0x0d8 0x3ec 0x000 0x7 0x0 +-#define MX6DL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x0dc 0x3f0 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT19__LCD_DATA19 0x0dc 0x3f0 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT19__ECSPI2_SCLK 0x0dc 0x3f0 0x7f4 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT19__AUD5_RXD 0x0dc 0x3f0 0x7b0 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT19__AUD4_RXC 0x0dc 0x3f0 0x7a0 0x4 0x0 +-#define MX6DL_PAD_DISP0_DAT19__GPIO5_IO13 0x0dc 0x3f0 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT19__EIM_CS3_B 0x0dc 0x3f0 0x000 0x7 0x0 +-#define MX6DL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x0e0 0x3f4 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT2__LCD_DATA02 0x0e0 0x3f4 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT2__ECSPI3_MISO 0x0e0 0x3f4 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT2__GPIO4_IO23 0x0e0 0x3f4 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x0e4 0x3f8 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT20__LCD_DATA20 0x0e4 0x3f8 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT20__ECSPI1_SCLK 0x0e4 0x3f8 0x7d8 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT20__AUD4_TXC 0x0e4 0x3f8 0x7a8 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT20__GPIO5_IO14 0x0e4 0x3f8 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x0e8 0x3fc 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT21__LCD_DATA21 0x0e8 0x3fc 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT21__ECSPI1_MOSI 0x0e8 0x3fc 0x7e0 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT21__AUD4_TXD 0x0e8 0x3fc 0x79c 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT21__GPIO5_IO15 0x0e8 0x3fc 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x0ec 0x400 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT22__LCD_DATA22 0x0ec 0x400 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT22__ECSPI1_MISO 0x0ec 0x400 0x7dc 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT22__AUD4_TXFS 0x0ec 0x400 0x7ac 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT22__GPIO5_IO16 0x0ec 0x400 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x0f0 0x404 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT23__LCD_DATA23 0x0f0 0x404 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT23__ECSPI1_SS0 0x0f0 0x404 0x7e4 0x2 0x1 +-#define MX6DL_PAD_DISP0_DAT23__AUD4_RXD 0x0f0 0x404 0x798 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT23__GPIO5_IO17 0x0f0 0x404 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x0f4 0x408 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT3__LCD_DATA03 0x0f4 0x408 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT3__ECSPI3_SS0 0x0f4 0x408 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT3__GPIO4_IO24 0x0f4 0x408 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x0f8 0x40c 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT4__LCD_DATA04 0x0f8 0x40c 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT4__ECSPI3_SS1 0x0f8 0x40c 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT4__GPIO4_IO25 0x0f8 0x40c 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x0fc 0x410 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT5__LCD_DATA05 0x0fc 0x410 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT5__ECSPI3_SS2 0x0fc 0x410 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT5__AUD6_RXFS 0x0fc 0x410 0x000 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT5__GPIO4_IO26 0x0fc 0x410 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x100 0x414 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT6__LCD_DATA06 0x100 0x414 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT6__ECSPI3_SS3 0x100 0x414 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT6__AUD6_RXC 0x100 0x414 0x000 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT6__GPIO4_IO27 0x100 0x414 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x104 0x418 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT7__LCD_DATA07 0x104 0x418 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT7__ECSPI3_RDY 0x104 0x418 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT7__GPIO4_IO28 0x104 0x418 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x108 0x41c 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT8__LCD_DATA08 0x108 0x41c 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT8__PWM1_OUT 0x108 0x41c 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT8__WDOG1_B 0x108 0x41c 0x000 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT8__GPIO4_IO29 0x108 0x41c 0x000 0x5 0x0 +-#define MX6DL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10c 0x420 0x000 0x0 0x0 +-#define MX6DL_PAD_DISP0_DAT9__LCD_DATA09 0x10c 0x420 0x000 0x1 0x0 +-#define MX6DL_PAD_DISP0_DAT9__PWM2_OUT 0x10c 0x420 0x000 0x2 0x0 +-#define MX6DL_PAD_DISP0_DAT9__WDOG2_B 0x10c 0x420 0x000 0x3 0x0 +-#define MX6DL_PAD_DISP0_DAT9__GPIO4_IO30 0x10c 0x420 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A16__EIM_ADDR16 0x110 0x4e0 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A16__IPU1_DI1_DISP_CLK 0x110 0x4e0 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A16__IPU1_CSI1_PIXCLK 0x110 0x4e0 0x8b8 0x2 0x0 +-#define MX6DL_PAD_EIM_A16__GPIO2_IO22 0x110 0x4e0 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A16__SRC_BOOT_CFG16 0x110 0x4e0 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A16__EPDC_DATA00 0x110 0x4e0 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A17__EIM_ADDR17 0x114 0x4e4 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A17__IPU1_DISP1_DATA12 0x114 0x4e4 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A17__IPU1_CSI1_DATA12 0x114 0x4e4 0x890 0x2 0x0 +-#define MX6DL_PAD_EIM_A17__GPIO2_IO21 0x114 0x4e4 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A17__SRC_BOOT_CFG17 0x114 0x4e4 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A17__EPDC_PWR_STAT 0x114 0x4e4 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A18__EIM_ADDR18 0x118 0x4e8 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A18__IPU1_DISP1_DATA13 0x118 0x4e8 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A18__IPU1_CSI1_DATA13 0x118 0x4e8 0x894 0x2 0x0 +-#define MX6DL_PAD_EIM_A18__GPIO2_IO20 0x118 0x4e8 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A18__SRC_BOOT_CFG18 0x118 0x4e8 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A18__EPDC_PWR_CTRL0 0x118 0x4e8 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A19__EIM_ADDR19 0x11c 0x4ec 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A19__IPU1_DISP1_DATA14 0x11c 0x4ec 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A19__IPU1_CSI1_DATA14 0x11c 0x4ec 0x898 0x2 0x0 +-#define MX6DL_PAD_EIM_A19__GPIO2_IO19 0x11c 0x4ec 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A19__SRC_BOOT_CFG19 0x11c 0x4ec 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A19__EPDC_PWR_CTRL1 0x11c 0x4ec 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A20__EIM_ADDR20 0x120 0x4f0 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A20__IPU1_DISP1_DATA15 0x120 0x4f0 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A20__IPU1_CSI1_DATA15 0x120 0x4f0 0x89c 0x2 0x0 +-#define MX6DL_PAD_EIM_A20__GPIO2_IO18 0x120 0x4f0 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A20__SRC_BOOT_CFG20 0x120 0x4f0 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A20__EPDC_PWR_CTRL2 0x120 0x4f0 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A21__EIM_ADDR21 0x124 0x4f4 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A21__IPU1_DISP1_DATA16 0x124 0x4f4 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A21__IPU1_CSI1_DATA16 0x124 0x4f4 0x8a0 0x2 0x0 +-#define MX6DL_PAD_EIM_A21__GPIO2_IO17 0x124 0x4f4 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A21__SRC_BOOT_CFG21 0x124 0x4f4 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A21__EPDC_GDCLK 0x124 0x4f4 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A22__EIM_ADDR22 0x128 0x4f8 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A22__IPU1_DISP1_DATA17 0x128 0x4f8 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A22__IPU1_CSI1_DATA17 0x128 0x4f8 0x8a4 0x2 0x0 +-#define MX6DL_PAD_EIM_A22__GPIO2_IO16 0x128 0x4f8 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A22__SRC_BOOT_CFG22 0x128 0x4f8 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A22__EPDC_GDSP 0x128 0x4f8 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A23__EIM_ADDR23 0x12c 0x4fc 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A23__IPU1_DISP1_DATA18 0x12c 0x4fc 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A23__IPU1_CSI1_DATA18 0x12c 0x4fc 0x8a8 0x2 0x0 +-#define MX6DL_PAD_EIM_A23__IPU1_SISG3 0x12c 0x4fc 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_A23__GPIO6_IO06 0x12c 0x4fc 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A23__SRC_BOOT_CFG23 0x12c 0x4fc 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A23__EPDC_GDOE 0x12c 0x4fc 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A24__EIM_ADDR24 0x130 0x500 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A24__IPU1_DISP1_DATA19 0x130 0x500 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A24__IPU1_CSI1_DATA19 0x130 0x500 0x8ac 0x2 0x0 +-#define MX6DL_PAD_EIM_A24__IPU1_SISG2 0x130 0x500 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_A24__GPIO5_IO04 0x130 0x500 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A24__SRC_BOOT_CFG24 0x130 0x500 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_A24__EPDC_GDRL 0x130 0x500 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A25__EIM_ADDR25 0x134 0x504 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_A25__ECSPI4_SS1 0x134 0x504 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_A25__ECSPI2_RDY 0x134 0x504 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_A25__IPU1_DI1_PIN12 0x134 0x504 0x000 0x3 0x0 +-#define MX6DL_PAD_EIM_A25__IPU1_DI0_D1_CS 0x134 0x504 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_A25__GPIO5_IO02 0x134 0x504 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x134 0x504 0x85c 0x6 0x0 +-#define MX6DL_PAD_EIM_A25__EPDC_DATA15 0x134 0x504 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_A25__EIM_ACLK_FREERUN 0x134 0x504 0x000 0x9 0x0 +-#define MX6DL_PAD_EIM_BCLK__EIM_BCLK 0x138 0x508 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_BCLK__IPU1_DI1_PIN16 0x138 0x508 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_BCLK__GPIO6_IO31 0x138 0x508 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_BCLK__EPDC_SDCE9 0x138 0x508 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_CS0__EIM_CS0_B 0x13c 0x50c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_CS0__IPU1_DI1_PIN05 0x13c 0x50c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_CS0__ECSPI2_SCLK 0x13c 0x50c 0x7f4 0x2 0x2 +-#define MX6DL_PAD_EIM_CS0__GPIO2_IO23 0x13c 0x50c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_CS0__EPDC_DATA06 0x13c 0x50c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_CS1__EIM_CS1_B 0x140 0x510 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_CS1__IPU1_DI1_PIN06 0x140 0x510 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_CS1__ECSPI2_MOSI 0x140 0x510 0x7fc 0x2 0x2 +-#define MX6DL_PAD_EIM_CS1__GPIO2_IO24 0x140 0x510 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_CS1__EPDC_DATA08 0x140 0x510 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D16__EIM_DATA16 0x144 0x514 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D16__ECSPI1_SCLK 0x144 0x514 0x7d8 0x1 0x2 +-#define MX6DL_PAD_EIM_D16__IPU1_DI0_PIN05 0x144 0x514 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D16__IPU1_CSI1_DATA18 0x144 0x514 0x8a8 0x3 0x1 +-#define MX6DL_PAD_EIM_D16__HDMI_TX_DDC_SDA 0x144 0x514 0x864 0x4 0x0 +-#define MX6DL_PAD_EIM_D16__GPIO3_IO16 0x144 0x514 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D16__I2C2_SDA 0x144 0x514 0x874 0x6 0x0 +-#define MX6DL_PAD_EIM_D16__EPDC_DATA10 0x144 0x514 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D17__EIM_DATA17 0x148 0x518 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D17__ECSPI1_MISO 0x148 0x518 0x7dc 0x1 0x2 +-#define MX6DL_PAD_EIM_D17__IPU1_DI0_PIN06 0x148 0x518 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D17__IPU1_CSI1_PIXCLK 0x148 0x518 0x8b8 0x3 0x1 +-#define MX6DL_PAD_EIM_D17__DCIC1_OUT 0x148 0x518 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D17__GPIO3_IO17 0x148 0x518 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D17__I2C3_SCL 0x148 0x518 0x878 0x6 0x0 +-#define MX6DL_PAD_EIM_D17__EPDC_VCOM0 0x148 0x518 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D18__EIM_DATA18 0x14c 0x51c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D18__ECSPI1_MOSI 0x14c 0x51c 0x7e0 0x1 0x2 +-#define MX6DL_PAD_EIM_D18__IPU1_DI0_PIN07 0x14c 0x51c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D18__IPU1_CSI1_DATA17 0x14c 0x51c 0x8a4 0x3 0x1 +-#define MX6DL_PAD_EIM_D18__IPU1_DI1_D0_CS 0x14c 0x51c 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D18__GPIO3_IO18 0x14c 0x51c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D18__I2C3_SDA 0x14c 0x51c 0x87c 0x6 0x0 +-#define MX6DL_PAD_EIM_D18__EPDC_VCOM1 0x14c 0x51c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D19__EIM_DATA19 0x150 0x520 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D19__ECSPI1_SS1 0x150 0x520 0x7e8 0x1 0x1 +-#define MX6DL_PAD_EIM_D19__IPU1_DI0_PIN08 0x150 0x520 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D19__IPU1_CSI1_DATA16 0x150 0x520 0x8a0 0x3 0x1 +-#define MX6DL_PAD_EIM_D19__UART1_CTS_B 0x150 0x520 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D19__UART1_RTS_B 0x150 0x520 0x8f8 0x4 0x0 +-#define MX6DL_PAD_EIM_D19__GPIO3_IO19 0x150 0x520 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D19__EPIT1_OUT 0x150 0x520 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D19__EPDC_DATA12 0x150 0x520 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D20__EIM_DATA20 0x154 0x524 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D20__ECSPI4_SS0 0x154 0x524 0x808 0x1 0x0 +-#define MX6DL_PAD_EIM_D20__IPU1_DI0_PIN16 0x154 0x524 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D20__IPU1_CSI1_DATA15 0x154 0x524 0x89c 0x3 0x1 +-#define MX6DL_PAD_EIM_D20__UART1_RTS_B 0x154 0x524 0x8f8 0x4 0x1 +-#define MX6DL_PAD_EIM_D20__UART1_CTS_B 0x154 0x524 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D20__GPIO3_IO20 0x154 0x524 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D20__EPIT2_OUT 0x154 0x524 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D21__EIM_DATA21 0x158 0x528 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D21__ECSPI4_SCLK 0x158 0x528 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D21__IPU1_DI0_PIN17 0x158 0x528 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D21__IPU1_CSI1_DATA11 0x158 0x528 0x88c 0x3 0x0 +-#define MX6DL_PAD_EIM_D21__USB_OTG_OC 0x158 0x528 0x920 0x4 0x0 +-#define MX6DL_PAD_EIM_D21__GPIO3_IO21 0x158 0x528 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D21__I2C1_SCL 0x158 0x528 0x868 0x6 0x1 +-#define MX6DL_PAD_EIM_D21__SPDIF_IN 0x158 0x528 0x8f0 0x7 0x0 +-#define MX6DL_PAD_EIM_D22__EIM_DATA22 0x15c 0x52c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D22__ECSPI4_MISO 0x15c 0x52c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D22__IPU1_DI0_PIN01 0x15c 0x52c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D22__IPU1_CSI1_DATA10 0x15c 0x52c 0x888 0x3 0x0 +-#define MX6DL_PAD_EIM_D22__USB_OTG_PWR 0x15c 0x52c 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D22__GPIO3_IO22 0x15c 0x52c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D22__SPDIF_OUT 0x15c 0x52c 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D22__EPDC_SDCE6 0x15c 0x52c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D23__EIM_DATA23 0x160 0x530 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D23__IPU1_DI0_D0_CS 0x160 0x530 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D23__UART3_CTS_B 0x160 0x530 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D23__UART3_RTS_B 0x160 0x530 0x908 0x2 0x0 +-#define MX6DL_PAD_EIM_D23__UART1_DCD_B 0x160 0x530 0x000 0x3 0x0 +-#define MX6DL_PAD_EIM_D23__IPU1_CSI1_DATA_EN 0x160 0x530 0x8b0 0x4 0x0 +-#define MX6DL_PAD_EIM_D23__GPIO3_IO23 0x160 0x530 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D23__IPU1_DI1_PIN02 0x160 0x530 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D23__IPU1_DI1_PIN14 0x160 0x530 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D23__EPDC_DATA11 0x160 0x530 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D24__EIM_DATA24 0x164 0x534 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D24__ECSPI4_SS2 0x164 0x534 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D24__UART3_TX_DATA 0x164 0x534 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D24__UART3_RX_DATA 0x164 0x534 0x90c 0x2 0x0 +-#define MX6DL_PAD_EIM_D24__ECSPI1_SS2 0x164 0x534 0x7ec 0x3 0x0 +-#define MX6DL_PAD_EIM_D24__ECSPI2_SS2 0x164 0x534 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D24__GPIO3_IO24 0x164 0x534 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D24__AUD5_RXFS 0x164 0x534 0x7bc 0x6 0x1 +-#define MX6DL_PAD_EIM_D24__UART1_DTR_B 0x164 0x534 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D24__EPDC_SDCE7 0x164 0x534 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D25__EIM_DATA25 0x168 0x538 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D25__ECSPI4_SS3 0x168 0x538 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D25__UART3_RX_DATA 0x168 0x538 0x90c 0x2 0x1 +-#define MX6DL_PAD_EIM_D25__UART3_TX_DATA 0x168 0x538 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D25__ECSPI1_SS3 0x168 0x538 0x7f0 0x3 0x0 +-#define MX6DL_PAD_EIM_D25__ECSPI2_SS3 0x168 0x538 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D25__GPIO3_IO25 0x168 0x538 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D25__AUD5_RXC 0x168 0x538 0x7b8 0x6 0x1 +-#define MX6DL_PAD_EIM_D25__UART1_DSR_B 0x168 0x538 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D25__EPDC_SDCE8 0x168 0x538 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D26__EIM_DATA26 0x16c 0x53c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D26__IPU1_DI1_PIN11 0x16c 0x53c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D26__IPU1_CSI0_DATA01 0x16c 0x53c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D26__IPU1_CSI1_DATA14 0x16c 0x53c 0x898 0x3 0x1 +-#define MX6DL_PAD_EIM_D26__UART2_TX_DATA 0x16c 0x53c 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D26__UART2_RX_DATA 0x16c 0x53c 0x904 0x4 0x0 +-#define MX6DL_PAD_EIM_D26__GPIO3_IO26 0x16c 0x53c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D26__IPU1_SISG2 0x16c 0x53c 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D26__IPU1_DISP1_DATA22 0x16c 0x53c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D26__EPDC_SDOED 0x16c 0x53c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D27__EIM_DATA27 0x170 0x540 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D27__IPU1_DI1_PIN13 0x170 0x540 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D27__IPU1_CSI0_DATA00 0x170 0x540 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D27__IPU1_CSI1_DATA13 0x170 0x540 0x894 0x3 0x1 +-#define MX6DL_PAD_EIM_D27__UART2_RX_DATA 0x170 0x540 0x904 0x4 0x1 +-#define MX6DL_PAD_EIM_D27__UART2_TX_DATA 0x170 0x540 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D27__GPIO3_IO27 0x170 0x540 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D27__IPU1_SISG3 0x170 0x540 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D27__IPU1_DISP1_DATA23 0x170 0x540 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D27__EPDC_SDOE 0x170 0x540 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D28__EIM_DATA28 0x174 0x544 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D28__I2C1_SDA 0x174 0x544 0x86c 0x1 0x1 +-#define MX6DL_PAD_EIM_D28__ECSPI4_MOSI 0x174 0x544 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D28__IPU1_CSI1_DATA12 0x174 0x544 0x890 0x3 0x1 +-#define MX6DL_PAD_EIM_D28__UART2_CTS_B 0x174 0x544 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D28__UART2_RTS_B 0x174 0x544 0x900 0x4 0x0 +-#define MX6DL_PAD_EIM_D28__GPIO3_IO28 0x174 0x544 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D28__IPU1_EXT_TRIG 0x174 0x544 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D28__IPU1_DI0_PIN13 0x174 0x544 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D28__EPDC_PWR_CTRL3 0x174 0x544 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D29__EIM_DATA29 0x178 0x548 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D29__IPU1_DI1_PIN15 0x178 0x548 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D29__ECSPI4_SS0 0x178 0x548 0x808 0x2 0x1 +-#define MX6DL_PAD_EIM_D29__UART2_RTS_B 0x178 0x548 0x900 0x4 0x1 +-#define MX6DL_PAD_EIM_D29__UART2_CTS_B 0x178 0x548 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D29__GPIO3_IO29 0x178 0x548 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D29__IPU1_CSI1_VSYNC 0x178 0x548 0x8bc 0x6 0x0 +-#define MX6DL_PAD_EIM_D29__IPU1_DI0_PIN14 0x178 0x548 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_D29__EPDC_PWR_WAKE 0x178 0x548 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D30__EIM_DATA30 0x17c 0x54c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D30__IPU1_DISP1_DATA21 0x17c 0x54c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D30__IPU1_DI0_PIN11 0x17c 0x54c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D30__IPU1_CSI0_DATA03 0x17c 0x54c 0x000 0x3 0x0 +-#define MX6DL_PAD_EIM_D30__UART3_CTS_B 0x17c 0x54c 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D30__UART3_RTS_B 0x17c 0x54c 0x908 0x4 0x1 +-#define MX6DL_PAD_EIM_D30__GPIO3_IO30 0x17c 0x54c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D30__USB_H1_OC 0x17c 0x54c 0x924 0x6 0x0 +-#define MX6DL_PAD_EIM_D30__EPDC_SDOEZ 0x17c 0x54c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D31__EIM_DATA31 0x180 0x550 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_D31__IPU1_DISP1_DATA20 0x180 0x550 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_D31__IPU1_DI0_PIN12 0x180 0x550 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_D31__IPU1_CSI0_DATA02 0x180 0x550 0x000 0x3 0x0 +-#define MX6DL_PAD_EIM_D31__UART3_RTS_B 0x180 0x550 0x908 0x4 0x2 +-#define MX6DL_PAD_EIM_D31__UART3_CTS_B 0x180 0x550 0x000 0x4 0x0 +-#define MX6DL_PAD_EIM_D31__GPIO3_IO31 0x180 0x550 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_D31__USB_H1_PWR 0x180 0x550 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_D31__EPDC_SDCLK_P 0x180 0x550 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_D31__EIM_ACLK_FREERUN 0x180 0x550 0x000 0x9 0x0 +-#define MX6DL_PAD_EIM_DA0__EIM_AD00 0x184 0x554 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA0__IPU1_DISP1_DATA09 0x184 0x554 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA0__IPU1_CSI1_DATA09 0x184 0x554 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA0__GPIO3_IO00 0x184 0x554 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA0__SRC_BOOT_CFG00 0x184 0x554 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA0__EPDC_SDCLK_N 0x184 0x554 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA1__EIM_AD01 0x188 0x558 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA1__IPU1_DISP1_DATA08 0x188 0x558 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA1__IPU1_CSI1_DATA08 0x188 0x558 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA1__GPIO3_IO01 0x188 0x558 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA1__SRC_BOOT_CFG01 0x188 0x558 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA1__EPDC_SDLE 0x188 0x558 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA10__EIM_AD10 0x18c 0x55c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA10__IPU1_DI1_PIN15 0x18c 0x55c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA10__IPU1_CSI1_DATA_EN 0x18c 0x55c 0x8b0 0x2 0x1 +-#define MX6DL_PAD_EIM_DA10__GPIO3_IO10 0x18c 0x55c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA10__SRC_BOOT_CFG10 0x18c 0x55c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA10__EPDC_DATA01 0x18c 0x55c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA11__EIM_AD11 0x190 0x560 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA11__IPU1_DI1_PIN02 0x190 0x560 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA11__IPU1_CSI1_HSYNC 0x190 0x560 0x8b4 0x2 0x0 +-#define MX6DL_PAD_EIM_DA11__GPIO3_IO11 0x190 0x560 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA11__SRC_BOOT_CFG11 0x190 0x560 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA11__EPDC_DATA03 0x190 0x560 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA12__EIM_AD12 0x194 0x564 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA12__IPU1_DI1_PIN03 0x194 0x564 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA12__IPU1_CSI1_VSYNC 0x194 0x564 0x8bc 0x2 0x1 +-#define MX6DL_PAD_EIM_DA12__GPIO3_IO12 0x194 0x564 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA12__SRC_BOOT_CFG12 0x194 0x564 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA12__EPDC_DATA02 0x194 0x564 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA13__EIM_AD13 0x198 0x568 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA13__IPU1_DI1_D0_CS 0x198 0x568 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA13__GPIO3_IO13 0x198 0x568 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA13__SRC_BOOT_CFG13 0x198 0x568 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA13__EPDC_DATA13 0x198 0x568 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA14__EIM_AD14 0x19c 0x56c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA14__IPU1_DI1_D1_CS 0x19c 0x56c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA14__GPIO3_IO14 0x19c 0x56c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA14__SRC_BOOT_CFG14 0x19c 0x56c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA14__EPDC_DATA14 0x19c 0x56c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA15__EIM_AD15 0x1a0 0x570 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA15__IPU1_DI1_PIN01 0x1a0 0x570 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA15__IPU1_DI1_PIN04 0x1a0 0x570 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA15__GPIO3_IO15 0x1a0 0x570 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA15__SRC_BOOT_CFG15 0x1a0 0x570 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA15__EPDC_DATA09 0x1a0 0x570 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA2__EIM_AD02 0x1a4 0x574 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA2__IPU1_DISP1_DATA07 0x1a4 0x574 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA2__IPU1_CSI1_DATA07 0x1a4 0x574 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA2__GPIO3_IO02 0x1a4 0x574 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA2__SRC_BOOT_CFG02 0x1a4 0x574 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA2__EPDC_BDR0 0x1a4 0x574 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA3__EIM_AD03 0x1a8 0x578 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA3__IPU1_DISP1_DATA06 0x1a8 0x578 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA3__IPU1_CSI1_DATA06 0x1a8 0x578 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA3__GPIO3_IO03 0x1a8 0x578 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA3__SRC_BOOT_CFG03 0x1a8 0x578 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA3__EPDC_BDR1 0x1a8 0x578 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA4__EIM_AD04 0x1ac 0x57c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA4__IPU1_DISP1_DATA05 0x1ac 0x57c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA4__IPU1_CSI1_DATA05 0x1ac 0x57c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA4__GPIO3_IO04 0x1ac 0x57c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA4__SRC_BOOT_CFG04 0x1ac 0x57c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA4__EPDC_SDCE0 0x1ac 0x57c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA5__EIM_AD05 0x1b0 0x580 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA5__IPU1_DISP1_DATA04 0x1b0 0x580 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA5__IPU1_CSI1_DATA04 0x1b0 0x580 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA5__GPIO3_IO05 0x1b0 0x580 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA5__SRC_BOOT_CFG05 0x1b0 0x580 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA5__EPDC_SDCE1 0x1b0 0x580 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA6__EIM_AD06 0x1b4 0x584 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA6__IPU1_DISP1_DATA03 0x1b4 0x584 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA6__IPU1_CSI1_DATA03 0x1b4 0x584 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA6__GPIO3_IO06 0x1b4 0x584 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA6__SRC_BOOT_CFG06 0x1b4 0x584 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA6__EPDC_SDCE2 0x1b4 0x584 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA7__EIM_AD07 0x1b8 0x588 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA7__IPU1_DISP1_DATA02 0x1b8 0x588 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA7__IPU1_CSI1_DATA02 0x1b8 0x588 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA7__GPIO3_IO07 0x1b8 0x588 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA7__SRC_BOOT_CFG07 0x1b8 0x588 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA7__EPDC_SDCE3 0x1b8 0x588 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA8__EIM_AD08 0x1bc 0x58c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA8__IPU1_DISP1_DATA01 0x1bc 0x58c 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA8__IPU1_CSI1_DATA01 0x1bc 0x58c 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA8__GPIO3_IO08 0x1bc 0x58c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA8__SRC_BOOT_CFG08 0x1bc 0x58c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA8__EPDC_SDCE4 0x1bc 0x58c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_DA9__EIM_AD09 0x1c0 0x590 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_DA9__IPU1_DISP1_DATA00 0x1c0 0x590 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_DA9__IPU1_CSI1_DATA00 0x1c0 0x590 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_DA9__GPIO3_IO09 0x1c0 0x590 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_DA9__SRC_BOOT_CFG09 0x1c0 0x590 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_DA9__EPDC_SDCE5 0x1c0 0x590 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_EB0__EIM_EB0_B 0x1c4 0x594 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_EB0__IPU1_DISP1_DATA11 0x1c4 0x594 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_EB0__IPU1_CSI1_DATA11 0x1c4 0x594 0x88c 0x2 0x1 +-#define MX6DL_PAD_EIM_EB0__CCM_PMIC_READY 0x1c4 0x594 0x7d4 0x4 0x0 +-#define MX6DL_PAD_EIM_EB0__GPIO2_IO28 0x1c4 0x594 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_EB0__SRC_BOOT_CFG27 0x1c4 0x594 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_EB0__EPDC_PWR_COM 0x1c4 0x594 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_EB1__EIM_EB1_B 0x1c8 0x598 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_EB1__IPU1_DISP1_DATA10 0x1c8 0x598 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_EB1__IPU1_CSI1_DATA10 0x1c8 0x598 0x888 0x2 0x1 +-#define MX6DL_PAD_EIM_EB1__GPIO2_IO29 0x1c8 0x598 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_EB1__SRC_BOOT_CFG28 0x1c8 0x598 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_EB1__EPDC_SDSHR 0x1c8 0x598 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_EB2__EIM_EB2_B 0x1cc 0x59c 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_EB2__ECSPI1_SS0 0x1cc 0x59c 0x7e4 0x1 0x2 +-#define MX6DL_PAD_EIM_EB2__IPU1_CSI1_DATA19 0x1cc 0x59c 0x8ac 0x3 0x1 +-#define MX6DL_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x1cc 0x59c 0x860 0x4 0x0 +-#define MX6DL_PAD_EIM_EB2__GPIO2_IO30 0x1cc 0x59c 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_EB2__I2C2_SCL 0x1cc 0x59c 0x870 0x6 0x0 +-#define MX6DL_PAD_EIM_EB2__SRC_BOOT_CFG30 0x1cc 0x59c 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_EB2__EPDC_DATA05 0x1cc 0x59c 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_EB3__EIM_EB3_B 0x1d0 0x5a0 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_EB3__ECSPI4_RDY 0x1d0 0x5a0 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_EB3__UART3_RTS_B 0x1d0 0x5a0 0x908 0x2 0x3 +-#define MX6DL_PAD_EIM_EB3__UART3_CTS_B 0x1d0 0x5a0 0x000 0x2 0x0 +-#define MX6DL_PAD_EIM_EB3__UART1_RI_B 0x1d0 0x5a0 0x000 0x3 0x0 +-#define MX6DL_PAD_EIM_EB3__IPU1_CSI1_HSYNC 0x1d0 0x5a0 0x8b4 0x4 0x1 +-#define MX6DL_PAD_EIM_EB3__GPIO2_IO31 0x1d0 0x5a0 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_EB3__IPU1_DI1_PIN03 0x1d0 0x5a0 0x000 0x6 0x0 +-#define MX6DL_PAD_EIM_EB3__SRC_BOOT_CFG31 0x1d0 0x5a0 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_EB3__EPDC_SDCE0 0x1d0 0x5a0 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_EB3__EIM_ACLK_FREERUN 0x1d0 0x5a0 0x000 0x9 0x0 +-#define MX6DL_PAD_EIM_LBA__EIM_LBA_B 0x1d4 0x5a4 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_LBA__IPU1_DI1_PIN17 0x1d4 0x5a4 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_LBA__ECSPI2_SS1 0x1d4 0x5a4 0x804 0x2 0x1 +-#define MX6DL_PAD_EIM_LBA__GPIO2_IO27 0x1d4 0x5a4 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_LBA__SRC_BOOT_CFG26 0x1d4 0x5a4 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_LBA__EPDC_DATA04 0x1d4 0x5a4 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_OE__EIM_OE_B 0x1d8 0x5a8 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_OE__IPU1_DI1_PIN07 0x1d8 0x5a8 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_OE__ECSPI2_MISO 0x1d8 0x5a8 0x7f8 0x2 0x2 +-#define MX6DL_PAD_EIM_OE__GPIO2_IO25 0x1d8 0x5a8 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_OE__EPDC_PWR_IRQ 0x1d8 0x5a8 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_RW__EIM_RW 0x1dc 0x5ac 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_RW__IPU1_DI1_PIN08 0x1dc 0x5ac 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_RW__ECSPI2_SS0 0x1dc 0x5ac 0x800 0x2 0x2 +-#define MX6DL_PAD_EIM_RW__GPIO2_IO26 0x1dc 0x5ac 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_RW__SRC_BOOT_CFG29 0x1dc 0x5ac 0x000 0x7 0x0 +-#define MX6DL_PAD_EIM_RW__EPDC_DATA07 0x1dc 0x5ac 0x000 0x8 0x0 +-#define MX6DL_PAD_EIM_WAIT__EIM_WAIT_B 0x1e0 0x5b0 0x000 0x0 0x0 +-#define MX6DL_PAD_EIM_WAIT__EIM_DTACK_B 0x1e0 0x5b0 0x000 0x1 0x0 +-#define MX6DL_PAD_EIM_WAIT__GPIO5_IO00 0x1e0 0x5b0 0x000 0x5 0x0 +-#define MX6DL_PAD_EIM_WAIT__SRC_BOOT_CFG25 0x1e0 0x5b0 0x000 0x7 0x0 +-#define MX6DL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1e4 0x5b4 0x828 0x1 0x0 +-#define MX6DL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1e4 0x5b4 0x840 0x2 0x0 +-#define MX6DL_PAD_ENET_CRS_DV__SPDIF_EXT_CLK 0x1e4 0x5b4 0x8f4 0x3 0x0 +-#define MX6DL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1e4 0x5b4 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_MDC__MLB_DATA 0x1e8 0x5b8 0x8e0 0x0 0x0 +-#define MX6DL_PAD_ENET_MDC__ENET_MDC 0x1e8 0x5b8 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_MDC__ESAI_TX5_RX0 0x1e8 0x5b8 0x858 0x2 0x0 +-#define MX6DL_PAD_ENET_MDC__ENET_1588_EVENT1_IN 0x1e8 0x5b8 0x000 0x4 0x0 +-#define MX6DL_PAD_ENET_MDC__GPIO1_IO31 0x1e8 0x5b8 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_MDIO__ENET_MDIO 0x1ec 0x5bc 0x810 0x1 0x0 +-#define MX6DL_PAD_ENET_MDIO__ESAI_RX_CLK 0x1ec 0x5bc 0x83c 0x2 0x0 +-#define MX6DL_PAD_ENET_MDIO__ENET_1588_EVENT1_OUT 0x1ec 0x5bc 0x000 0x4 0x0 +-#define MX6DL_PAD_ENET_MDIO__GPIO1_IO22 0x1ec 0x5bc 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_MDIO__SPDIF_LOCK 0x1ec 0x5bc 0x000 0x6 0x0 +-#define MX6DL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1f0 0x5c0 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_REF_CLK__ESAI_RX_FS 0x1f0 0x5c0 0x82c 0x2 0x0 +-#define MX6DL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1f0 0x5c0 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_REF_CLK__SPDIF_SR_CLK 0x1f0 0x5c0 0x000 0x6 0x0 +-#define MX6DL_PAD_ENET_RX_ER__USB_OTG_ID 0x1f4 0x5c4 0x790 0x0 0x0 +-#define MX6DL_PAD_ENET_RX_ER__ENET_RX_ER 0x1f4 0x5c4 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_RX_ER__ESAI_RX_HF_CLK 0x1f4 0x5c4 0x834 0x2 0x0 +-#define MX6DL_PAD_ENET_RX_ER__SPDIF_IN 0x1f4 0x5c4 0x8f0 0x3 0x1 +-#define MX6DL_PAD_ENET_RX_ER__ENET_1588_EVENT2_OUT 0x1f4 0x5c4 0x000 0x4 0x0 +-#define MX6DL_PAD_ENET_RX_ER__GPIO1_IO24 0x1f4 0x5c4 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1f8 0x5c8 0x818 0x1 0x0 +-#define MX6DL_PAD_ENET_RXD0__ESAI_TX_HF_CLK 0x1f8 0x5c8 0x838 0x2 0x0 +-#define MX6DL_PAD_ENET_RXD0__SPDIF_OUT 0x1f8 0x5c8 0x000 0x3 0x0 +-#define MX6DL_PAD_ENET_RXD0__GPIO1_IO27 0x1f8 0x5c8 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_RXD1__MLB_SIG 0x1fc 0x5cc 0x8e4 0x0 0x0 +-#define MX6DL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1fc 0x5cc 0x81c 0x1 0x0 +-#define MX6DL_PAD_ENET_RXD1__ESAI_TX_FS 0x1fc 0x5cc 0x830 0x2 0x0 +-#define MX6DL_PAD_ENET_RXD1__ENET_1588_EVENT3_OUT 0x1fc 0x5cc 0x000 0x4 0x0 +-#define MX6DL_PAD_ENET_RXD1__GPIO1_IO26 0x1fc 0x5cc 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_TX_EN__ENET_TX_EN 0x200 0x5d0 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x200 0x5d0 0x850 0x2 0x0 +-#define MX6DL_PAD_ENET_TX_EN__GPIO1_IO28 0x200 0x5d0 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_TX_EN__I2C4_SCL 0x200 0x5d0 0x880 0x9 0x0 +-#define MX6DL_PAD_ENET_TXD0__ENET_TX_DATA0 0x204 0x5d4 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_TXD0__ESAI_TX4_RX1 0x204 0x5d4 0x854 0x2 0x0 +-#define MX6DL_PAD_ENET_TXD0__GPIO1_IO30 0x204 0x5d4 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_TXD1__MLB_CLK 0x208 0x5d8 0x8dc 0x0 0x0 +-#define MX6DL_PAD_ENET_TXD1__ENET_TX_DATA1 0x208 0x5d8 0x000 0x1 0x0 +-#define MX6DL_PAD_ENET_TXD1__ESAI_TX2_RX3 0x208 0x5d8 0x84c 0x2 0x0 +-#define MX6DL_PAD_ENET_TXD1__ENET_1588_EVENT0_IN 0x208 0x5d8 0x000 0x4 0x0 +-#define MX6DL_PAD_ENET_TXD1__GPIO1_IO29 0x208 0x5d8 0x000 0x5 0x0 +-#define MX6DL_PAD_ENET_TXD1__I2C4_SDA 0x208 0x5d8 0x884 0x9 0x0 +-#define MX6DL_PAD_GPIO_0__CCM_CLKO1 0x20c 0x5dc 0x000 0x0 0x0 +-#define MX6DL_PAD_GPIO_0__KEY_COL5 0x20c 0x5dc 0x8c0 0x2 0x1 +-#define MX6DL_PAD_GPIO_0__ASRC_EXT_CLK 0x20c 0x5dc 0x794 0x3 0x0 +-#define MX6DL_PAD_GPIO_0__EPIT1_OUT 0x20c 0x5dc 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_0__GPIO1_IO00 0x20c 0x5dc 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_0__USB_H1_PWR 0x20c 0x5dc 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_0__SNVS_VIO_5 0x20c 0x5dc 0x000 0x7 0x0 +-#define MX6DL_PAD_GPIO_1__ESAI_RX_CLK 0x210 0x5e0 0x83c 0x0 0x1 +-#define MX6DL_PAD_GPIO_1__WDOG2_B 0x210 0x5e0 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_1__KEY_ROW5 0x210 0x5e0 0x8cc 0x2 0x1 +-#define MX6DL_PAD_GPIO_1__USB_OTG_ID 0x210 0x5e0 0x790 0x3 0x1 +-#define MX6DL_PAD_GPIO_1__PWM2_OUT 0x210 0x5e0 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_1__GPIO1_IO01 0x210 0x5e0 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_1__SD1_CD_B 0x210 0x5e0 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_16__ESAI_TX3_RX2 0x214 0x5e4 0x850 0x0 0x1 +-#define MX6DL_PAD_GPIO_16__ENET_1588_EVENT2_IN 0x214 0x5e4 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_16__ENET_REF_CLK 0x214 0x5e4 0x80c 0x2 0x0 +-#define MX6DL_PAD_GPIO_16__SD1_LCTL 0x214 0x5e4 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_16__SPDIF_IN 0x214 0x5e4 0x8f0 0x4 0x2 +-#define MX6DL_PAD_GPIO_16__GPIO7_IO11 0x214 0x5e4 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_16__I2C3_SDA 0x214 0x5e4 0x87c 0x6 0x1 +-#define MX6DL_PAD_GPIO_16__JTAG_DE_B 0x214 0x5e4 0x000 0x7 0x0 +-#define MX6DL_PAD_GPIO_17__ESAI_TX0 0x218 0x5e8 0x844 0x0 0x0 +-#define MX6DL_PAD_GPIO_17__ENET_1588_EVENT3_IN 0x218 0x5e8 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_17__CCM_PMIC_READY 0x218 0x5e8 0x7d4 0x2 0x1 +-#define MX6DL_PAD_GPIO_17__SDMA_EXT_EVENT0 0x218 0x5e8 0x8e8 0x3 0x1 +-#define MX6DL_PAD_GPIO_17__SPDIF_OUT 0x218 0x5e8 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_17__GPIO7_IO12 0x218 0x5e8 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_18__ESAI_TX1 0x21c 0x5ec 0x848 0x0 0x0 +-#define MX6DL_PAD_GPIO_18__ENET_RX_CLK 0x21c 0x5ec 0x814 0x1 0x0 +-#define MX6DL_PAD_GPIO_18__SD3_VSELECT 0x21c 0x5ec 0x000 0x2 0x0 +-#define MX6DL_PAD_GPIO_18__SDMA_EXT_EVENT1 0x21c 0x5ec 0x8ec 0x3 0x1 +-#define MX6DL_PAD_GPIO_18__ASRC_EXT_CLK 0x21c 0x5ec 0x794 0x4 0x1 +-#define MX6DL_PAD_GPIO_18__GPIO7_IO13 0x21c 0x5ec 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_18__SNVS_VIO_5_CTL 0x21c 0x5ec 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_19__KEY_COL5 0x220 0x5f0 0x8c0 0x0 0x2 +-#define MX6DL_PAD_GPIO_19__ENET_1588_EVENT0_OUT 0x220 0x5f0 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_19__SPDIF_OUT 0x220 0x5f0 0x000 0x2 0x0 +-#define MX6DL_PAD_GPIO_19__CCM_CLKO1 0x220 0x5f0 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_19__ECSPI1_RDY 0x220 0x5f0 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_19__GPIO4_IO05 0x220 0x5f0 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_19__ENET_TX_ER 0x220 0x5f0 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_2__ESAI_TX_FS 0x224 0x5f4 0x830 0x0 0x1 +-#define MX6DL_PAD_GPIO_2__KEY_ROW6 0x224 0x5f4 0x8d0 0x2 0x1 +-#define MX6DL_PAD_GPIO_2__GPIO1_IO02 0x224 0x5f4 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_2__SD2_WP 0x224 0x5f4 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_2__MLB_DATA 0x224 0x5f4 0x8e0 0x7 0x1 +-#define MX6DL_PAD_GPIO_3__ESAI_RX_HF_CLK 0x228 0x5f8 0x834 0x0 0x1 +-#define MX6DL_PAD_GPIO_3__I2C3_SCL 0x228 0x5f8 0x878 0x2 0x1 +-#define MX6DL_PAD_GPIO_3__XTALOSC_REF_CLK_24M 0x228 0x5f8 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_3__CCM_CLKO2 0x228 0x5f8 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_3__GPIO1_IO03 0x228 0x5f8 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_3__USB_H1_OC 0x228 0x5f8 0x924 0x6 0x1 +-#define MX6DL_PAD_GPIO_3__MLB_CLK 0x228 0x5f8 0x8dc 0x7 0x1 +-#define MX6DL_PAD_GPIO_4__ESAI_TX_HF_CLK 0x22c 0x5fc 0x838 0x0 0x1 +-#define MX6DL_PAD_GPIO_4__KEY_COL7 0x22c 0x5fc 0x8c8 0x2 0x1 +-#define MX6DL_PAD_GPIO_4__GPIO1_IO04 0x22c 0x5fc 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_4__SD2_CD_B 0x22c 0x5fc 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_5__ESAI_TX2_RX3 0x230 0x600 0x84c 0x0 0x1 +-#define MX6DL_PAD_GPIO_5__KEY_ROW7 0x230 0x600 0x8d4 0x2 0x1 +-#define MX6DL_PAD_GPIO_5__CCM_CLKO1 0x230 0x600 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_5__GPIO1_IO05 0x230 0x600 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_5__I2C3_SCL 0x230 0x600 0x878 0x6 0x2 +-#define MX6DL_PAD_GPIO_5__ARM_EVENTI 0x230 0x600 0x000 0x7 0x0 +-#define MX6DL_PAD_GPIO_6__ESAI_TX_CLK 0x234 0x604 0x840 0x0 0x1 +-#define MX6DL_PAD_GPIO_6__I2C3_SDA 0x234 0x604 0x87c 0x2 0x2 +-#define MX6DL_PAD_GPIO_6__GPIO1_IO06 0x234 0x604 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_6__SD2_LCTL 0x234 0x604 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_6__MLB_SIG 0x234 0x604 0x8e4 0x7 0x1 +-#define MX6DL_PAD_GPIO_7__ESAI_TX4_RX1 0x238 0x608 0x854 0x0 0x1 +-#define MX6DL_PAD_GPIO_7__EPIT1_OUT 0x238 0x608 0x000 0x2 0x0 +-#define MX6DL_PAD_GPIO_7__FLEXCAN1_TX 0x238 0x608 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_7__UART2_TX_DATA 0x238 0x608 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_7__UART2_RX_DATA 0x238 0x608 0x904 0x4 0x2 +-#define MX6DL_PAD_GPIO_7__GPIO1_IO07 0x238 0x608 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_7__SPDIF_LOCK 0x238 0x608 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_7__USB_OTG_HOST_MODE 0x238 0x608 0x000 0x7 0x0 +-#define MX6DL_PAD_GPIO_7__I2C4_SCL 0x238 0x608 0x880 0x8 0x1 +-#define MX6DL_PAD_GPIO_8__ESAI_TX5_RX0 0x23c 0x60c 0x858 0x0 0x1 +-#define MX6DL_PAD_GPIO_8__XTALOSC_REF_CLK_32K 0x23c 0x60c 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_8__EPIT2_OUT 0x23c 0x60c 0x000 0x2 0x0 +-#define MX6DL_PAD_GPIO_8__FLEXCAN1_RX 0x23c 0x60c 0x7c8 0x3 0x0 +-#define MX6DL_PAD_GPIO_8__UART2_RX_DATA 0x23c 0x60c 0x904 0x4 0x3 +-#define MX6DL_PAD_GPIO_8__UART2_TX_DATA 0x23c 0x60c 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_8__GPIO1_IO08 0x23c 0x60c 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_8__SPDIF_SR_CLK 0x23c 0x60c 0x000 0x6 0x0 +-#define MX6DL_PAD_GPIO_8__USB_OTG_PWR_CTL_WAKE 0x23c 0x60c 0x000 0x7 0x0 +-#define MX6DL_PAD_GPIO_8__I2C4_SDA 0x23c 0x60c 0x884 0x8 0x1 +-#define MX6DL_PAD_GPIO_9__ESAI_RX_FS 0x240 0x610 0x82c 0x0 0x1 +-#define MX6DL_PAD_GPIO_9__WDOG1_B 0x240 0x610 0x000 0x1 0x0 +-#define MX6DL_PAD_GPIO_9__KEY_COL6 0x240 0x610 0x8c4 0x2 0x1 +-#define MX6DL_PAD_GPIO_9__CCM_REF_EN_B 0x240 0x610 0x000 0x3 0x0 +-#define MX6DL_PAD_GPIO_9__PWM1_OUT 0x240 0x610 0x000 0x4 0x0 +-#define MX6DL_PAD_GPIO_9__GPIO1_IO09 0x240 0x610 0x000 0x5 0x0 +-#define MX6DL_PAD_GPIO_9__SD1_WP 0x240 0x610 0x92c 0x6 0x1 +-#define MX6DL_PAD_KEY_COL0__ECSPI1_SCLK 0x244 0x62c 0x7d8 0x0 0x3 +-#define MX6DL_PAD_KEY_COL0__ENET_RX_DATA3 0x244 0x62c 0x824 0x1 0x0 +-#define MX6DL_PAD_KEY_COL0__AUD5_TXC 0x244 0x62c 0x7c0 0x2 0x1 +-#define MX6DL_PAD_KEY_COL0__KEY_COL0 0x244 0x62c 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_COL0__UART4_TX_DATA 0x244 0x62c 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_COL0__UART4_RX_DATA 0x244 0x62c 0x914 0x4 0x2 +-#define MX6DL_PAD_KEY_COL0__GPIO4_IO06 0x244 0x62c 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_COL0__DCIC1_OUT 0x244 0x62c 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_COL1__ECSPI1_MISO 0x248 0x630 0x7dc 0x0 0x3 +-#define MX6DL_PAD_KEY_COL1__ENET_MDIO 0x248 0x630 0x810 0x1 0x1 +-#define MX6DL_PAD_KEY_COL1__AUD5_TXFS 0x248 0x630 0x7c4 0x2 0x1 +-#define MX6DL_PAD_KEY_COL1__KEY_COL1 0x248 0x630 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_COL1__UART5_TX_DATA 0x248 0x630 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_COL1__UART5_RX_DATA 0x248 0x630 0x91c 0x4 0x2 +-#define MX6DL_PAD_KEY_COL1__GPIO4_IO08 0x248 0x630 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_COL1__SD1_VSELECT 0x248 0x630 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_COL2__ECSPI1_SS1 0x24c 0x634 0x7e8 0x0 0x2 +-#define MX6DL_PAD_KEY_COL2__ENET_RX_DATA2 0x24c 0x634 0x820 0x1 0x0 +-#define MX6DL_PAD_KEY_COL2__FLEXCAN1_TX 0x24c 0x634 0x000 0x2 0x0 +-#define MX6DL_PAD_KEY_COL2__KEY_COL2 0x24c 0x634 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_COL2__ENET_MDC 0x24c 0x634 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_COL2__GPIO4_IO10 0x24c 0x634 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_COL2__USB_H1_PWR_CTL_WAKE 0x24c 0x634 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_COL3__ECSPI1_SS3 0x250 0x638 0x7f0 0x0 0x1 +-#define MX6DL_PAD_KEY_COL3__ENET_CRS 0x250 0x638 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x250 0x638 0x860 0x2 0x1 +-#define MX6DL_PAD_KEY_COL3__KEY_COL3 0x250 0x638 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_COL3__I2C2_SCL 0x250 0x638 0x870 0x4 0x1 +-#define MX6DL_PAD_KEY_COL3__GPIO4_IO12 0x250 0x638 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_COL3__SPDIF_IN 0x250 0x638 0x8f0 0x6 0x3 +-#define MX6DL_PAD_KEY_COL4__FLEXCAN2_TX 0x254 0x63c 0x000 0x0 0x0 +-#define MX6DL_PAD_KEY_COL4__IPU1_SISG4 0x254 0x63c 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_COL4__USB_OTG_OC 0x254 0x63c 0x920 0x2 0x1 +-#define MX6DL_PAD_KEY_COL4__KEY_COL4 0x254 0x63c 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_COL4__UART5_RTS_B 0x254 0x63c 0x918 0x4 0x2 +-#define MX6DL_PAD_KEY_COL4__UART5_CTS_B 0x254 0x63c 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_COL4__GPIO4_IO14 0x254 0x63c 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_ROW0__ECSPI1_MOSI 0x258 0x640 0x7e0 0x0 0x3 +-#define MX6DL_PAD_KEY_ROW0__ENET_TX_DATA3 0x258 0x640 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_ROW0__AUD5_TXD 0x258 0x640 0x7b4 0x2 0x1 +-#define MX6DL_PAD_KEY_ROW0__KEY_ROW0 0x258 0x640 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_ROW0__UART4_RX_DATA 0x258 0x640 0x914 0x4 0x3 +-#define MX6DL_PAD_KEY_ROW0__UART4_TX_DATA 0x258 0x640 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_ROW0__GPIO4_IO07 0x258 0x640 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_ROW0__DCIC2_OUT 0x258 0x640 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_ROW1__ECSPI1_SS0 0x25c 0x644 0x7e4 0x0 0x3 +-#define MX6DL_PAD_KEY_ROW1__ENET_COL 0x25c 0x644 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_ROW1__AUD5_RXD 0x25c 0x644 0x7b0 0x2 0x1 +-#define MX6DL_PAD_KEY_ROW1__KEY_ROW1 0x25c 0x644 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_ROW1__UART5_RX_DATA 0x25c 0x644 0x91c 0x4 0x3 +-#define MX6DL_PAD_KEY_ROW1__UART5_TX_DATA 0x25c 0x644 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_ROW1__GPIO4_IO09 0x25c 0x644 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_ROW1__SD2_VSELECT 0x25c 0x644 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_ROW2__ECSPI1_SS2 0x260 0x648 0x7ec 0x0 0x1 +-#define MX6DL_PAD_KEY_ROW2__ENET_TX_DATA2 0x260 0x648 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_ROW2__FLEXCAN1_RX 0x260 0x648 0x7c8 0x2 0x1 +-#define MX6DL_PAD_KEY_ROW2__KEY_ROW2 0x260 0x648 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_ROW2__SD2_VSELECT 0x260 0x648 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_ROW2__GPIO4_IO11 0x260 0x648 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x260 0x648 0x85c 0x6 0x1 +-#define MX6DL_PAD_KEY_ROW3__ASRC_EXT_CLK 0x264 0x64c 0x794 0x1 0x2 +-#define MX6DL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x264 0x64c 0x864 0x2 0x1 +-#define MX6DL_PAD_KEY_ROW3__KEY_ROW3 0x264 0x64c 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_ROW3__I2C2_SDA 0x264 0x64c 0x874 0x4 0x1 +-#define MX6DL_PAD_KEY_ROW3__GPIO4_IO13 0x264 0x64c 0x000 0x5 0x0 +-#define MX6DL_PAD_KEY_ROW3__SD1_VSELECT 0x264 0x64c 0x000 0x6 0x0 +-#define MX6DL_PAD_KEY_ROW4__FLEXCAN2_RX 0x268 0x650 0x7cc 0x0 0x0 +-#define MX6DL_PAD_KEY_ROW4__IPU1_SISG5 0x268 0x650 0x000 0x1 0x0 +-#define MX6DL_PAD_KEY_ROW4__USB_OTG_PWR 0x268 0x650 0x000 0x2 0x0 +-#define MX6DL_PAD_KEY_ROW4__KEY_ROW4 0x268 0x650 0x000 0x3 0x0 +-#define MX6DL_PAD_KEY_ROW4__UART5_CTS_B 0x268 0x650 0x000 0x4 0x0 +-#define MX6DL_PAD_KEY_ROW4__UART5_RTS_B 0x268 0x650 0x918 0x4 0x3 +-#define MX6DL_PAD_KEY_ROW4__GPIO4_IO15 0x268 0x650 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_ALE__NAND_ALE 0x26c 0x654 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_ALE__SD4_RESET 0x26c 0x654 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_ALE__GPIO6_IO08 0x26c 0x654 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CLE__NAND_CLE 0x270 0x658 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_CLE__GPIO6_IO07 0x270 0x658 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CS0__NAND_CE0_B 0x274 0x65c 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_CS0__GPIO6_IO11 0x274 0x65c 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CS1__NAND_CE1_B 0x278 0x660 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_CS1__SD4_VSELECT 0x278 0x660 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_CS1__SD3_VSELECT 0x278 0x660 0x000 0x2 0x0 +-#define MX6DL_PAD_NANDF_CS1__GPIO6_IO14 0x278 0x660 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CS2__NAND_CE2_B 0x27c 0x664 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_CS2__IPU1_SISG0 0x27c 0x664 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_CS2__ESAI_TX0 0x27c 0x664 0x844 0x2 0x1 +-#define MX6DL_PAD_NANDF_CS2__EIM_CRE 0x27c 0x664 0x000 0x3 0x0 +-#define MX6DL_PAD_NANDF_CS2__CCM_CLKO2 0x27c 0x664 0x000 0x4 0x0 +-#define MX6DL_PAD_NANDF_CS2__GPIO6_IO15 0x27c 0x664 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CS3__NAND_CE3_B 0x280 0x668 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_CS3__IPU1_SISG1 0x280 0x668 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_CS3__ESAI_TX1 0x280 0x668 0x848 0x2 0x1 +-#define MX6DL_PAD_NANDF_CS3__EIM_ADDR26 0x280 0x668 0x000 0x3 0x0 +-#define MX6DL_PAD_NANDF_CS3__GPIO6_IO16 0x280 0x668 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_CS3__I2C4_SDA 0x280 0x668 0x884 0x9 0x2 +-#define MX6DL_PAD_NANDF_D0__NAND_DATA00 0x284 0x66c 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D0__SD1_DATA4 0x284 0x66c 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D0__GPIO2_IO00 0x284 0x66c 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D1__NAND_DATA01 0x288 0x670 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D1__SD1_DATA5 0x288 0x670 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D1__GPIO2_IO01 0x288 0x670 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D2__NAND_DATA02 0x28c 0x674 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D2__SD1_DATA6 0x28c 0x674 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D2__GPIO2_IO02 0x28c 0x674 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D3__NAND_DATA03 0x290 0x678 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D3__SD1_DATA7 0x290 0x678 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D3__GPIO2_IO03 0x290 0x678 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D4__NAND_DATA04 0x294 0x67c 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D4__SD2_DATA4 0x294 0x67c 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D4__GPIO2_IO04 0x294 0x67c 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D5__NAND_DATA05 0x298 0x680 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D5__SD2_DATA5 0x298 0x680 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D5__GPIO2_IO05 0x298 0x680 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D6__NAND_DATA06 0x29c 0x684 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D6__SD2_DATA6 0x29c 0x684 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D6__GPIO2_IO06 0x29c 0x684 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_D7__NAND_DATA07 0x2a0 0x688 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_D7__SD2_DATA7 0x2a0 0x688 0x000 0x1 0x0 +-#define MX6DL_PAD_NANDF_D7__GPIO2_IO07 0x2a0 0x688 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_RB0__NAND_READY_B 0x2a4 0x68c 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_RB0__GPIO6_IO10 0x2a4 0x68c 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_WP_B__NAND_WP_B 0x2a8 0x690 0x000 0x0 0x0 +-#define MX6DL_PAD_NANDF_WP_B__GPIO6_IO09 0x2a8 0x690 0x000 0x5 0x0 +-#define MX6DL_PAD_NANDF_WP_B__I2C4_SCL 0x2a8 0x690 0x880 0x9 0x2 +-#define MX6DL_PAD_RGMII_RD0__HSI_RX_READY 0x2ac 0x694 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RD0__RGMII_RD0 0x2ac 0x694 0x818 0x1 0x1 +-#define MX6DL_PAD_RGMII_RD0__GPIO6_IO25 0x2ac 0x694 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_RD1__HSI_TX_FLAG 0x2b0 0x698 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RD1__RGMII_RD1 0x2b0 0x698 0x81c 0x1 0x1 +-#define MX6DL_PAD_RGMII_RD1__GPIO6_IO27 0x2b0 0x698 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_RD2__HSI_TX_DATA 0x2b4 0x69c 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RD2__RGMII_RD2 0x2b4 0x69c 0x820 0x1 0x1 +-#define MX6DL_PAD_RGMII_RD2__GPIO6_IO28 0x2b4 0x69c 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_RD3__HSI_TX_WAKE 0x2b8 0x6a0 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RD3__RGMII_RD3 0x2b8 0x6a0 0x824 0x1 0x1 +-#define MX6DL_PAD_RGMII_RD3__GPIO6_IO29 0x2b8 0x6a0 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_RX_CTL__USB_H3_DATA 0x2bc 0x6a4 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x2bc 0x6a4 0x828 0x1 0x1 +-#define MX6DL_PAD_RGMII_RX_CTL__GPIO6_IO24 0x2bc 0x6a4 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_RXC__USB_H3_STROBE 0x2c0 0x6a8 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_RXC__RGMII_RXC 0x2c0 0x6a8 0x814 0x1 0x1 +-#define MX6DL_PAD_RGMII_RXC__GPIO6_IO30 0x2c0 0x6a8 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TD0__HSI_TX_READY 0x2c4 0x6ac 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TD0__RGMII_TD0 0x2c4 0x6ac 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TD0__GPIO6_IO20 0x2c4 0x6ac 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TD1__HSI_RX_FLAG 0x2c8 0x6b0 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TD1__RGMII_TD1 0x2c8 0x6b0 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TD1__GPIO6_IO21 0x2c8 0x6b0 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TD2__HSI_RX_DATA 0x2cc 0x6b4 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TD2__RGMII_TD2 0x2cc 0x6b4 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TD2__GPIO6_IO22 0x2cc 0x6b4 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TD3__HSI_RX_WAKE 0x2d0 0x6b8 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TD3__RGMII_TD3 0x2d0 0x6b8 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TD3__GPIO6_IO23 0x2d0 0x6b8 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x2d4 0x6bc 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x2d4 0x6bc 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TX_CTL__GPIO6_IO26 0x2d4 0x6bc 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TX_CTL__ENET_REF_CLK 0x2d4 0x6bc 0x80c 0x7 0x1 +-#define MX6DL_PAD_RGMII_TXC__USB_H2_DATA 0x2d8 0x6c0 0x000 0x0 0x0 +-#define MX6DL_PAD_RGMII_TXC__RGMII_TXC 0x2d8 0x6c0 0x000 0x1 0x0 +-#define MX6DL_PAD_RGMII_TXC__SPDIF_EXT_CLK 0x2d8 0x6c0 0x8f4 0x2 0x1 +-#define MX6DL_PAD_RGMII_TXC__GPIO6_IO19 0x2d8 0x6c0 0x000 0x5 0x0 +-#define MX6DL_PAD_RGMII_TXC__XTALOSC_REF_CLK_24M 0x2d8 0x6c0 0x000 0x7 0x0 +-#define MX6DL_PAD_SD1_CLK__SD1_CLK 0x2dc 0x6c4 0x928 0x0 0x1 +-#define MX6DL_PAD_SD1_CLK__GPT_CLKIN 0x2dc 0x6c4 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_CLK__GPIO1_IO20 0x2dc 0x6c4 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_CMD__SD1_CMD 0x2e0 0x6c8 0x000 0x0 0x0 +-#define MX6DL_PAD_SD1_CMD__PWM4_OUT 0x2e0 0x6c8 0x000 0x2 0x0 +-#define MX6DL_PAD_SD1_CMD__GPT_COMPARE1 0x2e0 0x6c8 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_CMD__GPIO1_IO18 0x2e0 0x6c8 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_DAT0__SD1_DATA0 0x2e4 0x6cc 0x000 0x0 0x0 +-#define MX6DL_PAD_SD1_DAT0__GPT_CAPTURE1 0x2e4 0x6cc 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_DAT0__GPIO1_IO16 0x2e4 0x6cc 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_DAT1__SD1_DATA1 0x2e8 0x6d0 0x000 0x0 0x0 +-#define MX6DL_PAD_SD1_DAT1__PWM3_OUT 0x2e8 0x6d0 0x000 0x2 0x0 +-#define MX6DL_PAD_SD1_DAT1__GPT_CAPTURE2 0x2e8 0x6d0 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_DAT1__GPIO1_IO17 0x2e8 0x6d0 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_DAT2__SD1_DATA2 0x2ec 0x6d4 0x000 0x0 0x0 +-#define MX6DL_PAD_SD1_DAT2__GPT_COMPARE2 0x2ec 0x6d4 0x000 0x2 0x0 +-#define MX6DL_PAD_SD1_DAT2__PWM2_OUT 0x2ec 0x6d4 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_DAT2__WDOG1_B 0x2ec 0x6d4 0x000 0x4 0x0 +-#define MX6DL_PAD_SD1_DAT2__GPIO1_IO19 0x2ec 0x6d4 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_DAT2__WDOG1_RESET_B_DEB 0x2ec 0x6d4 0x000 0x6 0x0 +-#define MX6DL_PAD_SD1_DAT3__SD1_DATA3 0x2f0 0x6d8 0x000 0x0 0x0 +-#define MX6DL_PAD_SD1_DAT3__GPT_COMPARE3 0x2f0 0x6d8 0x000 0x2 0x0 +-#define MX6DL_PAD_SD1_DAT3__PWM1_OUT 0x2f0 0x6d8 0x000 0x3 0x0 +-#define MX6DL_PAD_SD1_DAT3__WDOG2_B 0x2f0 0x6d8 0x000 0x4 0x0 +-#define MX6DL_PAD_SD1_DAT3__GPIO1_IO21 0x2f0 0x6d8 0x000 0x5 0x0 +-#define MX6DL_PAD_SD1_DAT3__WDOG2_RESET_B_DEB 0x2f0 0x6d8 0x000 0x6 0x0 +-#define MX6DL_PAD_SD2_CLK__SD2_CLK 0x2f4 0x6dc 0x930 0x0 0x1 +-#define MX6DL_PAD_SD2_CLK__KEY_COL5 0x2f4 0x6dc 0x8c0 0x2 0x3 +-#define MX6DL_PAD_SD2_CLK__AUD4_RXFS 0x2f4 0x6dc 0x7a4 0x3 0x1 +-#define MX6DL_PAD_SD2_CLK__GPIO1_IO10 0x2f4 0x6dc 0x000 0x5 0x0 +-#define MX6DL_PAD_SD2_CMD__SD2_CMD 0x2f8 0x6e0 0x000 0x0 0x0 +-#define MX6DL_PAD_SD2_CMD__KEY_ROW5 0x2f8 0x6e0 0x8cc 0x2 0x2 +-#define MX6DL_PAD_SD2_CMD__AUD4_RXC 0x2f8 0x6e0 0x7a0 0x3 0x1 +-#define MX6DL_PAD_SD2_CMD__GPIO1_IO11 0x2f8 0x6e0 0x000 0x5 0x0 +-#define MX6DL_PAD_SD2_DAT0__SD2_DATA0 0x2fc 0x6e4 0x000 0x0 0x0 +-#define MX6DL_PAD_SD2_DAT0__AUD4_RXD 0x2fc 0x6e4 0x798 0x3 0x1 +-#define MX6DL_PAD_SD2_DAT0__KEY_ROW7 0x2fc 0x6e4 0x8d4 0x4 0x2 +-#define MX6DL_PAD_SD2_DAT0__GPIO1_IO15 0x2fc 0x6e4 0x000 0x5 0x0 +-#define MX6DL_PAD_SD2_DAT0__DCIC2_OUT 0x2fc 0x6e4 0x000 0x6 0x0 +-#define MX6DL_PAD_SD2_DAT1__SD2_DATA1 0x300 0x6e8 0x000 0x0 0x0 +-#define MX6DL_PAD_SD2_DAT1__EIM_CS2_B 0x300 0x6e8 0x000 0x2 0x0 +-#define MX6DL_PAD_SD2_DAT1__AUD4_TXFS 0x300 0x6e8 0x7ac 0x3 0x1 +-#define MX6DL_PAD_SD2_DAT1__KEY_COL7 0x300 0x6e8 0x8c8 0x4 0x2 +-#define MX6DL_PAD_SD2_DAT1__GPIO1_IO14 0x300 0x6e8 0x000 0x5 0x0 +-#define MX6DL_PAD_SD2_DAT2__SD2_DATA2 0x304 0x6ec 0x000 0x0 0x0 +-#define MX6DL_PAD_SD2_DAT2__EIM_CS3_B 0x304 0x6ec 0x000 0x2 0x0 +-#define MX6DL_PAD_SD2_DAT2__AUD4_TXD 0x304 0x6ec 0x79c 0x3 0x1 +-#define MX6DL_PAD_SD2_DAT2__KEY_ROW6 0x304 0x6ec 0x8d0 0x4 0x2 +-#define MX6DL_PAD_SD2_DAT2__GPIO1_IO13 0x304 0x6ec 0x000 0x5 0x0 +-#define MX6DL_PAD_SD2_DAT3__SD2_DATA3 0x308 0x6f0 0x000 0x0 0x0 +-#define MX6DL_PAD_SD2_DAT3__KEY_COL6 0x308 0x6f0 0x8c4 0x2 0x2 +-#define MX6DL_PAD_SD2_DAT3__AUD4_TXC 0x308 0x6f0 0x7a8 0x3 0x1 +-#define MX6DL_PAD_SD2_DAT3__GPIO1_IO12 0x308 0x6f0 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_CLK__SD3_CLK 0x30c 0x6f4 0x934 0x0 0x1 +-#define MX6DL_PAD_SD3_CLK__UART2_RTS_B 0x30c 0x6f4 0x900 0x1 0x2 +-#define MX6DL_PAD_SD3_CLK__UART2_CTS_B 0x30c 0x6f4 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_CLK__FLEXCAN1_RX 0x30c 0x6f4 0x7c8 0x2 0x2 +-#define MX6DL_PAD_SD3_CLK__GPIO7_IO03 0x30c 0x6f4 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_CMD__SD3_CMD 0x310 0x6f8 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_CMD__UART2_CTS_B 0x310 0x6f8 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_CMD__UART2_RTS_B 0x310 0x6f8 0x900 0x1 0x3 +-#define MX6DL_PAD_SD3_CMD__FLEXCAN1_TX 0x310 0x6f8 0x000 0x2 0x0 +-#define MX6DL_PAD_SD3_CMD__GPIO7_IO02 0x310 0x6f8 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT0__SD3_DATA0 0x314 0x6fc 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT0__UART1_CTS_B 0x314 0x6fc 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT0__UART1_RTS_B 0x314 0x6fc 0x8f8 0x1 0x2 +-#define MX6DL_PAD_SD3_DAT0__FLEXCAN2_TX 0x314 0x6fc 0x000 0x2 0x0 +-#define MX6DL_PAD_SD3_DAT0__GPIO7_IO04 0x314 0x6fc 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT1__SD3_DATA1 0x318 0x700 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT1__UART1_RTS_B 0x318 0x700 0x8f8 0x1 0x3 +-#define MX6DL_PAD_SD3_DAT1__UART1_CTS_B 0x318 0x700 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT1__FLEXCAN2_RX 0x318 0x700 0x7cc 0x2 0x1 +-#define MX6DL_PAD_SD3_DAT1__GPIO7_IO05 0x318 0x700 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT2__SD3_DATA2 0x31c 0x704 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT2__GPIO7_IO06 0x31c 0x704 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT3__SD3_DATA3 0x320 0x708 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT3__UART3_CTS_B 0x320 0x708 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT3__UART3_RTS_B 0x320 0x708 0x908 0x1 0x4 +-#define MX6DL_PAD_SD3_DAT3__GPIO7_IO07 0x320 0x708 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT4__SD3_DATA4 0x324 0x70c 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT4__UART2_RX_DATA 0x324 0x70c 0x904 0x1 0x4 +-#define MX6DL_PAD_SD3_DAT4__UART2_TX_DATA 0x324 0x70c 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT4__GPIO7_IO01 0x324 0x70c 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT5__SD3_DATA5 0x328 0x710 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT5__UART2_TX_DATA 0x328 0x710 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT5__UART2_RX_DATA 0x328 0x710 0x904 0x1 0x5 +-#define MX6DL_PAD_SD3_DAT5__GPIO7_IO00 0x328 0x710 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT6__SD3_DATA6 0x32c 0x714 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT6__UART1_RX_DATA 0x32c 0x714 0x8fc 0x1 0x2 +-#define MX6DL_PAD_SD3_DAT6__UART1_TX_DATA 0x32c 0x714 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT6__GPIO6_IO18 0x32c 0x714 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_DAT7__SD3_DATA7 0x330 0x718 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_DAT7__UART1_TX_DATA 0x330 0x718 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_DAT7__UART1_RX_DATA 0x330 0x718 0x8fc 0x1 0x3 +-#define MX6DL_PAD_SD3_DAT7__GPIO6_IO17 0x330 0x718 0x000 0x5 0x0 +-#define MX6DL_PAD_SD3_RST__SD3_RESET 0x334 0x71c 0x000 0x0 0x0 +-#define MX6DL_PAD_SD3_RST__UART3_RTS_B 0x334 0x71c 0x908 0x1 0x5 +-#define MX6DL_PAD_SD3_RST__UART3_CTS_B 0x334 0x71c 0x000 0x1 0x0 +-#define MX6DL_PAD_SD3_RST__GPIO7_IO08 0x334 0x71c 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_CLK__SD4_CLK 0x338 0x720 0x938 0x0 0x1 +-#define MX6DL_PAD_SD4_CLK__NAND_WE_B 0x338 0x720 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_CLK__UART3_RX_DATA 0x338 0x720 0x90c 0x2 0x2 +-#define MX6DL_PAD_SD4_CLK__UART3_TX_DATA 0x338 0x720 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_CLK__GPIO7_IO10 0x338 0x720 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_CMD__SD4_CMD 0x33c 0x724 0x000 0x0 0x0 +-#define MX6DL_PAD_SD4_CMD__NAND_RE_B 0x33c 0x724 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_CMD__UART3_TX_DATA 0x33c 0x724 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_CMD__UART3_RX_DATA 0x33c 0x724 0x90c 0x2 0x3 +-#define MX6DL_PAD_SD4_CMD__GPIO7_IO09 0x33c 0x724 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT0__SD4_DATA0 0x340 0x728 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT0__NAND_DQS 0x340 0x728 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT0__GPIO2_IO08 0x340 0x728 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT1__SD4_DATA1 0x344 0x72c 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT1__PWM3_OUT 0x344 0x72c 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT1__GPIO2_IO09 0x344 0x72c 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT2__SD4_DATA2 0x348 0x730 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT2__PWM4_OUT 0x348 0x730 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT2__GPIO2_IO10 0x348 0x730 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT3__SD4_DATA3 0x34c 0x734 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT3__GPIO2_IO11 0x34c 0x734 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT4__SD4_DATA4 0x350 0x738 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT4__UART2_RX_DATA 0x350 0x738 0x904 0x2 0x6 +-#define MX6DL_PAD_SD4_DAT4__UART2_TX_DATA 0x350 0x738 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT4__GPIO2_IO12 0x350 0x738 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT5__SD4_DATA5 0x354 0x73c 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT5__UART2_RTS_B 0x354 0x73c 0x900 0x2 0x4 +-#define MX6DL_PAD_SD4_DAT5__UART2_CTS_B 0x354 0x73c 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT5__GPIO2_IO13 0x354 0x73c 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT6__SD4_DATA6 0x358 0x740 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT6__UART2_CTS_B 0x358 0x740 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT6__UART2_RTS_B 0x358 0x740 0x900 0x2 0x5 +-#define MX6DL_PAD_SD4_DAT6__GPIO2_IO14 0x358 0x740 0x000 0x5 0x0 +-#define MX6DL_PAD_SD4_DAT7__SD4_DATA7 0x35c 0x744 0x000 0x1 0x0 +-#define MX6DL_PAD_SD4_DAT7__UART2_TX_DATA 0x35c 0x744 0x000 0x2 0x0 +-#define MX6DL_PAD_SD4_DAT7__UART2_RX_DATA 0x35c 0x744 0x904 0x2 0x7 +-#define MX6DL_PAD_SD4_DAT7__GPIO2_IO15 0x35c 0x744 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x04c 0x360 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__AUD3_RXC 0x04c 0x360 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__ECSPI2_MISO 0x04c 0x360 0x7f8 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x04c 0x360 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__UART1_RX_DATA 0x04c 0x360 0x8fc 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__GPIO5_IO28 0x04c 0x360 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__ARM_TRACE07 0x04c 0x360 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x050 0x364 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__AUD3_RXFS 0x050 0x364 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__ECSPI2_SS0 0x050 0x364 0x800 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x050 0x364 0x8fc 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT11__UART1_TX_DATA 0x050 0x364 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__GPIO5_IO29 0x050 0x364 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__ARM_TRACE08 0x050 0x364 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x054 0x368 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__EIM_DATA08 0x054 0x368 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x054 0x368 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__UART4_RX_DATA 0x054 0x368 0x914 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__GPIO5_IO30 0x054 0x368 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__ARM_TRACE09 0x054 0x368 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x058 0x36c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__EIM_DATA09 0x058 0x36c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x058 0x36c 0x914 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT13__UART4_TX_DATA 0x058 0x36c 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31 0x058 0x36c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__ARM_TRACE10 0x058 0x36c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x05c 0x370 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__EIM_DATA10 0x05c 0x370 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__UART5_TX_DATA 0x05c 0x370 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__UART5_RX_DATA 0x05c 0x370 0x91c 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00 0x05c 0x370 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__ARM_TRACE11 0x05c 0x370 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x060 0x374 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__EIM_DATA11 0x060 0x374 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__UART5_RX_DATA 0x060 0x374 0x91c 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT15__UART5_TX_DATA 0x060 0x374 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__GPIO6_IO01 0x060 0x374 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__ARM_TRACE12 0x060 0x374 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x064 0x378 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__EIM_DATA12 0x064 0x378 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x064 0x378 0x910 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__UART4_CTS_B 0x064 0x378 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__GPIO6_IO02 0x064 0x378 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__ARM_TRACE13 0x064 0x378 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x068 0x37c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__EIM_DATA13 0x068 0x37c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x068 0x37c 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__UART4_RTS_B 0x068 0x37c 0x910 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03 0x068 0x37c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__ARM_TRACE14 0x068 0x37c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x06c 0x380 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__EIM_DATA14 0x06c 0x380 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__UART5_RTS_B 0x06c 0x380 0x918 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__UART5_CTS_B 0x06c 0x380 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04 0x06c 0x380 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__ARM_TRACE15 0x06c 0x380 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x070 0x384 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__EIM_DATA15 0x070 0x384 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__UART5_CTS_B 0x070 0x384 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__UART5_RTS_B 0x070 0x384 0x918 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT19__GPIO6_IO05 0x070 0x384 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__IPU1_CSI0_DATA04 0x074 0x388 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__EIM_DATA02 0x074 0x388 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__ECSPI1_SCLK 0x074 0x388 0x7d8 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__KEY_COL5 0x074 0x388 0x8c0 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x074 0x388 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__GPIO5_IO22 0x074 0x388 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__ARM_TRACE01 0x074 0x388 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__IPU1_CSI0_DATA05 0x078 0x38c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__EIM_DATA03 0x078 0x38c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__ECSPI1_MOSI 0x078 0x38c 0x7e0 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__KEY_ROW5 0x078 0x38c 0x8cc 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x078 0x38c 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23 0x078 0x38c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__ARM_TRACE02 0x078 0x38c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__IPU1_CSI0_DATA06 0x07c 0x390 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__EIM_DATA04 0x07c 0x390 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__ECSPI1_MISO 0x07c 0x390 0x7dc 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__KEY_COL6 0x07c 0x390 0x8c4 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x07c 0x390 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__GPIO5_IO24 0x07c 0x390 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__ARM_TRACE03 0x07c 0x390 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x080 0x394 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__EIM_DATA05 0x080 0x394 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__ECSPI1_SS0 0x080 0x394 0x7e4 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__KEY_ROW6 0x080 0x394 0x8d0 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x080 0x394 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__GPIO5_IO25 0x080 0x394 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__ARM_TRACE04 0x080 0x394 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x084 0x398 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__EIM_DATA06 0x084 0x398 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__ECSPI2_SCLK 0x084 0x398 0x7f4 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__KEY_COL7 0x084 0x398 0x8c8 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x084 0x398 0x86c 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26 0x084 0x398 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__ARM_TRACE05 0x084 0x398 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x088 0x39c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__EIM_DATA07 0x088 0x39c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__ECSPI2_MOSI 0x088 0x39c 0x7fc 0x2 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__KEY_ROW7 0x088 0x39c 0x8d4 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x088 0x39c 0x868 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27 0x088 0x39c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__ARM_TRACE06 0x088 0x39c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x08c 0x3a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__EIM_DATA00 0x08c 0x3a0 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x08c 0x3a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__ARM_TRACE_CLK 0x08c 0x3a0 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x090 0x3a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0x090 0x3a4 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19 0x090 0x3a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__ARM_TRACE_CTL 0x090 0x3a4 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x094 0x3a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x094 0x3a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__ARM_EVENTO 0x094 0x3a8 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x098 0x3ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__EIM_DATA01 0x098 0x3ac 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x098 0x3ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__ARM_TRACE00 0x098 0x3ac 0x000 0x7 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x09c 0x3b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__LCD_CLK 0x09c 0x3b0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__GPIO4_IO16 0x09c 0x3b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__LCD_WR_RWN 0x09c 0x3b0 0x000 0x8 0x0 ++#define MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x0a0 0x3b4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN15__LCD_ENABLE 0x0a0 0x3b4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN15__AUD6_TXC 0x0a0 0x3b4 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN15__GPIO4_IO17 0x0a0 0x3b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN15__LCD_RD_E 0x0a0 0x3b4 0x000 0x8 0x0 ++#define MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x0a4 0x3b8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN2__LCD_HSYNC 0x0a4 0x3b8 0x8d8 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN2__AUD6_TXD 0x0a4 0x3b8 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN2__GPIO4_IO18 0x0a4 0x3b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN2__LCD_RS 0x0a4 0x3b8 0x000 0x8 0x0 ++#define MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x0a8 0x3bc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN3__LCD_VSYNC 0x0a8 0x3bc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN3__AUD6_TXFS 0x0a8 0x3bc 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN3__GPIO4_IO19 0x0a8 0x3bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN3__LCD_CS 0x0a8 0x3bc 0x000 0x8 0x0 ++#define MX6QDL_PAD_DI0_PIN4__IPU1_DI0_PIN04 0x0ac 0x3c0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN4__LCD_BUSY 0x0ac 0x3c0 0x8d8 0x1 0x1 ++#define MX6QDL_PAD_DI0_PIN4__AUD6_RXD 0x0ac 0x3c0 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN4__SD1_WP 0x0ac 0x3c0 0x92c 0x3 0x0 ++#define MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x0ac 0x3c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN4__LCD_RESET 0x0ac 0x3c0 0x000 0x8 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x0b0 0x3c4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__LCD_DATA00 0x0b0 0x3c4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x0b0 0x3c4 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__GPIO4_IO21 0x0b0 0x3c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x0b4 0x3c8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__LCD_DATA01 0x0b4 0x3c8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x0b4 0x3c8 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__GPIO4_IO22 0x0b4 0x3c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x0b8 0x3cc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__LCD_DATA10 0x0b8 0x3cc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__GPIO4_IO31 0x0b8 0x3cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x0bc 0x3d0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__LCD_DATA11 0x0bc 0x3d0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05 0x0bc 0x3d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x0c0 0x3d4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__LCD_DATA12 0x0c0 0x3d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__GPIO5_IO06 0x0c0 0x3d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x0c4 0x3d8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__LCD_DATA13 0x0c4 0x3d8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__AUD5_RXFS 0x0c4 0x3d8 0x7bc 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x0c4 0x3d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x0c8 0x3dc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__LCD_DATA14 0x0c8 0x3dc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__AUD5_RXC 0x0c8 0x3dc 0x7b8 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__GPIO5_IO08 0x0c8 0x3dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x0cc 0x3e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__LCD_DATA15 0x0cc 0x3e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__ECSPI1_SS1 0x0cc 0x3e0 0x7e8 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__ECSPI2_SS1 0x0cc 0x3e0 0x804 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09 0x0cc 0x3e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x0d0 0x3e4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__LCD_DATA16 0x0d0 0x3e4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI 0x0d0 0x3e4 0x7fc 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT16__AUD5_TXC 0x0d0 0x3e4 0x7c0 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__SDMA_EXT_EVENT0 0x0d0 0x3e4 0x8e8 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__GPIO5_IO10 0x0d0 0x3e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x0d4 0x3e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__LCD_DATA17 0x0d4 0x3e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO 0x0d4 0x3e8 0x7f8 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT17__AUD5_TXD 0x0d4 0x3e8 0x7b4 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__SDMA_EXT_EVENT1 0x0d4 0x3e8 0x8ec 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__GPIO5_IO11 0x0d4 0x3e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x0d8 0x3ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__LCD_DATA18 0x0d8 0x3ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__ECSPI2_SS0 0x0d8 0x3ec 0x800 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS 0x0d8 0x3ec 0x7c4 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__AUD4_RXFS 0x0d8 0x3ec 0x7a4 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x0d8 0x3ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__EIM_CS2_B 0x0d8 0x3ec 0x000 0x7 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x0dc 0x3f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__LCD_DATA19 0x0dc 0x3f0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK 0x0dc 0x3f0 0x7f4 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x0dc 0x3f0 0x7b0 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__AUD4_RXC 0x0dc 0x3f0 0x7a0 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x0dc 0x3f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__EIM_CS3_B 0x0dc 0x3f0 0x000 0x7 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x0e0 0x3f4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__LCD_DATA02 0x0e0 0x3f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x0e0 0x3f4 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__GPIO4_IO23 0x0e0 0x3f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x0e4 0x3f8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__LCD_DATA20 0x0e4 0x3f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__ECSPI1_SCLK 0x0e4 0x3f8 0x7d8 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x0e4 0x3f8 0x7a8 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x0e4 0x3f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x0e8 0x3fc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__LCD_DATA21 0x0e8 0x3fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__ECSPI1_MOSI 0x0e8 0x3fc 0x7e0 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x0e8 0x3fc 0x79c 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x0e8 0x3fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x0ec 0x400 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__LCD_DATA22 0x0ec 0x400 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__ECSPI1_MISO 0x0ec 0x400 0x7dc 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x0ec 0x400 0x7ac 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x0ec 0x400 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x0f0 0x404 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__LCD_DATA23 0x0f0 0x404 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__ECSPI1_SS0 0x0f0 0x404 0x7e4 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT23__AUD4_RXD 0x0f0 0x404 0x798 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x0f0 0x404 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x0f4 0x408 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__LCD_DATA03 0x0f4 0x408 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__ECSPI3_SS0 0x0f4 0x408 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x0f4 0x408 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x0f8 0x40c 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__LCD_DATA04 0x0f8 0x40c 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__ECSPI3_SS1 0x0f8 0x40c 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__GPIO4_IO25 0x0f8 0x40c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x0fc 0x410 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__LCD_DATA05 0x0fc 0x410 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__ECSPI3_SS2 0x0fc 0x410 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__AUD6_RXFS 0x0fc 0x410 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26 0x0fc 0x410 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x100 0x414 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__LCD_DATA06 0x100 0x414 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__ECSPI3_SS3 0x100 0x414 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__AUD6_RXC 0x100 0x414 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__GPIO4_IO27 0x100 0x414 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x104 0x418 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__LCD_DATA07 0x104 0x418 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__ECSPI3_RDY 0x104 0x418 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__GPIO4_IO28 0x104 0x418 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x108 0x41c 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__LCD_DATA08 0x108 0x41c 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x108 0x41c 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x108 0x41c 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__GPIO4_IO29 0x108 0x41c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10c 0x420 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__LCD_DATA09 0x10c 0x420 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__PWM2_OUT 0x10c 0x420 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__WDOG2_B 0x10c 0x420 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x10c 0x420 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A16__EIM_ADDR16 0x110 0x4e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A16__IPU1_DI1_DISP_CLK 0x110 0x4e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A16__IPU1_CSI1_PIXCLK 0x110 0x4e0 0x8b8 0x2 0x0 ++#define MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x110 0x4e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A16__SRC_BOOT_CFG16 0x110 0x4e0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A16__EPDC_DATA00 0x110 0x4e0 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A17__EIM_ADDR17 0x114 0x4e4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A17__IPU1_DISP1_DATA12 0x114 0x4e4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A17__IPU1_CSI1_DATA12 0x114 0x4e4 0x890 0x2 0x0 ++#define MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x114 0x4e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A17__SRC_BOOT_CFG17 0x114 0x4e4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A17__EPDC_PWR_STAT 0x114 0x4e4 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A18__EIM_ADDR18 0x118 0x4e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A18__IPU1_DISP1_DATA13 0x118 0x4e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A18__IPU1_CSI1_DATA13 0x118 0x4e8 0x894 0x2 0x0 ++#define MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x118 0x4e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A18__SRC_BOOT_CFG18 0x118 0x4e8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A18__EPDC_PWR_CTRL0 0x118 0x4e8 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A19__EIM_ADDR19 0x11c 0x4ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A19__IPU1_DISP1_DATA14 0x11c 0x4ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A19__IPU1_CSI1_DATA14 0x11c 0x4ec 0x898 0x2 0x0 ++#define MX6QDL_PAD_EIM_A19__GPIO2_IO19 0x11c 0x4ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A19__SRC_BOOT_CFG19 0x11c 0x4ec 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A19__EPDC_PWR_CTRL1 0x11c 0x4ec 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A20__EIM_ADDR20 0x120 0x4f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A20__IPU1_DISP1_DATA15 0x120 0x4f0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A20__IPU1_CSI1_DATA15 0x120 0x4f0 0x89c 0x2 0x0 ++#define MX6QDL_PAD_EIM_A20__GPIO2_IO18 0x120 0x4f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A20__SRC_BOOT_CFG20 0x120 0x4f0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A20__EPDC_PWR_CTRL2 0x120 0x4f0 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A21__EIM_ADDR21 0x124 0x4f4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A21__IPU1_DISP1_DATA16 0x124 0x4f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A21__IPU1_CSI1_DATA16 0x124 0x4f4 0x8a0 0x2 0x0 ++#define MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x124 0x4f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A21__SRC_BOOT_CFG21 0x124 0x4f4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A21__EPDC_GDCLK 0x124 0x4f4 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A22__EIM_ADDR22 0x128 0x4f8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A22__IPU1_DISP1_DATA17 0x128 0x4f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A22__IPU1_CSI1_DATA17 0x128 0x4f8 0x8a4 0x2 0x0 ++#define MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x128 0x4f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A22__SRC_BOOT_CFG22 0x128 0x4f8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A22__EPDC_GDSP 0x128 0x4f8 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A23__EIM_ADDR23 0x12c 0x4fc 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU1_DISP1_DATA18 0x12c 0x4fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU1_CSI1_DATA18 0x12c 0x4fc 0x8a8 0x2 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU1_SISG3 0x12c 0x4fc 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A23__GPIO6_IO06 0x12c 0x4fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A23__SRC_BOOT_CFG23 0x12c 0x4fc 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A23__EPDC_GDOE 0x12c 0x4fc 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A24__EIM_ADDR24 0x130 0x500 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU1_DISP1_DATA19 0x130 0x500 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU1_CSI1_DATA19 0x130 0x500 0x8ac 0x2 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU1_SISG2 0x130 0x500 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x130 0x500 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A24__SRC_BOOT_CFG24 0x130 0x500 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A24__EPDC_GDRL 0x130 0x500 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A25__EIM_ADDR25 0x134 0x504 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A25__ECSPI4_SS1 0x134 0x504 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A25__ECSPI2_RDY 0x134 0x504 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_A25__IPU1_DI1_PIN12 0x134 0x504 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_A25__IPU1_DI0_D1_CS 0x134 0x504 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x134 0x504 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x134 0x504 0x85c 0x6 0x0 ++#define MX6QDL_PAD_EIM_A25__EPDC_DATA15 0x134 0x504 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_A25__EIM_ACLK_FREERUN 0x134 0x504 0x000 0x9 0x0 ++#define MX6QDL_PAD_EIM_BCLK__EIM_BCLK 0x138 0x508 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_BCLK__IPU1_DI1_PIN16 0x138 0x508 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x138 0x508 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_BCLK__EPDC_SDCE9 0x138 0x508 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0x13c 0x50c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_CS0__IPU1_DI1_PIN05 0x13c 0x50c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x13c 0x50c 0x7f4 0x2 0x2 ++#define MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x13c 0x50c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_CS0__EPDC_DATA06 0x13c 0x50c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0x140 0x510 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_CS1__IPU1_DI1_PIN06 0x140 0x510 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x140 0x510 0x7fc 0x2 0x2 ++#define MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x140 0x510 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_CS1__EPDC_DATA08 0x140 0x510 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D16__EIM_DATA16 0x144 0x514 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x144 0x514 0x7d8 0x1 0x2 ++#define MX6QDL_PAD_EIM_D16__IPU1_DI0_PIN05 0x144 0x514 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D16__IPU1_CSI1_DATA18 0x144 0x514 0x8a8 0x3 0x1 ++#define MX6QDL_PAD_EIM_D16__HDMI_TX_DDC_SDA 0x144 0x514 0x864 0x4 0x0 ++#define MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x144 0x514 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D16__I2C2_SDA 0x144 0x514 0x874 0x6 0x0 ++#define MX6QDL_PAD_EIM_D16__EPDC_DATA10 0x144 0x514 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D17__EIM_DATA17 0x148 0x518 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x148 0x518 0x7dc 0x1 0x2 ++#define MX6QDL_PAD_EIM_D17__IPU1_DI0_PIN06 0x148 0x518 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D17__IPU1_CSI1_PIXCLK 0x148 0x518 0x8b8 0x3 0x1 ++#define MX6QDL_PAD_EIM_D17__DCIC1_OUT 0x148 0x518 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D17__GPIO3_IO17 0x148 0x518 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D17__I2C3_SCL 0x148 0x518 0x878 0x6 0x0 ++#define MX6QDL_PAD_EIM_D17__EPDC_VCOM0 0x148 0x518 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D18__EIM_DATA18 0x14c 0x51c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x14c 0x51c 0x7e0 0x1 0x2 ++#define MX6QDL_PAD_EIM_D18__IPU1_DI0_PIN07 0x14c 0x51c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D18__IPU1_CSI1_DATA17 0x14c 0x51c 0x8a4 0x3 0x1 ++#define MX6QDL_PAD_EIM_D18__IPU1_DI1_D0_CS 0x14c 0x51c 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D18__GPIO3_IO18 0x14c 0x51c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D18__I2C3_SDA 0x14c 0x51c 0x87c 0x6 0x0 ++#define MX6QDL_PAD_EIM_D18__EPDC_VCOM1 0x14c 0x51c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D19__EIM_DATA19 0x150 0x520 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D19__ECSPI1_SS1 0x150 0x520 0x7e8 0x1 0x1 ++#define MX6QDL_PAD_EIM_D19__IPU1_DI0_PIN08 0x150 0x520 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D19__IPU1_CSI1_DATA16 0x150 0x520 0x8a0 0x3 0x1 ++#define MX6QDL_PAD_EIM_D19__UART1_CTS_B 0x150 0x520 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D19__UART1_RTS_B 0x150 0x520 0x8f8 0x4 0x0 ++#define MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x150 0x520 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D19__EPIT1_OUT 0x150 0x520 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D19__EPDC_DATA12 0x150 0x520 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D20__EIM_DATA20 0x154 0x524 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D20__ECSPI4_SS0 0x154 0x524 0x808 0x1 0x0 ++#define MX6QDL_PAD_EIM_D20__IPU1_DI0_PIN16 0x154 0x524 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D20__IPU1_CSI1_DATA15 0x154 0x524 0x89c 0x3 0x1 ++#define MX6QDL_PAD_EIM_D20__UART1_RTS_B 0x154 0x524 0x8f8 0x4 0x1 ++#define MX6QDL_PAD_EIM_D20__UART1_CTS_B 0x154 0x524 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x154 0x524 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D20__EPIT2_OUT 0x154 0x524 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D21__EIM_DATA21 0x158 0x528 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D21__ECSPI4_SCLK 0x158 0x528 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D21__IPU1_DI0_PIN17 0x158 0x528 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D21__IPU1_CSI1_DATA11 0x158 0x528 0x88c 0x3 0x0 ++#define MX6QDL_PAD_EIM_D21__USB_OTG_OC 0x158 0x528 0x920 0x4 0x0 ++#define MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x158 0x528 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D21__I2C1_SCL 0x158 0x528 0x868 0x6 0x1 ++#define MX6QDL_PAD_EIM_D21__SPDIF_IN 0x158 0x528 0x8f0 0x7 0x0 ++#define MX6QDL_PAD_EIM_D22__EIM_DATA22 0x15c 0x52c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D22__ECSPI4_MISO 0x15c 0x52c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D22__IPU1_DI0_PIN01 0x15c 0x52c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D22__IPU1_CSI1_DATA10 0x15c 0x52c 0x888 0x3 0x0 ++#define MX6QDL_PAD_EIM_D22__USB_OTG_PWR 0x15c 0x52c 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x15c 0x52c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D22__SPDIF_OUT 0x15c 0x52c 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D22__EPDC_SDCE6 0x15c 0x52c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D23__EIM_DATA23 0x160 0x530 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI0_D0_CS 0x160 0x530 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x160 0x530 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D23__UART3_RTS_B 0x160 0x530 0x908 0x2 0x0 ++#define MX6QDL_PAD_EIM_D23__UART1_DCD_B 0x160 0x530 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_CSI1_DATA_EN 0x160 0x530 0x8b0 0x4 0x0 ++#define MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x160 0x530 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI1_PIN02 0x160 0x530 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI1_PIN14 0x160 0x530 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D23__EPDC_DATA11 0x160 0x530 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D24__EIM_DATA24 0x164 0x534 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI4_SS2 0x164 0x534 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x164 0x534 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D24__UART3_RX_DATA 0x164 0x534 0x90c 0x2 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI1_SS2 0x164 0x534 0x7ec 0x3 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI2_SS2 0x164 0x534 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D24__GPIO3_IO24 0x164 0x534 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D24__AUD5_RXFS 0x164 0x534 0x7bc 0x6 0x1 ++#define MX6QDL_PAD_EIM_D24__UART1_DTR_B 0x164 0x534 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D24__EPDC_SDCE7 0x164 0x534 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D25__EIM_DATA25 0x168 0x538 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI4_SS3 0x168 0x538 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x168 0x538 0x90c 0x2 0x1 ++#define MX6QDL_PAD_EIM_D25__UART3_TX_DATA 0x168 0x538 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI1_SS3 0x168 0x538 0x7f0 0x3 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI2_SS3 0x168 0x538 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D25__GPIO3_IO25 0x168 0x538 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D25__AUD5_RXC 0x168 0x538 0x7b8 0x6 0x1 ++#define MX6QDL_PAD_EIM_D25__UART1_DSR_B 0x168 0x538 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D25__EPDC_SDCE8 0x168 0x538 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D26__EIM_DATA26 0x16c 0x53c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_DI1_PIN11 0x16c 0x53c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_CSI0_DATA01 0x16c 0x53c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_CSI1_DATA14 0x16c 0x53c 0x898 0x3 0x1 ++#define MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x16c 0x53c 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D26__UART2_RX_DATA 0x16c 0x53c 0x904 0x4 0x0 ++#define MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x16c 0x53c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_SISG2 0x16c 0x53c 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_DISP1_DATA22 0x16c 0x53c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D26__EPDC_SDOED 0x16c 0x53c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D27__EIM_DATA27 0x170 0x540 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_DI1_PIN13 0x170 0x540 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_CSI0_DATA00 0x170 0x540 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_CSI1_DATA13 0x170 0x540 0x894 0x3 0x1 ++#define MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x170 0x540 0x904 0x4 0x1 ++#define MX6QDL_PAD_EIM_D27__UART2_TX_DATA 0x170 0x540 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x170 0x540 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_SISG3 0x170 0x540 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_DISP1_DATA23 0x170 0x540 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D27__EPDC_SDOE 0x170 0x540 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D28__EIM_DATA28 0x174 0x544 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D28__I2C1_SDA 0x174 0x544 0x86c 0x1 0x1 ++#define MX6QDL_PAD_EIM_D28__ECSPI4_MOSI 0x174 0x544 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU1_CSI1_DATA12 0x174 0x544 0x890 0x3 0x1 ++#define MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x174 0x544 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_RTS_B 0x174 0x544 0x900 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_DTE_CTS_B 0x174 0x544 0x900 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_DTE_RTS_B 0x174 0x544 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x174 0x544 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU1_EXT_TRIG 0x174 0x544 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU1_DI0_PIN13 0x174 0x544 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D28__EPDC_PWR_CTRL3 0x174 0x544 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D29__EIM_DATA29 0x178 0x548 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU1_DI1_PIN15 0x178 0x548 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D29__ECSPI4_SS0 0x178 0x548 0x808 0x2 0x1 ++#define MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x178 0x548 0x900 0x4 0x1 ++#define MX6QDL_PAD_EIM_D29__UART2_CTS_B 0x178 0x548 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B 0x178 0x548 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D29__UART2_DTE_CTS_B 0x178 0x548 0x900 0x4 0x1 ++#define MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x178 0x548 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU1_CSI1_VSYNC 0x178 0x548 0x8bc 0x6 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU1_DI0_PIN14 0x178 0x548 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D29__EPDC_PWR_WAKE 0x178 0x548 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D30__EIM_DATA30 0x17c 0x54c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_DISP1_DATA21 0x17c 0x54c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_DI0_PIN11 0x17c 0x54c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_CSI0_DATA03 0x17c 0x54c 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D30__UART3_CTS_B 0x17c 0x54c 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D30__UART3_RTS_B 0x17c 0x54c 0x908 0x4 0x1 ++#define MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x17c 0x54c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D30__USB_H1_OC 0x17c 0x54c 0x924 0x6 0x0 ++#define MX6QDL_PAD_EIM_D30__EPDC_SDOEZ 0x17c 0x54c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D31__EIM_DATA31 0x180 0x550 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_DISP1_DATA20 0x180 0x550 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_DI0_PIN12 0x180 0x550 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_CSI0_DATA02 0x180 0x550 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x180 0x550 0x908 0x4 0x2 ++#define MX6QDL_PAD_EIM_D31__UART3_CTS_B 0x180 0x550 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x180 0x550 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D31__USB_H1_PWR 0x180 0x550 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D31__EPDC_SDCLK_P 0x180 0x550 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_D31__EIM_ACLK_FREERUN 0x180 0x550 0x000 0x9 0x0 ++#define MX6QDL_PAD_EIM_DA0__EIM_AD00 0x184 0x554 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA0__IPU1_DISP1_DATA09 0x184 0x554 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA0__IPU1_CSI1_DATA09 0x184 0x554 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x184 0x554 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA0__SRC_BOOT_CFG00 0x184 0x554 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA0__EPDC_SDCLK_N 0x184 0x554 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA1__EIM_AD01 0x188 0x558 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA1__IPU1_DISP1_DATA08 0x188 0x558 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA1__IPU1_CSI1_DATA08 0x188 0x558 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x188 0x558 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA1__SRC_BOOT_CFG01 0x188 0x558 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA1__EPDC_SDLE 0x188 0x558 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA10__EIM_AD10 0x18c 0x55c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA10__IPU1_DI1_PIN15 0x18c 0x55c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA10__IPU1_CSI1_DATA_EN 0x18c 0x55c 0x8b0 0x2 0x1 ++#define MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x18c 0x55c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA10__SRC_BOOT_CFG10 0x18c 0x55c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA10__EPDC_DATA01 0x18c 0x55c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA11__EIM_AD11 0x190 0x560 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA11__IPU1_DI1_PIN02 0x190 0x560 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA11__IPU1_CSI1_HSYNC 0x190 0x560 0x8b4 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x190 0x560 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA11__SRC_BOOT_CFG11 0x190 0x560 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA11__EPDC_DATA03 0x190 0x560 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA12__EIM_AD12 0x194 0x564 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA12__IPU1_DI1_PIN03 0x194 0x564 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA12__IPU1_CSI1_VSYNC 0x194 0x564 0x8bc 0x2 0x1 ++#define MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x194 0x564 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA12__SRC_BOOT_CFG12 0x194 0x564 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA12__EPDC_DATA02 0x194 0x564 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA13__EIM_AD13 0x198 0x568 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA13__IPU1_DI1_D0_CS 0x198 0x568 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x198 0x568 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA13__SRC_BOOT_CFG13 0x198 0x568 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA13__EPDC_DATA13 0x198 0x568 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA14__EIM_AD14 0x19c 0x56c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA14__IPU1_DI1_D1_CS 0x19c 0x56c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x19c 0x56c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA14__SRC_BOOT_CFG14 0x19c 0x56c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA14__EPDC_DATA14 0x19c 0x56c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA15__EIM_AD15 0x1a0 0x570 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA15__IPU1_DI1_PIN01 0x1a0 0x570 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA15__IPU1_DI1_PIN04 0x1a0 0x570 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x1a0 0x570 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA15__SRC_BOOT_CFG15 0x1a0 0x570 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA15__EPDC_DATA09 0x1a0 0x570 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA2__EIM_AD02 0x1a4 0x574 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA2__IPU1_DISP1_DATA07 0x1a4 0x574 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA2__IPU1_CSI1_DATA07 0x1a4 0x574 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x1a4 0x574 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA2__SRC_BOOT_CFG02 0x1a4 0x574 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA2__EPDC_BDR0 0x1a4 0x574 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA3__EIM_AD03 0x1a8 0x578 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA3__IPU1_DISP1_DATA06 0x1a8 0x578 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA3__IPU1_CSI1_DATA06 0x1a8 0x578 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x1a8 0x578 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA3__SRC_BOOT_CFG03 0x1a8 0x578 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA3__EPDC_BDR1 0x1a8 0x578 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA4__EIM_AD04 0x1ac 0x57c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA4__IPU1_DISP1_DATA05 0x1ac 0x57c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA4__IPU1_CSI1_DATA05 0x1ac 0x57c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x1ac 0x57c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA4__SRC_BOOT_CFG04 0x1ac 0x57c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA4__EPDC_SDCE0 0x1ac 0x57c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA5__EIM_AD05 0x1b0 0x580 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA5__IPU1_DISP1_DATA04 0x1b0 0x580 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA5__IPU1_CSI1_DATA04 0x1b0 0x580 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x1b0 0x580 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA5__SRC_BOOT_CFG05 0x1b0 0x580 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA5__EPDC_SDCE1 0x1b0 0x580 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA6__EIM_AD06 0x1b4 0x584 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA6__IPU1_DISP1_DATA03 0x1b4 0x584 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA6__IPU1_CSI1_DATA03 0x1b4 0x584 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x1b4 0x584 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA6__SRC_BOOT_CFG06 0x1b4 0x584 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA6__EPDC_SDCE2 0x1b4 0x584 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA7__EIM_AD07 0x1b8 0x588 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA7__IPU1_DISP1_DATA02 0x1b8 0x588 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA7__IPU1_CSI1_DATA02 0x1b8 0x588 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x1b8 0x588 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA7__SRC_BOOT_CFG07 0x1b8 0x588 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA7__EPDC_SDCE3 0x1b8 0x588 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA8__EIM_AD08 0x1bc 0x58c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA8__IPU1_DISP1_DATA01 0x1bc 0x58c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA8__IPU1_CSI1_DATA01 0x1bc 0x58c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x1bc 0x58c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA8__SRC_BOOT_CFG08 0x1bc 0x58c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA8__EPDC_SDCE4 0x1bc 0x58c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_DA9__EIM_AD09 0x1c0 0x590 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA9__IPU1_DISP1_DATA00 0x1c0 0x590 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA9__IPU1_CSI1_DATA00 0x1c0 0x590 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x1c0 0x590 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA9__SRC_BOOT_CFG09 0x1c0 0x590 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA9__EPDC_SDCE5 0x1c0 0x590 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_EB0__EIM_EB0_B 0x1c4 0x594 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB0__IPU1_DISP1_DATA11 0x1c4 0x594 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB0__IPU1_CSI1_DATA11 0x1c4 0x594 0x88c 0x2 0x1 ++#define MX6QDL_PAD_EIM_EB0__CCM_PMIC_READY 0x1c4 0x594 0x7d4 0x4 0x0 ++#define MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0x1c4 0x594 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB0__SRC_BOOT_CFG27 0x1c4 0x594 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB0__EPDC_PWR_COM 0x1c4 0x594 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_EB1__EIM_EB1_B 0x1c8 0x598 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB1__IPU1_DISP1_DATA10 0x1c8 0x598 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB1__IPU1_CSI1_DATA10 0x1c8 0x598 0x888 0x2 0x1 ++#define MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x1c8 0x598 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB1__SRC_BOOT_CFG28 0x1c8 0x598 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB1__EPDC_SDSHR 0x1c8 0x598 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_EB2__EIM_EB2_B 0x1cc 0x59c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB2__ECSPI1_SS0 0x1cc 0x59c 0x7e4 0x1 0x2 ++#define MX6QDL_PAD_EIM_EB2__IPU1_CSI1_DATA19 0x1cc 0x59c 0x8ac 0x3 0x1 ++#define MX6QDL_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x1cc 0x59c 0x860 0x4 0x0 ++#define MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x1cc 0x59c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x1cc 0x59c 0x870 0x6 0x0 ++#define MX6QDL_PAD_EIM_EB2__SRC_BOOT_CFG30 0x1cc 0x59c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB2__EPDC_DATA05 0x1cc 0x59c 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_EB3__EIM_EB3_B 0x1d0 0x5a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB3__ECSPI4_RDY 0x1d0 0x5a0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x1d0 0x5a0 0x908 0x2 0x3 ++#define MX6QDL_PAD_EIM_EB3__UART3_CTS_B 0x1d0 0x5a0 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_EB3__UART1_RI_B 0x1d0 0x5a0 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_EB3__IPU1_CSI1_HSYNC 0x1d0 0x5a0 0x8b4 0x4 0x1 ++#define MX6QDL_PAD_EIM_EB3__GPIO2_IO31 0x1d0 0x5a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB3__IPU1_DI1_PIN03 0x1d0 0x5a0 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_EB3__SRC_BOOT_CFG31 0x1d0 0x5a0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB3__EPDC_SDCE0 0x1d0 0x5a0 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_EB3__EIM_ACLK_FREERUN 0x1d0 0x5a0 0x000 0x9 0x0 ++#define MX6QDL_PAD_EIM_LBA__EIM_LBA_B 0x1d4 0x5a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_LBA__IPU1_DI1_PIN17 0x1d4 0x5a4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_LBA__ECSPI2_SS1 0x1d4 0x5a4 0x804 0x2 0x1 ++#define MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x1d4 0x5a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_LBA__SRC_BOOT_CFG26 0x1d4 0x5a4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_LBA__EPDC_DATA04 0x1d4 0x5a4 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_OE__EIM_OE_B 0x1d8 0x5a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_OE__IPU1_DI1_PIN07 0x1d8 0x5a8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x1d8 0x5a8 0x7f8 0x2 0x2 ++#define MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x1d8 0x5a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_OE__EPDC_PWR_IRQ 0x1d8 0x5a8 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_RW__EIM_RW 0x1dc 0x5ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_RW__IPU1_DI1_PIN08 0x1dc 0x5ac 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_RW__ECSPI2_SS0 0x1dc 0x5ac 0x800 0x2 0x2 ++#define MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x1dc 0x5ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_RW__SRC_BOOT_CFG29 0x1dc 0x5ac 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_RW__EPDC_DATA07 0x1dc 0x5ac 0x000 0x8 0x0 ++#define MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0x1e0 0x5b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_WAIT__EIM_DTACK_B 0x1e0 0x5b0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x1e0 0x5b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_WAIT__SRC_BOOT_CFG25 0x1e0 0x5b0 0x000 0x7 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1e4 0x5b4 0x828 0x1 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1e4 0x5b4 0x840 0x2 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__SPDIF_EXT_CLK 0x1e4 0x5b4 0x8f4 0x3 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1e4 0x5b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDC__MLB_DATA 0x1e8 0x5b8 0x8e0 0x0 0x0 ++#define MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1e8 0x5b8 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0 0x1e8 0x5b8 0x858 0x2 0x0 ++#define MX6QDL_PAD_ENET_MDC__ENET_1588_EVENT1_IN 0x1e8 0x5b8 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_MDC__GPIO1_IO31 0x1e8 0x5b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1ec 0x5bc 0x810 0x1 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ESAI_RX_CLK 0x1ec 0x5bc 0x83c 0x2 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ENET_1588_EVENT1_OUT 0x1ec 0x5bc 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_MDIO__GPIO1_IO22 0x1ec 0x5bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDIO__SPDIF_LOCK 0x1ec 0x5bc 0x000 0x6 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1f0 0x5c0 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__ESAI_RX_FS 0x1f0 0x5c0 0x82c 0x2 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1f0 0x5c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__SPDIF_SR_CLK 0x1f0 0x5c0 0x000 0x6 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x1f4 0x5c4 0x790 0x0 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1f4 0x5c4 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__ESAI_RX_HF_CLK 0x1f4 0x5c4 0x834 0x2 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__SPDIF_IN 0x1f4 0x5c4 0x8f0 0x3 0x1 ++#define MX6QDL_PAD_ENET_RX_ER__ENET_1588_EVENT2_OUT 0x1f4 0x5c4 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24 0x1f4 0x5c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1f8 0x5c8 0x818 0x1 0x0 ++#define MX6QDL_PAD_ENET_RXD0__ESAI_TX_HF_CLK 0x1f8 0x5c8 0x838 0x2 0x0 ++#define MX6QDL_PAD_ENET_RXD0__SPDIF_OUT 0x1f8 0x5c8 0x000 0x3 0x0 ++#define MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x1f8 0x5c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_RXD1__MLB_SIG 0x1fc 0x5cc 0x8e4 0x0 0x0 ++#define MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1fc 0x5cc 0x81c 0x1 0x0 ++#define MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS 0x1fc 0x5cc 0x830 0x2 0x0 ++#define MX6QDL_PAD_ENET_RXD1__ENET_1588_EVENT3_OUT 0x1fc 0x5cc 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1fc 0x5cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x200 0x5d0 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x200 0x5d0 0x850 0x2 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x200 0x5d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__I2C4_SCL 0x200 0x5d0 0x880 0x9 0x0 ++#define MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x204 0x5d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1 0x204 0x5d4 0x854 0x2 0x0 ++#define MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x204 0x5d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TXD1__MLB_CLK 0x208 0x5d8 0x8dc 0x0 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x208 0x5d8 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ESAI_TX2_RX3 0x208 0x5d8 0x84c 0x2 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ENET_1588_EVENT0_IN 0x208 0x5d8 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x208 0x5d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TXD1__I2C4_SDA 0x208 0x5d8 0x884 0x9 0x0 ++#define MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x20c 0x5dc 0x000 0x0 0x0 ++#define MX6QDL_PAD_GPIO_0__KEY_COL5 0x20c 0x5dc 0x8c0 0x2 0x1 ++#define MX6QDL_PAD_GPIO_0__ASRC_EXT_CLK 0x20c 0x5dc 0x794 0x3 0x0 ++#define MX6QDL_PAD_GPIO_0__EPIT1_OUT 0x20c 0x5dc 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x20c 0x5dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_0__USB_H1_PWR 0x20c 0x5dc 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_0__SNVS_VIO_5 0x20c 0x5dc 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_1__ESAI_RX_CLK 0x210 0x5e0 0x83c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_1__WDOG2_B 0x210 0x5e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_1__KEY_ROW5 0x210 0x5e0 0x8cc 0x2 0x1 ++#define MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x210 0x5e0 0x790 0x3 0x1 ++#define MX6QDL_PAD_GPIO_1__PWM2_OUT 0x210 0x5e0 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x210 0x5e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_1__SD1_CD_B 0x210 0x5e0 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_16__ESAI_TX3_RX2 0x214 0x5e4 0x850 0x0 0x1 ++#define MX6QDL_PAD_GPIO_16__ENET_1588_EVENT2_IN 0x214 0x5e4 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x214 0x5e4 0x80c 0x2 0x0 ++#define MX6QDL_PAD_GPIO_16__SD1_LCTL 0x214 0x5e4 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_16__SPDIF_IN 0x214 0x5e4 0x8f0 0x4 0x2 ++#define MX6QDL_PAD_GPIO_16__GPIO7_IO11 0x214 0x5e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_16__I2C3_SDA 0x214 0x5e4 0x87c 0x6 0x1 ++#define MX6QDL_PAD_GPIO_16__JTAG_DE_B 0x214 0x5e4 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_17__ESAI_TX0 0x218 0x5e8 0x844 0x0 0x0 ++#define MX6QDL_PAD_GPIO_17__ENET_1588_EVENT3_IN 0x218 0x5e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_17__CCM_PMIC_READY 0x218 0x5e8 0x7d4 0x2 0x1 ++#define MX6QDL_PAD_GPIO_17__SDMA_EXT_EVENT0 0x218 0x5e8 0x8e8 0x3 0x1 ++#define MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x218 0x5e8 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x218 0x5e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_18__ESAI_TX1 0x21c 0x5ec 0x848 0x0 0x0 ++#define MX6QDL_PAD_GPIO_18__ENET_RX_CLK 0x21c 0x5ec 0x814 0x1 0x0 ++#define MX6QDL_PAD_GPIO_18__SD3_VSELECT 0x21c 0x5ec 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_18__SDMA_EXT_EVENT1 0x21c 0x5ec 0x8ec 0x3 0x1 ++#define MX6QDL_PAD_GPIO_18__ASRC_EXT_CLK 0x21c 0x5ec 0x794 0x4 0x1 ++#define MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x21c 0x5ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_18__SNVS_VIO_5_CTL 0x21c 0x5ec 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_19__KEY_COL5 0x220 0x5f0 0x8c0 0x0 0x2 ++#define MX6QDL_PAD_GPIO_19__ENET_1588_EVENT0_OUT 0x220 0x5f0 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_19__SPDIF_OUT 0x220 0x5f0 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_19__CCM_CLKO1 0x220 0x5f0 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_19__ECSPI1_RDY 0x220 0x5f0 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x220 0x5f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_19__ENET_TX_ER 0x220 0x5f0 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_2__ESAI_TX_FS 0x224 0x5f4 0x830 0x0 0x1 ++#define MX6QDL_PAD_GPIO_2__KEY_ROW6 0x224 0x5f4 0x8d0 0x2 0x1 ++#define MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x224 0x5f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_2__SD2_WP 0x224 0x5f4 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_2__MLB_DATA 0x224 0x5f4 0x8e0 0x7 0x1 ++#define MX6QDL_PAD_GPIO_3__ESAI_RX_HF_CLK 0x228 0x5f8 0x834 0x0 0x1 ++#define MX6QDL_PAD_GPIO_3__I2C3_SCL 0x228 0x5f8 0x878 0x2 0x1 ++#define MX6QDL_PAD_GPIO_3__XTALOSC_REF_CLK_24M 0x228 0x5f8 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_3__CCM_CLKO2 0x228 0x5f8 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x228 0x5f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_3__USB_H1_OC 0x228 0x5f8 0x924 0x6 0x1 ++#define MX6QDL_PAD_GPIO_3__MLB_CLK 0x228 0x5f8 0x8dc 0x7 0x1 ++#define MX6QDL_PAD_GPIO_4__ESAI_TX_HF_CLK 0x22c 0x5fc 0x838 0x0 0x1 ++#define MX6QDL_PAD_GPIO_4__KEY_COL7 0x22c 0x5fc 0x8c8 0x2 0x1 ++#define MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x22c 0x5fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_4__SD2_CD_B 0x22c 0x5fc 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_5__ESAI_TX2_RX3 0x230 0x600 0x84c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_5__KEY_ROW7 0x230 0x600 0x8d4 0x2 0x1 ++#define MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x230 0x600 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x230 0x600 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_5__I2C3_SCL 0x230 0x600 0x878 0x6 0x2 ++#define MX6QDL_PAD_GPIO_5__ARM_EVENTI 0x230 0x600 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_6__ESAI_TX_CLK 0x234 0x604 0x840 0x0 0x1 ++#define MX6QDL_PAD_GPIO_6__I2C3_SDA 0x234 0x604 0x87c 0x2 0x2 ++#define MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x234 0x604 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_6__SD2_LCTL 0x234 0x604 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_6__MLB_SIG 0x234 0x604 0x8e4 0x7 0x1 ++#define MX6QDL_PAD_GPIO_7__ESAI_TX4_RX1 0x238 0x608 0x854 0x0 0x1 ++#define MX6QDL_PAD_GPIO_7__EPIT1_OUT 0x238 0x608 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x238 0x608 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_7__UART2_TX_DATA 0x238 0x608 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_7__UART2_RX_DATA 0x238 0x608 0x904 0x4 0x2 ++#define MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x238 0x608 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_7__SPDIF_LOCK 0x238 0x608 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_7__USB_OTG_HOST_MODE 0x238 0x608 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_7__I2C4_SCL 0x238 0x608 0x880 0x8 0x1 ++#define MX6QDL_PAD_GPIO_8__ESAI_TX5_RX0 0x23c 0x60c 0x858 0x0 0x1 ++#define MX6QDL_PAD_GPIO_8__XTALOSC_REF_CLK_32K 0x23c 0x60c 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_8__EPIT2_OUT 0x23c 0x60c 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_8__FLEXCAN1_RX 0x23c 0x60c 0x7c8 0x3 0x0 ++#define MX6QDL_PAD_GPIO_8__UART2_RX_DATA 0x23c 0x60c 0x904 0x4 0x3 ++#define MX6QDL_PAD_GPIO_8__UART2_TX_DATA 0x23c 0x60c 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x23c 0x60c 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_8__SPDIF_SR_CLK 0x23c 0x60c 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_8__USB_OTG_PWR_CTL_WAKE 0x23c 0x60c 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_8__I2C4_SDA 0x23c 0x60c 0x884 0x8 0x1 ++#define MX6QDL_PAD_GPIO_9__ESAI_RX_FS 0x240 0x610 0x82c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_9__WDOG1_B 0x240 0x610 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_9__KEY_COL6 0x240 0x610 0x8c4 0x2 0x1 ++#define MX6QDL_PAD_GPIO_9__CCM_REF_EN_B 0x240 0x610 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_9__PWM1_OUT 0x240 0x610 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x240 0x610 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_9__SD1_WP 0x240 0x610 0x92c 0x6 0x1 ++#define MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x244 0x62c 0x7d8 0x0 0x3 ++#define MX6QDL_PAD_KEY_COL0__ENET_RX_DATA3 0x244 0x62c 0x824 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x244 0x62c 0x7c0 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL0__KEY_COL0 0x244 0x62c 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x244 0x62c 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL0__UART4_RX_DATA 0x244 0x62c 0x914 0x4 0x2 ++#define MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x244 0x62c 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL0__DCIC1_OUT 0x244 0x62c 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x248 0x630 0x7dc 0x0 0x3 ++#define MX6QDL_PAD_KEY_COL1__ENET_MDIO 0x248 0x630 0x810 0x1 0x1 ++#define MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x248 0x630 0x7c4 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL1__KEY_COL1 0x248 0x630 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x248 0x630 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL1__UART5_RX_DATA 0x248 0x630 0x91c 0x4 0x2 ++#define MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x248 0x630 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL1__SD1_VSELECT 0x248 0x630 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL2__ECSPI1_SS1 0x24c 0x634 0x7e8 0x0 0x2 ++#define MX6QDL_PAD_KEY_COL2__ENET_RX_DATA2 0x24c 0x634 0x820 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x24c 0x634 0x000 0x2 0x0 ++#define MX6QDL_PAD_KEY_COL2__KEY_COL2 0x24c 0x634 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL2__ENET_MDC 0x24c 0x634 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x24c 0x634 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL2__USB_H1_PWR_CTL_WAKE 0x24c 0x634 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL3__ECSPI1_SS3 0x250 0x638 0x7f0 0x0 0x1 ++#define MX6QDL_PAD_KEY_COL3__ENET_CRS 0x250 0x638 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x250 0x638 0x860 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL3__KEY_COL3 0x250 0x638 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x250 0x638 0x870 0x4 0x1 ++#define MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x250 0x638 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL3__SPDIF_IN 0x250 0x638 0x8f0 0x6 0x3 ++#define MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x254 0x63c 0x000 0x0 0x0 ++#define MX6QDL_PAD_KEY_COL4__IPU1_SISG4 0x254 0x63c 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x254 0x63c 0x920 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL4__KEY_COL4 0x254 0x63c 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL4__UART5_RTS_B 0x254 0x63c 0x918 0x4 0x2 ++#define MX6QDL_PAD_KEY_COL4__UART5_CTS_B 0x254 0x63c 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x254 0x63c 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x258 0x640 0x7e0 0x0 0x3 ++#define MX6QDL_PAD_KEY_ROW0__ENET_TX_DATA3 0x258 0x640 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x258 0x640 0x7b4 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW0__KEY_ROW0 0x258 0x640 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x258 0x640 0x914 0x4 0x3 ++#define MX6QDL_PAD_KEY_ROW0__UART4_TX_DATA 0x258 0x640 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x258 0x640 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW0__DCIC2_OUT 0x258 0x640 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW1__ECSPI1_SS0 0x25c 0x644 0x7e4 0x0 0x3 ++#define MX6QDL_PAD_KEY_ROW1__ENET_COL 0x25c 0x644 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW1__AUD5_RXD 0x25c 0x644 0x7b0 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW1__KEY_ROW1 0x25c 0x644 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x25c 0x644 0x91c 0x4 0x3 ++#define MX6QDL_PAD_KEY_ROW1__UART5_TX_DATA 0x25c 0x644 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x25c 0x644 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x25c 0x644 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW2__ECSPI1_SS2 0x260 0x648 0x7ec 0x0 0x1 ++#define MX6QDL_PAD_KEY_ROW2__ENET_TX_DATA2 0x260 0x648 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x260 0x648 0x7c8 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW2__KEY_ROW2 0x260 0x648 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW2__SD2_VSELECT 0x260 0x648 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 0x260 0x648 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x260 0x648 0x85c 0x6 0x1 ++#define MX6QDL_PAD_KEY_ROW3__ASRC_EXT_CLK 0x264 0x64c 0x794 0x1 0x2 ++#define MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x264 0x64c 0x864 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW3__KEY_ROW3 0x264 0x64c 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x264 0x64c 0x874 0x4 0x1 ++#define MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x264 0x64c 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW3__SD1_VSELECT 0x264 0x64c 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x268 0x650 0x7cc 0x0 0x0 ++#define MX6QDL_PAD_KEY_ROW4__IPU1_SISG5 0x268 0x650 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW4__USB_OTG_PWR 0x268 0x650 0x000 0x2 0x0 ++#define MX6QDL_PAD_KEY_ROW4__KEY_ROW4 0x268 0x650 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW4__UART5_CTS_B 0x268 0x650 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW4__UART5_RTS_B 0x268 0x650 0x918 0x4 0x3 ++#define MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x268 0x650 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_ALE__NAND_ALE 0x26c 0x654 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_ALE__SD4_RESET 0x26c 0x654 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x26c 0x654 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CLE__NAND_CLE 0x270 0x658 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x270 0x658 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0x274 0x65c 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x274 0x65c 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0x278 0x660 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS1__SD4_VSELECT 0x278 0x660 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x278 0x660 0x000 0x2 0x0 ++#define MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x278 0x660 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS2__NAND_CE2_B 0x27c 0x664 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS2__IPU1_SISG0 0x27c 0x664 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS2__ESAI_TX0 0x27c 0x664 0x844 0x2 0x1 ++#define MX6QDL_PAD_NANDF_CS2__EIM_CRE 0x27c 0x664 0x000 0x3 0x0 ++#define MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x27c 0x664 0x000 0x4 0x0 ++#define MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x27c 0x664 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS3__NAND_CE3_B 0x280 0x668 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS3__IPU1_SISG1 0x280 0x668 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS3__ESAI_TX1 0x280 0x668 0x848 0x2 0x1 ++#define MX6QDL_PAD_NANDF_CS3__EIM_ADDR26 0x280 0x668 0x000 0x3 0x0 ++#define MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x280 0x668 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS3__I2C4_SDA 0x280 0x668 0x884 0x9 0x2 ++#define MX6QDL_PAD_NANDF_D0__NAND_DATA00 0x284 0x66c 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D0__SD1_DATA4 0x284 0x66c 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x284 0x66c 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D1__NAND_DATA01 0x288 0x670 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D1__SD1_DATA5 0x288 0x670 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x288 0x670 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D2__NAND_DATA02 0x28c 0x674 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D2__SD1_DATA6 0x28c 0x674 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x28c 0x674 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D3__NAND_DATA03 0x290 0x678 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D3__SD1_DATA7 0x290 0x678 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x290 0x678 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D4__NAND_DATA04 0x294 0x67c 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D4__SD2_DATA4 0x294 0x67c 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x294 0x67c 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D5__NAND_DATA05 0x298 0x680 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D5__SD2_DATA5 0x298 0x680 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x298 0x680 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D6__NAND_DATA06 0x29c 0x684 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D6__SD2_DATA6 0x29c 0x684 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x29c 0x684 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D7__NAND_DATA07 0x2a0 0x688 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D7__SD2_DATA7 0x2a0 0x688 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D7__GPIO2_IO07 0x2a0 0x688 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0x2a4 0x68c 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x2a4 0x68c 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0x2a8 0x690 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x2a8 0x690 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__I2C4_SCL 0x2a8 0x690 0x880 0x9 0x2 ++#define MX6QDL_PAD_RGMII_RD0__HSI_RX_READY 0x2ac 0x694 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x2ac 0x694 0x818 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RD0__GPIO6_IO25 0x2ac 0x694 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD1__HSI_TX_FLAG 0x2b0 0x698 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x2b0 0x698 0x81c 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RD1__GPIO6_IO27 0x2b0 0x698 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD2__HSI_TX_DATA 0x2b4 0x69c 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x2b4 0x69c 0x820 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RD2__GPIO6_IO28 0x2b4 0x69c 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD3__HSI_TX_WAKE 0x2b8 0x6a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x2b8 0x6a0 0x824 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RD3__GPIO6_IO29 0x2b8 0x6a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RX_CTL__USB_H3_DATA 0x2bc 0x6a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x2bc 0x6a4 0x828 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RX_CTL__GPIO6_IO24 0x2bc 0x6a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE 0x2c0 0x6a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x2c0 0x6a8 0x814 0x1 0x1 ++#define MX6QDL_PAD_RGMII_RXC__GPIO6_IO30 0x2c0 0x6a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD0__HSI_TX_READY 0x2c4 0x6ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x2c4 0x6ac 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD0__GPIO6_IO20 0x2c4 0x6ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD1__HSI_RX_FLAG 0x2c8 0x6b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x2c8 0x6b0 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD1__GPIO6_IO21 0x2c8 0x6b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD2__HSI_RX_DATA 0x2cc 0x6b4 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x2cc 0x6b4 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD2__GPIO6_IO22 0x2cc 0x6b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD3__HSI_RX_WAKE 0x2d0 0x6b8 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x2d0 0x6b8 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD3__GPIO6_IO23 0x2d0 0x6b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x2d4 0x6bc 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x2d4 0x6bc 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__GPIO6_IO26 0x2d4 0x6bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__ENET_REF_CLK 0x2d4 0x6bc 0x80c 0x7 0x1 ++#define MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x2d8 0x6c0 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x2d8 0x6c0 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TXC__SPDIF_EXT_CLK 0x2d8 0x6c0 0x8f4 0x2 0x1 ++#define MX6QDL_PAD_RGMII_TXC__GPIO6_IO19 0x2d8 0x6c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TXC__XTALOSC_REF_CLK_24M 0x2d8 0x6c0 0x000 0x7 0x0 ++#define MX6QDL_PAD_SD1_CLK__SD1_CLK 0x2dc 0x6c4 0x928 0x0 0x1 ++#define MX6QDL_PAD_SD1_CLK__GPT_CLKIN 0x2dc 0x6c4 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x2dc 0x6c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_CMD__SD1_CMD 0x2e0 0x6c8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x2e0 0x6c8 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_CMD__GPT_COMPARE1 0x2e0 0x6c8 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_CMD__GPIO1_IO18 0x2e0 0x6c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x2e4 0x6cc 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT0__GPT_CAPTURE1 0x2e4 0x6cc 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT0__GPIO1_IO16 0x2e4 0x6cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x2e8 0x6d0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x2e8 0x6d0 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT1__GPT_CAPTURE2 0x2e8 0x6d0 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x2e8 0x6d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x2ec 0x6d4 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT2__GPT_COMPARE2 0x2ec 0x6d4 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x2ec 0x6d4 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT2__WDOG1_B 0x2ec 0x6d4 0x000 0x4 0x0 ++#define MX6QDL_PAD_SD1_DAT2__GPIO1_IO19 0x2ec 0x6d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT2__WDOG1_RESET_B_DEB 0x2ec 0x6d4 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x2f0 0x6d8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT3__GPT_COMPARE3 0x2f0 0x6d8 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x2f0 0x6d8 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT3__WDOG2_B 0x2f0 0x6d8 0x000 0x4 0x0 ++#define MX6QDL_PAD_SD1_DAT3__GPIO1_IO21 0x2f0 0x6d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT3__WDOG2_RESET_B_DEB 0x2f0 0x6d8 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD2_CLK__SD2_CLK 0x2f4 0x6dc 0x930 0x0 0x1 ++#define MX6QDL_PAD_SD2_CLK__KEY_COL5 0x2f4 0x6dc 0x8c0 0x2 0x3 ++#define MX6QDL_PAD_SD2_CLK__AUD4_RXFS 0x2f4 0x6dc 0x7a4 0x3 0x1 ++#define MX6QDL_PAD_SD2_CLK__GPIO1_IO10 0x2f4 0x6dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_CMD__SD2_CMD 0x2f8 0x6e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_CMD__KEY_ROW5 0x2f8 0x6e0 0x8cc 0x2 0x2 ++#define MX6QDL_PAD_SD2_CMD__AUD4_RXC 0x2f8 0x6e0 0x7a0 0x3 0x1 ++#define MX6QDL_PAD_SD2_CMD__GPIO1_IO11 0x2f8 0x6e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x2fc 0x6e4 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x2fc 0x6e4 0x798 0x3 0x1 ++#define MX6QDL_PAD_SD2_DAT0__KEY_ROW7 0x2fc 0x6e4 0x8d4 0x4 0x2 ++#define MX6QDL_PAD_SD2_DAT0__GPIO1_IO15 0x2fc 0x6e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT0__DCIC2_OUT 0x2fc 0x6e4 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x300 0x6e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT1__EIM_CS2_B 0x300 0x6e8 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x300 0x6e8 0x7ac 0x3 0x1 ++#define MX6QDL_PAD_SD2_DAT1__KEY_COL7 0x300 0x6e8 0x8c8 0x4 0x2 ++#define MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x300 0x6e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x304 0x6ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT2__EIM_CS3_B 0x304 0x6ec 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x304 0x6ec 0x79c 0x3 0x1 ++#define MX6QDL_PAD_SD2_DAT2__KEY_ROW6 0x304 0x6ec 0x8d0 0x4 0x2 ++#define MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x304 0x6ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x308 0x6f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT3__KEY_COL6 0x308 0x6f0 0x8c4 0x2 0x2 ++#define MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x308 0x6f0 0x7a8 0x3 0x1 ++#define MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x308 0x6f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_CLK__SD3_CLK 0x30c 0x6f4 0x934 0x0 0x1 ++#define MX6QDL_PAD_SD3_CLK__UART2_RTS_B 0x30c 0x6f4 0x900 0x1 0x2 ++#define MX6QDL_PAD_SD3_CLK__UART2_CTS_B 0x30c 0x6f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_CLK__FLEXCAN1_RX 0x30c 0x6f4 0x7c8 0x2 0x2 ++#define MX6QDL_PAD_SD3_CLK__GPIO7_IO03 0x30c 0x6f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_CMD__SD3_CMD 0x310 0x6f8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_CMD__UART2_CTS_B 0x310 0x6f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_CMD__UART2_RTS_B 0x310 0x6f8 0x900 0x1 0x3 ++#define MX6QDL_PAD_SD3_CMD__FLEXCAN1_TX 0x310 0x6f8 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD3_CMD__GPIO7_IO02 0x310 0x6f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x314 0x6fc 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT0__UART1_CTS_B 0x314 0x6fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT0__UART1_RTS_B 0x314 0x6fc 0x8f8 0x1 0x2 ++#define MX6QDL_PAD_SD3_DAT0__FLEXCAN2_TX 0x314 0x6fc 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD3_DAT0__GPIO7_IO04 0x314 0x6fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x318 0x700 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT1__UART1_RTS_B 0x318 0x700 0x8f8 0x1 0x3 ++#define MX6QDL_PAD_SD3_DAT1__UART1_CTS_B 0x318 0x700 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT1__FLEXCAN2_RX 0x318 0x700 0x7cc 0x2 0x1 ++#define MX6QDL_PAD_SD3_DAT1__GPIO7_IO05 0x318 0x700 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x31c 0x704 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT2__GPIO7_IO06 0x31c 0x704 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x320 0x708 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT3__UART3_CTS_B 0x320 0x708 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT3__UART3_RTS_B 0x320 0x708 0x908 0x1 0x4 ++#define MX6QDL_PAD_SD3_DAT3__GPIO7_IO07 0x320 0x708 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x324 0x70c 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT4__UART2_RX_DATA 0x324 0x70c 0x904 0x1 0x4 ++#define MX6QDL_PAD_SD3_DAT4__UART2_TX_DATA 0x324 0x70c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x324 0x70c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x328 0x710 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT5__UART2_TX_DATA 0x328 0x710 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT5__UART2_RX_DATA 0x328 0x710 0x904 0x1 0x5 ++#define MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x328 0x710 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x32c 0x714 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x32c 0x714 0x8fc 0x1 0x2 ++#define MX6QDL_PAD_SD3_DAT6__UART1_TX_DATA 0x32c 0x714 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT6__GPIO6_IO18 0x32c 0x714 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x330 0x718 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x330 0x718 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT7__UART1_RX_DATA 0x330 0x718 0x8fc 0x1 0x3 ++#define MX6QDL_PAD_SD3_DAT7__GPIO6_IO17 0x330 0x718 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_RST__SD3_RESET 0x334 0x71c 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_RST__UART3_RTS_B 0x334 0x71c 0x908 0x1 0x5 ++#define MX6QDL_PAD_SD3_RST__UART3_CTS_B 0x334 0x71c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x334 0x71c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_CLK__SD4_CLK 0x338 0x720 0x938 0x0 0x1 ++#define MX6QDL_PAD_SD4_CLK__NAND_WE_B 0x338 0x720 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_CLK__UART3_RX_DATA 0x338 0x720 0x90c 0x2 0x2 ++#define MX6QDL_PAD_SD4_CLK__UART3_TX_DATA 0x338 0x720 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_CLK__GPIO7_IO10 0x338 0x720 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_CMD__SD4_CMD 0x33c 0x724 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD4_CMD__NAND_RE_B 0x33c 0x724 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_CMD__UART3_TX_DATA 0x33c 0x724 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_CMD__UART3_RX_DATA 0x33c 0x724 0x90c 0x2 0x3 ++#define MX6QDL_PAD_SD4_CMD__GPIO7_IO09 0x33c 0x724 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x340 0x728 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT0__NAND_DQS 0x340 0x728 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT0__GPIO2_IO08 0x340 0x728 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x344 0x72c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x344 0x72c 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT1__GPIO2_IO09 0x344 0x72c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x348 0x730 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x348 0x730 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT2__GPIO2_IO10 0x348 0x730 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x34c 0x734 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x34c 0x734 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x350 0x738 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x350 0x738 0x904 0x2 0x6 ++#define MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA 0x350 0x738 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT4__GPIO2_IO12 0x350 0x738 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x354 0x73c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT5__UART2_RTS_B 0x354 0x73c 0x900 0x2 0x4 ++#define MX6QDL_PAD_SD4_DAT5__UART2_CTS_B 0x354 0x73c 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT5__GPIO2_IO13 0x354 0x73c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x358 0x740 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT6__UART2_CTS_B 0x358 0x740 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT6__UART2_RTS_B 0x358 0x740 0x900 0x2 0x5 ++#define MX6QDL_PAD_SD4_DAT6__GPIO2_IO14 0x358 0x740 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x35c 0x744 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x35c 0x744 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA 0x35c 0x744 0x904 0x2 0x7 ++#define MX6QDL_PAD_SD4_DAT7__GPIO2_IO15 0x35c 0x744 0x000 0x5 0x0 + + #endif /* __DTS_IMX6DL_PINFUNC_H */ +diff --git a/arch/arm/boot/dts/imx6dl-sabreauto.dts b/arch/arm/boot/dts/imx6dl-sabreauto.dts +index 7adcec3..a6ce7b4 100644 +--- a/arch/arm/boot/dts/imx6dl-sabreauto.dts ++++ b/arch/arm/boot/dts/imx6dl-sabreauto.dts +@@ -15,17 +15,3 @@ + model = "Freescale i.MX6 DualLite/Solo SABRE Automotive Board"; + compatible = "fsl,imx6dl-sabreauto", "fsl,imx6dl"; + }; +- +-&iomuxc { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_hog>; +- +- hog { +- pinctrl_hog: hoggrp { +- fsl,pins = < +- MX6DL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000 +- MX6DL_PAD_SD2_DAT2__GPIO1_IO13 0x80000000 +- >; +- }; +- }; +-}; +diff --git a/arch/arm/boot/dts/imx6dl-sabresd.dts b/arch/arm/boot/dts/imx6dl-sabresd.dts +index 7efb05d..1e45f2f 100644 +--- a/arch/arm/boot/dts/imx6dl-sabresd.dts ++++ b/arch/arm/boot/dts/imx6dl-sabresd.dts +@@ -15,21 +15,3 @@ + model = "Freescale i.MX6 DualLite SABRE Smart Device Board"; + compatible = "fsl,imx6dl-sabresd", "fsl,imx6dl"; + }; +- +-&iomuxc { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_hog>; +- +- hog { +- pinctrl_hog: hoggrp { +- fsl,pins = < +- MX6DL_PAD_GPIO_4__GPIO1_IO04 0x80000000 +- MX6DL_PAD_GPIO_5__GPIO1_IO05 0x80000000 +- MX6DL_PAD_NANDF_D0__GPIO2_IO00 0x80000000 +- MX6DL_PAD_NANDF_D1__GPIO2_IO01 0x80000000 +- MX6DL_PAD_NANDF_D2__GPIO2_IO02 0x80000000 +- MX6DL_PAD_NANDF_D3__GPIO2_IO03 0x80000000 +- >; +- }; +- }; +-}; +diff --git a/arch/arm/boot/dts/imx6dl-wandboard.dts b/arch/arm/boot/dts/imx6dl-wandboard.dts +index bfc59c3..e672891 100644 +--- a/arch/arm/boot/dts/imx6dl-wandboard.dts ++++ b/arch/arm/boot/dts/imx6dl-wandboard.dts +@@ -10,6 +10,7 @@ + */ + /dts-v1/; + #include "imx6dl.dtsi" ++#include "imx6qdl-wandboard.dtsi" + + / { + model = "Wandboard i.MX6 Dual Lite Board"; +@@ -19,26 +20,3 @@ + reg = <0x10000000 0x40000000>; + }; + }; +- +-&fec { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_enet_1>; +- phy-mode = "rgmii"; +- status = "okay"; +-}; +- +-&uart1 { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_uart1_1>; +- status = "okay"; +-}; +- +-&usbh1 { +- status = "okay"; +-}; +- +-&usdhc3 { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_usdhc3_2>; +- status = "okay"; +-}; +diff --git a/arch/arm/boot/dts/imx6dl.dtsi b/arch/arm/boot/dts/imx6dl.dtsi +index 62dc781..9e8ae11 100644 +--- a/arch/arm/boot/dts/imx6dl.dtsi ++++ b/arch/arm/boot/dts/imx6dl.dtsi +@@ -8,8 +8,8 @@ + * + */ + +-#include "imx6qdl.dtsi" + #include "imx6dl-pinfunc.h" ++#include "imx6qdl.dtsi" + + / { + cpus { +@@ -32,126 +32,15 @@ + }; + + soc { ++ ocram: sram@00900000 { ++ compatible = "mmio-sram"; ++ reg = <0x00900000 0x20000>; ++ clocks = <&clks 142>; ++ }; ++ + aips1: aips-bus@02000000 { + iomuxc: iomuxc@020e0000 { + compatible = "fsl,imx6dl-iomuxc"; +- reg = <0x020e0000 0x4000>; +- +- enet { +- pinctrl_enet_1: enetgrp-1 { +- fsl,pins = < +- MX6DL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 +- MX6DL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 +- MX6DL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 +- MX6DL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 +- MX6DL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 +- MX6DL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 +- MX6DL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 +- MX6DL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 +- MX6DL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 +- MX6DL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 +- MX6DL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 +- MX6DL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 +- MX6DL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 +- MX6DL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 +- MX6DL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 +- MX6DL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 +- >; +- }; +- +- pinctrl_enet_2: enetgrp-2 { +- fsl,pins = < +- MX6DL_PAD_KEY_COL1__ENET_MDIO 0x1b0b0 +- MX6DL_PAD_KEY_COL2__ENET_MDC 0x1b0b0 +- MX6DL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 +- MX6DL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 +- MX6DL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 +- MX6DL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 +- MX6DL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 +- MX6DL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 +- MX6DL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 +- MX6DL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 +- MX6DL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 +- MX6DL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 +- MX6DL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 +- MX6DL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 +- MX6DL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 +- >; +- }; +- }; +- +- uart1 { +- pinctrl_uart1_1: uart1grp-1 { +- fsl,pins = < +- MX6DL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1 +- MX6DL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1 +- >; +- }; +- }; +- +- uart4 { +- pinctrl_uart4_1: uart4grp-1 { +- fsl,pins = < +- MX6DL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 +- MX6DL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 +- >; +- }; +- }; +- +- usbotg { +- pinctrl_usbotg_2: usbotggrp-2 { +- fsl,pins = < +- MX6DL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059 +- >; +- }; +- }; +- +- usdhc2 { +- pinctrl_usdhc2_1: usdhc2grp-1 { +- fsl,pins = < +- MX6DL_PAD_SD2_CMD__SD2_CMD 0x17059 +- MX6DL_PAD_SD2_CLK__SD2_CLK 0x10059 +- MX6DL_PAD_SD2_DAT0__SD2_DATA0 0x17059 +- MX6DL_PAD_SD2_DAT1__SD2_DATA1 0x17059 +- MX6DL_PAD_SD2_DAT2__SD2_DATA2 0x17059 +- MX6DL_PAD_SD2_DAT3__SD2_DATA3 0x17059 +- MX6DL_PAD_NANDF_D4__SD2_DATA4 0x17059 +- MX6DL_PAD_NANDF_D5__SD2_DATA5 0x17059 +- MX6DL_PAD_NANDF_D6__SD2_DATA6 0x17059 +- MX6DL_PAD_NANDF_D7__SD2_DATA7 0x17059 +- >; +- }; +- }; +- +- usdhc3 { +- pinctrl_usdhc3_1: usdhc3grp-1 { +- fsl,pins = < +- MX6DL_PAD_SD3_CMD__SD3_CMD 0x17059 +- MX6DL_PAD_SD3_CLK__SD3_CLK 0x10059 +- MX6DL_PAD_SD3_DAT0__SD3_DATA0 0x17059 +- MX6DL_PAD_SD3_DAT1__SD3_DATA1 0x17059 +- MX6DL_PAD_SD3_DAT2__SD3_DATA2 0x17059 +- MX6DL_PAD_SD3_DAT3__SD3_DATA3 0x17059 +- MX6DL_PAD_SD3_DAT4__SD3_DATA4 0x17059 +- MX6DL_PAD_SD3_DAT5__SD3_DATA5 0x17059 +- MX6DL_PAD_SD3_DAT6__SD3_DATA6 0x17059 +- MX6DL_PAD_SD3_DAT7__SD3_DATA7 0x17059 +- >; +- }; +- +- pinctrl_usdhc3_2: usdhc3grp_2 { +- fsl,pins = < +- MX6DL_PAD_SD3_CMD__SD3_CMD 0x17059 +- MX6DL_PAD_SD3_CLK__SD3_CLK 0x10059 +- MX6DL_PAD_SD3_DAT0__SD3_DATA0 0x17059 +- MX6DL_PAD_SD3_DAT1__SD3_DATA1 0x17059 +- MX6DL_PAD_SD3_DAT2__SD3_DATA2 0x17059 +- MX6DL_PAD_SD3_DAT3__SD3_DATA3 0x17059 +- >; +- }; +- }; +- +- + }; + + pxp: pxp@020f0000 { +@@ -182,3 +71,20 @@ + }; + }; + }; ++ ++&ldb { ++ clocks = <&clks 33>, <&clks 34>, ++ <&clks 39>, <&clks 40>, ++ <&clks 135>, <&clks 136>; ++ clock-names = "di0_pll", "di1_pll", ++ "di0_sel", "di1_sel", ++ "di0", "di1"; ++ ++ lvds-channel@0 { ++ crtcs = <&ipu1 0>, <&ipu1 1>; ++ }; ++ ++ lvds-channel@1 { ++ crtcs = <&ipu1 0>, <&ipu1 1>; ++ }; ++}; +diff --git a/arch/arm/boot/dts/imx6q-arm2.dts b/arch/arm/boot/dts/imx6q-arm2.dts +index 4e54fde..edf1bd9 100644 +--- a/arch/arm/boot/dts/imx6q-arm2.dts ++++ b/arch/arm/boot/dts/imx6q-arm2.dts +@@ -57,7 +57,7 @@ + hog { + pinctrl_hog: hoggrp { + fsl,pins = < +- MX6Q_PAD_EIM_D25__GPIO3_IO25 0x80000000 ++ MX6QDL_PAD_EIM_D25__GPIO3_IO25 0x80000000 + >; + }; + }; +@@ -65,8 +65,8 @@ + arm2 { + pinctrl_usdhc3_arm2: usdhc3grp-arm2 { + fsl,pins = < +- MX6Q_PAD_NANDF_CS0__GPIO6_IO11 0x80000000 +- MX6Q_PAD_NANDF_CS1__GPIO6_IO14 0x80000000 ++ MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x80000000 ++ MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x80000000 + >; + }; + }; +@@ -97,6 +97,14 @@ + status = "okay"; + }; + ++&uart2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart2_2>; ++ fsl,dte-mode; ++ fsl,uart-has-rtscts; ++ status = "okay"; ++}; ++ + &uart4 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart4_1>; +diff --git a/arch/arm/boot/dts/imx6q-pinfunc.h b/arch/arm/boot/dts/imx6q-pinfunc.h +index faea6e1..9bbe82b 100644 +--- a/arch/arm/boot/dts/imx6q-pinfunc.h ++++ b/arch/arm/boot/dts/imx6q-pinfunc.h +@@ -14,1028 +14,1032 @@ + * The pin function ID is a tuple of + * <mux_reg conf_reg input_reg mux_mode input_val> + */ +-#define MX6Q_PAD_SD2_DAT1__SD2_DATA1 0x04c 0x360 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_DAT1__ECSPI5_SS0 0x04c 0x360 0x834 0x1 0x0 +-#define MX6Q_PAD_SD2_DAT1__EIM_CS2_B 0x04c 0x360 0x000 0x2 0x0 +-#define MX6Q_PAD_SD2_DAT1__AUD4_TXFS 0x04c 0x360 0x7c8 0x3 0x0 +-#define MX6Q_PAD_SD2_DAT1__KEY_COL7 0x04c 0x360 0x8f0 0x4 0x0 +-#define MX6Q_PAD_SD2_DAT1__GPIO1_IO14 0x04c 0x360 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_DAT2__SD2_DATA2 0x050 0x364 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_DAT2__ECSPI5_SS1 0x050 0x364 0x838 0x1 0x0 +-#define MX6Q_PAD_SD2_DAT2__EIM_CS3_B 0x050 0x364 0x000 0x2 0x0 +-#define MX6Q_PAD_SD2_DAT2__AUD4_TXD 0x050 0x364 0x7b8 0x3 0x0 +-#define MX6Q_PAD_SD2_DAT2__KEY_ROW6 0x050 0x364 0x8f8 0x4 0x0 +-#define MX6Q_PAD_SD2_DAT2__GPIO1_IO13 0x050 0x364 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_DAT0__SD2_DATA0 0x054 0x368 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_DAT0__ECSPI5_MISO 0x054 0x368 0x82c 0x1 0x0 +-#define MX6Q_PAD_SD2_DAT0__AUD4_RXD 0x054 0x368 0x7b4 0x3 0x0 +-#define MX6Q_PAD_SD2_DAT0__KEY_ROW7 0x054 0x368 0x8fc 0x4 0x0 +-#define MX6Q_PAD_SD2_DAT0__GPIO1_IO15 0x054 0x368 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_DAT0__DCIC2_OUT 0x054 0x368 0x000 0x6 0x0 +-#define MX6Q_PAD_RGMII_TXC__USB_H2_DATA 0x058 0x36c 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TXC__RGMII_TXC 0x058 0x36c 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TXC__SPDIF_EXT_CLK 0x058 0x36c 0x918 0x2 0x0 +-#define MX6Q_PAD_RGMII_TXC__GPIO6_IO19 0x058 0x36c 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TXC__XTALOSC_REF_CLK_24M 0x058 0x36c 0x000 0x7 0x0 +-#define MX6Q_PAD_RGMII_TD0__HSI_TX_READY 0x05c 0x370 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TD0__RGMII_TD0 0x05c 0x370 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TD0__GPIO6_IO20 0x05c 0x370 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TD1__HSI_RX_FLAG 0x060 0x374 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TD1__RGMII_TD1 0x060 0x374 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TD1__GPIO6_IO21 0x060 0x374 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TD2__HSI_RX_DATA 0x064 0x378 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TD2__RGMII_TD2 0x064 0x378 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TD2__GPIO6_IO22 0x064 0x378 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TD3__HSI_RX_WAKE 0x068 0x37c 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TD3__RGMII_TD3 0x068 0x37c 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TD3__GPIO6_IO23 0x068 0x37c 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_RX_CTL__USB_H3_DATA 0x06c 0x380 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x06c 0x380 0x858 0x1 0x0 +-#define MX6Q_PAD_RGMII_RX_CTL__GPIO6_IO24 0x06c 0x380 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_RD0__HSI_RX_READY 0x070 0x384 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RD0__RGMII_RD0 0x070 0x384 0x848 0x1 0x0 +-#define MX6Q_PAD_RGMII_RD0__GPIO6_IO25 0x070 0x384 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x074 0x388 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x074 0x388 0x000 0x1 0x0 +-#define MX6Q_PAD_RGMII_TX_CTL__GPIO6_IO26 0x074 0x388 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_TX_CTL__ENET_REF_CLK 0x074 0x388 0x83c 0x7 0x0 +-#define MX6Q_PAD_RGMII_RD1__HSI_TX_FLAG 0x078 0x38c 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RD1__RGMII_RD1 0x078 0x38c 0x84c 0x1 0x0 +-#define MX6Q_PAD_RGMII_RD1__GPIO6_IO27 0x078 0x38c 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_RD2__HSI_TX_DATA 0x07c 0x390 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RD2__RGMII_RD2 0x07c 0x390 0x850 0x1 0x0 +-#define MX6Q_PAD_RGMII_RD2__GPIO6_IO28 0x07c 0x390 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_RD3__HSI_TX_WAKE 0x080 0x394 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RD3__RGMII_RD3 0x080 0x394 0x854 0x1 0x0 +-#define MX6Q_PAD_RGMII_RD3__GPIO6_IO29 0x080 0x394 0x000 0x5 0x0 +-#define MX6Q_PAD_RGMII_RXC__USB_H3_STROBE 0x084 0x398 0x000 0x0 0x0 +-#define MX6Q_PAD_RGMII_RXC__RGMII_RXC 0x084 0x398 0x844 0x1 0x0 +-#define MX6Q_PAD_RGMII_RXC__GPIO6_IO30 0x084 0x398 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A25__EIM_ADDR25 0x088 0x39c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A25__ECSPI4_SS1 0x088 0x39c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A25__ECSPI2_RDY 0x088 0x39c 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_A25__IPU1_DI1_PIN12 0x088 0x39c 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_A25__IPU1_DI0_D1_CS 0x088 0x39c 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_A25__GPIO5_IO02 0x088 0x39c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x088 0x39c 0x88c 0x6 0x0 +-#define MX6Q_PAD_EIM_EB2__EIM_EB2_B 0x08c 0x3a0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_EB2__ECSPI1_SS0 0x08c 0x3a0 0x800 0x1 0x0 +-#define MX6Q_PAD_EIM_EB2__IPU2_CSI1_DATA19 0x08c 0x3a0 0x8d4 0x3 0x0 +-#define MX6Q_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x08c 0x3a0 0x890 0x4 0x0 +-#define MX6Q_PAD_EIM_EB2__GPIO2_IO30 0x08c 0x3a0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_EB2__I2C2_SCL 0x08c 0x3a0 0x8a0 0x6 0x0 +-#define MX6Q_PAD_EIM_EB2__SRC_BOOT_CFG30 0x08c 0x3a0 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D16__EIM_DATA16 0x090 0x3a4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D16__ECSPI1_SCLK 0x090 0x3a4 0x7f4 0x1 0x0 +-#define MX6Q_PAD_EIM_D16__IPU1_DI0_PIN05 0x090 0x3a4 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D16__IPU2_CSI1_DATA18 0x090 0x3a4 0x8d0 0x3 0x0 +-#define MX6Q_PAD_EIM_D16__HDMI_TX_DDC_SDA 0x090 0x3a4 0x894 0x4 0x0 +-#define MX6Q_PAD_EIM_D16__GPIO3_IO16 0x090 0x3a4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D16__I2C2_SDA 0x090 0x3a4 0x8a4 0x6 0x0 +-#define MX6Q_PAD_EIM_D17__EIM_DATA17 0x094 0x3a8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D17__ECSPI1_MISO 0x094 0x3a8 0x7f8 0x1 0x0 +-#define MX6Q_PAD_EIM_D17__IPU1_DI0_PIN06 0x094 0x3a8 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D17__IPU2_CSI1_PIXCLK 0x094 0x3a8 0x8e0 0x3 0x0 +-#define MX6Q_PAD_EIM_D17__DCIC1_OUT 0x094 0x3a8 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D17__GPIO3_IO17 0x094 0x3a8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D17__I2C3_SCL 0x094 0x3a8 0x8a8 0x6 0x0 +-#define MX6Q_PAD_EIM_D18__EIM_DATA18 0x098 0x3ac 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D18__ECSPI1_MOSI 0x098 0x3ac 0x7fc 0x1 0x0 +-#define MX6Q_PAD_EIM_D18__IPU1_DI0_PIN07 0x098 0x3ac 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D18__IPU2_CSI1_DATA17 0x098 0x3ac 0x8cc 0x3 0x0 +-#define MX6Q_PAD_EIM_D18__IPU1_DI1_D0_CS 0x098 0x3ac 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D18__GPIO3_IO18 0x098 0x3ac 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D18__I2C3_SDA 0x098 0x3ac 0x8ac 0x6 0x0 +-#define MX6Q_PAD_EIM_D19__EIM_DATA19 0x09c 0x3b0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D19__ECSPI1_SS1 0x09c 0x3b0 0x804 0x1 0x0 +-#define MX6Q_PAD_EIM_D19__IPU1_DI0_PIN08 0x09c 0x3b0 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D19__IPU2_CSI1_DATA16 0x09c 0x3b0 0x8c8 0x3 0x0 +-#define MX6Q_PAD_EIM_D19__UART1_CTS_B 0x09c 0x3b0 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D19__UART1_RTS_B 0x09c 0x3b0 0x91c 0x4 0x0 +-#define MX6Q_PAD_EIM_D19__GPIO3_IO19 0x09c 0x3b0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D19__EPIT1_OUT 0x09c 0x3b0 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D20__EIM_DATA20 0x0a0 0x3b4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D20__ECSPI4_SS0 0x0a0 0x3b4 0x824 0x1 0x0 +-#define MX6Q_PAD_EIM_D20__IPU1_DI0_PIN16 0x0a0 0x3b4 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D20__IPU2_CSI1_DATA15 0x0a0 0x3b4 0x8c4 0x3 0x0 +-#define MX6Q_PAD_EIM_D20__UART1_RTS_B 0x0a0 0x3b4 0x91c 0x4 0x1 +-#define MX6Q_PAD_EIM_D20__UART1_CTS_B 0x0a0 0x3b4 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D20__GPIO3_IO20 0x0a0 0x3b4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D20__EPIT2_OUT 0x0a0 0x3b4 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D21__EIM_DATA21 0x0a4 0x3b8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D21__ECSPI4_SCLK 0x0a4 0x3b8 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D21__IPU1_DI0_PIN17 0x0a4 0x3b8 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D21__IPU2_CSI1_DATA11 0x0a4 0x3b8 0x8b4 0x3 0x0 +-#define MX6Q_PAD_EIM_D21__USB_OTG_OC 0x0a4 0x3b8 0x944 0x4 0x0 +-#define MX6Q_PAD_EIM_D21__GPIO3_IO21 0x0a4 0x3b8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D21__I2C1_SCL 0x0a4 0x3b8 0x898 0x6 0x0 +-#define MX6Q_PAD_EIM_D21__SPDIF_IN 0x0a4 0x3b8 0x914 0x7 0x0 +-#define MX6Q_PAD_EIM_D22__EIM_DATA22 0x0a8 0x3bc 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D22__ECSPI4_MISO 0x0a8 0x3bc 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D22__IPU1_DI0_PIN01 0x0a8 0x3bc 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D22__IPU2_CSI1_DATA10 0x0a8 0x3bc 0x8b0 0x3 0x0 +-#define MX6Q_PAD_EIM_D22__USB_OTG_PWR 0x0a8 0x3bc 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D22__GPIO3_IO22 0x0a8 0x3bc 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D22__SPDIF_OUT 0x0a8 0x3bc 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D23__EIM_DATA23 0x0ac 0x3c0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D23__IPU1_DI0_D0_CS 0x0ac 0x3c0 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D23__UART3_CTS_B 0x0ac 0x3c0 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D23__UART3_RTS_B 0x0ac 0x3c0 0x92c 0x2 0x0 +-#define MX6Q_PAD_EIM_D23__UART1_DCD_B 0x0ac 0x3c0 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_D23__IPU2_CSI1_DATA_EN 0x0ac 0x3c0 0x8d8 0x4 0x0 +-#define MX6Q_PAD_EIM_D23__GPIO3_IO23 0x0ac 0x3c0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D23__IPU1_DI1_PIN02 0x0ac 0x3c0 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D23__IPU1_DI1_PIN14 0x0ac 0x3c0 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_EB3__EIM_EB3_B 0x0b0 0x3c4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_EB3__ECSPI4_RDY 0x0b0 0x3c4 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_EB3__UART3_RTS_B 0x0b0 0x3c4 0x92c 0x2 0x1 +-#define MX6Q_PAD_EIM_EB3__UART3_CTS_B 0x0b0 0x3c4 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_EB3__UART1_RI_B 0x0b0 0x3c4 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_EB3__IPU2_CSI1_HSYNC 0x0b0 0x3c4 0x8dc 0x4 0x0 +-#define MX6Q_PAD_EIM_EB3__GPIO2_IO31 0x0b0 0x3c4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_EB3__IPU1_DI1_PIN03 0x0b0 0x3c4 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_EB3__SRC_BOOT_CFG31 0x0b0 0x3c4 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D24__EIM_DATA24 0x0b4 0x3c8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D24__ECSPI4_SS2 0x0b4 0x3c8 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D24__UART3_TX_DATA 0x0b4 0x3c8 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D24__UART3_RX_DATA 0x0b4 0x3c8 0x930 0x2 0x0 +-#define MX6Q_PAD_EIM_D24__ECSPI1_SS2 0x0b4 0x3c8 0x808 0x3 0x0 +-#define MX6Q_PAD_EIM_D24__ECSPI2_SS2 0x0b4 0x3c8 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D24__GPIO3_IO24 0x0b4 0x3c8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D24__AUD5_RXFS 0x0b4 0x3c8 0x7d8 0x6 0x0 +-#define MX6Q_PAD_EIM_D24__UART1_DTR_B 0x0b4 0x3c8 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D25__EIM_DATA25 0x0b8 0x3cc 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D25__ECSPI4_SS3 0x0b8 0x3cc 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D25__UART3_RX_DATA 0x0b8 0x3cc 0x930 0x2 0x1 +-#define MX6Q_PAD_EIM_D25__UART3_TX_DATA 0x0b8 0x3cc 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D25__ECSPI1_SS3 0x0b8 0x3cc 0x80c 0x3 0x0 +-#define MX6Q_PAD_EIM_D25__ECSPI2_SS3 0x0b8 0x3cc 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D25__GPIO3_IO25 0x0b8 0x3cc 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D25__AUD5_RXC 0x0b8 0x3cc 0x7d4 0x6 0x0 +-#define MX6Q_PAD_EIM_D25__UART1_DSR_B 0x0b8 0x3cc 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D26__EIM_DATA26 0x0bc 0x3d0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D26__IPU1_DI1_PIN11 0x0bc 0x3d0 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D26__IPU1_CSI0_DATA01 0x0bc 0x3d0 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D26__IPU2_CSI1_DATA14 0x0bc 0x3d0 0x8c0 0x3 0x0 +-#define MX6Q_PAD_EIM_D26__UART2_TX_DATA 0x0bc 0x3d0 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D26__UART2_RX_DATA 0x0bc 0x3d0 0x928 0x4 0x0 +-#define MX6Q_PAD_EIM_D26__GPIO3_IO26 0x0bc 0x3d0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D26__IPU1_SISG2 0x0bc 0x3d0 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D26__IPU1_DISP1_DATA22 0x0bc 0x3d0 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D27__EIM_DATA27 0x0c0 0x3d4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D27__IPU1_DI1_PIN13 0x0c0 0x3d4 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D27__IPU1_CSI0_DATA00 0x0c0 0x3d4 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D27__IPU2_CSI1_DATA13 0x0c0 0x3d4 0x8bc 0x3 0x0 +-#define MX6Q_PAD_EIM_D27__UART2_RX_DATA 0x0c0 0x3d4 0x928 0x4 0x1 +-#define MX6Q_PAD_EIM_D27__UART2_TX_DATA 0x0c0 0x3d4 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D27__GPIO3_IO27 0x0c0 0x3d4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D27__IPU1_SISG3 0x0c0 0x3d4 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D27__IPU1_DISP1_DATA23 0x0c0 0x3d4 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D28__EIM_DATA28 0x0c4 0x3d8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D28__I2C1_SDA 0x0c4 0x3d8 0x89c 0x1 0x0 +-#define MX6Q_PAD_EIM_D28__ECSPI4_MOSI 0x0c4 0x3d8 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D28__IPU2_CSI1_DATA12 0x0c4 0x3d8 0x8b8 0x3 0x0 +-#define MX6Q_PAD_EIM_D28__UART2_CTS_B 0x0c4 0x3d8 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D28__UART2_RTS_B 0x0c4 0x3d8 0x924 0x4 0x0 +-#define MX6Q_PAD_EIM_D28__GPIO3_IO28 0x0c4 0x3d8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D28__IPU1_EXT_TRIG 0x0c4 0x3d8 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_D28__IPU1_DI0_PIN13 0x0c4 0x3d8 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D29__EIM_DATA29 0x0c8 0x3dc 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D29__IPU1_DI1_PIN15 0x0c8 0x3dc 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D29__ECSPI4_SS0 0x0c8 0x3dc 0x824 0x2 0x1 +-#define MX6Q_PAD_EIM_D29__UART2_RTS_B 0x0c8 0x3dc 0x924 0x4 0x1 +-#define MX6Q_PAD_EIM_D29__UART2_CTS_B 0x0c8 0x3dc 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D29__GPIO3_IO29 0x0c8 0x3dc 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D29__IPU2_CSI1_VSYNC 0x0c8 0x3dc 0x8e4 0x6 0x0 +-#define MX6Q_PAD_EIM_D29__IPU1_DI0_PIN14 0x0c8 0x3dc 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_D30__EIM_DATA30 0x0cc 0x3e0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D30__IPU1_DISP1_DATA21 0x0cc 0x3e0 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D30__IPU1_DI0_PIN11 0x0cc 0x3e0 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D30__IPU1_CSI0_DATA03 0x0cc 0x3e0 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_D30__UART3_CTS_B 0x0cc 0x3e0 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D30__UART3_RTS_B 0x0cc 0x3e0 0x92c 0x4 0x2 +-#define MX6Q_PAD_EIM_D30__GPIO3_IO30 0x0cc 0x3e0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D30__USB_H1_OC 0x0cc 0x3e0 0x948 0x6 0x0 +-#define MX6Q_PAD_EIM_D31__EIM_DATA31 0x0d0 0x3e4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_D31__IPU1_DISP1_DATA20 0x0d0 0x3e4 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_D31__IPU1_DI0_PIN12 0x0d0 0x3e4 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_D31__IPU1_CSI0_DATA02 0x0d0 0x3e4 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_D31__UART3_RTS_B 0x0d0 0x3e4 0x92c 0x4 0x3 +-#define MX6Q_PAD_EIM_D31__UART3_CTS_B 0x0d0 0x3e4 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_D31__GPIO3_IO31 0x0d0 0x3e4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_D31__USB_H1_PWR 0x0d0 0x3e4 0x000 0x6 0x0 +-#define MX6Q_PAD_EIM_A24__EIM_ADDR24 0x0d4 0x3e8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A24__IPU1_DISP1_DATA19 0x0d4 0x3e8 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A24__IPU2_CSI1_DATA19 0x0d4 0x3e8 0x8d4 0x2 0x1 +-#define MX6Q_PAD_EIM_A24__IPU2_SISG2 0x0d4 0x3e8 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_A24__IPU1_SISG2 0x0d4 0x3e8 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_A24__GPIO5_IO04 0x0d4 0x3e8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A24__SRC_BOOT_CFG24 0x0d4 0x3e8 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A23__EIM_ADDR23 0x0d8 0x3ec 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A23__IPU1_DISP1_DATA18 0x0d8 0x3ec 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A23__IPU2_CSI1_DATA18 0x0d8 0x3ec 0x8d0 0x2 0x1 +-#define MX6Q_PAD_EIM_A23__IPU2_SISG3 0x0d8 0x3ec 0x000 0x3 0x0 +-#define MX6Q_PAD_EIM_A23__IPU1_SISG3 0x0d8 0x3ec 0x000 0x4 0x0 +-#define MX6Q_PAD_EIM_A23__GPIO6_IO06 0x0d8 0x3ec 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A23__SRC_BOOT_CFG23 0x0d8 0x3ec 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A22__EIM_ADDR22 0x0dc 0x3f0 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A22__IPU1_DISP1_DATA17 0x0dc 0x3f0 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A22__IPU2_CSI1_DATA17 0x0dc 0x3f0 0x8cc 0x2 0x1 +-#define MX6Q_PAD_EIM_A22__GPIO2_IO16 0x0dc 0x3f0 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A22__SRC_BOOT_CFG22 0x0dc 0x3f0 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A21__EIM_ADDR21 0x0e0 0x3f4 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A21__IPU1_DISP1_DATA16 0x0e0 0x3f4 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A21__IPU2_CSI1_DATA16 0x0e0 0x3f4 0x8c8 0x2 0x1 +-#define MX6Q_PAD_EIM_A21__GPIO2_IO17 0x0e0 0x3f4 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A21__SRC_BOOT_CFG21 0x0e0 0x3f4 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A20__EIM_ADDR20 0x0e4 0x3f8 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A20__IPU1_DISP1_DATA15 0x0e4 0x3f8 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A20__IPU2_CSI1_DATA15 0x0e4 0x3f8 0x8c4 0x2 0x1 +-#define MX6Q_PAD_EIM_A20__GPIO2_IO18 0x0e4 0x3f8 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A20__SRC_BOOT_CFG20 0x0e4 0x3f8 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A19__EIM_ADDR19 0x0e8 0x3fc 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A19__IPU1_DISP1_DATA14 0x0e8 0x3fc 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A19__IPU2_CSI1_DATA14 0x0e8 0x3fc 0x8c0 0x2 0x1 +-#define MX6Q_PAD_EIM_A19__GPIO2_IO19 0x0e8 0x3fc 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A19__SRC_BOOT_CFG19 0x0e8 0x3fc 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A18__EIM_ADDR18 0x0ec 0x400 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A18__IPU1_DISP1_DATA13 0x0ec 0x400 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A18__IPU2_CSI1_DATA13 0x0ec 0x400 0x8bc 0x2 0x1 +-#define MX6Q_PAD_EIM_A18__GPIO2_IO20 0x0ec 0x400 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A18__SRC_BOOT_CFG18 0x0ec 0x400 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A17__EIM_ADDR17 0x0f0 0x404 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A17__IPU1_DISP1_DATA12 0x0f0 0x404 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A17__IPU2_CSI1_DATA12 0x0f0 0x404 0x8b8 0x2 0x1 +-#define MX6Q_PAD_EIM_A17__GPIO2_IO21 0x0f0 0x404 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A17__SRC_BOOT_CFG17 0x0f0 0x404 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_A16__EIM_ADDR16 0x0f4 0x408 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_A16__IPU1_DI1_DISP_CLK 0x0f4 0x408 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_A16__IPU2_CSI1_PIXCLK 0x0f4 0x408 0x8e0 0x2 0x1 +-#define MX6Q_PAD_EIM_A16__GPIO2_IO22 0x0f4 0x408 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_A16__SRC_BOOT_CFG16 0x0f4 0x408 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_CS0__EIM_CS0_B 0x0f8 0x40c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_CS0__IPU1_DI1_PIN05 0x0f8 0x40c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_CS0__ECSPI2_SCLK 0x0f8 0x40c 0x810 0x2 0x0 +-#define MX6Q_PAD_EIM_CS0__GPIO2_IO23 0x0f8 0x40c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_CS1__EIM_CS1_B 0x0fc 0x410 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_CS1__IPU1_DI1_PIN06 0x0fc 0x410 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_CS1__ECSPI2_MOSI 0x0fc 0x410 0x818 0x2 0x0 +-#define MX6Q_PAD_EIM_CS1__GPIO2_IO24 0x0fc 0x410 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_OE__EIM_OE_B 0x100 0x414 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_OE__IPU1_DI1_PIN07 0x100 0x414 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_OE__ECSPI2_MISO 0x100 0x414 0x814 0x2 0x0 +-#define MX6Q_PAD_EIM_OE__GPIO2_IO25 0x100 0x414 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_RW__EIM_RW 0x104 0x418 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_RW__IPU1_DI1_PIN08 0x104 0x418 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_RW__ECSPI2_SS0 0x104 0x418 0x81c 0x2 0x0 +-#define MX6Q_PAD_EIM_RW__GPIO2_IO26 0x104 0x418 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_RW__SRC_BOOT_CFG29 0x104 0x418 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_LBA__EIM_LBA_B 0x108 0x41c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_LBA__IPU1_DI1_PIN17 0x108 0x41c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_LBA__ECSPI2_SS1 0x108 0x41c 0x820 0x2 0x0 +-#define MX6Q_PAD_EIM_LBA__GPIO2_IO27 0x108 0x41c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_LBA__SRC_BOOT_CFG26 0x108 0x41c 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_EB0__EIM_EB0_B 0x10c 0x420 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_EB0__IPU1_DISP1_DATA11 0x10c 0x420 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_EB0__IPU2_CSI1_DATA11 0x10c 0x420 0x8b4 0x2 0x1 +-#define MX6Q_PAD_EIM_EB0__CCM_PMIC_READY 0x10c 0x420 0x7f0 0x4 0x0 +-#define MX6Q_PAD_EIM_EB0__GPIO2_IO28 0x10c 0x420 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_EB0__SRC_BOOT_CFG27 0x10c 0x420 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_EB1__EIM_EB1_B 0x110 0x424 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_EB1__IPU1_DISP1_DATA10 0x110 0x424 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_EB1__IPU2_CSI1_DATA10 0x110 0x424 0x8b0 0x2 0x1 +-#define MX6Q_PAD_EIM_EB1__GPIO2_IO29 0x110 0x424 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_EB1__SRC_BOOT_CFG28 0x110 0x424 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA0__EIM_AD00 0x114 0x428 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA0__IPU1_DISP1_DATA09 0x114 0x428 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA0__IPU2_CSI1_DATA09 0x114 0x428 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA0__GPIO3_IO00 0x114 0x428 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA0__SRC_BOOT_CFG00 0x114 0x428 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA1__EIM_AD01 0x118 0x42c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA1__IPU1_DISP1_DATA08 0x118 0x42c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA1__IPU2_CSI1_DATA08 0x118 0x42c 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA1__GPIO3_IO01 0x118 0x42c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA1__SRC_BOOT_CFG01 0x118 0x42c 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA2__EIM_AD02 0x11c 0x430 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA2__IPU1_DISP1_DATA07 0x11c 0x430 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA2__IPU2_CSI1_DATA07 0x11c 0x430 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA2__GPIO3_IO02 0x11c 0x430 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA2__SRC_BOOT_CFG02 0x11c 0x430 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA3__EIM_AD03 0x120 0x434 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA3__IPU1_DISP1_DATA06 0x120 0x434 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA3__IPU2_CSI1_DATA06 0x120 0x434 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA3__GPIO3_IO03 0x120 0x434 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA3__SRC_BOOT_CFG03 0x120 0x434 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA4__EIM_AD04 0x124 0x438 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA4__IPU1_DISP1_DATA05 0x124 0x438 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA4__IPU2_CSI1_DATA05 0x124 0x438 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA4__GPIO3_IO04 0x124 0x438 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA4__SRC_BOOT_CFG04 0x124 0x438 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA5__EIM_AD05 0x128 0x43c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA5__IPU1_DISP1_DATA04 0x128 0x43c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA5__IPU2_CSI1_DATA04 0x128 0x43c 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA5__GPIO3_IO05 0x128 0x43c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA5__SRC_BOOT_CFG05 0x128 0x43c 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA6__EIM_AD06 0x12c 0x440 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA6__IPU1_DISP1_DATA03 0x12c 0x440 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA6__IPU2_CSI1_DATA03 0x12c 0x440 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA6__GPIO3_IO06 0x12c 0x440 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA6__SRC_BOOT_CFG06 0x12c 0x440 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA7__EIM_AD07 0x130 0x444 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA7__IPU1_DISP1_DATA02 0x130 0x444 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA7__IPU2_CSI1_DATA02 0x130 0x444 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA7__GPIO3_IO07 0x130 0x444 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA7__SRC_BOOT_CFG07 0x130 0x444 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA8__EIM_AD08 0x134 0x448 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA8__IPU1_DISP1_DATA01 0x134 0x448 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA8__IPU2_CSI1_DATA01 0x134 0x448 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA8__GPIO3_IO08 0x134 0x448 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA8__SRC_BOOT_CFG08 0x134 0x448 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA9__EIM_AD09 0x138 0x44c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA9__IPU1_DISP1_DATA00 0x138 0x44c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA9__IPU2_CSI1_DATA00 0x138 0x44c 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA9__GPIO3_IO09 0x138 0x44c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA9__SRC_BOOT_CFG09 0x138 0x44c 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA10__EIM_AD10 0x13c 0x450 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA10__IPU1_DI1_PIN15 0x13c 0x450 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA10__IPU2_CSI1_DATA_EN 0x13c 0x450 0x8d8 0x2 0x1 +-#define MX6Q_PAD_EIM_DA10__GPIO3_IO10 0x13c 0x450 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA10__SRC_BOOT_CFG10 0x13c 0x450 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA11__EIM_AD11 0x140 0x454 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA11__IPU1_DI1_PIN02 0x140 0x454 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA11__IPU2_CSI1_HSYNC 0x140 0x454 0x8dc 0x2 0x1 +-#define MX6Q_PAD_EIM_DA11__GPIO3_IO11 0x140 0x454 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA11__SRC_BOOT_CFG11 0x140 0x454 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA12__EIM_AD12 0x144 0x458 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA12__IPU1_DI1_PIN03 0x144 0x458 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA12__IPU2_CSI1_VSYNC 0x144 0x458 0x8e4 0x2 0x1 +-#define MX6Q_PAD_EIM_DA12__GPIO3_IO12 0x144 0x458 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA12__SRC_BOOT_CFG12 0x144 0x458 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA13__EIM_AD13 0x148 0x45c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA13__IPU1_DI1_D0_CS 0x148 0x45c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA13__GPIO3_IO13 0x148 0x45c 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA13__SRC_BOOT_CFG13 0x148 0x45c 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA14__EIM_AD14 0x14c 0x460 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA14__IPU1_DI1_D1_CS 0x14c 0x460 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA14__GPIO3_IO14 0x14c 0x460 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA14__SRC_BOOT_CFG14 0x14c 0x460 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_DA15__EIM_AD15 0x150 0x464 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_DA15__IPU1_DI1_PIN01 0x150 0x464 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_DA15__IPU1_DI1_PIN04 0x150 0x464 0x000 0x2 0x0 +-#define MX6Q_PAD_EIM_DA15__GPIO3_IO15 0x150 0x464 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_DA15__SRC_BOOT_CFG15 0x150 0x464 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_WAIT__EIM_WAIT_B 0x154 0x468 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_WAIT__EIM_DTACK_B 0x154 0x468 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_WAIT__GPIO5_IO00 0x154 0x468 0x000 0x5 0x0 +-#define MX6Q_PAD_EIM_WAIT__SRC_BOOT_CFG25 0x154 0x468 0x000 0x7 0x0 +-#define MX6Q_PAD_EIM_BCLK__EIM_BCLK 0x158 0x46c 0x000 0x0 0x0 +-#define MX6Q_PAD_EIM_BCLK__IPU1_DI1_PIN16 0x158 0x46c 0x000 0x1 0x0 +-#define MX6Q_PAD_EIM_BCLK__GPIO6_IO31 0x158 0x46c 0x000 0x5 0x0 +-#define MX6Q_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x15c 0x470 0x000 0x0 0x0 +-#define MX6Q_PAD_DI0_DISP_CLK__IPU2_DI0_DISP_CLK 0x15c 0x470 0x000 0x1 0x0 +-#define MX6Q_PAD_DI0_DISP_CLK__GPIO4_IO16 0x15c 0x470 0x000 0x5 0x0 +-#define MX6Q_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x160 0x474 0x000 0x0 0x0 +-#define MX6Q_PAD_DI0_PIN15__IPU2_DI0_PIN15 0x160 0x474 0x000 0x1 0x0 +-#define MX6Q_PAD_DI0_PIN15__AUD6_TXC 0x160 0x474 0x000 0x2 0x0 +-#define MX6Q_PAD_DI0_PIN15__GPIO4_IO17 0x160 0x474 0x000 0x5 0x0 +-#define MX6Q_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x164 0x478 0x000 0x0 0x0 +-#define MX6Q_PAD_DI0_PIN2__IPU2_DI0_PIN02 0x164 0x478 0x000 0x1 0x0 +-#define MX6Q_PAD_DI0_PIN2__AUD6_TXD 0x164 0x478 0x000 0x2 0x0 +-#define MX6Q_PAD_DI0_PIN2__GPIO4_IO18 0x164 0x478 0x000 0x5 0x0 +-#define MX6Q_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x168 0x47c 0x000 0x0 0x0 +-#define MX6Q_PAD_DI0_PIN3__IPU2_DI0_PIN03 0x168 0x47c 0x000 0x1 0x0 +-#define MX6Q_PAD_DI0_PIN3__AUD6_TXFS 0x168 0x47c 0x000 0x2 0x0 +-#define MX6Q_PAD_DI0_PIN3__GPIO4_IO19 0x168 0x47c 0x000 0x5 0x0 +-#define MX6Q_PAD_DI0_PIN4__IPU1_DI0_PIN04 0x16c 0x480 0x000 0x0 0x0 +-#define MX6Q_PAD_DI0_PIN4__IPU2_DI0_PIN04 0x16c 0x480 0x000 0x1 0x0 +-#define MX6Q_PAD_DI0_PIN4__AUD6_RXD 0x16c 0x480 0x000 0x2 0x0 +-#define MX6Q_PAD_DI0_PIN4__SD1_WP 0x16c 0x480 0x94c 0x3 0x0 +-#define MX6Q_PAD_DI0_PIN4__GPIO4_IO20 0x16c 0x480 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x170 0x484 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT0__IPU2_DISP0_DATA00 0x170 0x484 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT0__ECSPI3_SCLK 0x170 0x484 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT0__GPIO4_IO21 0x170 0x484 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x174 0x488 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT1__IPU2_DISP0_DATA01 0x174 0x488 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT1__ECSPI3_MOSI 0x174 0x488 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT1__GPIO4_IO22 0x174 0x488 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x178 0x48c 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT2__IPU2_DISP0_DATA02 0x178 0x48c 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT2__ECSPI3_MISO 0x178 0x48c 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT2__GPIO4_IO23 0x178 0x48c 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x17c 0x490 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT3__IPU2_DISP0_DATA03 0x17c 0x490 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT3__ECSPI3_SS0 0x17c 0x490 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT3__GPIO4_IO24 0x17c 0x490 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x180 0x494 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT4__IPU2_DISP0_DATA04 0x180 0x494 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT4__ECSPI3_SS1 0x180 0x494 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT4__GPIO4_IO25 0x180 0x494 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x184 0x498 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT5__IPU2_DISP0_DATA05 0x184 0x498 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT5__ECSPI3_SS2 0x184 0x498 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT5__AUD6_RXFS 0x184 0x498 0x000 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT5__GPIO4_IO26 0x184 0x498 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x188 0x49c 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT6__IPU2_DISP0_DATA06 0x188 0x49c 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT6__ECSPI3_SS3 0x188 0x49c 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT6__AUD6_RXC 0x188 0x49c 0x000 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT6__GPIO4_IO27 0x188 0x49c 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x18c 0x4a0 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT7__IPU2_DISP0_DATA07 0x18c 0x4a0 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT7__ECSPI3_RDY 0x18c 0x4a0 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT7__GPIO4_IO28 0x18c 0x4a0 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x190 0x4a4 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT8__IPU2_DISP0_DATA08 0x190 0x4a4 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT8__PWM1_OUT 0x190 0x4a4 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT8__WDOG1_B 0x190 0x4a4 0x000 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT8__GPIO4_IO29 0x190 0x4a4 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x194 0x4a8 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT9__IPU2_DISP0_DATA09 0x194 0x4a8 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT9__PWM2_OUT 0x194 0x4a8 0x000 0x2 0x0 +-#define MX6Q_PAD_DISP0_DAT9__WDOG2_B 0x194 0x4a8 0x000 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT9__GPIO4_IO30 0x194 0x4a8 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x198 0x4ac 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT10__IPU2_DISP0_DATA10 0x198 0x4ac 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT10__GPIO4_IO31 0x198 0x4ac 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x19c 0x4b0 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT11__IPU2_DISP0_DATA11 0x19c 0x4b0 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT11__GPIO5_IO05 0x19c 0x4b0 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x1a0 0x4b4 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT12__IPU2_DISP0_DATA12 0x1a0 0x4b4 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT12__GPIO5_IO06 0x1a0 0x4b4 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x1a4 0x4b8 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT13__IPU2_DISP0_DATA13 0x1a4 0x4b8 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT13__AUD5_RXFS 0x1a4 0x4b8 0x7d8 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT13__GPIO5_IO07 0x1a4 0x4b8 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x1a8 0x4bc 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT14__IPU2_DISP0_DATA14 0x1a8 0x4bc 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT14__AUD5_RXC 0x1a8 0x4bc 0x7d4 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT14__GPIO5_IO08 0x1a8 0x4bc 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x1ac 0x4c0 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT15__IPU2_DISP0_DATA15 0x1ac 0x4c0 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT15__ECSPI1_SS1 0x1ac 0x4c0 0x804 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT15__ECSPI2_SS1 0x1ac 0x4c0 0x820 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT15__GPIO5_IO09 0x1ac 0x4c0 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x1b0 0x4c4 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT16__IPU2_DISP0_DATA16 0x1b0 0x4c4 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT16__ECSPI2_MOSI 0x1b0 0x4c4 0x818 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT16__AUD5_TXC 0x1b0 0x4c4 0x7dc 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT16__SDMA_EXT_EVENT0 0x1b0 0x4c4 0x90c 0x4 0x0 +-#define MX6Q_PAD_DISP0_DAT16__GPIO5_IO10 0x1b0 0x4c4 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x1b4 0x4c8 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT17__IPU2_DISP0_DATA17 0x1b4 0x4c8 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT17__ECSPI2_MISO 0x1b4 0x4c8 0x814 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT17__AUD5_TXD 0x1b4 0x4c8 0x7d0 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT17__SDMA_EXT_EVENT1 0x1b4 0x4c8 0x910 0x4 0x0 +-#define MX6Q_PAD_DISP0_DAT17__GPIO5_IO11 0x1b4 0x4c8 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x1b8 0x4cc 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT18__IPU2_DISP0_DATA18 0x1b8 0x4cc 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT18__ECSPI2_SS0 0x1b8 0x4cc 0x81c 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT18__AUD5_TXFS 0x1b8 0x4cc 0x7e0 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT18__AUD4_RXFS 0x1b8 0x4cc 0x7c0 0x4 0x0 +-#define MX6Q_PAD_DISP0_DAT18__GPIO5_IO12 0x1b8 0x4cc 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT18__EIM_CS2_B 0x1b8 0x4cc 0x000 0x7 0x0 +-#define MX6Q_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x1bc 0x4d0 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT19__IPU2_DISP0_DATA19 0x1bc 0x4d0 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT19__ECSPI2_SCLK 0x1bc 0x4d0 0x810 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT19__AUD5_RXD 0x1bc 0x4d0 0x7cc 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT19__AUD4_RXC 0x1bc 0x4d0 0x7bc 0x4 0x0 +-#define MX6Q_PAD_DISP0_DAT19__GPIO5_IO13 0x1bc 0x4d0 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT19__EIM_CS3_B 0x1bc 0x4d0 0x000 0x7 0x0 +-#define MX6Q_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x1c0 0x4d4 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT20__IPU2_DISP0_DATA20 0x1c0 0x4d4 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT20__ECSPI1_SCLK 0x1c0 0x4d4 0x7f4 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT20__AUD4_TXC 0x1c0 0x4d4 0x7c4 0x3 0x0 +-#define MX6Q_PAD_DISP0_DAT20__GPIO5_IO14 0x1c0 0x4d4 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x1c4 0x4d8 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT21__IPU2_DISP0_DATA21 0x1c4 0x4d8 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT21__ECSPI1_MOSI 0x1c4 0x4d8 0x7fc 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT21__AUD4_TXD 0x1c4 0x4d8 0x7b8 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT21__GPIO5_IO15 0x1c4 0x4d8 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x1c8 0x4dc 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT22__IPU2_DISP0_DATA22 0x1c8 0x4dc 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT22__ECSPI1_MISO 0x1c8 0x4dc 0x7f8 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT22__AUD4_TXFS 0x1c8 0x4dc 0x7c8 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT22__GPIO5_IO16 0x1c8 0x4dc 0x000 0x5 0x0 +-#define MX6Q_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x1cc 0x4e0 0x000 0x0 0x0 +-#define MX6Q_PAD_DISP0_DAT23__IPU2_DISP0_DATA23 0x1cc 0x4e0 0x000 0x1 0x0 +-#define MX6Q_PAD_DISP0_DAT23__ECSPI1_SS0 0x1cc 0x4e0 0x800 0x2 0x1 +-#define MX6Q_PAD_DISP0_DAT23__AUD4_RXD 0x1cc 0x4e0 0x7b4 0x3 0x1 +-#define MX6Q_PAD_DISP0_DAT23__GPIO5_IO17 0x1cc 0x4e0 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_MDIO__ENET_MDIO 0x1d0 0x4e4 0x840 0x1 0x0 +-#define MX6Q_PAD_ENET_MDIO__ESAI_RX_CLK 0x1d0 0x4e4 0x86c 0x2 0x0 +-#define MX6Q_PAD_ENET_MDIO__ENET_1588_EVENT1_OUT 0x1d0 0x4e4 0x000 0x4 0x0 +-#define MX6Q_PAD_ENET_MDIO__GPIO1_IO22 0x1d0 0x4e4 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_MDIO__SPDIF_LOCK 0x1d0 0x4e4 0x000 0x6 0x0 +-#define MX6Q_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1d4 0x4e8 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_REF_CLK__ESAI_RX_FS 0x1d4 0x4e8 0x85c 0x2 0x0 +-#define MX6Q_PAD_ENET_REF_CLK__GPIO1_IO23 0x1d4 0x4e8 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_REF_CLK__SPDIF_SR_CLK 0x1d4 0x4e8 0x000 0x6 0x0 +-#define MX6Q_PAD_ENET_RX_ER__USB_OTG_ID 0x1d8 0x4ec 0x000 0x0 0x0 +-#define MX6Q_PAD_ENET_RX_ER__ENET_RX_ER 0x1d8 0x4ec 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_RX_ER__ESAI_RX_HF_CLK 0x1d8 0x4ec 0x864 0x2 0x0 +-#define MX6Q_PAD_ENET_RX_ER__SPDIF_IN 0x1d8 0x4ec 0x914 0x3 0x1 +-#define MX6Q_PAD_ENET_RX_ER__ENET_1588_EVENT2_OUT 0x1d8 0x4ec 0x000 0x4 0x0 +-#define MX6Q_PAD_ENET_RX_ER__GPIO1_IO24 0x1d8 0x4ec 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_CRS_DV__ENET_RX_EN 0x1dc 0x4f0 0x858 0x1 0x1 +-#define MX6Q_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1dc 0x4f0 0x870 0x2 0x0 +-#define MX6Q_PAD_ENET_CRS_DV__SPDIF_EXT_CLK 0x1dc 0x4f0 0x918 0x3 0x1 +-#define MX6Q_PAD_ENET_CRS_DV__GPIO1_IO25 0x1dc 0x4f0 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_RXD1__MLB_SIG 0x1e0 0x4f4 0x908 0x0 0x0 +-#define MX6Q_PAD_ENET_RXD1__ENET_RX_DATA1 0x1e0 0x4f4 0x84c 0x1 0x1 +-#define MX6Q_PAD_ENET_RXD1__ESAI_TX_FS 0x1e0 0x4f4 0x860 0x2 0x0 +-#define MX6Q_PAD_ENET_RXD1__ENET_1588_EVENT3_OUT 0x1e0 0x4f4 0x000 0x4 0x0 +-#define MX6Q_PAD_ENET_RXD1__GPIO1_IO26 0x1e0 0x4f4 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_RXD0__ENET_RX_DATA0 0x1e4 0x4f8 0x848 0x1 0x1 +-#define MX6Q_PAD_ENET_RXD0__ESAI_TX_HF_CLK 0x1e4 0x4f8 0x868 0x2 0x0 +-#define MX6Q_PAD_ENET_RXD0__SPDIF_OUT 0x1e4 0x4f8 0x000 0x3 0x0 +-#define MX6Q_PAD_ENET_RXD0__GPIO1_IO27 0x1e4 0x4f8 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_TX_EN__ENET_TX_EN 0x1e8 0x4fc 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1e8 0x4fc 0x880 0x2 0x0 +-#define MX6Q_PAD_ENET_TX_EN__GPIO1_IO28 0x1e8 0x4fc 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_TXD1__MLB_CLK 0x1ec 0x500 0x900 0x0 0x0 +-#define MX6Q_PAD_ENET_TXD1__ENET_TX_DATA1 0x1ec 0x500 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_TXD1__ESAI_TX2_RX3 0x1ec 0x500 0x87c 0x2 0x0 +-#define MX6Q_PAD_ENET_TXD1__ENET_1588_EVENT0_IN 0x1ec 0x500 0x000 0x4 0x0 +-#define MX6Q_PAD_ENET_TXD1__GPIO1_IO29 0x1ec 0x500 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_TXD0__ENET_TX_DATA0 0x1f0 0x504 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_TXD0__ESAI_TX4_RX1 0x1f0 0x504 0x884 0x2 0x0 +-#define MX6Q_PAD_ENET_TXD0__GPIO1_IO30 0x1f0 0x504 0x000 0x5 0x0 +-#define MX6Q_PAD_ENET_MDC__MLB_DATA 0x1f4 0x508 0x904 0x0 0x0 +-#define MX6Q_PAD_ENET_MDC__ENET_MDC 0x1f4 0x508 0x000 0x1 0x0 +-#define MX6Q_PAD_ENET_MDC__ESAI_TX5_RX0 0x1f4 0x508 0x888 0x2 0x0 +-#define MX6Q_PAD_ENET_MDC__ENET_1588_EVENT1_IN 0x1f4 0x508 0x000 0x4 0x0 +-#define MX6Q_PAD_ENET_MDC__GPIO1_IO31 0x1f4 0x508 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_COL0__ECSPI1_SCLK 0x1f8 0x5c8 0x7f4 0x0 0x2 +-#define MX6Q_PAD_KEY_COL0__ENET_RX_DATA3 0x1f8 0x5c8 0x854 0x1 0x1 +-#define MX6Q_PAD_KEY_COL0__AUD5_TXC 0x1f8 0x5c8 0x7dc 0x2 0x1 +-#define MX6Q_PAD_KEY_COL0__KEY_COL0 0x1f8 0x5c8 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_COL0__UART4_TX_DATA 0x1f8 0x5c8 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_COL0__UART4_RX_DATA 0x1f8 0x5c8 0x938 0x4 0x0 +-#define MX6Q_PAD_KEY_COL0__GPIO4_IO06 0x1f8 0x5c8 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_COL0__DCIC1_OUT 0x1f8 0x5c8 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_ROW0__ECSPI1_MOSI 0x1fc 0x5cc 0x7fc 0x0 0x2 +-#define MX6Q_PAD_KEY_ROW0__ENET_TX_DATA3 0x1fc 0x5cc 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_ROW0__AUD5_TXD 0x1fc 0x5cc 0x7d0 0x2 0x1 +-#define MX6Q_PAD_KEY_ROW0__KEY_ROW0 0x1fc 0x5cc 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_ROW0__UART4_RX_DATA 0x1fc 0x5cc 0x938 0x4 0x1 +-#define MX6Q_PAD_KEY_ROW0__UART4_TX_DATA 0x1fc 0x5cc 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_ROW0__GPIO4_IO07 0x1fc 0x5cc 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_ROW0__DCIC2_OUT 0x1fc 0x5cc 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_COL1__ECSPI1_MISO 0x200 0x5d0 0x7f8 0x0 0x2 +-#define MX6Q_PAD_KEY_COL1__ENET_MDIO 0x200 0x5d0 0x840 0x1 0x1 +-#define MX6Q_PAD_KEY_COL1__AUD5_TXFS 0x200 0x5d0 0x7e0 0x2 0x1 +-#define MX6Q_PAD_KEY_COL1__KEY_COL1 0x200 0x5d0 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_COL1__UART5_TX_DATA 0x200 0x5d0 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_COL1__UART5_RX_DATA 0x200 0x5d0 0x940 0x4 0x0 +-#define MX6Q_PAD_KEY_COL1__GPIO4_IO08 0x200 0x5d0 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_COL1__SD1_VSELECT 0x200 0x5d0 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_ROW1__ECSPI1_SS0 0x204 0x5d4 0x800 0x0 0x2 +-#define MX6Q_PAD_KEY_ROW1__ENET_COL 0x204 0x5d4 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_ROW1__AUD5_RXD 0x204 0x5d4 0x7cc 0x2 0x1 +-#define MX6Q_PAD_KEY_ROW1__KEY_ROW1 0x204 0x5d4 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_ROW1__UART5_RX_DATA 0x204 0x5d4 0x940 0x4 0x1 +-#define MX6Q_PAD_KEY_ROW1__UART5_TX_DATA 0x204 0x5d4 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_ROW1__GPIO4_IO09 0x204 0x5d4 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_ROW1__SD2_VSELECT 0x204 0x5d4 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_COL2__ECSPI1_SS1 0x208 0x5d8 0x804 0x0 0x2 +-#define MX6Q_PAD_KEY_COL2__ENET_RX_DATA2 0x208 0x5d8 0x850 0x1 0x1 +-#define MX6Q_PAD_KEY_COL2__FLEXCAN1_TX 0x208 0x5d8 0x000 0x2 0x0 +-#define MX6Q_PAD_KEY_COL2__KEY_COL2 0x208 0x5d8 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_COL2__ENET_MDC 0x208 0x5d8 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_COL2__GPIO4_IO10 0x208 0x5d8 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_COL2__USB_H1_PWR_CTL_WAKE 0x208 0x5d8 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_ROW2__ECSPI1_SS2 0x20c 0x5dc 0x808 0x0 0x1 +-#define MX6Q_PAD_KEY_ROW2__ENET_TX_DATA2 0x20c 0x5dc 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_ROW2__FLEXCAN1_RX 0x20c 0x5dc 0x7e4 0x2 0x0 +-#define MX6Q_PAD_KEY_ROW2__KEY_ROW2 0x20c 0x5dc 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_ROW2__SD2_VSELECT 0x20c 0x5dc 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_ROW2__GPIO4_IO11 0x20c 0x5dc 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x20c 0x5dc 0x88c 0x6 0x1 +-#define MX6Q_PAD_KEY_COL3__ECSPI1_SS3 0x210 0x5e0 0x80c 0x0 0x1 +-#define MX6Q_PAD_KEY_COL3__ENET_CRS 0x210 0x5e0 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x210 0x5e0 0x890 0x2 0x1 +-#define MX6Q_PAD_KEY_COL3__KEY_COL3 0x210 0x5e0 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_COL3__I2C2_SCL 0x210 0x5e0 0x8a0 0x4 0x1 +-#define MX6Q_PAD_KEY_COL3__GPIO4_IO12 0x210 0x5e0 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_COL3__SPDIF_IN 0x210 0x5e0 0x914 0x6 0x2 +-#define MX6Q_PAD_KEY_ROW3__ASRC_EXT_CLK 0x214 0x5e4 0x7b0 0x1 0x0 +-#define MX6Q_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x214 0x5e4 0x894 0x2 0x1 +-#define MX6Q_PAD_KEY_ROW3__KEY_ROW3 0x214 0x5e4 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_ROW3__I2C2_SDA 0x214 0x5e4 0x8a4 0x4 0x1 +-#define MX6Q_PAD_KEY_ROW3__GPIO4_IO13 0x214 0x5e4 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_ROW3__SD1_VSELECT 0x214 0x5e4 0x000 0x6 0x0 +-#define MX6Q_PAD_KEY_COL4__FLEXCAN2_TX 0x218 0x5e8 0x000 0x0 0x0 +-#define MX6Q_PAD_KEY_COL4__IPU1_SISG4 0x218 0x5e8 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_COL4__USB_OTG_OC 0x218 0x5e8 0x944 0x2 0x1 +-#define MX6Q_PAD_KEY_COL4__KEY_COL4 0x218 0x5e8 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_COL4__UART5_RTS_B 0x218 0x5e8 0x93c 0x4 0x0 +-#define MX6Q_PAD_KEY_COL4__UART5_CTS_B 0x218 0x5e8 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_COL4__GPIO4_IO14 0x218 0x5e8 0x000 0x5 0x0 +-#define MX6Q_PAD_KEY_ROW4__FLEXCAN2_RX 0x21c 0x5ec 0x7e8 0x0 0x0 +-#define MX6Q_PAD_KEY_ROW4__IPU1_SISG5 0x21c 0x5ec 0x000 0x1 0x0 +-#define MX6Q_PAD_KEY_ROW4__USB_OTG_PWR 0x21c 0x5ec 0x000 0x2 0x0 +-#define MX6Q_PAD_KEY_ROW4__KEY_ROW4 0x21c 0x5ec 0x000 0x3 0x0 +-#define MX6Q_PAD_KEY_ROW4__UART5_CTS_B 0x21c 0x5ec 0x000 0x4 0x0 +-#define MX6Q_PAD_KEY_ROW4__UART5_RTS_B 0x21c 0x5ec 0x93c 0x4 0x1 +-#define MX6Q_PAD_KEY_ROW4__GPIO4_IO15 0x21c 0x5ec 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_0__CCM_CLKO1 0x220 0x5f0 0x000 0x0 0x0 +-#define MX6Q_PAD_GPIO_0__KEY_COL5 0x220 0x5f0 0x8e8 0x2 0x0 +-#define MX6Q_PAD_GPIO_0__ASRC_EXT_CLK 0x220 0x5f0 0x7b0 0x3 0x1 +-#define MX6Q_PAD_GPIO_0__EPIT1_OUT 0x220 0x5f0 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_0__GPIO1_IO00 0x220 0x5f0 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_0__USB_H1_PWR 0x220 0x5f0 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_0__SNVS_VIO_5 0x220 0x5f0 0x000 0x7 0x0 +-#define MX6Q_PAD_GPIO_1__ESAI_RX_CLK 0x224 0x5f4 0x86c 0x0 0x1 +-#define MX6Q_PAD_GPIO_1__WDOG2_B 0x224 0x5f4 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_1__KEY_ROW5 0x224 0x5f4 0x8f4 0x2 0x0 +-#define MX6Q_PAD_GPIO_1__USB_OTG_ID 0x224 0x5f4 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_1__PWM2_OUT 0x224 0x5f4 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_1__GPIO1_IO01 0x224 0x5f4 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_1__SD1_CD_B 0x224 0x5f4 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_9__ESAI_RX_FS 0x228 0x5f8 0x85c 0x0 0x1 +-#define MX6Q_PAD_GPIO_9__WDOG1_B 0x228 0x5f8 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_9__KEY_COL6 0x228 0x5f8 0x8ec 0x2 0x0 +-#define MX6Q_PAD_GPIO_9__CCM_REF_EN_B 0x228 0x5f8 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_9__PWM1_OUT 0x228 0x5f8 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_9__GPIO1_IO09 0x228 0x5f8 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_9__SD1_WP 0x228 0x5f8 0x94c 0x6 0x1 +-#define MX6Q_PAD_GPIO_3__ESAI_RX_HF_CLK 0x22c 0x5fc 0x864 0x0 0x1 +-#define MX6Q_PAD_GPIO_3__I2C3_SCL 0x22c 0x5fc 0x8a8 0x2 0x1 +-#define MX6Q_PAD_GPIO_3__XTALOSC_REF_CLK_24M 0x22c 0x5fc 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_3__CCM_CLKO2 0x22c 0x5fc 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_3__GPIO1_IO03 0x22c 0x5fc 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_3__USB_H1_OC 0x22c 0x5fc 0x948 0x6 0x1 +-#define MX6Q_PAD_GPIO_3__MLB_CLK 0x22c 0x5fc 0x900 0x7 0x1 +-#define MX6Q_PAD_GPIO_6__ESAI_TX_CLK 0x230 0x600 0x870 0x0 0x1 +-#define MX6Q_PAD_GPIO_6__I2C3_SDA 0x230 0x600 0x8ac 0x2 0x1 +-#define MX6Q_PAD_GPIO_6__GPIO1_IO06 0x230 0x600 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_6__SD2_LCTL 0x230 0x600 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_6__MLB_SIG 0x230 0x600 0x908 0x7 0x1 +-#define MX6Q_PAD_GPIO_2__ESAI_TX_FS 0x234 0x604 0x860 0x0 0x1 +-#define MX6Q_PAD_GPIO_2__KEY_ROW6 0x234 0x604 0x8f8 0x2 0x1 +-#define MX6Q_PAD_GPIO_2__GPIO1_IO02 0x234 0x604 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_2__SD2_WP 0x234 0x604 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_2__MLB_DATA 0x234 0x604 0x904 0x7 0x1 +-#define MX6Q_PAD_GPIO_4__ESAI_TX_HF_CLK 0x238 0x608 0x868 0x0 0x1 +-#define MX6Q_PAD_GPIO_4__KEY_COL7 0x238 0x608 0x8f0 0x2 0x1 +-#define MX6Q_PAD_GPIO_4__GPIO1_IO04 0x238 0x608 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_4__SD2_CD_B 0x238 0x608 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_5__ESAI_TX2_RX3 0x23c 0x60c 0x87c 0x0 0x1 +-#define MX6Q_PAD_GPIO_5__KEY_ROW7 0x23c 0x60c 0x8fc 0x2 0x1 +-#define MX6Q_PAD_GPIO_5__CCM_CLKO1 0x23c 0x60c 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_5__GPIO1_IO05 0x23c 0x60c 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_5__I2C3_SCL 0x23c 0x60c 0x8a8 0x6 0x2 +-#define MX6Q_PAD_GPIO_5__ARM_EVENTI 0x23c 0x60c 0x000 0x7 0x0 +-#define MX6Q_PAD_GPIO_7__ESAI_TX4_RX1 0x240 0x610 0x884 0x0 0x1 +-#define MX6Q_PAD_GPIO_7__ECSPI5_RDY 0x240 0x610 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_7__EPIT1_OUT 0x240 0x610 0x000 0x2 0x0 +-#define MX6Q_PAD_GPIO_7__FLEXCAN1_TX 0x240 0x610 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_7__UART2_TX_DATA 0x240 0x610 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_7__UART2_RX_DATA 0x240 0x610 0x928 0x4 0x2 +-#define MX6Q_PAD_GPIO_7__GPIO1_IO07 0x240 0x610 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_7__SPDIF_LOCK 0x240 0x610 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_7__USB_OTG_HOST_MODE 0x240 0x610 0x000 0x7 0x0 +-#define MX6Q_PAD_GPIO_8__ESAI_TX5_RX0 0x244 0x614 0x888 0x0 0x1 +-#define MX6Q_PAD_GPIO_8__XTALOSC_REF_CLK_32K 0x244 0x614 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_8__EPIT2_OUT 0x244 0x614 0x000 0x2 0x0 +-#define MX6Q_PAD_GPIO_8__FLEXCAN1_RX 0x244 0x614 0x7e4 0x3 0x1 +-#define MX6Q_PAD_GPIO_8__UART2_RX_DATA 0x244 0x614 0x928 0x4 0x3 +-#define MX6Q_PAD_GPIO_8__UART2_TX_DATA 0x244 0x614 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_8__GPIO1_IO08 0x244 0x614 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_8__SPDIF_SR_CLK 0x244 0x614 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_8__USB_OTG_PWR_CTL_WAKE 0x244 0x614 0x000 0x7 0x0 +-#define MX6Q_PAD_GPIO_16__ESAI_TX3_RX2 0x248 0x618 0x880 0x0 0x1 +-#define MX6Q_PAD_GPIO_16__ENET_1588_EVENT2_IN 0x248 0x618 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_16__ENET_REF_CLK 0x248 0x618 0x83c 0x2 0x1 +-#define MX6Q_PAD_GPIO_16__SD1_LCTL 0x248 0x618 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_16__SPDIF_IN 0x248 0x618 0x914 0x4 0x3 +-#define MX6Q_PAD_GPIO_16__GPIO7_IO11 0x248 0x618 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_16__I2C3_SDA 0x248 0x618 0x8ac 0x6 0x2 +-#define MX6Q_PAD_GPIO_16__JTAG_DE_B 0x248 0x618 0x000 0x7 0x0 +-#define MX6Q_PAD_GPIO_17__ESAI_TX0 0x24c 0x61c 0x874 0x0 0x0 +-#define MX6Q_PAD_GPIO_17__ENET_1588_EVENT3_IN 0x24c 0x61c 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_17__CCM_PMIC_READY 0x24c 0x61c 0x7f0 0x2 0x1 +-#define MX6Q_PAD_GPIO_17__SDMA_EXT_EVENT0 0x24c 0x61c 0x90c 0x3 0x1 +-#define MX6Q_PAD_GPIO_17__SPDIF_OUT 0x24c 0x61c 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_17__GPIO7_IO12 0x24c 0x61c 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_18__ESAI_TX1 0x250 0x620 0x878 0x0 0x0 +-#define MX6Q_PAD_GPIO_18__ENET_RX_CLK 0x250 0x620 0x844 0x1 0x1 +-#define MX6Q_PAD_GPIO_18__SD3_VSELECT 0x250 0x620 0x000 0x2 0x0 +-#define MX6Q_PAD_GPIO_18__SDMA_EXT_EVENT1 0x250 0x620 0x910 0x3 0x1 +-#define MX6Q_PAD_GPIO_18__ASRC_EXT_CLK 0x250 0x620 0x7b0 0x4 0x2 +-#define MX6Q_PAD_GPIO_18__GPIO7_IO13 0x250 0x620 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_18__SNVS_VIO_5_CTL 0x250 0x620 0x000 0x6 0x0 +-#define MX6Q_PAD_GPIO_19__KEY_COL5 0x254 0x624 0x8e8 0x0 0x1 +-#define MX6Q_PAD_GPIO_19__ENET_1588_EVENT0_OUT 0x254 0x624 0x000 0x1 0x0 +-#define MX6Q_PAD_GPIO_19__SPDIF_OUT 0x254 0x624 0x000 0x2 0x0 +-#define MX6Q_PAD_GPIO_19__CCM_CLKO1 0x254 0x624 0x000 0x3 0x0 +-#define MX6Q_PAD_GPIO_19__ECSPI1_RDY 0x254 0x624 0x000 0x4 0x0 +-#define MX6Q_PAD_GPIO_19__GPIO4_IO05 0x254 0x624 0x000 0x5 0x0 +-#define MX6Q_PAD_GPIO_19__ENET_TX_ER 0x254 0x624 0x000 0x6 0x0 +-#define MX6Q_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x258 0x628 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_PIXCLK__GPIO5_IO18 0x258 0x628 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_PIXCLK__ARM_EVENTO 0x258 0x628 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x25c 0x62c 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_MCLK__CCM_CLKO1 0x25c 0x62c 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_MCLK__GPIO5_IO19 0x25c 0x62c 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_MCLK__ARM_TRACE_CTL 0x25c 0x62c 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x260 0x630 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DATA_EN__EIM_DATA00 0x260 0x630 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DATA_EN__GPIO5_IO20 0x260 0x630 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DATA_EN__ARM_TRACE_CLK 0x260 0x630 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x264 0x634 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_VSYNC__EIM_DATA01 0x264 0x634 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_VSYNC__GPIO5_IO21 0x264 0x634 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_VSYNC__ARM_TRACE00 0x264 0x634 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT4__IPU1_CSI0_DATA04 0x268 0x638 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT4__EIM_DATA02 0x268 0x638 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT4__ECSPI1_SCLK 0x268 0x638 0x7f4 0x2 0x3 +-#define MX6Q_PAD_CSI0_DAT4__KEY_COL5 0x268 0x638 0x8e8 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT4__AUD3_TXC 0x268 0x638 0x000 0x4 0x0 +-#define MX6Q_PAD_CSI0_DAT4__GPIO5_IO22 0x268 0x638 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT4__ARM_TRACE01 0x268 0x638 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT5__IPU1_CSI0_DATA05 0x26c 0x63c 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT5__EIM_DATA03 0x26c 0x63c 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT5__ECSPI1_MOSI 0x26c 0x63c 0x7fc 0x2 0x3 +-#define MX6Q_PAD_CSI0_DAT5__KEY_ROW5 0x26c 0x63c 0x8f4 0x3 0x1 +-#define MX6Q_PAD_CSI0_DAT5__AUD3_TXD 0x26c 0x63c 0x000 0x4 0x0 +-#define MX6Q_PAD_CSI0_DAT5__GPIO5_IO23 0x26c 0x63c 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT5__ARM_TRACE02 0x26c 0x63c 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT6__IPU1_CSI0_DATA06 0x270 0x640 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT6__EIM_DATA04 0x270 0x640 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT6__ECSPI1_MISO 0x270 0x640 0x7f8 0x2 0x3 +-#define MX6Q_PAD_CSI0_DAT6__KEY_COL6 0x270 0x640 0x8ec 0x3 0x1 +-#define MX6Q_PAD_CSI0_DAT6__AUD3_TXFS 0x270 0x640 0x000 0x4 0x0 +-#define MX6Q_PAD_CSI0_DAT6__GPIO5_IO24 0x270 0x640 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT6__ARM_TRACE03 0x270 0x640 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x274 0x644 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT7__EIM_DATA05 0x274 0x644 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT7__ECSPI1_SS0 0x274 0x644 0x800 0x2 0x3 +-#define MX6Q_PAD_CSI0_DAT7__KEY_ROW6 0x274 0x644 0x8f8 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT7__AUD3_RXD 0x274 0x644 0x000 0x4 0x0 +-#define MX6Q_PAD_CSI0_DAT7__GPIO5_IO25 0x274 0x644 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT7__ARM_TRACE04 0x274 0x644 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x278 0x648 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT8__EIM_DATA06 0x278 0x648 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT8__ECSPI2_SCLK 0x278 0x648 0x810 0x2 0x2 +-#define MX6Q_PAD_CSI0_DAT8__KEY_COL7 0x278 0x648 0x8f0 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT8__I2C1_SDA 0x278 0x648 0x89c 0x4 0x1 +-#define MX6Q_PAD_CSI0_DAT8__GPIO5_IO26 0x278 0x648 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT8__ARM_TRACE05 0x278 0x648 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x27c 0x64c 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT9__EIM_DATA07 0x27c 0x64c 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT9__ECSPI2_MOSI 0x27c 0x64c 0x818 0x2 0x2 +-#define MX6Q_PAD_CSI0_DAT9__KEY_ROW7 0x27c 0x64c 0x8fc 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT9__I2C1_SCL 0x27c 0x64c 0x898 0x4 0x1 +-#define MX6Q_PAD_CSI0_DAT9__GPIO5_IO27 0x27c 0x64c 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT9__ARM_TRACE06 0x27c 0x64c 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x280 0x650 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT10__AUD3_RXC 0x280 0x650 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT10__ECSPI2_MISO 0x280 0x650 0x814 0x2 0x2 +-#define MX6Q_PAD_CSI0_DAT10__UART1_TX_DATA 0x280 0x650 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT10__UART1_RX_DATA 0x280 0x650 0x920 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT10__GPIO5_IO28 0x280 0x650 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT10__ARM_TRACE07 0x280 0x650 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x284 0x654 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT11__AUD3_RXFS 0x284 0x654 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT11__ECSPI2_SS0 0x284 0x654 0x81c 0x2 0x2 +-#define MX6Q_PAD_CSI0_DAT11__UART1_RX_DATA 0x284 0x654 0x920 0x3 0x1 +-#define MX6Q_PAD_CSI0_DAT11__UART1_TX_DATA 0x284 0x654 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT11__GPIO5_IO29 0x284 0x654 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT11__ARM_TRACE08 0x284 0x654 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x288 0x658 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT12__EIM_DATA08 0x288 0x658 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT12__UART4_TX_DATA 0x288 0x658 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT12__UART4_RX_DATA 0x288 0x658 0x938 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT12__GPIO5_IO30 0x288 0x658 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT12__ARM_TRACE09 0x288 0x658 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x28c 0x65c 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT13__EIM_DATA09 0x28c 0x65c 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT13__UART4_RX_DATA 0x28c 0x65c 0x938 0x3 0x3 +-#define MX6Q_PAD_CSI0_DAT13__UART4_TX_DATA 0x28c 0x65c 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT13__GPIO5_IO31 0x28c 0x65c 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT13__ARM_TRACE10 0x28c 0x65c 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x290 0x660 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT14__EIM_DATA10 0x290 0x660 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT14__UART5_TX_DATA 0x290 0x660 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT14__UART5_RX_DATA 0x290 0x660 0x940 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT14__GPIO6_IO00 0x290 0x660 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT14__ARM_TRACE11 0x290 0x660 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x294 0x664 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT15__EIM_DATA11 0x294 0x664 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT15__UART5_RX_DATA 0x294 0x664 0x940 0x3 0x3 +-#define MX6Q_PAD_CSI0_DAT15__UART5_TX_DATA 0x294 0x664 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT15__GPIO6_IO01 0x294 0x664 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT15__ARM_TRACE12 0x294 0x664 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x298 0x668 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT16__EIM_DATA12 0x298 0x668 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT16__UART4_RTS_B 0x298 0x668 0x934 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT16__UART4_CTS_B 0x298 0x668 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT16__GPIO6_IO02 0x298 0x668 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT16__ARM_TRACE13 0x298 0x668 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x29c 0x66c 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT17__EIM_DATA13 0x29c 0x66c 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT17__UART4_CTS_B 0x29c 0x66c 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT17__UART4_RTS_B 0x29c 0x66c 0x934 0x3 0x1 +-#define MX6Q_PAD_CSI0_DAT17__GPIO6_IO03 0x29c 0x66c 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT17__ARM_TRACE14 0x29c 0x66c 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x2a0 0x670 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT18__EIM_DATA14 0x2a0 0x670 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT18__UART5_RTS_B 0x2a0 0x670 0x93c 0x3 0x2 +-#define MX6Q_PAD_CSI0_DAT18__UART5_CTS_B 0x2a0 0x670 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT18__GPIO6_IO04 0x2a0 0x670 0x000 0x5 0x0 +-#define MX6Q_PAD_CSI0_DAT18__ARM_TRACE15 0x2a0 0x670 0x000 0x7 0x0 +-#define MX6Q_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x2a4 0x674 0x000 0x0 0x0 +-#define MX6Q_PAD_CSI0_DAT19__EIM_DATA15 0x2a4 0x674 0x000 0x1 0x0 +-#define MX6Q_PAD_CSI0_DAT19__UART5_CTS_B 0x2a4 0x674 0x000 0x3 0x0 +-#define MX6Q_PAD_CSI0_DAT19__UART5_RTS_B 0x2a4 0x674 0x93c 0x3 0x3 +-#define MX6Q_PAD_CSI0_DAT19__GPIO6_IO05 0x2a4 0x674 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT7__SD3_DATA7 0x2a8 0x690 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT7__UART1_TX_DATA 0x2a8 0x690 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT7__UART1_RX_DATA 0x2a8 0x690 0x920 0x1 0x2 +-#define MX6Q_PAD_SD3_DAT7__GPIO6_IO17 0x2a8 0x690 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT6__SD3_DATA6 0x2ac 0x694 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT6__UART1_RX_DATA 0x2ac 0x694 0x920 0x1 0x3 +-#define MX6Q_PAD_SD3_DAT6__UART1_TX_DATA 0x2ac 0x694 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT6__GPIO6_IO18 0x2ac 0x694 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT5__SD3_DATA5 0x2b0 0x698 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT5__UART2_TX_DATA 0x2b0 0x698 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT5__UART2_RX_DATA 0x2b0 0x698 0x928 0x1 0x4 +-#define MX6Q_PAD_SD3_DAT5__GPIO7_IO00 0x2b0 0x698 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT4__SD3_DATA4 0x2b4 0x69c 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT4__UART2_RX_DATA 0x2b4 0x69c 0x928 0x1 0x5 +-#define MX6Q_PAD_SD3_DAT4__UART2_TX_DATA 0x2b4 0x69c 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT4__GPIO7_IO01 0x2b4 0x69c 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_CMD__SD3_CMD 0x2b8 0x6a0 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_CMD__UART2_CTS_B 0x2b8 0x6a0 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_CMD__UART2_RTS_B 0x2b8 0x6a0 0x924 0x1 0x2 +-#define MX6Q_PAD_SD3_CMD__FLEXCAN1_TX 0x2b8 0x6a0 0x000 0x2 0x0 +-#define MX6Q_PAD_SD3_CMD__GPIO7_IO02 0x2b8 0x6a0 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_CLK__SD3_CLK 0x2bc 0x6a4 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_CLK__UART2_RTS_B 0x2bc 0x6a4 0x924 0x1 0x3 +-#define MX6Q_PAD_SD3_CLK__UART2_CTS_B 0x2bc 0x6a4 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_CLK__FLEXCAN1_RX 0x2bc 0x6a4 0x7e4 0x2 0x2 +-#define MX6Q_PAD_SD3_CLK__GPIO7_IO03 0x2bc 0x6a4 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT0__SD3_DATA0 0x2c0 0x6a8 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT0__UART1_CTS_B 0x2c0 0x6a8 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT0__UART1_RTS_B 0x2c0 0x6a8 0x91c 0x1 0x2 +-#define MX6Q_PAD_SD3_DAT0__FLEXCAN2_TX 0x2c0 0x6a8 0x000 0x2 0x0 +-#define MX6Q_PAD_SD3_DAT0__GPIO7_IO04 0x2c0 0x6a8 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT1__SD3_DATA1 0x2c4 0x6ac 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT1__UART1_RTS_B 0x2c4 0x6ac 0x91c 0x1 0x3 +-#define MX6Q_PAD_SD3_DAT1__UART1_CTS_B 0x2c4 0x6ac 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT1__FLEXCAN2_RX 0x2c4 0x6ac 0x7e8 0x2 0x1 +-#define MX6Q_PAD_SD3_DAT1__GPIO7_IO05 0x2c4 0x6ac 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT2__SD3_DATA2 0x2c8 0x6b0 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT2__GPIO7_IO06 0x2c8 0x6b0 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_DAT3__SD3_DATA3 0x2cc 0x6b4 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_DAT3__UART3_CTS_B 0x2cc 0x6b4 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_DAT3__UART3_RTS_B 0x2cc 0x6b4 0x92c 0x1 0x4 +-#define MX6Q_PAD_SD3_DAT3__GPIO7_IO07 0x2cc 0x6b4 0x000 0x5 0x0 +-#define MX6Q_PAD_SD3_RST__SD3_RESET 0x2d0 0x6b8 0x000 0x0 0x0 +-#define MX6Q_PAD_SD3_RST__UART3_RTS_B 0x2d0 0x6b8 0x92c 0x1 0x5 +-#define MX6Q_PAD_SD3_RST__UART3_CTS_B 0x2d0 0x6b8 0x000 0x1 0x0 +-#define MX6Q_PAD_SD3_RST__GPIO7_IO08 0x2d0 0x6b8 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CLE__NAND_CLE 0x2d4 0x6bc 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_CLE__IPU2_SISG4 0x2d4 0x6bc 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_CLE__GPIO6_IO07 0x2d4 0x6bc 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_ALE__NAND_ALE 0x2d8 0x6c0 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_ALE__SD4_RESET 0x2d8 0x6c0 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_ALE__GPIO6_IO08 0x2d8 0x6c0 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_WP_B__NAND_WP_B 0x2dc 0x6c4 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_WP_B__IPU2_SISG5 0x2dc 0x6c4 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_WP_B__GPIO6_IO09 0x2dc 0x6c4 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_RB0__NAND_READY_B 0x2e0 0x6c8 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_RB0__IPU2_DI0_PIN01 0x2e0 0x6c8 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_RB0__GPIO6_IO10 0x2e0 0x6c8 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CS0__NAND_CE0_B 0x2e4 0x6cc 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_CS0__GPIO6_IO11 0x2e4 0x6cc 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CS1__NAND_CE1_B 0x2e8 0x6d0 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_CS1__SD4_VSELECT 0x2e8 0x6d0 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_CS1__SD3_VSELECT 0x2e8 0x6d0 0x000 0x2 0x0 +-#define MX6Q_PAD_NANDF_CS1__GPIO6_IO14 0x2e8 0x6d0 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CS2__NAND_CE2_B 0x2ec 0x6d4 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_CS2__IPU1_SISG0 0x2ec 0x6d4 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_CS2__ESAI_TX0 0x2ec 0x6d4 0x874 0x2 0x1 +-#define MX6Q_PAD_NANDF_CS2__EIM_CRE 0x2ec 0x6d4 0x000 0x3 0x0 +-#define MX6Q_PAD_NANDF_CS2__CCM_CLKO2 0x2ec 0x6d4 0x000 0x4 0x0 +-#define MX6Q_PAD_NANDF_CS2__GPIO6_IO15 0x2ec 0x6d4 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CS2__IPU2_SISG0 0x2ec 0x6d4 0x000 0x6 0x0 +-#define MX6Q_PAD_NANDF_CS3__NAND_CE3_B 0x2f0 0x6d8 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_CS3__IPU1_SISG1 0x2f0 0x6d8 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_CS3__ESAI_TX1 0x2f0 0x6d8 0x878 0x2 0x1 +-#define MX6Q_PAD_NANDF_CS3__EIM_ADDR26 0x2f0 0x6d8 0x000 0x3 0x0 +-#define MX6Q_PAD_NANDF_CS3__GPIO6_IO16 0x2f0 0x6d8 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_CS3__IPU2_SISG1 0x2f0 0x6d8 0x000 0x6 0x0 +-#define MX6Q_PAD_SD4_CMD__SD4_CMD 0x2f4 0x6dc 0x000 0x0 0x0 +-#define MX6Q_PAD_SD4_CMD__NAND_RE_B 0x2f4 0x6dc 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_CMD__UART3_TX_DATA 0x2f4 0x6dc 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_CMD__UART3_RX_DATA 0x2f4 0x6dc 0x930 0x2 0x2 +-#define MX6Q_PAD_SD4_CMD__GPIO7_IO09 0x2f4 0x6dc 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_CLK__SD4_CLK 0x2f8 0x6e0 0x000 0x0 0x0 +-#define MX6Q_PAD_SD4_CLK__NAND_WE_B 0x2f8 0x6e0 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_CLK__UART3_RX_DATA 0x2f8 0x6e0 0x930 0x2 0x3 +-#define MX6Q_PAD_SD4_CLK__UART3_TX_DATA 0x2f8 0x6e0 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_CLK__GPIO7_IO10 0x2f8 0x6e0 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D0__NAND_DATA00 0x2fc 0x6e4 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D0__SD1_DATA4 0x2fc 0x6e4 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D0__GPIO2_IO00 0x2fc 0x6e4 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D1__NAND_DATA01 0x300 0x6e8 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D1__SD1_DATA5 0x300 0x6e8 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D1__GPIO2_IO01 0x300 0x6e8 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D2__NAND_DATA02 0x304 0x6ec 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D2__SD1_DATA6 0x304 0x6ec 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D2__GPIO2_IO02 0x304 0x6ec 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D3__NAND_DATA03 0x308 0x6f0 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D3__SD1_DATA7 0x308 0x6f0 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D3__GPIO2_IO03 0x308 0x6f0 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D4__NAND_DATA04 0x30c 0x6f4 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D4__SD2_DATA4 0x30c 0x6f4 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D4__GPIO2_IO04 0x30c 0x6f4 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D5__NAND_DATA05 0x310 0x6f8 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D5__SD2_DATA5 0x310 0x6f8 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D5__GPIO2_IO05 0x310 0x6f8 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D6__NAND_DATA06 0x314 0x6fc 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D6__SD2_DATA6 0x314 0x6fc 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D6__GPIO2_IO06 0x314 0x6fc 0x000 0x5 0x0 +-#define MX6Q_PAD_NANDF_D7__NAND_DATA07 0x318 0x700 0x000 0x0 0x0 +-#define MX6Q_PAD_NANDF_D7__SD2_DATA7 0x318 0x700 0x000 0x1 0x0 +-#define MX6Q_PAD_NANDF_D7__GPIO2_IO07 0x318 0x700 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT0__SD4_DATA0 0x31c 0x704 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT0__NAND_DQS 0x31c 0x704 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT0__GPIO2_IO08 0x31c 0x704 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT1__SD4_DATA1 0x320 0x708 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT1__PWM3_OUT 0x320 0x708 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT1__GPIO2_IO09 0x320 0x708 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT2__SD4_DATA2 0x324 0x70c 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT2__PWM4_OUT 0x324 0x70c 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT2__GPIO2_IO10 0x324 0x70c 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT3__SD4_DATA3 0x328 0x710 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT3__GPIO2_IO11 0x328 0x710 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT4__SD4_DATA4 0x32c 0x714 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT4__UART2_RX_DATA 0x32c 0x714 0x928 0x2 0x6 +-#define MX6Q_PAD_SD4_DAT4__UART2_TX_DATA 0x32c 0x714 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT4__GPIO2_IO12 0x32c 0x714 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT5__SD4_DATA5 0x330 0x718 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT5__UART2_RTS_B 0x330 0x718 0x924 0x2 0x4 +-#define MX6Q_PAD_SD4_DAT5__UART2_CTS_B 0x330 0x718 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT5__GPIO2_IO13 0x330 0x718 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT6__SD4_DATA6 0x334 0x71c 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT6__UART2_CTS_B 0x334 0x71c 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT6__UART2_RTS_B 0x334 0x71c 0x924 0x2 0x5 +-#define MX6Q_PAD_SD4_DAT6__GPIO2_IO14 0x334 0x71c 0x000 0x5 0x0 +-#define MX6Q_PAD_SD4_DAT7__SD4_DATA7 0x338 0x720 0x000 0x1 0x0 +-#define MX6Q_PAD_SD4_DAT7__UART2_TX_DATA 0x338 0x720 0x000 0x2 0x0 +-#define MX6Q_PAD_SD4_DAT7__UART2_RX_DATA 0x338 0x720 0x928 0x2 0x7 +-#define MX6Q_PAD_SD4_DAT7__GPIO2_IO15 0x338 0x720 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT1__SD1_DATA1 0x33c 0x724 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_DAT1__ECSPI5_SS0 0x33c 0x724 0x834 0x1 0x1 +-#define MX6Q_PAD_SD1_DAT1__PWM3_OUT 0x33c 0x724 0x000 0x2 0x0 +-#define MX6Q_PAD_SD1_DAT1__GPT_CAPTURE2 0x33c 0x724 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_DAT1__GPIO1_IO17 0x33c 0x724 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT0__SD1_DATA0 0x340 0x728 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_DAT0__ECSPI5_MISO 0x340 0x728 0x82c 0x1 0x1 +-#define MX6Q_PAD_SD1_DAT0__GPT_CAPTURE1 0x340 0x728 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_DAT0__GPIO1_IO16 0x340 0x728 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT3__SD1_DATA3 0x344 0x72c 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_DAT3__ECSPI5_SS2 0x344 0x72c 0x000 0x1 0x0 +-#define MX6Q_PAD_SD1_DAT3__GPT_COMPARE3 0x344 0x72c 0x000 0x2 0x0 +-#define MX6Q_PAD_SD1_DAT3__PWM1_OUT 0x344 0x72c 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_DAT3__WDOG2_B 0x344 0x72c 0x000 0x4 0x0 +-#define MX6Q_PAD_SD1_DAT3__GPIO1_IO21 0x344 0x72c 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT3__WDOG2_RESET_B_DEB 0x344 0x72c 0x000 0x6 0x0 +-#define MX6Q_PAD_SD1_CMD__SD1_CMD 0x348 0x730 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_CMD__ECSPI5_MOSI 0x348 0x730 0x830 0x1 0x0 +-#define MX6Q_PAD_SD1_CMD__PWM4_OUT 0x348 0x730 0x000 0x2 0x0 +-#define MX6Q_PAD_SD1_CMD__GPT_COMPARE1 0x348 0x730 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_CMD__GPIO1_IO18 0x348 0x730 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT2__SD1_DATA2 0x34c 0x734 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_DAT2__ECSPI5_SS1 0x34c 0x734 0x838 0x1 0x1 +-#define MX6Q_PAD_SD1_DAT2__GPT_COMPARE2 0x34c 0x734 0x000 0x2 0x0 +-#define MX6Q_PAD_SD1_DAT2__PWM2_OUT 0x34c 0x734 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_DAT2__WDOG1_B 0x34c 0x734 0x000 0x4 0x0 +-#define MX6Q_PAD_SD1_DAT2__GPIO1_IO19 0x34c 0x734 0x000 0x5 0x0 +-#define MX6Q_PAD_SD1_DAT2__WDOG1_RESET_B_DEB 0x34c 0x734 0x000 0x6 0x0 +-#define MX6Q_PAD_SD1_CLK__SD1_CLK 0x350 0x738 0x000 0x0 0x0 +-#define MX6Q_PAD_SD1_CLK__ECSPI5_SCLK 0x350 0x738 0x828 0x1 0x0 +-#define MX6Q_PAD_SD1_CLK__GPT_CLKIN 0x350 0x738 0x000 0x3 0x0 +-#define MX6Q_PAD_SD1_CLK__GPIO1_IO20 0x350 0x738 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_CLK__SD2_CLK 0x354 0x73c 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_CLK__ECSPI5_SCLK 0x354 0x73c 0x828 0x1 0x1 +-#define MX6Q_PAD_SD2_CLK__KEY_COL5 0x354 0x73c 0x8e8 0x2 0x3 +-#define MX6Q_PAD_SD2_CLK__AUD4_RXFS 0x354 0x73c 0x7c0 0x3 0x1 +-#define MX6Q_PAD_SD2_CLK__GPIO1_IO10 0x354 0x73c 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_CMD__SD2_CMD 0x358 0x740 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_CMD__ECSPI5_MOSI 0x358 0x740 0x830 0x1 0x1 +-#define MX6Q_PAD_SD2_CMD__KEY_ROW5 0x358 0x740 0x8f4 0x2 0x2 +-#define MX6Q_PAD_SD2_CMD__AUD4_RXC 0x358 0x740 0x7bc 0x3 0x1 +-#define MX6Q_PAD_SD2_CMD__GPIO1_IO11 0x358 0x740 0x000 0x5 0x0 +-#define MX6Q_PAD_SD2_DAT3__SD2_DATA3 0x35c 0x744 0x000 0x0 0x0 +-#define MX6Q_PAD_SD2_DAT3__ECSPI5_SS3 0x35c 0x744 0x000 0x1 0x0 +-#define MX6Q_PAD_SD2_DAT3__KEY_COL6 0x35c 0x744 0x8ec 0x2 0x2 +-#define MX6Q_PAD_SD2_DAT3__AUD4_TXC 0x35c 0x744 0x7c4 0x3 0x1 +-#define MX6Q_PAD_SD2_DAT3__GPIO1_IO12 0x35c 0x744 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x04c 0x360 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT1__ECSPI5_SS0 0x04c 0x360 0x834 0x1 0x0 ++#define MX6QDL_PAD_SD2_DAT1__EIM_CS2_B 0x04c 0x360 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x04c 0x360 0x7c8 0x3 0x0 ++#define MX6QDL_PAD_SD2_DAT1__KEY_COL7 0x04c 0x360 0x8f0 0x4 0x0 ++#define MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x04c 0x360 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x050 0x364 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT2__ECSPI5_SS1 0x050 0x364 0x838 0x1 0x0 ++#define MX6QDL_PAD_SD2_DAT2__EIM_CS3_B 0x050 0x364 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x050 0x364 0x7b8 0x3 0x0 ++#define MX6QDL_PAD_SD2_DAT2__KEY_ROW6 0x050 0x364 0x8f8 0x4 0x0 ++#define MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x050 0x364 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x054 0x368 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT0__ECSPI5_MISO 0x054 0x368 0x82c 0x1 0x0 ++#define MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x054 0x368 0x7b4 0x3 0x0 ++#define MX6QDL_PAD_SD2_DAT0__KEY_ROW7 0x054 0x368 0x8fc 0x4 0x0 ++#define MX6QDL_PAD_SD2_DAT0__GPIO1_IO15 0x054 0x368 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT0__DCIC2_OUT 0x054 0x368 0x000 0x6 0x0 ++#define MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x058 0x36c 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x058 0x36c 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TXC__SPDIF_EXT_CLK 0x058 0x36c 0x918 0x2 0x0 ++#define MX6QDL_PAD_RGMII_TXC__GPIO6_IO19 0x058 0x36c 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TXC__XTALOSC_REF_CLK_24M 0x058 0x36c 0x000 0x7 0x0 ++#define MX6QDL_PAD_RGMII_TD0__HSI_TX_READY 0x05c 0x370 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x05c 0x370 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD0__GPIO6_IO20 0x05c 0x370 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD1__HSI_RX_FLAG 0x060 0x374 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x060 0x374 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD1__GPIO6_IO21 0x060 0x374 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD2__HSI_RX_DATA 0x064 0x378 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x064 0x378 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD2__GPIO6_IO22 0x064 0x378 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TD3__HSI_RX_WAKE 0x068 0x37c 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x068 0x37c 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TD3__GPIO6_IO23 0x068 0x37c 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RX_CTL__USB_H3_DATA 0x06c 0x380 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x06c 0x380 0x858 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RX_CTL__GPIO6_IO24 0x06c 0x380 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD0__HSI_RX_READY 0x070 0x384 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x070 0x384 0x848 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RD0__GPIO6_IO25 0x070 0x384 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x074 0x388 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x074 0x388 0x000 0x1 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__GPIO6_IO26 0x074 0x388 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_TX_CTL__ENET_REF_CLK 0x074 0x388 0x83c 0x7 0x0 ++#define MX6QDL_PAD_RGMII_RD1__HSI_TX_FLAG 0x078 0x38c 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x078 0x38c 0x84c 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RD1__GPIO6_IO27 0x078 0x38c 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD2__HSI_TX_DATA 0x07c 0x390 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x07c 0x390 0x850 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RD2__GPIO6_IO28 0x07c 0x390 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RD3__HSI_TX_WAKE 0x080 0x394 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x080 0x394 0x854 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RD3__GPIO6_IO29 0x080 0x394 0x000 0x5 0x0 ++#define MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE 0x084 0x398 0x000 0x0 0x0 ++#define MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x084 0x398 0x844 0x1 0x0 ++#define MX6QDL_PAD_RGMII_RXC__GPIO6_IO30 0x084 0x398 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A25__EIM_ADDR25 0x088 0x39c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A25__ECSPI4_SS1 0x088 0x39c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A25__ECSPI2_RDY 0x088 0x39c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_A25__IPU1_DI1_PIN12 0x088 0x39c 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_A25__IPU1_DI0_D1_CS 0x088 0x39c 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x088 0x39c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x088 0x39c 0x88c 0x6 0x0 ++#define MX6QDL_PAD_EIM_EB2__EIM_EB2_B 0x08c 0x3a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB2__ECSPI1_SS0 0x08c 0x3a0 0x800 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB2__IPU2_CSI1_DATA19 0x08c 0x3a0 0x8d4 0x3 0x0 ++#define MX6QDL_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x08c 0x3a0 0x890 0x4 0x0 ++#define MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x08c 0x3a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x08c 0x3a0 0x8a0 0x6 0x0 ++#define MX6QDL_PAD_EIM_EB2__SRC_BOOT_CFG30 0x08c 0x3a0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D16__EIM_DATA16 0x090 0x3a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x090 0x3a4 0x7f4 0x1 0x0 ++#define MX6QDL_PAD_EIM_D16__IPU1_DI0_PIN05 0x090 0x3a4 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D16__IPU2_CSI1_DATA18 0x090 0x3a4 0x8d0 0x3 0x0 ++#define MX6QDL_PAD_EIM_D16__HDMI_TX_DDC_SDA 0x090 0x3a4 0x894 0x4 0x0 ++#define MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x090 0x3a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D16__I2C2_SDA 0x090 0x3a4 0x8a4 0x6 0x0 ++#define MX6QDL_PAD_EIM_D17__EIM_DATA17 0x094 0x3a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x094 0x3a8 0x7f8 0x1 0x0 ++#define MX6QDL_PAD_EIM_D17__IPU1_DI0_PIN06 0x094 0x3a8 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D17__IPU2_CSI1_PIXCLK 0x094 0x3a8 0x8e0 0x3 0x0 ++#define MX6QDL_PAD_EIM_D17__DCIC1_OUT 0x094 0x3a8 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D17__GPIO3_IO17 0x094 0x3a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D17__I2C3_SCL 0x094 0x3a8 0x8a8 0x6 0x0 ++#define MX6QDL_PAD_EIM_D18__EIM_DATA18 0x098 0x3ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x098 0x3ac 0x7fc 0x1 0x0 ++#define MX6QDL_PAD_EIM_D18__IPU1_DI0_PIN07 0x098 0x3ac 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D18__IPU2_CSI1_DATA17 0x098 0x3ac 0x8cc 0x3 0x0 ++#define MX6QDL_PAD_EIM_D18__IPU1_DI1_D0_CS 0x098 0x3ac 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D18__GPIO3_IO18 0x098 0x3ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D18__I2C3_SDA 0x098 0x3ac 0x8ac 0x6 0x0 ++#define MX6QDL_PAD_EIM_D19__EIM_DATA19 0x09c 0x3b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D19__ECSPI1_SS1 0x09c 0x3b0 0x804 0x1 0x0 ++#define MX6QDL_PAD_EIM_D19__IPU1_DI0_PIN08 0x09c 0x3b0 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D19__IPU2_CSI1_DATA16 0x09c 0x3b0 0x8c8 0x3 0x0 ++#define MX6QDL_PAD_EIM_D19__UART1_CTS_B 0x09c 0x3b0 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D19__UART1_RTS_B 0x09c 0x3b0 0x91c 0x4 0x0 ++#define MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x09c 0x3b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D19__EPIT1_OUT 0x09c 0x3b0 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D20__EIM_DATA20 0x0a0 0x3b4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D20__ECSPI4_SS0 0x0a0 0x3b4 0x824 0x1 0x0 ++#define MX6QDL_PAD_EIM_D20__IPU1_DI0_PIN16 0x0a0 0x3b4 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D20__IPU2_CSI1_DATA15 0x0a0 0x3b4 0x8c4 0x3 0x0 ++#define MX6QDL_PAD_EIM_D20__UART1_RTS_B 0x0a0 0x3b4 0x91c 0x4 0x1 ++#define MX6QDL_PAD_EIM_D20__UART1_CTS_B 0x0a0 0x3b4 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x0a0 0x3b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D20__EPIT2_OUT 0x0a0 0x3b4 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D21__EIM_DATA21 0x0a4 0x3b8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D21__ECSPI4_SCLK 0x0a4 0x3b8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D21__IPU1_DI0_PIN17 0x0a4 0x3b8 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D21__IPU2_CSI1_DATA11 0x0a4 0x3b8 0x8b4 0x3 0x0 ++#define MX6QDL_PAD_EIM_D21__USB_OTG_OC 0x0a4 0x3b8 0x944 0x4 0x0 ++#define MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x0a4 0x3b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D21__I2C1_SCL 0x0a4 0x3b8 0x898 0x6 0x0 ++#define MX6QDL_PAD_EIM_D21__SPDIF_IN 0x0a4 0x3b8 0x914 0x7 0x0 ++#define MX6QDL_PAD_EIM_D22__EIM_DATA22 0x0a8 0x3bc 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D22__ECSPI4_MISO 0x0a8 0x3bc 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D22__IPU1_DI0_PIN01 0x0a8 0x3bc 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D22__IPU2_CSI1_DATA10 0x0a8 0x3bc 0x8b0 0x3 0x0 ++#define MX6QDL_PAD_EIM_D22__USB_OTG_PWR 0x0a8 0x3bc 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x0a8 0x3bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D22__SPDIF_OUT 0x0a8 0x3bc 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D23__EIM_DATA23 0x0ac 0x3c0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI0_D0_CS 0x0ac 0x3c0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x0ac 0x3c0 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D23__UART3_RTS_B 0x0ac 0x3c0 0x92c 0x2 0x0 ++#define MX6QDL_PAD_EIM_D23__UART1_DCD_B 0x0ac 0x3c0 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU2_CSI1_DATA_EN 0x0ac 0x3c0 0x8d8 0x4 0x0 ++#define MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x0ac 0x3c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI1_PIN02 0x0ac 0x3c0 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D23__IPU1_DI1_PIN14 0x0ac 0x3c0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB3__EIM_EB3_B 0x0b0 0x3c4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB3__ECSPI4_RDY 0x0b0 0x3c4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x0b0 0x3c4 0x92c 0x2 0x1 ++#define MX6QDL_PAD_EIM_EB3__UART3_CTS_B 0x0b0 0x3c4 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_EB3__UART1_RI_B 0x0b0 0x3c4 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_EB3__IPU2_CSI1_HSYNC 0x0b0 0x3c4 0x8dc 0x4 0x0 ++#define MX6QDL_PAD_EIM_EB3__GPIO2_IO31 0x0b0 0x3c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB3__IPU1_DI1_PIN03 0x0b0 0x3c4 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_EB3__SRC_BOOT_CFG31 0x0b0 0x3c4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D24__EIM_DATA24 0x0b4 0x3c8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI4_SS2 0x0b4 0x3c8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x0b4 0x3c8 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D24__UART3_RX_DATA 0x0b4 0x3c8 0x930 0x2 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI1_SS2 0x0b4 0x3c8 0x808 0x3 0x0 ++#define MX6QDL_PAD_EIM_D24__ECSPI2_SS2 0x0b4 0x3c8 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D24__GPIO3_IO24 0x0b4 0x3c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D24__AUD5_RXFS 0x0b4 0x3c8 0x7d8 0x6 0x0 ++#define MX6QDL_PAD_EIM_D24__UART1_DTR_B 0x0b4 0x3c8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D25__EIM_DATA25 0x0b8 0x3cc 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI4_SS3 0x0b8 0x3cc 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x0b8 0x3cc 0x930 0x2 0x1 ++#define MX6QDL_PAD_EIM_D25__UART3_TX_DATA 0x0b8 0x3cc 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI1_SS3 0x0b8 0x3cc 0x80c 0x3 0x0 ++#define MX6QDL_PAD_EIM_D25__ECSPI2_SS3 0x0b8 0x3cc 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D25__GPIO3_IO25 0x0b8 0x3cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D25__AUD5_RXC 0x0b8 0x3cc 0x7d4 0x6 0x0 ++#define MX6QDL_PAD_EIM_D25__UART1_DSR_B 0x0b8 0x3cc 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D26__EIM_DATA26 0x0bc 0x3d0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_DI1_PIN11 0x0bc 0x3d0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_CSI0_DATA01 0x0bc 0x3d0 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU2_CSI1_DATA14 0x0bc 0x3d0 0x8c0 0x3 0x0 ++#define MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x0bc 0x3d0 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D26__UART2_RX_DATA 0x0bc 0x3d0 0x928 0x4 0x0 ++#define MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x0bc 0x3d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_SISG2 0x0bc 0x3d0 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D26__IPU1_DISP1_DATA22 0x0bc 0x3d0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D27__EIM_DATA27 0x0c0 0x3d4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_DI1_PIN13 0x0c0 0x3d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_CSI0_DATA00 0x0c0 0x3d4 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU2_CSI1_DATA13 0x0c0 0x3d4 0x8bc 0x3 0x0 ++#define MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x0c0 0x3d4 0x928 0x4 0x1 ++#define MX6QDL_PAD_EIM_D27__UART2_TX_DATA 0x0c0 0x3d4 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x0c0 0x3d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_SISG3 0x0c0 0x3d4 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D27__IPU1_DISP1_DATA23 0x0c0 0x3d4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D28__EIM_DATA28 0x0c4 0x3d8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D28__I2C1_SDA 0x0c4 0x3d8 0x89c 0x1 0x0 ++#define MX6QDL_PAD_EIM_D28__ECSPI4_MOSI 0x0c4 0x3d8 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU2_CSI1_DATA12 0x0c4 0x3d8 0x8b8 0x3 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x0c4 0x3d8 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_RTS_B 0x0c4 0x3d8 0x924 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_DTE_CTS_B 0x0c4 0x3d8 0x924 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__UART2_DTE_RTS_B 0x0c4 0x3d8 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x0c4 0x3d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU1_EXT_TRIG 0x0c4 0x3d8 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_D28__IPU1_DI0_PIN13 0x0c4 0x3d8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D29__EIM_DATA29 0x0c8 0x3dc 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU1_DI1_PIN15 0x0c8 0x3dc 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D29__ECSPI4_SS0 0x0c8 0x3dc 0x824 0x2 0x1 ++#define MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x0c8 0x3dc 0x924 0x4 0x1 ++#define MX6QDL_PAD_EIM_D29__UART2_CTS_B 0x0c8 0x3dc 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B 0x0c8 0x3dc 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D29__UART2_DTE_CTS_B 0x0c8 0x3dc 0x924 0x4 0x1 ++#define MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x0c8 0x3dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU2_CSI1_VSYNC 0x0c8 0x3dc 0x8e4 0x6 0x0 ++#define MX6QDL_PAD_EIM_D29__IPU1_DI0_PIN14 0x0c8 0x3dc 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_D30__EIM_DATA30 0x0cc 0x3e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_DISP1_DATA21 0x0cc 0x3e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_DI0_PIN11 0x0cc 0x3e0 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D30__IPU1_CSI0_DATA03 0x0cc 0x3e0 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D30__UART3_CTS_B 0x0cc 0x3e0 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D30__UART3_RTS_B 0x0cc 0x3e0 0x92c 0x4 0x2 ++#define MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x0cc 0x3e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D30__USB_H1_OC 0x0cc 0x3e0 0x948 0x6 0x0 ++#define MX6QDL_PAD_EIM_D31__EIM_DATA31 0x0d0 0x3e4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_DISP1_DATA20 0x0d0 0x3e4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_DI0_PIN12 0x0d0 0x3e4 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_D31__IPU1_CSI0_DATA02 0x0d0 0x3e4 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x0d0 0x3e4 0x92c 0x4 0x3 ++#define MX6QDL_PAD_EIM_D31__UART3_CTS_B 0x0d0 0x3e4 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x0d0 0x3e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_D31__USB_H1_PWR 0x0d0 0x3e4 0x000 0x6 0x0 ++#define MX6QDL_PAD_EIM_A24__EIM_ADDR24 0x0d4 0x3e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU1_DISP1_DATA19 0x0d4 0x3e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU2_CSI1_DATA19 0x0d4 0x3e8 0x8d4 0x2 0x1 ++#define MX6QDL_PAD_EIM_A24__IPU2_SISG2 0x0d4 0x3e8 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_A24__IPU1_SISG2 0x0d4 0x3e8 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x0d4 0x3e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A24__SRC_BOOT_CFG24 0x0d4 0x3e8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A23__EIM_ADDR23 0x0d8 0x3ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU1_DISP1_DATA18 0x0d8 0x3ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU2_CSI1_DATA18 0x0d8 0x3ec 0x8d0 0x2 0x1 ++#define MX6QDL_PAD_EIM_A23__IPU2_SISG3 0x0d8 0x3ec 0x000 0x3 0x0 ++#define MX6QDL_PAD_EIM_A23__IPU1_SISG3 0x0d8 0x3ec 0x000 0x4 0x0 ++#define MX6QDL_PAD_EIM_A23__GPIO6_IO06 0x0d8 0x3ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A23__SRC_BOOT_CFG23 0x0d8 0x3ec 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A22__EIM_ADDR22 0x0dc 0x3f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A22__IPU1_DISP1_DATA17 0x0dc 0x3f0 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A22__IPU2_CSI1_DATA17 0x0dc 0x3f0 0x8cc 0x2 0x1 ++#define MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x0dc 0x3f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A22__SRC_BOOT_CFG22 0x0dc 0x3f0 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A21__EIM_ADDR21 0x0e0 0x3f4 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A21__IPU1_DISP1_DATA16 0x0e0 0x3f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A21__IPU2_CSI1_DATA16 0x0e0 0x3f4 0x8c8 0x2 0x1 ++#define MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x0e0 0x3f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A21__SRC_BOOT_CFG21 0x0e0 0x3f4 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A20__EIM_ADDR20 0x0e4 0x3f8 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A20__IPU1_DISP1_DATA15 0x0e4 0x3f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A20__IPU2_CSI1_DATA15 0x0e4 0x3f8 0x8c4 0x2 0x1 ++#define MX6QDL_PAD_EIM_A20__GPIO2_IO18 0x0e4 0x3f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A20__SRC_BOOT_CFG20 0x0e4 0x3f8 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A19__EIM_ADDR19 0x0e8 0x3fc 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A19__IPU1_DISP1_DATA14 0x0e8 0x3fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A19__IPU2_CSI1_DATA14 0x0e8 0x3fc 0x8c0 0x2 0x1 ++#define MX6QDL_PAD_EIM_A19__GPIO2_IO19 0x0e8 0x3fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A19__SRC_BOOT_CFG19 0x0e8 0x3fc 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A18__EIM_ADDR18 0x0ec 0x400 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A18__IPU1_DISP1_DATA13 0x0ec 0x400 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A18__IPU2_CSI1_DATA13 0x0ec 0x400 0x8bc 0x2 0x1 ++#define MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x0ec 0x400 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A18__SRC_BOOT_CFG18 0x0ec 0x400 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A17__EIM_ADDR17 0x0f0 0x404 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A17__IPU1_DISP1_DATA12 0x0f0 0x404 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A17__IPU2_CSI1_DATA12 0x0f0 0x404 0x8b8 0x2 0x1 ++#define MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x0f0 0x404 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A17__SRC_BOOT_CFG17 0x0f0 0x404 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_A16__EIM_ADDR16 0x0f4 0x408 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_A16__IPU1_DI1_DISP_CLK 0x0f4 0x408 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_A16__IPU2_CSI1_PIXCLK 0x0f4 0x408 0x8e0 0x2 0x1 ++#define MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x0f4 0x408 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_A16__SRC_BOOT_CFG16 0x0f4 0x408 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0x0f8 0x40c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_CS0__IPU1_DI1_PIN05 0x0f8 0x40c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x0f8 0x40c 0x810 0x2 0x0 ++#define MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x0f8 0x40c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0x0fc 0x410 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_CS1__IPU1_DI1_PIN06 0x0fc 0x410 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x0fc 0x410 0x818 0x2 0x0 ++#define MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x0fc 0x410 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_OE__EIM_OE_B 0x100 0x414 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_OE__IPU1_DI1_PIN07 0x100 0x414 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x100 0x414 0x814 0x2 0x0 ++#define MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x100 0x414 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_RW__EIM_RW 0x104 0x418 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_RW__IPU1_DI1_PIN08 0x104 0x418 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_RW__ECSPI2_SS0 0x104 0x418 0x81c 0x2 0x0 ++#define MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x104 0x418 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_RW__SRC_BOOT_CFG29 0x104 0x418 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_LBA__EIM_LBA_B 0x108 0x41c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_LBA__IPU1_DI1_PIN17 0x108 0x41c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_LBA__ECSPI2_SS1 0x108 0x41c 0x820 0x2 0x0 ++#define MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x108 0x41c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_LBA__SRC_BOOT_CFG26 0x108 0x41c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB0__EIM_EB0_B 0x10c 0x420 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB0__IPU1_DISP1_DATA11 0x10c 0x420 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB0__IPU2_CSI1_DATA11 0x10c 0x420 0x8b4 0x2 0x1 ++#define MX6QDL_PAD_EIM_EB0__CCM_PMIC_READY 0x10c 0x420 0x7f0 0x4 0x0 ++#define MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0x10c 0x420 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB0__SRC_BOOT_CFG27 0x10c 0x420 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_EB1__EIM_EB1_B 0x110 0x424 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_EB1__IPU1_DISP1_DATA10 0x110 0x424 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_EB1__IPU2_CSI1_DATA10 0x110 0x424 0x8b0 0x2 0x1 ++#define MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x110 0x424 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_EB1__SRC_BOOT_CFG28 0x110 0x424 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA0__EIM_AD00 0x114 0x428 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA0__IPU1_DISP1_DATA09 0x114 0x428 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA0__IPU2_CSI1_DATA09 0x114 0x428 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x114 0x428 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA0__SRC_BOOT_CFG00 0x114 0x428 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA1__EIM_AD01 0x118 0x42c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA1__IPU1_DISP1_DATA08 0x118 0x42c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA1__IPU2_CSI1_DATA08 0x118 0x42c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x118 0x42c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA1__SRC_BOOT_CFG01 0x118 0x42c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA2__EIM_AD02 0x11c 0x430 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA2__IPU1_DISP1_DATA07 0x11c 0x430 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA2__IPU2_CSI1_DATA07 0x11c 0x430 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x11c 0x430 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA2__SRC_BOOT_CFG02 0x11c 0x430 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA3__EIM_AD03 0x120 0x434 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA3__IPU1_DISP1_DATA06 0x120 0x434 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA3__IPU2_CSI1_DATA06 0x120 0x434 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x120 0x434 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA3__SRC_BOOT_CFG03 0x120 0x434 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA4__EIM_AD04 0x124 0x438 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA4__IPU1_DISP1_DATA05 0x124 0x438 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA4__IPU2_CSI1_DATA05 0x124 0x438 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x124 0x438 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA4__SRC_BOOT_CFG04 0x124 0x438 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA5__EIM_AD05 0x128 0x43c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA5__IPU1_DISP1_DATA04 0x128 0x43c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA5__IPU2_CSI1_DATA04 0x128 0x43c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x128 0x43c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA5__SRC_BOOT_CFG05 0x128 0x43c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA6__EIM_AD06 0x12c 0x440 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA6__IPU1_DISP1_DATA03 0x12c 0x440 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA6__IPU2_CSI1_DATA03 0x12c 0x440 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x12c 0x440 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA6__SRC_BOOT_CFG06 0x12c 0x440 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA7__EIM_AD07 0x130 0x444 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA7__IPU1_DISP1_DATA02 0x130 0x444 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA7__IPU2_CSI1_DATA02 0x130 0x444 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x130 0x444 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA7__SRC_BOOT_CFG07 0x130 0x444 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA8__EIM_AD08 0x134 0x448 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA8__IPU1_DISP1_DATA01 0x134 0x448 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA8__IPU2_CSI1_DATA01 0x134 0x448 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x134 0x448 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA8__SRC_BOOT_CFG08 0x134 0x448 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA9__EIM_AD09 0x138 0x44c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA9__IPU1_DISP1_DATA00 0x138 0x44c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA9__IPU2_CSI1_DATA00 0x138 0x44c 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x138 0x44c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA9__SRC_BOOT_CFG09 0x138 0x44c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA10__EIM_AD10 0x13c 0x450 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA10__IPU1_DI1_PIN15 0x13c 0x450 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA10__IPU2_CSI1_DATA_EN 0x13c 0x450 0x8d8 0x2 0x1 ++#define MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x13c 0x450 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA10__SRC_BOOT_CFG10 0x13c 0x450 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA11__EIM_AD11 0x140 0x454 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA11__IPU1_DI1_PIN02 0x140 0x454 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA11__IPU2_CSI1_HSYNC 0x140 0x454 0x8dc 0x2 0x1 ++#define MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x140 0x454 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA11__SRC_BOOT_CFG11 0x140 0x454 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA12__EIM_AD12 0x144 0x458 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA12__IPU1_DI1_PIN03 0x144 0x458 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA12__IPU2_CSI1_VSYNC 0x144 0x458 0x8e4 0x2 0x1 ++#define MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x144 0x458 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA12__SRC_BOOT_CFG12 0x144 0x458 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA13__EIM_AD13 0x148 0x45c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA13__IPU1_DI1_D0_CS 0x148 0x45c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x148 0x45c 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA13__SRC_BOOT_CFG13 0x148 0x45c 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA14__EIM_AD14 0x14c 0x460 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA14__IPU1_DI1_D1_CS 0x14c 0x460 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x14c 0x460 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA14__SRC_BOOT_CFG14 0x14c 0x460 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_DA15__EIM_AD15 0x150 0x464 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_DA15__IPU1_DI1_PIN01 0x150 0x464 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_DA15__IPU1_DI1_PIN04 0x150 0x464 0x000 0x2 0x0 ++#define MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x150 0x464 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_DA15__SRC_BOOT_CFG15 0x150 0x464 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0x154 0x468 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_WAIT__EIM_DTACK_B 0x154 0x468 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x154 0x468 0x000 0x5 0x0 ++#define MX6QDL_PAD_EIM_WAIT__SRC_BOOT_CFG25 0x154 0x468 0x000 0x7 0x0 ++#define MX6QDL_PAD_EIM_BCLK__EIM_BCLK 0x158 0x46c 0x000 0x0 0x0 ++#define MX6QDL_PAD_EIM_BCLK__IPU1_DI1_PIN16 0x158 0x46c 0x000 0x1 0x0 ++#define MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x158 0x46c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x15c 0x470 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__IPU2_DI0_DISP_CLK 0x15c 0x470 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_DISP_CLK__GPIO4_IO16 0x15c 0x470 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x160 0x474 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN15__IPU2_DI0_PIN15 0x160 0x474 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN15__AUD6_TXC 0x160 0x474 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN15__GPIO4_IO17 0x160 0x474 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x164 0x478 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN2__IPU2_DI0_PIN02 0x164 0x478 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN2__AUD6_TXD 0x164 0x478 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN2__GPIO4_IO18 0x164 0x478 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x168 0x47c 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN3__IPU2_DI0_PIN03 0x168 0x47c 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN3__AUD6_TXFS 0x168 0x47c 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN3__GPIO4_IO19 0x168 0x47c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DI0_PIN4__IPU1_DI0_PIN04 0x16c 0x480 0x000 0x0 0x0 ++#define MX6QDL_PAD_DI0_PIN4__IPU2_DI0_PIN04 0x16c 0x480 0x000 0x1 0x0 ++#define MX6QDL_PAD_DI0_PIN4__AUD6_RXD 0x16c 0x480 0x000 0x2 0x0 ++#define MX6QDL_PAD_DI0_PIN4__SD1_WP 0x16c 0x480 0x94c 0x3 0x0 ++#define MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x16c 0x480 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x170 0x484 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__IPU2_DISP0_DATA00 0x170 0x484 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x170 0x484 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT0__GPIO4_IO21 0x170 0x484 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x174 0x488 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__IPU2_DISP0_DATA01 0x174 0x488 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x174 0x488 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT1__GPIO4_IO22 0x174 0x488 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x178 0x48c 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__IPU2_DISP0_DATA02 0x178 0x48c 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x178 0x48c 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT2__GPIO4_IO23 0x178 0x48c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x17c 0x490 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__IPU2_DISP0_DATA03 0x17c 0x490 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__ECSPI3_SS0 0x17c 0x490 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x17c 0x490 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x180 0x494 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__IPU2_DISP0_DATA04 0x180 0x494 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__ECSPI3_SS1 0x180 0x494 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT4__GPIO4_IO25 0x180 0x494 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x184 0x498 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__IPU2_DISP0_DATA05 0x184 0x498 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__ECSPI3_SS2 0x184 0x498 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__AUD6_RXFS 0x184 0x498 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26 0x184 0x498 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x188 0x49c 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__IPU2_DISP0_DATA06 0x188 0x49c 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__ECSPI3_SS3 0x188 0x49c 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__AUD6_RXC 0x188 0x49c 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT6__GPIO4_IO27 0x188 0x49c 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x18c 0x4a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__IPU2_DISP0_DATA07 0x18c 0x4a0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__ECSPI3_RDY 0x18c 0x4a0 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT7__GPIO4_IO28 0x18c 0x4a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x190 0x4a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__IPU2_DISP0_DATA08 0x190 0x4a4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x190 0x4a4 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x190 0x4a4 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT8__GPIO4_IO29 0x190 0x4a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x194 0x4a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__IPU2_DISP0_DATA09 0x194 0x4a8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__PWM2_OUT 0x194 0x4a8 0x000 0x2 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__WDOG2_B 0x194 0x4a8 0x000 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x194 0x4a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x198 0x4ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__IPU2_DISP0_DATA10 0x198 0x4ac 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT10__GPIO4_IO31 0x198 0x4ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x19c 0x4b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__IPU2_DISP0_DATA11 0x19c 0x4b0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05 0x19c 0x4b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x1a0 0x4b4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__IPU2_DISP0_DATA12 0x1a0 0x4b4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT12__GPIO5_IO06 0x1a0 0x4b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x1a4 0x4b8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__IPU2_DISP0_DATA13 0x1a4 0x4b8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT13__AUD5_RXFS 0x1a4 0x4b8 0x7d8 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1a4 0x4b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x1a8 0x4bc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__IPU2_DISP0_DATA14 0x1a8 0x4bc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT14__AUD5_RXC 0x1a8 0x4bc 0x7d4 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT14__GPIO5_IO08 0x1a8 0x4bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x1ac 0x4c0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__IPU2_DISP0_DATA15 0x1ac 0x4c0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT15__ECSPI1_SS1 0x1ac 0x4c0 0x804 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT15__ECSPI2_SS1 0x1ac 0x4c0 0x820 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09 0x1ac 0x4c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x1b0 0x4c4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__IPU2_DISP0_DATA16 0x1b0 0x4c4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI 0x1b0 0x4c4 0x818 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT16__AUD5_TXC 0x1b0 0x4c4 0x7dc 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__SDMA_EXT_EVENT0 0x1b0 0x4c4 0x90c 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT16__GPIO5_IO10 0x1b0 0x4c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x1b4 0x4c8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__IPU2_DISP0_DATA17 0x1b4 0x4c8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO 0x1b4 0x4c8 0x814 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT17__AUD5_TXD 0x1b4 0x4c8 0x7d0 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__SDMA_EXT_EVENT1 0x1b4 0x4c8 0x910 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT17__GPIO5_IO11 0x1b4 0x4c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x1b8 0x4cc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__IPU2_DISP0_DATA18 0x1b8 0x4cc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__ECSPI2_SS0 0x1b8 0x4cc 0x81c 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS 0x1b8 0x4cc 0x7e0 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__AUD4_RXFS 0x1b8 0x4cc 0x7c0 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x1b8 0x4cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT18__EIM_CS2_B 0x1b8 0x4cc 0x000 0x7 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x1bc 0x4d0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__IPU2_DISP0_DATA19 0x1bc 0x4d0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK 0x1bc 0x4d0 0x810 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x1bc 0x4d0 0x7cc 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__AUD4_RXC 0x1bc 0x4d0 0x7bc 0x4 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x1bc 0x4d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT19__EIM_CS3_B 0x1bc 0x4d0 0x000 0x7 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x1c0 0x4d4 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__IPU2_DISP0_DATA20 0x1c0 0x4d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__ECSPI1_SCLK 0x1c0 0x4d4 0x7f4 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x1c0 0x4d4 0x7c4 0x3 0x0 ++#define MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x1c0 0x4d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x1c4 0x4d8 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__IPU2_DISP0_DATA21 0x1c4 0x4d8 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT21__ECSPI1_MOSI 0x1c4 0x4d8 0x7fc 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x1c4 0x4d8 0x7b8 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x1c4 0x4d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x1c8 0x4dc 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__IPU2_DISP0_DATA22 0x1c8 0x4dc 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT22__ECSPI1_MISO 0x1c8 0x4dc 0x7f8 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x1c8 0x4dc 0x7c8 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x1c8 0x4dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x1cc 0x4e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__IPU2_DISP0_DATA23 0x1cc 0x4e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_DISP0_DAT23__ECSPI1_SS0 0x1cc 0x4e0 0x800 0x2 0x1 ++#define MX6QDL_PAD_DISP0_DAT23__AUD4_RXD 0x1cc 0x4e0 0x7b4 0x3 0x1 ++#define MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x1cc 0x4e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1d0 0x4e4 0x840 0x1 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ESAI_RX_CLK 0x1d0 0x4e4 0x86c 0x2 0x0 ++#define MX6QDL_PAD_ENET_MDIO__ENET_1588_EVENT1_OUT 0x1d0 0x4e4 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_MDIO__GPIO1_IO22 0x1d0 0x4e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDIO__SPDIF_LOCK 0x1d0 0x4e4 0x000 0x6 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1d4 0x4e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__ESAI_RX_FS 0x1d4 0x4e8 0x85c 0x2 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1d4 0x4e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_REF_CLK__SPDIF_SR_CLK 0x1d4 0x4e8 0x000 0x6 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x1d8 0x4ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1d8 0x4ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__ESAI_RX_HF_CLK 0x1d8 0x4ec 0x864 0x2 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__SPDIF_IN 0x1d8 0x4ec 0x914 0x3 0x1 ++#define MX6QDL_PAD_ENET_RX_ER__ENET_1588_EVENT2_OUT 0x1d8 0x4ec 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24 0x1d8 0x4ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1dc 0x4f0 0x858 0x1 0x1 ++#define MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1dc 0x4f0 0x870 0x2 0x0 ++#define MX6QDL_PAD_ENET_CRS_DV__SPDIF_EXT_CLK 0x1dc 0x4f0 0x918 0x3 0x1 ++#define MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1dc 0x4f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_RXD1__MLB_SIG 0x1e0 0x4f4 0x908 0x0 0x0 ++#define MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1e0 0x4f4 0x84c 0x1 0x1 ++#define MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS 0x1e0 0x4f4 0x860 0x2 0x0 ++#define MX6QDL_PAD_ENET_RXD1__ENET_1588_EVENT3_OUT 0x1e0 0x4f4 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1e0 0x4f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1e4 0x4f8 0x848 0x1 0x1 ++#define MX6QDL_PAD_ENET_RXD0__ESAI_TX_HF_CLK 0x1e4 0x4f8 0x868 0x2 0x0 ++#define MX6QDL_PAD_ENET_RXD0__SPDIF_OUT 0x1e4 0x4f8 0x000 0x3 0x0 ++#define MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x1e4 0x4f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1e8 0x4fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1e8 0x4fc 0x880 0x2 0x0 ++#define MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1e8 0x4fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TXD1__MLB_CLK 0x1ec 0x500 0x900 0x0 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1ec 0x500 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ESAI_TX2_RX3 0x1ec 0x500 0x87c 0x2 0x0 ++#define MX6QDL_PAD_ENET_TXD1__ENET_1588_EVENT0_IN 0x1ec 0x500 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1ec 0x500 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1f0 0x504 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1 0x1f0 0x504 0x884 0x2 0x0 ++#define MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x1f0 0x504 0x000 0x5 0x0 ++#define MX6QDL_PAD_ENET_MDC__MLB_DATA 0x1f4 0x508 0x904 0x0 0x0 ++#define MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1f4 0x508 0x000 0x1 0x0 ++#define MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0 0x1f4 0x508 0x888 0x2 0x0 ++#define MX6QDL_PAD_ENET_MDC__ENET_1588_EVENT1_IN 0x1f4 0x508 0x000 0x4 0x0 ++#define MX6QDL_PAD_ENET_MDC__GPIO1_IO31 0x1f4 0x508 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x1f8 0x5c8 0x7f4 0x0 0x2 ++#define MX6QDL_PAD_KEY_COL0__ENET_RX_DATA3 0x1f8 0x5c8 0x854 0x1 0x1 ++#define MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x1f8 0x5c8 0x7dc 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL0__KEY_COL0 0x1f8 0x5c8 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1f8 0x5c8 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL0__UART4_RX_DATA 0x1f8 0x5c8 0x938 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1f8 0x5c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL0__DCIC1_OUT 0x1f8 0x5c8 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x1fc 0x5cc 0x7fc 0x0 0x2 ++#define MX6QDL_PAD_KEY_ROW0__ENET_TX_DATA3 0x1fc 0x5cc 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x1fc 0x5cc 0x7d0 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW0__KEY_ROW0 0x1fc 0x5cc 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1fc 0x5cc 0x938 0x4 0x1 ++#define MX6QDL_PAD_KEY_ROW0__UART4_TX_DATA 0x1fc 0x5cc 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1fc 0x5cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW0__DCIC2_OUT 0x1fc 0x5cc 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x200 0x5d0 0x7f8 0x0 0x2 ++#define MX6QDL_PAD_KEY_COL1__ENET_MDIO 0x200 0x5d0 0x840 0x1 0x1 ++#define MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x200 0x5d0 0x7e0 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL1__KEY_COL1 0x200 0x5d0 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x200 0x5d0 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL1__UART5_RX_DATA 0x200 0x5d0 0x940 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x200 0x5d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL1__SD1_VSELECT 0x200 0x5d0 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW1__ECSPI1_SS0 0x204 0x5d4 0x800 0x0 0x2 ++#define MX6QDL_PAD_KEY_ROW1__ENET_COL 0x204 0x5d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW1__AUD5_RXD 0x204 0x5d4 0x7cc 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW1__KEY_ROW1 0x204 0x5d4 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x204 0x5d4 0x940 0x4 0x1 ++#define MX6QDL_PAD_KEY_ROW1__UART5_TX_DATA 0x204 0x5d4 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x204 0x5d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x204 0x5d4 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL2__ECSPI1_SS1 0x208 0x5d8 0x804 0x0 0x2 ++#define MX6QDL_PAD_KEY_COL2__ENET_RX_DATA2 0x208 0x5d8 0x850 0x1 0x1 ++#define MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x208 0x5d8 0x000 0x2 0x0 ++#define MX6QDL_PAD_KEY_COL2__KEY_COL2 0x208 0x5d8 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL2__ENET_MDC 0x208 0x5d8 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x208 0x5d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL2__USB_H1_PWR_CTL_WAKE 0x208 0x5d8 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_ROW2__ECSPI1_SS2 0x20c 0x5dc 0x808 0x0 0x1 ++#define MX6QDL_PAD_KEY_ROW2__ENET_TX_DATA2 0x20c 0x5dc 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x20c 0x5dc 0x7e4 0x2 0x0 ++#define MX6QDL_PAD_KEY_ROW2__KEY_ROW2 0x20c 0x5dc 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW2__SD2_VSELECT 0x20c 0x5dc 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 0x20c 0x5dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x20c 0x5dc 0x88c 0x6 0x1 ++#define MX6QDL_PAD_KEY_COL3__ECSPI1_SS3 0x210 0x5e0 0x80c 0x0 0x1 ++#define MX6QDL_PAD_KEY_COL3__ENET_CRS 0x210 0x5e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x210 0x5e0 0x890 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL3__KEY_COL3 0x210 0x5e0 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x210 0x5e0 0x8a0 0x4 0x1 ++#define MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x210 0x5e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_COL3__SPDIF_IN 0x210 0x5e0 0x914 0x6 0x2 ++#define MX6QDL_PAD_KEY_ROW3__ASRC_EXT_CLK 0x214 0x5e4 0x7b0 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x214 0x5e4 0x894 0x2 0x1 ++#define MX6QDL_PAD_KEY_ROW3__KEY_ROW3 0x214 0x5e4 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x214 0x5e4 0x8a4 0x4 0x1 ++#define MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x214 0x5e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW3__SD1_VSELECT 0x214 0x5e4 0x000 0x6 0x0 ++#define MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x218 0x5e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_KEY_COL4__IPU1_SISG4 0x218 0x5e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x218 0x5e8 0x944 0x2 0x1 ++#define MX6QDL_PAD_KEY_COL4__KEY_COL4 0x218 0x5e8 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_COL4__UART5_RTS_B 0x218 0x5e8 0x93c 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL4__UART5_CTS_B 0x218 0x5e8 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x218 0x5e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x21c 0x5ec 0x7e8 0x0 0x0 ++#define MX6QDL_PAD_KEY_ROW4__IPU1_SISG5 0x21c 0x5ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_KEY_ROW4__USB_OTG_PWR 0x21c 0x5ec 0x000 0x2 0x0 ++#define MX6QDL_PAD_KEY_ROW4__KEY_ROW4 0x21c 0x5ec 0x000 0x3 0x0 ++#define MX6QDL_PAD_KEY_ROW4__UART5_CTS_B 0x21c 0x5ec 0x000 0x4 0x0 ++#define MX6QDL_PAD_KEY_ROW4__UART5_RTS_B 0x21c 0x5ec 0x93c 0x4 0x1 ++#define MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x21c 0x5ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x220 0x5f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_GPIO_0__KEY_COL5 0x220 0x5f0 0x8e8 0x2 0x0 ++#define MX6QDL_PAD_GPIO_0__ASRC_EXT_CLK 0x220 0x5f0 0x7b0 0x3 0x1 ++#define MX6QDL_PAD_GPIO_0__EPIT1_OUT 0x220 0x5f0 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x220 0x5f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_0__USB_H1_PWR 0x220 0x5f0 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_0__SNVS_VIO_5 0x220 0x5f0 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_1__ESAI_RX_CLK 0x224 0x5f4 0x86c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_1__WDOG2_B 0x224 0x5f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_1__KEY_ROW5 0x224 0x5f4 0x8f4 0x2 0x0 ++#define MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x224 0x5f4 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_1__PWM2_OUT 0x224 0x5f4 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x224 0x5f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_1__SD1_CD_B 0x224 0x5f4 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_9__ESAI_RX_FS 0x228 0x5f8 0x85c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_9__WDOG1_B 0x228 0x5f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_9__KEY_COL6 0x228 0x5f8 0x8ec 0x2 0x0 ++#define MX6QDL_PAD_GPIO_9__CCM_REF_EN_B 0x228 0x5f8 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_9__PWM1_OUT 0x228 0x5f8 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x228 0x5f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_9__SD1_WP 0x228 0x5f8 0x94c 0x6 0x1 ++#define MX6QDL_PAD_GPIO_3__ESAI_RX_HF_CLK 0x22c 0x5fc 0x864 0x0 0x1 ++#define MX6QDL_PAD_GPIO_3__I2C3_SCL 0x22c 0x5fc 0x8a8 0x2 0x1 ++#define MX6QDL_PAD_GPIO_3__XTALOSC_REF_CLK_24M 0x22c 0x5fc 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_3__CCM_CLKO2 0x22c 0x5fc 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x22c 0x5fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_3__USB_H1_OC 0x22c 0x5fc 0x948 0x6 0x1 ++#define MX6QDL_PAD_GPIO_3__MLB_CLK 0x22c 0x5fc 0x900 0x7 0x1 ++#define MX6QDL_PAD_GPIO_6__ESAI_TX_CLK 0x230 0x600 0x870 0x0 0x1 ++#define MX6QDL_PAD_GPIO_6__I2C3_SDA 0x230 0x600 0x8ac 0x2 0x1 ++#define MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x230 0x600 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_6__SD2_LCTL 0x230 0x600 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_6__MLB_SIG 0x230 0x600 0x908 0x7 0x1 ++#define MX6QDL_PAD_GPIO_2__ESAI_TX_FS 0x234 0x604 0x860 0x0 0x1 ++#define MX6QDL_PAD_GPIO_2__KEY_ROW6 0x234 0x604 0x8f8 0x2 0x1 ++#define MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x234 0x604 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_2__SD2_WP 0x234 0x604 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_2__MLB_DATA 0x234 0x604 0x904 0x7 0x1 ++#define MX6QDL_PAD_GPIO_4__ESAI_TX_HF_CLK 0x238 0x608 0x868 0x0 0x1 ++#define MX6QDL_PAD_GPIO_4__KEY_COL7 0x238 0x608 0x8f0 0x2 0x1 ++#define MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x238 0x608 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_4__SD2_CD_B 0x238 0x608 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_5__ESAI_TX2_RX3 0x23c 0x60c 0x87c 0x0 0x1 ++#define MX6QDL_PAD_GPIO_5__KEY_ROW7 0x23c 0x60c 0x8fc 0x2 0x1 ++#define MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x23c 0x60c 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x23c 0x60c 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_5__I2C3_SCL 0x23c 0x60c 0x8a8 0x6 0x2 ++#define MX6QDL_PAD_GPIO_5__ARM_EVENTI 0x23c 0x60c 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_7__ESAI_TX4_RX1 0x240 0x610 0x884 0x0 0x1 ++#define MX6QDL_PAD_GPIO_7__ECSPI5_RDY 0x240 0x610 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_7__EPIT1_OUT 0x240 0x610 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x240 0x610 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_7__UART2_TX_DATA 0x240 0x610 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_7__UART2_RX_DATA 0x240 0x610 0x928 0x4 0x2 ++#define MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x240 0x610 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_7__SPDIF_LOCK 0x240 0x610 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_7__USB_OTG_HOST_MODE 0x240 0x610 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_8__ESAI_TX5_RX0 0x244 0x614 0x888 0x0 0x1 ++#define MX6QDL_PAD_GPIO_8__XTALOSC_REF_CLK_32K 0x244 0x614 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_8__EPIT2_OUT 0x244 0x614 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_8__FLEXCAN1_RX 0x244 0x614 0x7e4 0x3 0x1 ++#define MX6QDL_PAD_GPIO_8__UART2_RX_DATA 0x244 0x614 0x928 0x4 0x3 ++#define MX6QDL_PAD_GPIO_8__UART2_TX_DATA 0x244 0x614 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x244 0x614 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_8__SPDIF_SR_CLK 0x244 0x614 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_8__USB_OTG_PWR_CTL_WAKE 0x244 0x614 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_16__ESAI_TX3_RX2 0x248 0x618 0x880 0x0 0x1 ++#define MX6QDL_PAD_GPIO_16__ENET_1588_EVENT2_IN 0x248 0x618 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x248 0x618 0x83c 0x2 0x1 ++#define MX6QDL_PAD_GPIO_16__SD1_LCTL 0x248 0x618 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_16__SPDIF_IN 0x248 0x618 0x914 0x4 0x3 ++#define MX6QDL_PAD_GPIO_16__GPIO7_IO11 0x248 0x618 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_16__I2C3_SDA 0x248 0x618 0x8ac 0x6 0x2 ++#define MX6QDL_PAD_GPIO_16__JTAG_DE_B 0x248 0x618 0x000 0x7 0x0 ++#define MX6QDL_PAD_GPIO_17__ESAI_TX0 0x24c 0x61c 0x874 0x0 0x0 ++#define MX6QDL_PAD_GPIO_17__ENET_1588_EVENT3_IN 0x24c 0x61c 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_17__CCM_PMIC_READY 0x24c 0x61c 0x7f0 0x2 0x1 ++#define MX6QDL_PAD_GPIO_17__SDMA_EXT_EVENT0 0x24c 0x61c 0x90c 0x3 0x1 ++#define MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x24c 0x61c 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x24c 0x61c 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_18__ESAI_TX1 0x250 0x620 0x878 0x0 0x0 ++#define MX6QDL_PAD_GPIO_18__ENET_RX_CLK 0x250 0x620 0x844 0x1 0x1 ++#define MX6QDL_PAD_GPIO_18__SD3_VSELECT 0x250 0x620 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_18__SDMA_EXT_EVENT1 0x250 0x620 0x910 0x3 0x1 ++#define MX6QDL_PAD_GPIO_18__ASRC_EXT_CLK 0x250 0x620 0x7b0 0x4 0x2 ++#define MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x250 0x620 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_18__SNVS_VIO_5_CTL 0x250 0x620 0x000 0x6 0x0 ++#define MX6QDL_PAD_GPIO_19__KEY_COL5 0x254 0x624 0x8e8 0x0 0x1 ++#define MX6QDL_PAD_GPIO_19__ENET_1588_EVENT0_OUT 0x254 0x624 0x000 0x1 0x0 ++#define MX6QDL_PAD_GPIO_19__SPDIF_OUT 0x254 0x624 0x000 0x2 0x0 ++#define MX6QDL_PAD_GPIO_19__CCM_CLKO1 0x254 0x624 0x000 0x3 0x0 ++#define MX6QDL_PAD_GPIO_19__ECSPI1_RDY 0x254 0x624 0x000 0x4 0x0 ++#define MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x254 0x624 0x000 0x5 0x0 ++#define MX6QDL_PAD_GPIO_19__ENET_TX_ER 0x254 0x624 0x000 0x6 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x258 0x628 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x258 0x628 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_PIXCLK__ARM_EVENTO 0x258 0x628 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x25c 0x62c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0x25c 0x62c 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19 0x25c 0x62c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_MCLK__ARM_TRACE_CTL 0x25c 0x62c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x260 0x630 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__EIM_DATA00 0x260 0x630 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x260 0x630 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DATA_EN__ARM_TRACE_CLK 0x260 0x630 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x264 0x634 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__EIM_DATA01 0x264 0x634 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x264 0x634 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_VSYNC__ARM_TRACE00 0x264 0x634 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__IPU1_CSI0_DATA04 0x268 0x638 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__EIM_DATA02 0x268 0x638 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__ECSPI1_SCLK 0x268 0x638 0x7f4 0x2 0x3 ++#define MX6QDL_PAD_CSI0_DAT4__KEY_COL5 0x268 0x638 0x8e8 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x268 0x638 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__GPIO5_IO22 0x268 0x638 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT4__ARM_TRACE01 0x268 0x638 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__IPU1_CSI0_DATA05 0x26c 0x63c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__EIM_DATA03 0x26c 0x63c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__ECSPI1_MOSI 0x26c 0x63c 0x7fc 0x2 0x3 ++#define MX6QDL_PAD_CSI0_DAT5__KEY_ROW5 0x26c 0x63c 0x8f4 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x26c 0x63c 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23 0x26c 0x63c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT5__ARM_TRACE02 0x26c 0x63c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__IPU1_CSI0_DATA06 0x270 0x640 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__EIM_DATA04 0x270 0x640 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__ECSPI1_MISO 0x270 0x640 0x7f8 0x2 0x3 ++#define MX6QDL_PAD_CSI0_DAT6__KEY_COL6 0x270 0x640 0x8ec 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x270 0x640 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__GPIO5_IO24 0x270 0x640 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT6__ARM_TRACE03 0x270 0x640 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x274 0x644 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__EIM_DATA05 0x274 0x644 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__ECSPI1_SS0 0x274 0x644 0x800 0x2 0x3 ++#define MX6QDL_PAD_CSI0_DAT7__KEY_ROW6 0x274 0x644 0x8f8 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x274 0x644 0x000 0x4 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__GPIO5_IO25 0x274 0x644 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT7__ARM_TRACE04 0x274 0x644 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x278 0x648 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__EIM_DATA06 0x278 0x648 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__ECSPI2_SCLK 0x278 0x648 0x810 0x2 0x2 ++#define MX6QDL_PAD_CSI0_DAT8__KEY_COL7 0x278 0x648 0x8f0 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x278 0x648 0x89c 0x4 0x1 ++#define MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26 0x278 0x648 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT8__ARM_TRACE05 0x278 0x648 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x27c 0x64c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__EIM_DATA07 0x27c 0x64c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__ECSPI2_MOSI 0x27c 0x64c 0x818 0x2 0x2 ++#define MX6QDL_PAD_CSI0_DAT9__KEY_ROW7 0x27c 0x64c 0x8fc 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x27c 0x64c 0x898 0x4 0x1 ++#define MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27 0x27c 0x64c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT9__ARM_TRACE06 0x27c 0x64c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x280 0x650 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__AUD3_RXC 0x280 0x650 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__ECSPI2_MISO 0x280 0x650 0x814 0x2 0x2 ++#define MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x280 0x650 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__UART1_RX_DATA 0x280 0x650 0x920 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__GPIO5_IO28 0x280 0x650 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT10__ARM_TRACE07 0x280 0x650 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x284 0x654 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__AUD3_RXFS 0x284 0x654 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__ECSPI2_SS0 0x284 0x654 0x81c 0x2 0x2 ++#define MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x284 0x654 0x920 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT11__UART1_TX_DATA 0x284 0x654 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__GPIO5_IO29 0x284 0x654 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT11__ARM_TRACE08 0x284 0x654 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x288 0x658 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__EIM_DATA08 0x288 0x658 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x288 0x658 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__UART4_RX_DATA 0x288 0x658 0x938 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT12__GPIO5_IO30 0x288 0x658 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT12__ARM_TRACE09 0x288 0x658 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x28c 0x65c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__EIM_DATA09 0x28c 0x65c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x28c 0x65c 0x938 0x3 0x3 ++#define MX6QDL_PAD_CSI0_DAT13__UART4_TX_DATA 0x28c 0x65c 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31 0x28c 0x65c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT13__ARM_TRACE10 0x28c 0x65c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x290 0x660 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__EIM_DATA10 0x290 0x660 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__UART5_TX_DATA 0x290 0x660 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__UART5_RX_DATA 0x290 0x660 0x940 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00 0x290 0x660 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT14__ARM_TRACE11 0x290 0x660 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x294 0x664 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__EIM_DATA11 0x294 0x664 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__UART5_RX_DATA 0x294 0x664 0x940 0x3 0x3 ++#define MX6QDL_PAD_CSI0_DAT15__UART5_TX_DATA 0x294 0x664 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__GPIO6_IO01 0x294 0x664 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT15__ARM_TRACE12 0x294 0x664 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x298 0x668 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__EIM_DATA12 0x298 0x668 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x298 0x668 0x934 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__UART4_CTS_B 0x298 0x668 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__GPIO6_IO02 0x298 0x668 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT16__ARM_TRACE13 0x298 0x668 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x29c 0x66c 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__EIM_DATA13 0x29c 0x66c 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x29c 0x66c 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__UART4_RTS_B 0x29c 0x66c 0x934 0x3 0x1 ++#define MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03 0x29c 0x66c 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT17__ARM_TRACE14 0x29c 0x66c 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x2a0 0x670 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__EIM_DATA14 0x2a0 0x670 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__UART5_RTS_B 0x2a0 0x670 0x93c 0x3 0x2 ++#define MX6QDL_PAD_CSI0_DAT18__UART5_CTS_B 0x2a0 0x670 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04 0x2a0 0x670 0x000 0x5 0x0 ++#define MX6QDL_PAD_CSI0_DAT18__ARM_TRACE15 0x2a0 0x670 0x000 0x7 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x2a4 0x674 0x000 0x0 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__EIM_DATA15 0x2a4 0x674 0x000 0x1 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__UART5_CTS_B 0x2a4 0x674 0x000 0x3 0x0 ++#define MX6QDL_PAD_CSI0_DAT19__UART5_RTS_B 0x2a4 0x674 0x93c 0x3 0x3 ++#define MX6QDL_PAD_CSI0_DAT19__GPIO6_IO05 0x2a4 0x674 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x2a8 0x690 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x2a8 0x690 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT7__UART1_RX_DATA 0x2a8 0x690 0x920 0x1 0x2 ++#define MX6QDL_PAD_SD3_DAT7__GPIO6_IO17 0x2a8 0x690 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x2ac 0x694 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x2ac 0x694 0x920 0x1 0x3 ++#define MX6QDL_PAD_SD3_DAT6__UART1_TX_DATA 0x2ac 0x694 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT6__GPIO6_IO18 0x2ac 0x694 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x2b0 0x698 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT5__UART2_TX_DATA 0x2b0 0x698 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT5__UART2_RX_DATA 0x2b0 0x698 0x928 0x1 0x4 ++#define MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x2b0 0x698 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x2b4 0x69c 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT4__UART2_RX_DATA 0x2b4 0x69c 0x928 0x1 0x5 ++#define MX6QDL_PAD_SD3_DAT4__UART2_TX_DATA 0x2b4 0x69c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x2b4 0x69c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_CMD__SD3_CMD 0x2b8 0x6a0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_CMD__UART2_CTS_B 0x2b8 0x6a0 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_CMD__UART2_RTS_B 0x2b8 0x6a0 0x924 0x1 0x2 ++#define MX6QDL_PAD_SD3_CMD__FLEXCAN1_TX 0x2b8 0x6a0 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD3_CMD__GPIO7_IO02 0x2b8 0x6a0 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_CLK__SD3_CLK 0x2bc 0x6a4 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_CLK__UART2_RTS_B 0x2bc 0x6a4 0x924 0x1 0x3 ++#define MX6QDL_PAD_SD3_CLK__UART2_CTS_B 0x2bc 0x6a4 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_CLK__FLEXCAN1_RX 0x2bc 0x6a4 0x7e4 0x2 0x2 ++#define MX6QDL_PAD_SD3_CLK__GPIO7_IO03 0x2bc 0x6a4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x2c0 0x6a8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT0__UART1_CTS_B 0x2c0 0x6a8 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT0__UART1_RTS_B 0x2c0 0x6a8 0x91c 0x1 0x2 ++#define MX6QDL_PAD_SD3_DAT0__FLEXCAN2_TX 0x2c0 0x6a8 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD3_DAT0__GPIO7_IO04 0x2c0 0x6a8 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x2c4 0x6ac 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT1__UART1_RTS_B 0x2c4 0x6ac 0x91c 0x1 0x3 ++#define MX6QDL_PAD_SD3_DAT1__UART1_CTS_B 0x2c4 0x6ac 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT1__FLEXCAN2_RX 0x2c4 0x6ac 0x7e8 0x2 0x1 ++#define MX6QDL_PAD_SD3_DAT1__GPIO7_IO05 0x2c4 0x6ac 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x2c8 0x6b0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT2__GPIO7_IO06 0x2c8 0x6b0 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x2cc 0x6b4 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_DAT3__UART3_CTS_B 0x2cc 0x6b4 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_DAT3__UART3_RTS_B 0x2cc 0x6b4 0x92c 0x1 0x4 ++#define MX6QDL_PAD_SD3_DAT3__GPIO7_IO07 0x2cc 0x6b4 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD3_RST__SD3_RESET 0x2d0 0x6b8 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD3_RST__UART3_RTS_B 0x2d0 0x6b8 0x92c 0x1 0x5 ++#define MX6QDL_PAD_SD3_RST__UART3_CTS_B 0x2d0 0x6b8 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x2d0 0x6b8 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CLE__NAND_CLE 0x2d4 0x6bc 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CLE__IPU2_SISG4 0x2d4 0x6bc 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x2d4 0x6bc 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_ALE__NAND_ALE 0x2d8 0x6c0 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_ALE__SD4_RESET 0x2d8 0x6c0 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x2d8 0x6c0 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0x2dc 0x6c4 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__IPU2_SISG5 0x2dc 0x6c4 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x2dc 0x6c4 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0x2e0 0x6c8 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_RB0__IPU2_DI0_PIN01 0x2e0 0x6c8 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x2e0 0x6c8 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0x2e4 0x6cc 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x2e4 0x6cc 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0x2e8 0x6d0 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS1__SD4_VSELECT 0x2e8 0x6d0 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x2e8 0x6d0 0x000 0x2 0x0 ++#define MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x2e8 0x6d0 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS2__NAND_CE2_B 0x2ec 0x6d4 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS2__IPU1_SISG0 0x2ec 0x6d4 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS2__ESAI_TX0 0x2ec 0x6d4 0x874 0x2 0x1 ++#define MX6QDL_PAD_NANDF_CS2__EIM_CRE 0x2ec 0x6d4 0x000 0x3 0x0 ++#define MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x2ec 0x6d4 0x000 0x4 0x0 ++#define MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x2ec 0x6d4 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS2__IPU2_SISG0 0x2ec 0x6d4 0x000 0x6 0x0 ++#define MX6QDL_PAD_NANDF_CS3__NAND_CE3_B 0x2f0 0x6d8 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_CS3__IPU1_SISG1 0x2f0 0x6d8 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_CS3__ESAI_TX1 0x2f0 0x6d8 0x878 0x2 0x1 ++#define MX6QDL_PAD_NANDF_CS3__EIM_ADDR26 0x2f0 0x6d8 0x000 0x3 0x0 ++#define MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x2f0 0x6d8 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_CS3__IPU2_SISG1 0x2f0 0x6d8 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD4_CMD__SD4_CMD 0x2f4 0x6dc 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD4_CMD__NAND_RE_B 0x2f4 0x6dc 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_CMD__UART3_TX_DATA 0x2f4 0x6dc 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_CMD__UART3_RX_DATA 0x2f4 0x6dc 0x930 0x2 0x2 ++#define MX6QDL_PAD_SD4_CMD__GPIO7_IO09 0x2f4 0x6dc 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_CLK__SD4_CLK 0x2f8 0x6e0 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD4_CLK__NAND_WE_B 0x2f8 0x6e0 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_CLK__UART3_RX_DATA 0x2f8 0x6e0 0x930 0x2 0x3 ++#define MX6QDL_PAD_SD4_CLK__UART3_TX_DATA 0x2f8 0x6e0 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_CLK__GPIO7_IO10 0x2f8 0x6e0 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D0__NAND_DATA00 0x2fc 0x6e4 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D0__SD1_DATA4 0x2fc 0x6e4 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x2fc 0x6e4 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D1__NAND_DATA01 0x300 0x6e8 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D1__SD1_DATA5 0x300 0x6e8 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x300 0x6e8 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D2__NAND_DATA02 0x304 0x6ec 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D2__SD1_DATA6 0x304 0x6ec 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x304 0x6ec 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D3__NAND_DATA03 0x308 0x6f0 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D3__SD1_DATA7 0x308 0x6f0 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x308 0x6f0 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D4__NAND_DATA04 0x30c 0x6f4 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D4__SD2_DATA4 0x30c 0x6f4 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x30c 0x6f4 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D5__NAND_DATA05 0x310 0x6f8 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D5__SD2_DATA5 0x310 0x6f8 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x310 0x6f8 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D6__NAND_DATA06 0x314 0x6fc 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D6__SD2_DATA6 0x314 0x6fc 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x314 0x6fc 0x000 0x5 0x0 ++#define MX6QDL_PAD_NANDF_D7__NAND_DATA07 0x318 0x700 0x000 0x0 0x0 ++#define MX6QDL_PAD_NANDF_D7__SD2_DATA7 0x318 0x700 0x000 0x1 0x0 ++#define MX6QDL_PAD_NANDF_D7__GPIO2_IO07 0x318 0x700 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x31c 0x704 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT0__NAND_DQS 0x31c 0x704 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT0__GPIO2_IO08 0x31c 0x704 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x320 0x708 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x320 0x708 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT1__GPIO2_IO09 0x320 0x708 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x324 0x70c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x324 0x70c 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT2__GPIO2_IO10 0x324 0x70c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x328 0x710 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x328 0x710 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x32c 0x714 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x32c 0x714 0x928 0x2 0x6 ++#define MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA 0x32c 0x714 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT4__GPIO2_IO12 0x32c 0x714 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x330 0x718 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT5__UART2_RTS_B 0x330 0x718 0x924 0x2 0x4 ++#define MX6QDL_PAD_SD4_DAT5__UART2_CTS_B 0x330 0x718 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT5__GPIO2_IO13 0x330 0x718 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x334 0x71c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT6__UART2_CTS_B 0x334 0x71c 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT6__UART2_RTS_B 0x334 0x71c 0x924 0x2 0x5 ++#define MX6QDL_PAD_SD4_DAT6__GPIO2_IO14 0x334 0x71c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x338 0x720 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x338 0x720 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA 0x338 0x720 0x928 0x2 0x7 ++#define MX6QDL_PAD_SD4_DAT7__GPIO2_IO15 0x338 0x720 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x33c 0x724 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT1__ECSPI5_SS0 0x33c 0x724 0x834 0x1 0x1 ++#define MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x33c 0x724 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT1__GPT_CAPTURE2 0x33c 0x724 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x33c 0x724 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x340 0x728 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT0__ECSPI5_MISO 0x340 0x728 0x82c 0x1 0x1 ++#define MX6QDL_PAD_SD1_DAT0__GPT_CAPTURE1 0x340 0x728 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT0__GPIO1_IO16 0x340 0x728 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x344 0x72c 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT3__ECSPI5_SS2 0x344 0x72c 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD1_DAT3__GPT_COMPARE3 0x344 0x72c 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x344 0x72c 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT3__WDOG2_B 0x344 0x72c 0x000 0x4 0x0 ++#define MX6QDL_PAD_SD1_DAT3__GPIO1_IO21 0x344 0x72c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT3__WDOG2_RESET_B_DEB 0x344 0x72c 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD1_CMD__SD1_CMD 0x348 0x730 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_CMD__ECSPI5_MOSI 0x348 0x730 0x830 0x1 0x0 ++#define MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x348 0x730 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_CMD__GPT_COMPARE1 0x348 0x730 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_CMD__GPIO1_IO18 0x348 0x730 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x34c 0x734 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_DAT2__ECSPI5_SS1 0x34c 0x734 0x838 0x1 0x1 ++#define MX6QDL_PAD_SD1_DAT2__GPT_COMPARE2 0x34c 0x734 0x000 0x2 0x0 ++#define MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x34c 0x734 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_DAT2__WDOG1_B 0x34c 0x734 0x000 0x4 0x0 ++#define MX6QDL_PAD_SD1_DAT2__GPIO1_IO19 0x34c 0x734 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD1_DAT2__WDOG1_RESET_B_DEB 0x34c 0x734 0x000 0x6 0x0 ++#define MX6QDL_PAD_SD1_CLK__SD1_CLK 0x350 0x738 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD1_CLK__ECSPI5_SCLK 0x350 0x738 0x828 0x1 0x0 ++#define MX6QDL_PAD_SD1_CLK__GPT_CLKIN 0x350 0x738 0x000 0x3 0x0 ++#define MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x350 0x738 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_CLK__SD2_CLK 0x354 0x73c 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_CLK__ECSPI5_SCLK 0x354 0x73c 0x828 0x1 0x1 ++#define MX6QDL_PAD_SD2_CLK__KEY_COL5 0x354 0x73c 0x8e8 0x2 0x3 ++#define MX6QDL_PAD_SD2_CLK__AUD4_RXFS 0x354 0x73c 0x7c0 0x3 0x1 ++#define MX6QDL_PAD_SD2_CLK__GPIO1_IO10 0x354 0x73c 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_CMD__SD2_CMD 0x358 0x740 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_CMD__ECSPI5_MOSI 0x358 0x740 0x830 0x1 0x1 ++#define MX6QDL_PAD_SD2_CMD__KEY_ROW5 0x358 0x740 0x8f4 0x2 0x2 ++#define MX6QDL_PAD_SD2_CMD__AUD4_RXC 0x358 0x740 0x7bc 0x3 0x1 ++#define MX6QDL_PAD_SD2_CMD__GPIO1_IO11 0x358 0x740 0x000 0x5 0x0 ++#define MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x35c 0x744 0x000 0x0 0x0 ++#define MX6QDL_PAD_SD2_DAT3__ECSPI5_SS3 0x35c 0x744 0x000 0x1 0x0 ++#define MX6QDL_PAD_SD2_DAT3__KEY_COL6 0x35c 0x744 0x8ec 0x2 0x2 ++#define MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x35c 0x744 0x7c4 0x3 0x1 ++#define MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x35c 0x744 0x000 0x5 0x0 + + #endif /* __DTS_IMX6Q_PINFUNC_H */ +diff --git a/arch/arm/boot/dts/imx6q-sabreauto.dts b/arch/arm/boot/dts/imx6q-sabreauto.dts +index 49d6f28..334b924 100644 +--- a/arch/arm/boot/dts/imx6q-sabreauto.dts ++++ b/arch/arm/boot/dts/imx6q-sabreauto.dts +@@ -20,16 +20,6 @@ + compatible = "fsl,imx6q-sabreauto", "fsl,imx6q"; + }; + +-&iomuxc { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_hog>; +- +- hog { +- pinctrl_hog: hoggrp { +- fsl,pins = < +- MX6Q_PAD_NANDF_CS2__GPIO6_IO15 0x80000000 +- MX6Q_PAD_SD2_DAT2__GPIO1_IO13 0x80000000 +- >; +- }; +- }; ++&sata { ++ status = "okay"; + }; +diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts +index 6a00066..3530280 100644 +--- a/arch/arm/boot/dts/imx6q-sabrelite.dts ++++ b/arch/arm/boot/dts/imx6q-sabrelite.dts +@@ -65,6 +65,10 @@ + }; + }; + ++&sata { ++ status = "okay"; ++}; ++ + &ecspi1 { + fsl,spi-num-chipselects = <1>; + cs-gpios = <&gpio3 19 0>; +@@ -91,14 +95,14 @@ + hog { + pinctrl_hog: hoggrp { + fsl,pins = < +- MX6Q_PAD_NANDF_D6__GPIO2_IO06 0x80000000 +- MX6Q_PAD_NANDF_D7__GPIO2_IO07 0x80000000 +- MX6Q_PAD_EIM_D19__GPIO3_IO19 0x80000000 +- MX6Q_PAD_EIM_D22__GPIO3_IO22 0x80000000 +- MX6Q_PAD_EIM_D23__GPIO3_IO23 0x80000000 +- MX6Q_PAD_SD3_DAT5__GPIO7_IO00 0x80000000 +- MX6Q_PAD_SD3_DAT4__GPIO7_IO01 0x1f0b0 +- MX6Q_PAD_GPIO_0__CCM_CLKO1 0x80000000 ++ MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x80000000 ++ MX6QDL_PAD_NANDF_D7__GPIO2_IO07 0x80000000 ++ MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x80000000 ++ MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x80000000 ++ MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x80000000 ++ MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x80000000 ++ MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1f0b0 ++ MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x80000000 + >; + }; + }; +@@ -163,7 +167,7 @@ + codec: sgtl5000@0a { + compatible = "fsl,sgtl5000"; + reg = <0x0a>; +- clocks = <&clks 169>; ++ clocks = <&clks 201>; + VDDA-supply = <®_2p5v>; + VDDIO-supply = <®_3p3v>; + }; +diff --git a/arch/arm/boot/dts/imx6q-sabresd.dts b/arch/arm/boot/dts/imx6q-sabresd.dts +index 4420513..9cbdfe7 100644 +--- a/arch/arm/boot/dts/imx6q-sabresd.dts ++++ b/arch/arm/boot/dts/imx6q-sabresd.dts +@@ -20,20 +20,6 @@ + compatible = "fsl,imx6q-sabresd", "fsl,imx6q"; + }; + +-&iomuxc { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_hog>; +- +- hog { +- pinctrl_hog: hoggrp { +- fsl,pins = < +- MX6Q_PAD_GPIO_4__GPIO1_IO04 0x80000000 +- MX6Q_PAD_GPIO_5__GPIO1_IO05 0x80000000 +- MX6Q_PAD_NANDF_D0__GPIO2_IO00 0x80000000 +- MX6Q_PAD_NANDF_D1__GPIO2_IO01 0x80000000 +- MX6Q_PAD_NANDF_D2__GPIO2_IO02 0x80000000 +- MX6Q_PAD_NANDF_D3__GPIO2_IO03 0x80000000 +- >; +- }; +- }; ++&sata { ++ status = "okay"; + }; +diff --git a/arch/arm/boot/dts/imx6q-wandboard.dts b/arch/arm/boot/dts/imx6q-wandboard.dts +new file mode 100644 +index 0000000..36be17f +--- /dev/null ++++ b/arch/arm/boot/dts/imx6q-wandboard.dts +@@ -0,0 +1,26 @@ ++/* ++ * Copyright 2013 Freescale Semiconductor, Inc. ++ * ++ * Author: Fabio Estevam fabio.estevam@freescale.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++/dts-v1/; ++#include "imx6q.dtsi" ++#include "imx6qdl-wandboard.dtsi" ++ ++/ { ++ model = "Wandboard i.MX6 Quad Board"; ++ compatible = "wand,imx6q-wandboard", "fsl,imx6q"; ++ ++ memory { ++ reg = <0x10000000 0x80000000>; ++ }; ++}; ++ ++&sata { ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi +index dc54a72..f024ef2 100644 +--- a/arch/arm/boot/dts/imx6q.dtsi ++++ b/arch/arm/boot/dts/imx6q.dtsi +@@ -8,8 +8,8 @@ + * + */ + +-#include "imx6qdl.dtsi" + #include "imx6q-pinfunc.h" ++#include "imx6qdl.dtsi" + + / { + cpus { +@@ -61,6 +61,12 @@ + }; + + soc { ++ ocram: sram@00900000 { ++ compatible = "mmio-sram"; ++ reg = <0x00900000 0x40000>; ++ clocks = <&clks 142>; ++ }; ++ + aips-bus@02000000 { /* AIPS1 */ + spba-bus@02000000 { + ecspi5: ecspi@02018000 { +@@ -77,261 +83,54 @@ + + iomuxc: iomuxc@020e0000 { + compatible = "fsl,imx6q-iomuxc"; +- reg = <0x020e0000 0x4000>; + +- /* shared pinctrl settings */ +- audmux { +- pinctrl_audmux_1: audmux-1 { +- fsl,pins = < +- MX6Q_PAD_SD2_DAT0__AUD4_RXD 0x80000000 +- MX6Q_PAD_SD2_DAT3__AUD4_TXC 0x80000000 +- MX6Q_PAD_SD2_DAT2__AUD4_TXD 0x80000000 +- MX6Q_PAD_SD2_DAT1__AUD4_TXFS 0x80000000 +- >; +- }; +- +- pinctrl_audmux_2: audmux-2 { +- fsl,pins = < +- MX6Q_PAD_CSI0_DAT7__AUD3_RXD 0x80000000 +- MX6Q_PAD_CSI0_DAT4__AUD3_TXC 0x80000000 +- MX6Q_PAD_CSI0_DAT5__AUD3_TXD 0x80000000 +- MX6Q_PAD_CSI0_DAT6__AUD3_TXFS 0x80000000 +- >; +- }; +- }; +- +- ecspi1 { +- pinctrl_ecspi1_1: ecspi1grp-1 { +- fsl,pins = < +- MX6Q_PAD_EIM_D17__ECSPI1_MISO 0x100b1 +- MX6Q_PAD_EIM_D18__ECSPI1_MOSI 0x100b1 +- MX6Q_PAD_EIM_D16__ECSPI1_SCLK 0x100b1 +- >; +- }; +- }; +- +- ecspi3 { +- pinctrl_ecspi3_1: ecspi3grp-1 { +- fsl,pins = < +- MX6Q_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1 +- MX6Q_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1 +- MX6Q_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1 +- >; +- }; +- }; +- +- enet { +- pinctrl_enet_1: enetgrp-1 { +- fsl,pins = < +- MX6Q_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 +- MX6Q_PAD_ENET_MDC__ENET_MDC 0x1b0b0 +- MX6Q_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 +- MX6Q_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 +- MX6Q_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 +- MX6Q_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 +- MX6Q_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 +- MX6Q_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 +- MX6Q_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 +- MX6Q_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 +- MX6Q_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 +- MX6Q_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 +- MX6Q_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 +- MX6Q_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 +- MX6Q_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 +- MX6Q_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 +- >; +- }; +- +- pinctrl_enet_2: enetgrp-2 { +- fsl,pins = < +- MX6Q_PAD_KEY_COL1__ENET_MDIO 0x1b0b0 +- MX6Q_PAD_KEY_COL2__ENET_MDC 0x1b0b0 +- MX6Q_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 +- MX6Q_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 +- MX6Q_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 +- MX6Q_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 +- MX6Q_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 +- MX6Q_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 +- MX6Q_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 +- MX6Q_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 +- MX6Q_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 +- MX6Q_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 +- MX6Q_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 +- MX6Q_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 +- MX6Q_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 +- >; +- }; +- }; +- +- gpmi-nand { +- pinctrl_gpmi_nand_1: gpmi-nand-1 { +- fsl,pins = < +- MX6Q_PAD_NANDF_CLE__NAND_CLE 0xb0b1 +- MX6Q_PAD_NANDF_ALE__NAND_ALE 0xb0b1 +- MX6Q_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 +- MX6Q_PAD_NANDF_RB0__NAND_READY_B 0xb000 +- MX6Q_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 +- MX6Q_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1 +- MX6Q_PAD_NANDF_CS2__NAND_CE2_B 0xb0b1 +- MX6Q_PAD_NANDF_CS3__NAND_CE3_B 0xb0b1 +- MX6Q_PAD_SD4_CMD__NAND_RE_B 0xb0b1 +- MX6Q_PAD_SD4_CLK__NAND_WE_B 0xb0b1 +- MX6Q_PAD_NANDF_D0__NAND_DATA00 0xb0b1 +- MX6Q_PAD_NANDF_D1__NAND_DATA01 0xb0b1 +- MX6Q_PAD_NANDF_D2__NAND_DATA02 0xb0b1 +- MX6Q_PAD_NANDF_D3__NAND_DATA03 0xb0b1 +- MX6Q_PAD_NANDF_D4__NAND_DATA04 0xb0b1 +- MX6Q_PAD_NANDF_D5__NAND_DATA05 0xb0b1 +- MX6Q_PAD_NANDF_D6__NAND_DATA06 0xb0b1 +- MX6Q_PAD_NANDF_D7__NAND_DATA07 0xb0b1 +- MX6Q_PAD_SD4_DAT0__NAND_DQS 0x00b1 +- >; +- }; +- }; +- +- i2c1 { +- pinctrl_i2c1_1: i2c1grp-1 { +- fsl,pins = < +- MX6Q_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 +- MX6Q_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 +- >; +- }; +- }; +- +- i2c2 { +- pinctrl_i2c2_1: i2c2grp-1 { +- fsl,pins = < +- MX6Q_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1 +- MX6Q_PAD_EIM_D16__I2C2_SDA 0x4001b8b1 +- >; +- }; +- }; +- +- i2c3 { +- pinctrl_i2c3_1: i2c3grp-1 { +- fsl,pins = < +- MX6Q_PAD_EIM_D17__I2C3_SCL 0x4001b8b1 +- MX6Q_PAD_EIM_D18__I2C3_SDA 0x4001b8b1 +- >; +- }; +- }; +- +- uart1 { +- pinctrl_uart1_1: uart1grp-1 { +- fsl,pins = < +- MX6Q_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1 +- MX6Q_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1 +- >; +- }; +- }; +- +- uart2 { +- pinctrl_uart2_1: uart2grp-1 { +- fsl,pins = < +- MX6Q_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1 +- MX6Q_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1 +- >; +- }; +- }; +- +- uart4 { +- pinctrl_uart4_1: uart4grp-1 { +- fsl,pins = < +- MX6Q_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 +- MX6Q_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 +- >; +- }; +- }; +- +- usbotg { +- pinctrl_usbotg_1: usbotggrp-1 { +- fsl,pins = < +- MX6Q_PAD_GPIO_1__USB_OTG_ID 0x17059 +- >; +- }; +- +- pinctrl_usbotg_2: usbotggrp-2 { +- fsl,pins = < +- MX6Q_PAD_ENET_RX_ER__USB_OTG_ID 0x17059 +- >; +- }; +- }; +- +- usdhc2 { +- pinctrl_usdhc2_1: usdhc2grp-1 { +- fsl,pins = < +- MX6Q_PAD_SD2_CMD__SD2_CMD 0x17059 +- MX6Q_PAD_SD2_CLK__SD2_CLK 0x10059 +- MX6Q_PAD_SD2_DAT0__SD2_DATA0 0x17059 +- MX6Q_PAD_SD2_DAT1__SD2_DATA1 0x17059 +- MX6Q_PAD_SD2_DAT2__SD2_DATA2 0x17059 +- MX6Q_PAD_SD2_DAT3__SD2_DATA3 0x17059 +- MX6Q_PAD_NANDF_D4__SD2_DATA4 0x17059 +- MX6Q_PAD_NANDF_D5__SD2_DATA5 0x17059 +- MX6Q_PAD_NANDF_D6__SD2_DATA6 0x17059 +- MX6Q_PAD_NANDF_D7__SD2_DATA7 0x17059 +- >; +- }; +- }; +- +- usdhc3 { +- pinctrl_usdhc3_1: usdhc3grp-1 { +- fsl,pins = < +- MX6Q_PAD_SD3_CMD__SD3_CMD 0x17059 +- MX6Q_PAD_SD3_CLK__SD3_CLK 0x10059 +- MX6Q_PAD_SD3_DAT0__SD3_DATA0 0x17059 +- MX6Q_PAD_SD3_DAT1__SD3_DATA1 0x17059 +- MX6Q_PAD_SD3_DAT2__SD3_DATA2 0x17059 +- MX6Q_PAD_SD3_DAT3__SD3_DATA3 0x17059 +- MX6Q_PAD_SD3_DAT4__SD3_DATA4 0x17059 +- MX6Q_PAD_SD3_DAT5__SD3_DATA5 0x17059 +- MX6Q_PAD_SD3_DAT6__SD3_DATA6 0x17059 +- MX6Q_PAD_SD3_DAT7__SD3_DATA7 0x17059 +- >; +- }; +- +- pinctrl_usdhc3_2: usdhc3grp-2 { +- fsl,pins = < +- MX6Q_PAD_SD3_CMD__SD3_CMD 0x17059 +- MX6Q_PAD_SD3_CLK__SD3_CLK 0x10059 +- MX6Q_PAD_SD3_DAT0__SD3_DATA0 0x17059 +- MX6Q_PAD_SD3_DAT1__SD3_DATA1 0x17059 +- MX6Q_PAD_SD3_DAT2__SD3_DATA2 0x17059 +- MX6Q_PAD_SD3_DAT3__SD3_DATA3 0x17059 +- >; +- }; +- }; +- +- usdhc4 { +- pinctrl_usdhc4_1: usdhc4grp-1 { +- fsl,pins = < +- MX6Q_PAD_SD4_CMD__SD4_CMD 0x17059 +- MX6Q_PAD_SD4_CLK__SD4_CLK 0x10059 +- MX6Q_PAD_SD4_DAT0__SD4_DATA0 0x17059 +- MX6Q_PAD_SD4_DAT1__SD4_DATA1 0x17059 +- MX6Q_PAD_SD4_DAT2__SD4_DATA2 0x17059 +- MX6Q_PAD_SD4_DAT3__SD4_DATA3 0x17059 +- MX6Q_PAD_SD4_DAT4__SD4_DATA4 0x17059 +- MX6Q_PAD_SD4_DAT5__SD4_DATA5 0x17059 +- MX6Q_PAD_SD4_DAT6__SD4_DATA6 0x17059 +- MX6Q_PAD_SD4_DAT7__SD4_DATA7 0x17059 +- >; +- }; +- +- pinctrl_usdhc4_2: usdhc4grp-2 { +- fsl,pins = < +- MX6Q_PAD_SD4_CMD__SD4_CMD 0x17059 +- MX6Q_PAD_SD4_CLK__SD4_CLK 0x10059 +- MX6Q_PAD_SD4_DAT0__SD4_DATA0 0x17059 +- MX6Q_PAD_SD4_DAT1__SD4_DATA1 0x17059 +- MX6Q_PAD_SD4_DAT2__SD4_DATA2 0x17059 +- MX6Q_PAD_SD4_DAT3__SD4_DATA3 0x17059 ++ ipu2 { ++ pinctrl_ipu2_1: ipu2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_DI0_DISP_CLK__IPU2_DI0_DISP_CLK 0x10 ++ MX6QDL_PAD_DI0_PIN15__IPU2_DI0_PIN15 0x10 ++ MX6QDL_PAD_DI0_PIN2__IPU2_DI0_PIN02 0x10 ++ MX6QDL_PAD_DI0_PIN3__IPU2_DI0_PIN03 0x10 ++ MX6QDL_PAD_DI0_PIN4__IPU2_DI0_PIN04 0x80000000 ++ MX6QDL_PAD_DISP0_DAT0__IPU2_DISP0_DATA00 0x10 ++ MX6QDL_PAD_DISP0_DAT1__IPU2_DISP0_DATA01 0x10 ++ MX6QDL_PAD_DISP0_DAT2__IPU2_DISP0_DATA02 0x10 ++ MX6QDL_PAD_DISP0_DAT3__IPU2_DISP0_DATA03 0x10 ++ MX6QDL_PAD_DISP0_DAT4__IPU2_DISP0_DATA04 0x10 ++ MX6QDL_PAD_DISP0_DAT5__IPU2_DISP0_DATA05 0x10 ++ MX6QDL_PAD_DISP0_DAT6__IPU2_DISP0_DATA06 0x10 ++ MX6QDL_PAD_DISP0_DAT7__IPU2_DISP0_DATA07 0x10 ++ MX6QDL_PAD_DISP0_DAT8__IPU2_DISP0_DATA08 0x10 ++ MX6QDL_PAD_DISP0_DAT9__IPU2_DISP0_DATA09 0x10 ++ MX6QDL_PAD_DISP0_DAT10__IPU2_DISP0_DATA10 0x10 ++ MX6QDL_PAD_DISP0_DAT11__IPU2_DISP0_DATA11 0x10 ++ MX6QDL_PAD_DISP0_DAT12__IPU2_DISP0_DATA12 0x10 ++ MX6QDL_PAD_DISP0_DAT13__IPU2_DISP0_DATA13 0x10 ++ MX6QDL_PAD_DISP0_DAT14__IPU2_DISP0_DATA14 0x10 ++ MX6QDL_PAD_DISP0_DAT15__IPU2_DISP0_DATA15 0x10 ++ MX6QDL_PAD_DISP0_DAT16__IPU2_DISP0_DATA16 0x10 ++ MX6QDL_PAD_DISP0_DAT17__IPU2_DISP0_DATA17 0x10 ++ MX6QDL_PAD_DISP0_DAT18__IPU2_DISP0_DATA18 0x10 ++ MX6QDL_PAD_DISP0_DAT19__IPU2_DISP0_DATA19 0x10 ++ MX6QDL_PAD_DISP0_DAT20__IPU2_DISP0_DATA20 0x10 ++ MX6QDL_PAD_DISP0_DAT21__IPU2_DISP0_DATA21 0x10 ++ MX6QDL_PAD_DISP0_DAT22__IPU2_DISP0_DATA22 0x10 ++ MX6QDL_PAD_DISP0_DAT23__IPU2_DISP0_DATA23 0x10 + >; + }; + }; + }; + }; + ++ sata: sata@02200000 { ++ compatible = "fsl,imx6q-ahci"; ++ reg = <0x02200000 0x4000>; ++ interrupts = <0 39 0x04>; ++ clocks = <&clks 154>, <&clks 187>, <&clks 105>; ++ clock-names = "sata", "sata_ref", "ahb"; ++ status = "disabled"; ++ }; ++ + ipu2: ipu@02800000 { + #crtc-cells = <1>; + compatible = "fsl,imx6q-ipu"; +diff --git a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi +index 4d237cf..1cbbc51 100644 +--- a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi +@@ -16,6 +16,22 @@ + }; + }; + ++&ecspi1 { ++ fsl,spi-num-chipselects = <1>; ++ cs-gpios = <&gpio3 19 0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_ecspi1_1 &pinctrl_ecspi1_sabreauto>; ++ status = "disabled"; /* pin conflict with WEIM NOR */ ++ ++ flash: m25p80@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "st,m25p32"; ++ spi-max-frequency = <20000000>; ++ reg = <0>; ++ }; ++}; ++ + &fec { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enet_2>; +@@ -23,6 +39,34 @@ + status = "okay"; + }; + ++&gpmi { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_gpmi_nand_1>; ++ status = "okay"; ++}; ++ ++&iomuxc { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_hog>; ++ ++ hog { ++ pinctrl_hog: hoggrp { ++ fsl,pins = < ++ MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000 ++ MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x80000000 ++ >; ++ }; ++ }; ++ ++ ecspi1 { ++ pinctrl_ecspi1_sabreauto: ecspi1-sabreauto { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x80000000 ++ >; ++ }; ++ }; ++}; ++ + &uart4 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart4_1>; +@@ -36,3 +80,22 @@ + wp-gpios = <&gpio1 13 0>; + status = "okay"; + }; ++ ++&weim { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_weim_nor_1 &pinctrl_weim_cs0_1>; ++ #address-cells = <2>; ++ #size-cells = <1>; ++ ranges = <0 0 0x08000000 0x08000000>; ++ status = "disabled"; /* pin conflict with SPI NOR */ ++ ++ nor@0,0 { ++ compatible = "cfi-flash"; ++ reg = <0 0 0x02000000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ bank-width = <2>; ++ fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000 ++ 0x0000c000 0x1404a38e 0x00000000>; ++ }; ++}; +diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi +index e21f6a8..39eafc2 100644 +--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi +@@ -26,6 +26,22 @@ + gpio = <&gpio3 22 0>; + enable-active-high; + }; ++ ++ reg_usb_h1_vbus: usb_h1_vbus { ++ compatible = "regulator-fixed"; ++ regulator-name = "usb_h1_vbus"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ gpio = <&gpio1 29 0>; ++ enable-active-high; ++ }; ++ ++ reg_audio: wm8962_supply { ++ compatible = "regulator-fixed"; ++ regulator-name = "wm8962-supply"; ++ gpio = <&gpio4 10 0>; ++ enable-active-high; ++ }; + }; + + gpio-keys { +@@ -34,15 +50,58 @@ + volume-up { + label = "Volume Up"; + gpios = <&gpio1 4 0>; ++ gpio-key,wakeup; + linux,code = <115>; /* KEY_VOLUMEUP */ + }; + + volume-down { + label = "Volume Down"; + gpios = <&gpio1 5 0>; ++ gpio-key,wakeup; + linux,code = <114>; /* KEY_VOLUMEDOWN */ + }; + }; ++ ++ sound { ++ compatible = "fsl,imx6q-sabresd-wm8962", ++ "fsl,imx-audio-wm8962"; ++ model = "wm8962-audio"; ++ ssi-controller = <&ssi2>; ++ audio-codec = <&codec>; ++ audio-routing = ++ "Headphone Jack", "HPOUTL", ++ "Headphone Jack", "HPOUTR", ++ "Ext Spk", "SPKOUTL", ++ "Ext Spk", "SPKOUTR", ++ "MICBIAS", "AMIC", ++ "IN3R", "MICBIAS", ++ "DMIC", "MICBIAS", ++ "DMICDAT", "DMIC"; ++ mux-int-port = <2>; ++ mux-ext-port = <3>; ++ }; ++}; ++ ++&audmux { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_audmux_2>; ++ status = "okay"; ++}; ++ ++&ecspi1 { ++ fsl,spi-num-chipselects = <1>; ++ cs-gpios = <&gpio4 9 0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_ecspi1_2>; ++ status = "okay"; ++ ++ flash: m25p80@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "st,m25p32"; ++ spi-max-frequency = <20000000>; ++ reg = <0>; ++ }; + }; + + &fec { +@@ -52,6 +111,102 @@ + status = "okay"; + }; + ++&i2c1 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c1_2>; ++ status = "okay"; ++ ++ codec: wm8962@1a { ++ compatible = "wlf,wm8962"; ++ reg = <0x1a>; ++ clocks = <&clks 201>; ++ DCVDD-supply = <®_audio>; ++ DBVDD-supply = <®_audio>; ++ AVDD-supply = <®_audio>; ++ CPVDD-supply = <®_audio>; ++ MICVDD-supply = <®_audio>; ++ PLLVDD-supply = <®_audio>; ++ SPKVDD1-supply = <®_audio>; ++ SPKVDD2-supply = <®_audio>; ++ gpio-cfg = < ++ 0x0000 /* 0:Default */ ++ 0x0000 /* 1:Default */ ++ 0x0013 /* 2:FN_DMICCLK */ ++ 0x0000 /* 3:Default */ ++ 0x8014 /* 4:FN_DMICCDAT */ ++ 0x0000 /* 5:Default */ ++ >; ++ }; ++}; ++ ++&i2c3 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c3_2>; ++ status = "okay"; ++ ++ egalax_ts@04 { ++ compatible = "eeti,egalax_ts"; ++ reg = <0x04>; ++ interrupt-parent = <&gpio6>; ++ interrupts = <7 2>; ++ wakeup-gpios = <&gpio6 7 0>; ++ }; ++}; ++ ++&iomuxc { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_hog>; ++ ++ hog { ++ pinctrl_hog: hoggrp { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x80000000 ++ MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x80000000 ++ MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x80000000 ++ MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x80000000 ++ MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x80000000 ++ MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x80000000 ++ MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 ++ MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x80000000 ++ MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000 ++ MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x80000000 ++ >; ++ }; ++ }; ++}; ++ ++&ldb { ++ status = "okay"; ++ ++ lvds-channel@1 { ++ fsl,data-mapping = "spwg"; ++ fsl,data-width = <18>; ++ status = "okay"; ++ ++ display-timings { ++ native-mode = <&timing0>; ++ timing0: hsd100pxn1 { ++ clock-frequency = <65000000>; ++ hactive = <1024>; ++ vactive = <768>; ++ hback-porch = <220>; ++ hfront-porch = <40>; ++ vback-porch = <21>; ++ vfront-porch = <7>; ++ hsync-len = <60>; ++ vsync-len = <10>; ++ }; ++ }; ++ }; ++}; ++ ++&ssi2 { ++ fsl,mode = "i2s-slave"; ++ status = "okay"; ++}; ++ + &uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1_1>; +@@ -59,6 +214,7 @@ + }; + + &usbh1 { ++ vbus-supply = <®_usb_h1_vbus>; + status = "okay"; + }; + +diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +new file mode 100644 +index 0000000..a55113e +--- /dev/null ++++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +@@ -0,0 +1,137 @@ ++/* ++ * Copyright 2013 Freescale Semiconductor, Inc. ++ * ++ * Author: Fabio Estevam fabio.estevam@freescale.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++/ { ++ regulators { ++ compatible = "simple-bus"; ++ ++ reg_2p5v: 2p5v { ++ compatible = "regulator-fixed"; ++ regulator-name = "2P5V"; ++ regulator-min-microvolt = <2500000>; ++ regulator-max-microvolt = <2500000>; ++ regulator-always-on; ++ }; ++ ++ reg_3p3v: 3p3v { ++ compatible = "regulator-fixed"; ++ regulator-name = "3P3V"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ }; ++ }; ++ ++ sound { ++ compatible = "fsl,imx6-wandboard-sgtl5000", ++ "fsl,imx-audio-sgtl5000"; ++ model = "imx6-wandboard-sgtl5000"; ++ ssi-controller = <&ssi1>; ++ audio-codec = <&codec>; ++ audio-routing = ++ "MIC_IN", "Mic Jack", ++ "Mic Jack", "Mic Bias", ++ "Headphone Jack", "HP_OUT"; ++ mux-int-port = <1>; ++ mux-ext-port = <3>; ++ }; ++}; ++ ++&audmux { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_audmux_2>; ++ status = "okay"; ++}; ++ ++&i2c2 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c2_2>; ++ status = "okay"; ++ ++ codec: sgtl5000@0a { ++ compatible = "fsl,sgtl5000"; ++ reg = <0x0a>; ++ clocks = <&clks 201>; ++ VDDA-supply = <®_2p5v>; ++ VDDIO-supply = <®_3p3v>; ++ }; ++}; ++ ++&iomuxc { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_hog>; ++ ++ hog { ++ pinctrl_hog: hoggrp { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 ++ MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x80000000 ++ MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000 ++ MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x80000000 /* WL_REF_ON */ ++ MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x80000000 /* WL_RST_N */ ++ MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x80000000 /* WL_REG_ON */ ++ MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000 /* WL_HOST_WAKE */ ++ MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x80000000 /* WL_WAKE */ ++ >; ++ }; ++ }; ++}; ++ ++&fec { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_enet_1>; ++ phy-mode = "rgmii"; ++ status = "okay"; ++}; ++ ++&ssi1 { ++ fsl,mode = "i2s-slave"; ++ status = "okay"; ++}; ++ ++&uart1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart1_1>; ++ status = "okay"; ++}; ++ ++&uart3 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart3_2>; ++ fsl,uart-has-rtscts; ++ status = "okay"; ++}; ++ ++&usbh1 { ++ status = "okay"; ++}; ++ ++&usdhc1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usdhc1_2>; ++ cd-gpios = <&gpio1 2 0>; ++ status = "okay"; ++}; ++ ++&usdhc2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usdhc2_2>; ++ non-removable; ++ status = "okay"; ++}; ++ ++&usdhc3 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usdhc3_2>; ++ cd-gpios = <&gpio3 9 0>; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi +index 9e8296e..ccd55c2 100644 +--- a/arch/arm/boot/dts/imx6qdl.dtsi ++++ b/arch/arm/boot/dts/imx6qdl.dtsi +@@ -14,11 +14,6 @@ + + / { + aliases { +- serial0 = &uart1; +- serial1 = &uart2; +- serial2 = &uart3; +- serial3 = &uart4; +- serial4 = &uart5; + gpio0 = &gpio1; + gpio1 = &gpio2; + gpio2 = &gpio3; +@@ -26,6 +21,18 @@ + gpio4 = &gpio5; + gpio5 = &gpio6; + gpio6 = &gpio7; ++ i2c0 = &i2c1; ++ i2c1 = &i2c2; ++ i2c2 = &i2c3; ++ serial0 = &uart1; ++ serial1 = &uart2; ++ serial2 = &uart3; ++ serial3 = &uart4; ++ serial4 = &uart5; ++ spi0 = &ecspi1; ++ spi1 = &ecspi2; ++ spi2 = &ecspi3; ++ spi3 = &ecspi4; + }; + + intc: interrupt-controller@00a01000 { +@@ -81,15 +88,14 @@ + #size-cells = <1>; + reg = <0x00112000 0x2000>, <0x00114000 0x2000>; + reg-names = "gpmi-nand", "bch"; +- interrupts = <0 13 0x04>, <0 15 0x04>; +- interrupt-names = "gpmi-dma", "bch"; ++ interrupts = <0 15 0x04>; ++ interrupt-names = "bch"; + clocks = <&clks 152>, <&clks 153>, <&clks 151>, + <&clks 150>, <&clks 149>; + clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch", + "gpmi_bch_apb", "per1_bch"; + dmas = <&dma_apbh 0>; + dma-names = "rx-tx"; +- fsl,gpmi-dma-channel = <0>; + status = "disabled"; + }; + +@@ -106,6 +112,8 @@ + interrupts = <0 92 0x04>; + cache-unified; + cache-level = <2>; ++ arm,tag-latency = <4 2 3>; ++ arm,data-latency = <4 2 3>; + }; + + pmu { +@@ -182,6 +190,8 @@ + interrupts = <0 26 0x04>; + clocks = <&clks 160>, <&clks 161>; + clock-names = "ipg", "per"; ++ dmas = <&sdma 25 4 0>, <&sdma 26 4 0>; ++ dma-names = "rx", "tx"; + status = "disabled"; + }; + +@@ -195,6 +205,9 @@ + reg = <0x02028000 0x4000>; + interrupts = <0 46 0x04>; + clocks = <&clks 178>; ++ dmas = <&sdma 37 1 0>, ++ <&sdma 38 1 0>; ++ dma-names = "rx", "tx"; + fsl,fifo-depth = <15>; + fsl,ssi-dma-events = <38 37>; + status = "disabled"; +@@ -205,6 +218,9 @@ + reg = <0x0202c000 0x4000>; + interrupts = <0 47 0x04>; + clocks = <&clks 179>; ++ dmas = <&sdma 41 1 0>, ++ <&sdma 42 1 0>; ++ dma-names = "rx", "tx"; + fsl,fifo-depth = <15>; + fsl,ssi-dma-events = <42 41>; + status = "disabled"; +@@ -215,6 +231,9 @@ + reg = <0x02030000 0x4000>; + interrupts = <0 48 0x04>; + clocks = <&clks 180>; ++ dmas = <&sdma 45 1 0>, ++ <&sdma 46 1 0>; ++ dma-names = "rx", "tx"; + fsl,fifo-depth = <15>; + fsl,ssi-dma-events = <46 45>; + status = "disabled"; +@@ -276,17 +295,23 @@ + }; + + can1: flexcan@02090000 { ++ compatible = "fsl,imx6q-flexcan"; + reg = <0x02090000 0x4000>; + interrupts = <0 110 0x04>; ++ clocks = <&clks 108>, <&clks 109>; ++ clock-names = "ipg", "per"; + }; + + can2: flexcan@02094000 { ++ compatible = "fsl,imx6q-flexcan"; + reg = <0x02094000 0x4000>; + interrupts = <0 111 0x04>; ++ clocks = <&clks 110>, <&clks 111>; ++ clock-names = "ipg", "per"; + }; + + gpt: gpt@02098000 { +- compatible = "fsl,imx6q-gpt"; ++ compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt"; + reg = <0x02098000 0x4000>; + interrupts = <0 55 0x04>; + clocks = <&clks 119>, <&clks 120>; +@@ -489,6 +514,13 @@ + }; + }; + ++ tempmon: tempmon { ++ compatible = "fsl,imx6q-tempmon"; ++ interrupts = <0 49 0x04>; ++ fsl,tempmon = <&anatop>; ++ fsl,tempmon-data = <&ocotp>; ++ }; ++ + usbphy1: usbphy@020c9000 { + compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; + reg = <0x020c9000 0x1000>; +@@ -544,6 +576,713 @@ + reg = <0x020e0000 0x38>; + }; + ++ iomuxc: iomuxc@020e0000 { ++ compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc"; ++ reg = <0x020e0000 0x4000>; ++ ++ audmux { ++ pinctrl_audmux_1: audmux-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x80000000 ++ MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x80000000 ++ MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x80000000 ++ MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x80000000 ++ >; ++ }; ++ ++ pinctrl_audmux_2: audmux-2 { ++ fsl,pins = < ++ MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x80000000 ++ MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x80000000 ++ MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x80000000 ++ MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x80000000 ++ >; ++ }; ++ ++ pinctrl_audmux_3: audmux-3 { ++ fsl,pins = < ++ MX6QDL_PAD_DISP0_DAT16__AUD5_TXC 0x80000000 ++ MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS 0x80000000 ++ MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x80000000 ++ >; ++ }; ++ }; ++ ++ ecspi1 { ++ pinctrl_ecspi1_1: ecspi1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1 ++ MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1 ++ MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1 ++ >; ++ }; ++ ++ pinctrl_ecspi1_2: ecspi1grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x100b1 ++ MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x100b1 ++ MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x100b1 ++ >; ++ }; ++ }; ++ ++ ecspi3 { ++ pinctrl_ecspi3_1: ecspi3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1 ++ MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1 ++ MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1 ++ >; ++ }; ++ }; ++ ++ enet { ++ pinctrl_enet_1: enetgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 ++ MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 ++ MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 ++ MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 ++ MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 ++ >; ++ }; ++ ++ pinctrl_enet_2: enetgrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL1__ENET_MDIO 0x1b0b0 ++ MX6QDL_PAD_KEY_COL2__ENET_MDC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 ++ MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 ++ MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 ++ >; ++ }; ++ ++ pinctrl_enet_3: enetgrp-3 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 ++ MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0 ++ MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 ++ MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 ++ MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 ++ MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 ++ MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0 ++ >; ++ }; ++ }; ++ ++ esai { ++ pinctrl_esai_1: esaigrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_RXD0__ESAI_TX_HF_CLK 0x1b030 ++ MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1b030 ++ MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS 0x1b030 ++ MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1b030 ++ MX6QDL_PAD_ENET_TXD1__ESAI_TX2_RX3 0x1b030 ++ MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1 0x1b030 ++ MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0 0x1b030 ++ MX6QDL_PAD_NANDF_CS2__ESAI_TX0 0x1b030 ++ MX6QDL_PAD_NANDF_CS3__ESAI_TX1 0x1b030 ++ >; ++ }; ++ ++ pinctrl_esai_2: esaigrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1b030 ++ MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS 0x1b030 ++ MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1b030 ++ MX6QDL_PAD_GPIO_5__ESAI_TX2_RX3 0x1b030 ++ MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1 0x1b030 ++ MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0 0x1b030 ++ MX6QDL_PAD_GPIO_17__ESAI_TX0 0x1b030 ++ MX6QDL_PAD_NANDF_CS3__ESAI_TX1 0x1b030 ++ MX6QDL_PAD_ENET_MDIO__ESAI_RX_CLK 0x1b030 ++ MX6QDL_PAD_GPIO_9__ESAI_RX_FS 0x1b030 ++ >; ++ }; ++ }; ++ ++ flexcan1 { ++ pinctrl_flexcan1_1: flexcan1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x80000000 ++ MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x80000000 ++ >; ++ }; ++ ++ pinctrl_flexcan1_2: flexcan1grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x80000000 ++ MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x80000000 ++ >; ++ }; ++ }; ++ ++ flexcan2 { ++ pinctrl_flexcan2_1: flexcan2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x80000000 ++ MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x80000000 ++ >; ++ }; ++ }; ++ ++ gpmi-nand { ++ pinctrl_gpmi_nand_1: gpmi-nand-1 { ++ fsl,pins = < ++ MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1 ++ MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1 ++ MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 ++ MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 ++ MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 ++ MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1 ++ MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 ++ MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 ++ MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 ++ MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1 ++ MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1 ++ MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1 ++ MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1 ++ MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1 ++ MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1 ++ MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1 ++ MX6QDL_PAD_SD4_DAT0__NAND_DQS 0x00b1 ++ >; ++ }; ++ }; ++ ++ hdmi_hdcp { ++ pinctrl_hdmi_hdcp_1: hdmihdcpgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x4001b8b1 ++ MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_hdmi_hdcp_2: hdmihdcpgrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x4001b8b1 ++ MX6QDL_PAD_EIM_D16__HDMI_TX_DDC_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_hdmi_hdcp_3: hdmihdcpgrp-3 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x4001b8b1 ++ MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x4001b8b1 ++ >; ++ }; ++ }; ++ ++ hdmi_cec { ++ pinctrl_hdmi_cec_1: hdmicecgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x1f8b0 ++ >; ++ }; ++ ++ pinctrl_hdmi_cec_2: hdmicecgrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0 ++ >; ++ }; ++ }; ++ ++ i2c1 { ++ pinctrl_i2c1_1: i2c1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 ++ MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c1_2: i2c1grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1 ++ MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1 ++ >; ++ }; ++ }; ++ ++ i2c2 { ++ pinctrl_i2c2_1: i2c2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1 ++ MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c2_2: i2c2grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 ++ MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c2_3: i2c2grp-3 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1 ++ MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 ++ >; ++ }; ++ }; ++ ++ i2c3 { ++ pinctrl_i2c3_1: i2c3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1 ++ MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c3_2: i2c3grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 ++ MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c3_3: i2c3grp-3 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 ++ MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c3_4: i2c3grp-4 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 ++ MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1 ++ >; ++ }; ++ }; ++ ++ ipu1 { ++ pinctrl_ipu1_1: ipu1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10 ++ MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x10 ++ MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x10 ++ MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x10 ++ MX6QDL_PAD_DI0_PIN4__IPU1_DI0_PIN04 0x80000000 ++ MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x10 ++ MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x10 ++ MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x10 ++ MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x10 ++ MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x10 ++ MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x10 ++ MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x10 ++ MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x10 ++ MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x10 ++ MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10 ++ MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x10 ++ MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x10 ++ MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x10 ++ MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x10 ++ MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x10 ++ MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x10 ++ MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x10 ++ MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x10 ++ MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x10 ++ MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x10 ++ MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x10 ++ MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x10 ++ MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x10 ++ MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10 ++ >; ++ }; ++ ++ pinctrl_ipu1_2: ipu1grp-2 { /* parallel camera */ ++ fsl,pins = < ++ MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x80000000 ++ MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x80000000 ++ MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x80000000 ++ MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x80000000 ++ MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x80000000 ++ MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x80000000 ++ MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x80000000 ++ MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x80000000 ++ MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x80000000 ++ MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x80000000 ++ MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x80000000 ++ MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x80000000 ++ >; ++ }; ++ ++ pinctrl_ipu1_3: ipu1grp-3 { /* parallel port 16-bit */ ++ fsl,pins = < ++ MX6QDL_PAD_CSI0_DAT4__IPU1_CSI0_DATA04 0x80000000 ++ MX6QDL_PAD_CSI0_DAT5__IPU1_CSI0_DATA05 0x80000000 ++ MX6QDL_PAD_CSI0_DAT6__IPU1_CSI0_DATA06 0x80000000 ++ MX6QDL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x80000000 ++ MX6QDL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x80000000 ++ MX6QDL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x80000000 ++ MX6QDL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x80000000 ++ MX6QDL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x80000000 ++ MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x80000000 ++ MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x80000000 ++ MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x80000000 ++ MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x80000000 ++ MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x80000000 ++ MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x80000000 ++ MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x80000000 ++ MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x80000000 ++ MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x80000000 ++ MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x80000000 ++ MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x80000000 ++ >; ++ }; ++ }; ++ ++ mlb { ++ pinctrl_mlb_1: mlbgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_3__MLB_CLK 0x71 ++ MX6QDL_PAD_GPIO_6__MLB_SIG 0x71 ++ MX6QDL_PAD_GPIO_2__MLB_DATA 0x71 ++ >; ++ }; ++ ++ pinctrl_mlb_2: mlbgrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_TXD1__MLB_CLK 0x71 ++ MX6QDL_PAD_GPIO_6__MLB_SIG 0x71 ++ MX6QDL_PAD_GPIO_2__MLB_DATA 0x71 ++ >; ++ }; ++ }; ++ ++ pwm0 { ++ pinctrl_pwm0_1: pwm0grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ pwm3 { ++ pinctrl_pwm3_1: pwm3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ spdif { ++ pinctrl_spdif_1: spdifgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL3__SPDIF_IN 0x1b0b0 ++ >; ++ }; ++ ++ pinctrl_spdif_2: spdifgrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_16__SPDIF_IN 0x1b0b0 ++ MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0 ++ >; ++ }; ++ }; ++ ++ uart1 { ++ pinctrl_uart1_1: uart1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ uart2 { ++ pinctrl_uart2_1: uart2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1 ++ >; ++ }; ++ ++ pinctrl_uart2_2: uart2grp-2 { /* DTE mode */ ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D26__UART2_RX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D27__UART2_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D28__UART2_DTE_CTS_B 0x1b0b1 ++ MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ uart3 { ++ pinctrl_uart3_1: uart3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD4_CLK__UART3_RX_DATA 0x1b0b1 ++ MX6QDL_PAD_SD4_CMD__UART3_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D30__UART3_CTS_B 0x1b0b1 ++ MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x1b0b1 ++ >; ++ }; ++ ++ pinctrl_uart3_2: uart3grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1 ++ MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x1b0b1 ++ MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ uart4 { ++ pinctrl_uart4_1: uart4grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 ++ >; ++ }; ++ }; ++ ++ usbotg { ++ pinctrl_usbotg_1: usbotggrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 ++ >; ++ }; ++ ++ pinctrl_usbotg_2: usbotggrp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059 ++ >; ++ }; ++ }; ++ ++ usbh2 { ++ pinctrl_usbh2_1: usbh2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x40013030 ++ MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x40013030 ++ >; ++ }; ++ ++ pinctrl_usbh2_2: usbh2grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x40017030 ++ >; ++ }; ++ }; ++ ++ usbh3 { ++ pinctrl_usbh3_1: usbh3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_RGMII_RX_CTL__USB_H3_DATA 0x40013030 ++ MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE 0x40013030 ++ >; ++ }; ++ ++ pinctrl_usbh3_2: usbh3grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE 0x40017030 ++ >; ++ }; ++ }; ++ ++ usdhc1 { ++ pinctrl_usdhc1_1: usdhc1grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059 ++ MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059 ++ MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059 ++ MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059 ++ MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059 ++ MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059 ++ MX6QDL_PAD_NANDF_D0__SD1_DATA4 0x17059 ++ MX6QDL_PAD_NANDF_D1__SD1_DATA5 0x17059 ++ MX6QDL_PAD_NANDF_D2__SD1_DATA6 0x17059 ++ MX6QDL_PAD_NANDF_D3__SD1_DATA7 0x17059 ++ >; ++ }; ++ ++ pinctrl_usdhc1_2: usdhc1grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059 ++ MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059 ++ MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059 ++ MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059 ++ MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059 ++ MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059 ++ >; ++ }; ++ }; ++ ++ usdhc2 { ++ pinctrl_usdhc2_1: usdhc2grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059 ++ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059 ++ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059 ++ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059 ++ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059 ++ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059 ++ MX6QDL_PAD_NANDF_D4__SD2_DATA4 0x17059 ++ MX6QDL_PAD_NANDF_D5__SD2_DATA5 0x17059 ++ MX6QDL_PAD_NANDF_D6__SD2_DATA6 0x17059 ++ MX6QDL_PAD_NANDF_D7__SD2_DATA7 0x17059 ++ >; ++ }; ++ ++ pinctrl_usdhc2_2: usdhc2grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059 ++ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059 ++ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059 ++ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059 ++ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059 ++ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059 ++ >; ++ }; ++ }; ++ ++ usdhc3 { ++ pinctrl_usdhc3_1: usdhc3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 ++ MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 ++ MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 ++ MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 ++ MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 ++ MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 ++ MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059 ++ MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059 ++ MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059 ++ MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059 ++ >; ++ }; ++ ++ pinctrl_usdhc3_2: usdhc3grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 ++ MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 ++ MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 ++ MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 ++ MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 ++ MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 ++ >; ++ }; ++ }; ++ ++ usdhc4 { ++ pinctrl_usdhc4_1: usdhc4grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059 ++ MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059 ++ MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059 ++ MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059 ++ MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059 ++ MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059 ++ MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x17059 ++ MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x17059 ++ MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x17059 ++ MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059 ++ >; ++ }; ++ ++ pinctrl_usdhc4_2: usdhc4grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059 ++ MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059 ++ MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059 ++ MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059 ++ MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059 ++ MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059 ++ >; ++ }; ++ }; ++ ++ weim { ++ pinctrl_weim_cs0_1: weim_cs0grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0b1 ++ >; ++ }; ++ ++ pinctrl_weim_nor_1: weim_norgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_OE__EIM_OE_B 0xb0b1 ++ MX6QDL_PAD_EIM_RW__EIM_RW 0xb0b1 ++ MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0xb060 ++ /* data */ ++ MX6QDL_PAD_EIM_D16__EIM_DATA16 0x1b0b0 ++ MX6QDL_PAD_EIM_D17__EIM_DATA17 0x1b0b0 ++ MX6QDL_PAD_EIM_D18__EIM_DATA18 0x1b0b0 ++ MX6QDL_PAD_EIM_D19__EIM_DATA19 0x1b0b0 ++ MX6QDL_PAD_EIM_D20__EIM_DATA20 0x1b0b0 ++ MX6QDL_PAD_EIM_D21__EIM_DATA21 0x1b0b0 ++ MX6QDL_PAD_EIM_D22__EIM_DATA22 0x1b0b0 ++ MX6QDL_PAD_EIM_D23__EIM_DATA23 0x1b0b0 ++ MX6QDL_PAD_EIM_D24__EIM_DATA24 0x1b0b0 ++ MX6QDL_PAD_EIM_D25__EIM_DATA25 0x1b0b0 ++ MX6QDL_PAD_EIM_D26__EIM_DATA26 0x1b0b0 ++ MX6QDL_PAD_EIM_D27__EIM_DATA27 0x1b0b0 ++ MX6QDL_PAD_EIM_D28__EIM_DATA28 0x1b0b0 ++ MX6QDL_PAD_EIM_D29__EIM_DATA29 0x1b0b0 ++ MX6QDL_PAD_EIM_D30__EIM_DATA30 0x1b0b0 ++ MX6QDL_PAD_EIM_D31__EIM_DATA31 0x1b0b0 ++ /* address */ ++ MX6QDL_PAD_EIM_A23__EIM_ADDR23 0xb0b1 ++ MX6QDL_PAD_EIM_A22__EIM_ADDR22 0xb0b1 ++ MX6QDL_PAD_EIM_A21__EIM_ADDR21 0xb0b1 ++ MX6QDL_PAD_EIM_A20__EIM_ADDR20 0xb0b1 ++ MX6QDL_PAD_EIM_A19__EIM_ADDR19 0xb0b1 ++ MX6QDL_PAD_EIM_A18__EIM_ADDR18 0xb0b1 ++ MX6QDL_PAD_EIM_A17__EIM_ADDR17 0xb0b1 ++ MX6QDL_PAD_EIM_A16__EIM_ADDR16 0xb0b1 ++ MX6QDL_PAD_EIM_DA15__EIM_AD15 0xb0b1 ++ MX6QDL_PAD_EIM_DA14__EIM_AD14 0xb0b1 ++ MX6QDL_PAD_EIM_DA13__EIM_AD13 0xb0b1 ++ MX6QDL_PAD_EIM_DA12__EIM_AD12 0xb0b1 ++ MX6QDL_PAD_EIM_DA11__EIM_AD11 0xb0b1 ++ MX6QDL_PAD_EIM_DA10__EIM_AD10 0xb0b1 ++ MX6QDL_PAD_EIM_DA9__EIM_AD09 0xb0b1 ++ MX6QDL_PAD_EIM_DA8__EIM_AD08 0xb0b1 ++ MX6QDL_PAD_EIM_DA7__EIM_AD07 0xb0b1 ++ MX6QDL_PAD_EIM_DA6__EIM_AD06 0xb0b1 ++ MX6QDL_PAD_EIM_DA5__EIM_AD05 0xb0b1 ++ MX6QDL_PAD_EIM_DA4__EIM_AD04 0xb0b1 ++ MX6QDL_PAD_EIM_DA3__EIM_AD03 0xb0b1 ++ MX6QDL_PAD_EIM_DA2__EIM_AD02 0xb0b1 ++ MX6QDL_PAD_EIM_DA1__EIM_AD01 0xb0b1 ++ MX6QDL_PAD_EIM_DA0__EIM_AD00 0xb0b1 ++ >; ++ }; ++ }; ++ }; ++ + ldb: ldb@020e0008 { + #address-cells = <1>; + #size-cells = <0>; +@@ -553,13 +1292,11 @@ + + lvds-channel@0 { + reg = <0>; +- crtcs = <&ipu1 0>; + status = "disabled"; + }; + + lvds-channel@1 { + reg = <1>; +- crtcs = <&ipu1 1>; + status = "disabled"; + }; + }; +@@ -580,6 +1317,7 @@ + interrupts = <0 2 0x04>; + clocks = <&clks 155>, <&clks 155>; + clock-names = "ipg", "ahb"; ++ #dma-cells = <3>; + fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin"; + }; + }; +@@ -638,7 +1376,7 @@ + status = "disabled"; + }; + +- usbmisc: usbmisc: usbmisc@02184800 { ++ usbmisc: usbmisc@02184800 { + #index-cells = <1>; + compatible = "fsl,imx6q-usbmisc"; + reg = <0x02184800 0x200>; +@@ -742,21 +1480,18 @@ + reg = <0x021b4000 0x4000>; + }; + +- weim@021b8000 { ++ weim: weim@021b8000 { ++ compatible = "fsl,imx6q-weim"; + reg = <0x021b8000 0x4000>; + interrupts = <0 14 0x04>; ++ clocks = <&clks 196>; + }; + +- ocotp@021bc000 { +- compatible = "fsl,imx6q-ocotp"; ++ ocotp: ocotp@021bc000 { ++ compatible = "fsl,imx6q-ocotp", "syscon"; + reg = <0x021bc000 0x4000>; + }; + +- ocotp@021c0000 { +- reg = <0x021c0000 0x4000>; +- interrupts = <0 21 0x04>; +- }; +- + tzasc@021d0000 { /* TZASC1 */ + reg = <0x021d0000 0x4000>; + interrupts = <0 108 0x04>; +@@ -792,6 +1527,8 @@ + interrupts = <0 27 0x04>; + clocks = <&clks 160>, <&clks 161>; + clock-names = "ipg", "per"; ++ dmas = <&sdma 27 4 0>, <&sdma 28 4 0>; ++ dma-names = "rx", "tx"; + status = "disabled"; + }; + +@@ -801,6 +1538,8 @@ + interrupts = <0 28 0x04>; + clocks = <&clks 160>, <&clks 161>; + clock-names = "ipg", "per"; ++ dmas = <&sdma 29 4 0>, <&sdma 30 4 0>; ++ dma-names = "rx", "tx"; + status = "disabled"; + }; + +@@ -810,6 +1549,8 @@ + interrupts = <0 29 0x04>; + clocks = <&clks 160>, <&clks 161>; + clock-names = "ipg", "per"; ++ dmas = <&sdma 31 4 0>, <&sdma 32 4 0>; ++ dma-names = "rx", "tx"; + status = "disabled"; + }; + +@@ -819,6 +1560,8 @@ + interrupts = <0 30 0x04>; + clocks = <&clks 160>, <&clks 161>; + clock-names = "ipg", "per"; ++ dmas = <&sdma 33 4 0>, <&sdma 34 4 0>; ++ dma-names = "rx", "tx"; + status = "disabled"; + }; + }; diff --git a/src/patches/kernel/wandboard/dts/0002-ARM-dts-imx6qdl-wandboard-add-gpio-lines-to-wandboar.patch b/src/patches/kernel/wandboard/dts/0002-ARM-dts-imx6qdl-wandboard-add-gpio-lines-to-wandboar.patch new file mode 100644 index 0000000..009db26 --- /dev/null +++ b/src/patches/kernel/wandboard/dts/0002-ARM-dts-imx6qdl-wandboard-add-gpio-lines-to-wandboar.patch @@ -0,0 +1,41 @@ +From df41a18b5ac1401c96dcbce99baa50e339494eba Mon Sep 17 00:00:00 2001 +From: Mike Panetta panetta.mike@gmail.com +Date: Tue, 30 Jul 2013 20:33:26 -0400 +Subject: [PATCH 2/5] ARM: dts: imx6qdl-wandboard: add gpio lines to wandboard + +Signed-off-by: Mike Panetta panetta.mike@gmail.com +--- + arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +index 35f5479..a302e95 100644 +--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +@@ -92,6 +92,23 @@ + >; + }; + }; ++ ++ gpio { ++ pinctrl_gpio: gpiogrp { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x80000000 /* GPIO3_12 EDM pin 255 */ ++ MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x80000000 /* GPIO3_11 EDM pin 256 */ ++ MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x80000000 /* GPIO3_10 EDM pin 257 */ ++ MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x80000000 /* GPIO3_27 EDM pin 258 */ ++ MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x80000000 /* GPIO3_26 EDM pin 259 */ ++ MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x80000000 /* GPIO6_31 EDM pin 260 */ ++ MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x80000000 /* GPIO3_8 EDM pin 261 */ ++ MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24 0x80000000 /* GPIO1_24 EDM pin 262 */ ++ MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x80000000 /* GPIO4_5 EDM pin 263 */ ++ MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x80000000 /* GPIO7_8 EDM pin 264 */ ++ >; ++ }; ++ }; + }; + + &fec { +-- +1.8.4.rc3 + diff --git a/src/patches/kernel/wandboard/dts/0003-ARM-dts-imx6qdl-wandboard-Add-support-for-i2c1.patch b/src/patches/kernel/wandboard/dts/0003-ARM-dts-imx6qdl-wandboard-Add-support-for-i2c1.patch new file mode 100644 index 0000000..7c4e5dd --- /dev/null +++ b/src/patches/kernel/wandboard/dts/0003-ARM-dts-imx6qdl-wandboard-Add-support-for-i2c1.patch @@ -0,0 +1,33 @@ +From aefbac1e9377311240656ae5061346acb8612e1b Mon Sep 17 00:00:00 2001 +From: Michael Panetta panetta.mike@gmail.com +Date: Tue, 6 Aug 2013 21:32:50 -0400 +Subject: [PATCH 3/5] ARM: dts: imx6qdl-wandboard: Add support for i2c1. + +This patch adds support for i2c1 to the wandboard common dtsi file. + +Signed-off-by: Michael Panetta panetta.mike@gmail.com +--- + arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +index a302e95..d429c0b 100644 +--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +@@ -58,6 +58,13 @@ + status = "okay"; + }; + ++&i2c1 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c1_1>; ++ status = "okay"; ++}; ++ + &i2c2 { + clock-frequency = <100000>; + pinctrl-names = "default"; +-- +1.8.4.rc3 + diff --git a/src/patches/kernel/wandboard/dts/0004-ARM-dts-wandboard-add-binding-for-wand-rfkill-driver.patch b/src/patches/kernel/wandboard/dts/0004-ARM-dts-wandboard-add-binding-for-wand-rfkill-driver.patch new file mode 100644 index 0000000..54bb388 --- /dev/null +++ b/src/patches/kernel/wandboard/dts/0004-ARM-dts-wandboard-add-binding-for-wand-rfkill-driver.patch @@ -0,0 +1,52 @@ +From 1305ac7e9308dcd59c3acc205bc95097cad87ed5 Mon Sep 17 00:00:00 2001 +From: Vladimir Ermakov vooon341@gmail.com +Date: Fri, 16 Aug 2013 06:52:26 +0400 +Subject: [PATCH 5/5] ARM: dts: wandboard: add binding for wand-rfkill driver + +Required gpios pincontrol selected in hog. Add binding only. +Disabled non-removable, because after unblocking need to redetect SDIO device. + +Signed-off-by: Vladimir Ermakov vooon341@gmail.com +--- + arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +index 737805b..c1ef3bd 100644 +--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +@@ -50,6 +50,22 @@ + spdif-controller = <&spdif>; + spdif-out; + }; ++ ++ rfkill { ++ compatible = "wand,imx6qdl-wandboard-rfkill"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <>; ++ ++ bluetooth-on = <&gpio3 13 0>; ++ bluetooth-wake = <&gpio3 14 0>; ++ bluetooth-host-wake = <&gpio3 15 0>; ++ ++ wifi-ref-on = <&gpio2 29 0>; ++ wifi-rst-n = <&gpio5 2 0>; ++ wifi-reg-on = <&gpio1 26 0>; ++ wifi-host-wake = <&gpio1 29 0>; ++ wifi-wake = <&gpio1 30 0>; ++ }; + }; + + &audmux { +@@ -175,7 +191,7 @@ + &usdhc2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc2_2>; +- non-removable; ++ //non-removable; + status = "okay"; + }; + +-- +1.8.4.rc3 + diff --git a/src/patches/kernel/wandboard/dts/0005-ARM-dts-imx6qdl-add-pcie-device-node.patch b/src/patches/kernel/wandboard/dts/0005-ARM-dts-imx6qdl-add-pcie-device-node.patch new file mode 100644 index 0000000..e78d9ba --- /dev/null +++ b/src/patches/kernel/wandboard/dts/0005-ARM-dts-imx6qdl-add-pcie-device-node.patch @@ -0,0 +1,38 @@ +From 3a57291fa4ca7f7647d826f5b47082ef306d839f Mon Sep 17 00:00:00 2001 +From: Sean Cross xobs@kosagi.com +Date: Thu, 26 Sep 2013 10:51:09 +0800 +Subject: [PATCH] ARM: dts: imx6qdl: add pcie device node + +Add pcie device node for imx6qdl. + +Signed-off-by: Sean Cross xobs@kosagi.com +Signed-off-by: Shawn Guo shawn.guo@linaro.org +--- + arch/arm/boot/dts/imx6qdl.dtsi | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +--- a/arch/arm/boot/dts/imx6qdl.dtsi ++++ b/arch/arm/boot/dts/imx6qdl.dtsi +@@ -108,6 +108,22 @@ + cache-level = <2>; + }; + ++ pcie: pcie@0x01000000 { ++ compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; ++ reg = <0x01ffc000 0x4000>; /* DBI */ ++ #address-cells = <3>; ++ #size-cells = <2>; ++ device_type = "pci"; ++ ranges = <0x00000800 0 0x01f00000 0x01f00000 0 0x00080000 /* configuration space */ ++ 0x81000000 0 0 0x01f80000 0 0x00010000 /* downstream I/O */ ++ 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */ ++ num-lanes = <1>; ++ interrupts = <0 123 0x04>; ++ clocks = <&clks 189>, <&clks 187>, <&clks 206>, <&clks 144>; ++ clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi"; ++ status = "disabled"; ++ }; ++ + pmu { + compatible = "arm,cortex-a9-pmu"; + interrupts = <0 94 0x04>; diff --git a/src/patches/kernel/wandboard/imx/0001-i2c-imx-retry-on-NAK.patch b/src/patches/kernel/wandboard/imx/0001-i2c-imx-retry-on-NAK.patch new file mode 100644 index 0000000..e876c6e --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0001-i2c-imx-retry-on-NAK.patch @@ -0,0 +1,38 @@ +From: Tim Harvey tharvey@gateworks.com +Subject: [PATCH] i2c: imx: retry on NAK + +In case of busy i2c try again to get ACK. + +Signed-off-by: Tim Harvey tharvey@gateworks.com +Tested-by: Luka Perkov luka@openwrt.org +--- + drivers/i2c/busses/i2c-imx.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/i2c/busses/i2c-imx.c ++++ b/drivers/i2c/busses/i2c-imx.c +@@ -62,6 +62,7 @@ + + /* Default value */ + #define IMX_I2C_BIT_RATE 100000 /* 100kHz */ ++#define IMX_I2C_MAX_RETRIES 3 /* number of retries to attempt */ + + /* IMX I2C registers */ + #define IMX_I2C_IADR 0x00 /* i2c slave address */ +@@ -198,7 +199,7 @@ static int i2c_imx_acked(struct imx_i2c_ + { + if (readb(i2c_imx->base + IMX_I2C_I2SR) & I2SR_RXAK) { + dev_dbg(&i2c_imx->adapter.dev, "<%s> No ACK\n", __func__); +- return -EIO; /* No ACK */ ++ return -EAGAIN; /* try again */ + } + + dev_dbg(&i2c_imx->adapter.dev, "<%s> ACK received\n", __func__); +@@ -533,6 +534,7 @@ static int __init i2c_imx_probe(struct p + i2c_imx->adapter.dev.parent = &pdev->dev; + i2c_imx->adapter.nr = pdev->id; + i2c_imx->adapter.dev.of_node = pdev->dev.of_node; ++ i2c_imx->adapter.retries = IMX_I2C_MAX_RETRIES; + i2c_imx->base = base; + + pinctrl = devm_pinctrl_get_select_default(&pdev->dev); diff --git a/src/patches/kernel/wandboard/imx/0002-i.MX6-Wandboard-add-CKO1-clock-output.patch b/src/patches/kernel/wandboard/imx/0002-i.MX6-Wandboard-add-CKO1-clock-output.patch new file mode 100644 index 0000000..b24c7ad --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0002-i.MX6-Wandboard-add-CKO1-clock-output.patch @@ -0,0 +1,29 @@ +From fc69065e84165aef5ba7a837d9d2e668bd03b146 Mon Sep 17 00:00:00 2001 +From: Vladimir Ermakov vooon341@gmail.com +Date: Wed, 10 Jul 2013 03:03:51 +0400 +Subject: [PATCH 7/8] i.MX6 Wandboard add CKO1 clock output + +stgl5000 uses clock from imx CKO1 pad. + +Signed-off-by: Vladimir Ermakov vooon341@gmail.com +--- + arch/arm/mach-imx/mach-imx6q.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c +index 5536fd8..bf9a30b 100644 +--- a/arch/arm/mach-imx/mach-imx6q.c ++++ b/arch/arm/mach-imx/mach-imx6q.c +@@ -166,6 +166,9 @@ static void __init imx6q_init_machine(void) + if (of_machine_is_compatible("fsl,imx6q-sabrelite")) + imx6q_sabrelite_init(); + ++ if (of_machine_is_compatible("wand,imx6q-wandboard")) ++ imx6q_sabrelite_cko1_setup(); ++ + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); + + imx_anatop_init(); +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0003-thermal-add-imx-thermal-driver-support.patch b/src/patches/kernel/wandboard/imx/0003-thermal-add-imx-thermal-driver-support.patch new file mode 100644 index 0000000..a0a7cec --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0003-thermal-add-imx-thermal-driver-support.patch @@ -0,0 +1,489 @@ +From 744af645bfdb0bfe73fa28df06da48783f85e6a9 Mon Sep 17 00:00:00 2001 +From: Shawn Guo shawn.guo@linaro.org +Date: Mon, 24 Jun 2013 14:30:44 +0800 +Subject: [PATCH 5/5] thermal: add imx thermal driver support + +This is based on the initial imx thermal work done by +Rob Lee rob.lee@linaro.org (Not sure if the email address is still +valid). Since he is no longer interested in the work and I have +rewritten a significant amount of the code, I just took the authorship +over from him. + +It adds the imx thermal support using Temperature Monitor (TEMPMON) +block found on some Freescale i.MX SoCs. The driver uses syscon regmap +interface to access TEMPMON control registers and calibration data, and +supports cpufreq as the cooling device. + +Signed-off-by: Shawn Guo shawn.guo@linaro.org +--- + .../devicetree/bindings/thermal/imx-thermal.txt | 17 + + drivers/thermal/Kconfig | 11 + + drivers/thermal/Makefile | 1 + + drivers/thermal/imx_thermal.c | 397 ++++++++++++++++++++ + 4 files changed, 426 insertions(+) + create mode 100644 Documentation/devicetree/bindings/thermal/imx-thermal.txt + create mode 100644 drivers/thermal/imx_thermal.c + +diff --git a/Documentation/devicetree/bindings/thermal/imx-thermal.txt b/Documentation/devicetree/bindings/thermal/imx-thermal.txt +new file mode 100644 +index 0000000..541c25e +--- /dev/null ++++ b/Documentation/devicetree/bindings/thermal/imx-thermal.txt +@@ -0,0 +1,17 @@ ++* Temperature Monitor (TEMPMON) on Freescale i.MX SoCs ++ ++Required properties: ++- compatible : "fsl,imx6q-thermal" ++- fsl,tempmon : phandle pointer to system controller that contains TEMPMON ++ control registers, e.g. ANATOP on imx6q. ++- fsl,tempmon-data : phandle pointer to fuse controller that contains TEMPMON ++ calibration data, e.g. OCOTP on imx6q. The details about calibration data ++ can be found in SoC Reference Manual. ++ ++Example: ++ ++tempmon { ++ compatible = "fsl,imx6q-tempmon"; ++ fsl,tempmon = <&anatop>; ++ fsl,tempmon-data = <&ocotp>; ++}; +diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig +index 5e3c025..e91d78f 100644 +--- a/drivers/thermal/Kconfig ++++ b/drivers/thermal/Kconfig +@@ -91,6 +91,17 @@ config THERMAL_EMULATION + because userland can easily disable the thermal policy by simply + flooding this sysfs node with low temperature values. + ++config IMX_THERMAL ++ tristate "Temperature sensor driver for Freescale i.MX SoCs" ++ depends on CPU_THERMAL ++ depends on MFD_SYSCON ++ depends on OF ++ help ++ Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs. ++ It supports one critical trip point and one passive trip point. The ++ cpufreq is used as the cooling device to throttle CPUs when the ++ passive trip is crossed. ++ + config SPEAR_THERMAL + bool "SPEAr thermal sensor driver" + depends on PLAT_SPEAR +diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile +index c054d41..6910b2d 100644 +--- a/drivers/thermal/Makefile ++++ b/drivers/thermal/Makefile +@@ -21,6 +21,7 @@ obj-$(CONFIG_EXYNOS_THERMAL) += exynos_thermal.o + obj-$(CONFIG_DOVE_THERMAL) += dove_thermal.o + obj-$(CONFIG_DB8500_THERMAL) += db8500_thermal.o + obj-$(CONFIG_ARMADA_THERMAL) += armada_thermal.o ++obj-$(CONFIG_IMX_THERMAL) += imx_thermal.o + obj-$(CONFIG_DB8500_CPUFREQ_COOLING) += db8500_cpufreq_cooling.o + obj-$(CONFIG_INTEL_POWERCLAMP) += intel_powerclamp.o + +diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c +new file mode 100644 +index 0000000..d16c33c +--- /dev/null ++++ b/drivers/thermal/imx_thermal.c +@@ -0,0 +1,397 @@ ++/* ++ * Copyright 2013 Freescale Semiconductor, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/cpu_cooling.h> ++#include <linux/cpufreq.h> ++#include <linux/delay.h> ++#include <linux/device.h> ++#include <linux/init.h> ++#include <linux/io.h> ++#include <linux/kernel.h> ++#include <linux/mfd/syscon.h> ++#include <linux/module.h> ++#include <linux/of.h> ++#include <linux/platform_device.h> ++#include <linux/regmap.h> ++#include <linux/slab.h> ++#include <linux/thermal.h> ++#include <linux/types.h> ++ ++#define REG_SET 0x4 ++#define REG_CLR 0x8 ++#define REG_TOG 0xc ++ ++#define MISC0 0x0150 ++#define MISC0_REFTOP_SELBIASOFF (1 << 3) ++ ++#define TEMPSENSE0 0x0180 ++#define TEMPSENSE0_TEMP_CNT_SHIFT 8 ++#define TEMPSENSE0_TEMP_CNT_MASK (0xfff << TEMPSENSE0_TEMP_CNT_SHIFT) ++#define TEMPSENSE0_FINISHED (1 << 2) ++#define TEMPSENSE0_MEASURE_TEMP (1 << 1) ++#define TEMPSENSE0_POWER_DOWN (1 << 0) ++ ++#define TEMPSENSE1 0x0190 ++#define TEMPSENSE1_MEASURE_FREQ 0xffff ++ ++#define OCOTP_ANA1 0x04e0 ++ ++/* The driver supports 1 passive trip point and 1 critical trip point */ ++enum imx_thermal_trip { ++ IMX_TRIP_PASSIVE, ++ IMX_TRIP_CRITICAL, ++ IMX_TRIP_NUM, ++}; ++ ++/* ++ * It defines the temperature in millicelsius for passive trip point ++ * that will trigger cooling action when crossed. ++ */ ++#define IMX_TEMP_PASSIVE 85000 ++ ++/* ++ * The maximum die temperature on imx parts is 105C, let's give some cushion ++ * for noise and possible temperature rise between measurements. ++ */ ++#define IMX_TEMP_CRITICAL 100000 ++ ++#define IMX_POLLING_DELAY 2000 /* millisecond */ ++#define IMX_PASSIVE_DELAY 1000 ++ ++struct imx_thermal_data { ++ struct thermal_zone_device *tz; ++ struct thermal_cooling_device *cdev; ++ enum thermal_device_mode mode; ++ struct regmap *tempmon; ++ int c1, c2; /* See formula in imx_get_sensor_data() */ ++}; ++ ++static int imx_get_temp(struct thermal_zone_device *tz, unsigned long *temp) ++{ ++ struct imx_thermal_data *data = tz->devdata; ++ struct regmap *map = data->tempmon; ++ static unsigned long last_temp; ++ unsigned int n_meas; ++ u32 val; ++ ++ /* ++ * Every time we measure the temperature, we will power on the ++ * temperature sensor, enable measurements, take a reading, ++ * disable measurements, power off the temperature sensor. ++ */ ++ regmap_write(map, TEMPSENSE0 + REG_CLR, TEMPSENSE0_POWER_DOWN); ++ regmap_write(map, TEMPSENSE0 + REG_SET, TEMPSENSE0_MEASURE_TEMP); ++ ++ /* ++ * According to the temp sensor designers, it may require up to ~17us ++ * to complete a measurement. ++ */ ++ usleep_range(20, 50); ++ ++ regmap_read(map, TEMPSENSE0, &val); ++ regmap_write(map, TEMPSENSE0 + REG_CLR, TEMPSENSE0_MEASURE_TEMP); ++ regmap_write(map, TEMPSENSE0 + REG_SET, TEMPSENSE0_POWER_DOWN); ++ ++ if ((val & TEMPSENSE0_FINISHED) == 0) { ++ dev_dbg(&tz->device, "temp measurement never finished\n"); ++ return -EAGAIN; ++ } ++ ++ n_meas = (val & TEMPSENSE0_TEMP_CNT_MASK) >> TEMPSENSE0_TEMP_CNT_SHIFT; ++ ++ /* See imx_get_sensor_data() for formula derivation */ ++ *temp = data->c2 + data->c1 * n_meas; ++ ++ if (*temp != last_temp) { ++ dev_dbg(&tz->device, "millicelsius: %ld\n", *temp); ++ last_temp = *temp; ++ } ++ ++ return 0; ++} ++ ++static int imx_get_mode(struct thermal_zone_device *tz, ++ enum thermal_device_mode *mode) ++{ ++ struct imx_thermal_data *data = tz->devdata; ++ ++ *mode = data->mode; ++ ++ return 0; ++} ++ ++static int imx_set_mode(struct thermal_zone_device *tz, ++ enum thermal_device_mode mode) ++{ ++ struct imx_thermal_data *data = tz->devdata; ++ ++ if (mode == THERMAL_DEVICE_ENABLED) { ++ tz->polling_delay = IMX_POLLING_DELAY; ++ tz->passive_delay = IMX_PASSIVE_DELAY; ++ } else { ++ tz->polling_delay = 0; ++ tz->passive_delay = 0; ++ } ++ ++ data->mode = mode; ++ thermal_zone_device_update(tz); ++ ++ return 0; ++} ++ ++static int imx_get_trip_type(struct thermal_zone_device *tz, int trip, ++ enum thermal_trip_type *type) ++{ ++ *type = (trip == IMX_TRIP_PASSIVE) ? THERMAL_TRIP_PASSIVE : ++ THERMAL_TRIP_CRITICAL; ++ return 0; ++} ++ ++static int imx_get_crit_temp(struct thermal_zone_device *tz, ++ unsigned long *temp) ++{ ++ *temp = IMX_TEMP_CRITICAL; ++ return 0; ++} ++ ++static int imx_get_trip_temp(struct thermal_zone_device *tz, int trip, ++ unsigned long *temp) ++{ ++ *temp = (trip == IMX_TRIP_PASSIVE) ? IMX_TEMP_PASSIVE : ++ IMX_TEMP_CRITICAL; ++ return 0; ++} ++ ++static int imx_bind(struct thermal_zone_device *tz, ++ struct thermal_cooling_device *cdev) ++{ ++ int ret; ++ ++ ret = thermal_zone_bind_cooling_device(tz, IMX_TRIP_PASSIVE, cdev, ++ THERMAL_NO_LIMIT, ++ THERMAL_NO_LIMIT); ++ if (ret) { ++ dev_err(&tz->device, ++ "binding zone %s with cdev %s failed:%d\n", ++ tz->type, cdev->type, ret); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int imx_unbind(struct thermal_zone_device *tz, ++ struct thermal_cooling_device *cdev) ++{ ++ int ret; ++ ++ ret = thermal_zone_unbind_cooling_device(tz, IMX_TRIP_PASSIVE, cdev); ++ if (ret) { ++ dev_err(&tz->device, ++ "unbinding zone %s with cdev %s failed:%d\n", ++ tz->type, cdev->type, ret); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static const struct thermal_zone_device_ops imx_tz_ops = { ++ .bind = imx_bind, ++ .unbind = imx_unbind, ++ .get_temp = imx_get_temp, ++ .get_mode = imx_get_mode, ++ .set_mode = imx_set_mode, ++ .get_trip_type = imx_get_trip_type, ++ .get_trip_temp = imx_get_trip_temp, ++ .get_crit_temp = imx_get_crit_temp, ++}; ++ ++static int imx_get_sensor_data(struct platform_device *pdev) ++{ ++ struct imx_thermal_data *data = platform_get_drvdata(pdev); ++ struct regmap *map; ++ int t1, t2, n1, n2; ++ int ret; ++ u32 val; ++ ++ map = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, ++ "fsl,tempmon-data"); ++ if (IS_ERR(map)) { ++ ret = PTR_ERR(map); ++ dev_err(&pdev->dev, "failed to get sensor regmap: %d\n", ret); ++ return ret; ++ } ++ ++ ret = regmap_read(map, OCOTP_ANA1, &val); ++ if (ret) { ++ dev_err(&pdev->dev, "failed to read sensor data: %d\n", ret); ++ return ret; ++ } ++ ++ if (val == 0 || val == ~0) { ++ dev_err(&pdev->dev, "invalid sensor calibration data\n"); ++ return -EINVAL; ++ } ++ ++ /* ++ * Sensor data layout: ++ * [31:20] - sensor value @ 25C ++ * [19:8] - sensor value of hot ++ * [7:0] - hot temperature value ++ */ ++ n1 = val >> 20; ++ n2 = (val & 0xfff00) >> 8; ++ t2 = val & 0xff; ++ t1 = 25; /* t1 always 25C */ ++ ++ /* ++ * Derived from linear interpolation, ++ * Tmeas = T2 + (Nmeas - N2) * (T1 - T2) / (N1 - N2) ++ * We want to reduce this down to the minimum computation necessary ++ * for each temperature read. Also, we want Tmeas in millicelsius ++ * and we don't want to lose precision from integer division. So... ++ * milli_Tmeas = 1000 * T2 + 1000 * (Nmeas - N2) * (T1 - T2) / (N1 - N2) ++ * Let constant c1 = 1000 * (T1 - T2) / (N1 - N2) ++ * milli_Tmeas = (1000 * T2) + c1 * (Nmeas - N2) ++ * milli_Tmeas = (1000 * T2) + (c1 * Nmeas) - (c1 * N2) ++ * Let constant c2 = (1000 * T2) - (c1 * N2) ++ * milli_Tmeas = c2 + (c1 * Nmeas) ++ */ ++ data->c1 = 1000 * (t1 - t2) / (n1 - n2); ++ data->c2 = 1000 * t2 - data->c1 * n2; ++ ++ return 0; ++} ++ ++static int imx_thermal_probe(struct platform_device *pdev) ++{ ++ struct imx_thermal_data *data; ++ struct cpumask clip_cpus; ++ struct regmap *map; ++ int ret; ++ ++ data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); ++ if (!data) ++ return -ENOMEM; ++ ++ map = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "fsl,tempmon"); ++ if (IS_ERR(map)) { ++ ret = PTR_ERR(map); ++ dev_err(&pdev->dev, "failed to get tempmon regmap: %d\n", ret); ++ return ret; ++ } ++ data->tempmon = map; ++ ++ platform_set_drvdata(pdev, data); ++ ++ ret = imx_get_sensor_data(pdev); ++ if (ret) { ++ dev_err(&pdev->dev, "failed to get sensor data\n"); ++ return ret; ++ } ++ ++ /* Make sure sensor is in known good state for measurements */ ++ regmap_write(map, TEMPSENSE0 + REG_CLR, TEMPSENSE0_POWER_DOWN); ++ regmap_write(map, TEMPSENSE0 + REG_CLR, TEMPSENSE0_MEASURE_TEMP); ++ regmap_write(map, TEMPSENSE1 + REG_CLR, TEMPSENSE1_MEASURE_FREQ); ++ regmap_write(map, MISC0 + REG_SET, MISC0_REFTOP_SELBIASOFF); ++ regmap_write(map, TEMPSENSE0 + REG_SET, TEMPSENSE0_POWER_DOWN); ++ ++ cpumask_set_cpu(0, &clip_cpus); ++ data->cdev = cpufreq_cooling_register(&clip_cpus); ++ if (IS_ERR(data->cdev)) { ++ ret = PTR_ERR(data->cdev); ++ dev_err(&pdev->dev, ++ "failed to register cpufreq cooling device: %d\n", ret); ++ return ret; ++ } ++ ++ data->tz = thermal_zone_device_register("imx_thermal_zone", ++ IMX_TRIP_NUM, 0, data, ++ &imx_tz_ops, NULL, ++ IMX_PASSIVE_DELAY, ++ IMX_POLLING_DELAY); ++ if (IS_ERR(data->tz)) { ++ ret = PTR_ERR(data->tz); ++ dev_err(&pdev->dev, ++ "failed to register thermal zone device %d\n", ret); ++ cpufreq_cooling_unregister(data->cdev); ++ return ret; ++ } ++ ++ data->mode = THERMAL_DEVICE_ENABLED; ++ ++ return 0; ++} ++ ++static int imx_thermal_remove(struct platform_device *pdev) ++{ ++ struct imx_thermal_data *data = platform_get_drvdata(pdev); ++ ++ thermal_zone_device_unregister(data->tz); ++ cpufreq_cooling_unregister(data->cdev); ++ ++ return 0; ++} ++ ++#ifdef CONFIG_PM_SLEEP ++static int imx_thermal_suspend(struct device *dev) ++{ ++ struct imx_thermal_data *data = dev_get_drvdata(dev); ++ struct regmap *map = data->tempmon; ++ u32 val; ++ ++ regmap_read(map, TEMPSENSE0, &val); ++ if ((val & TEMPSENSE0_POWER_DOWN) == 0) { ++ /* ++ * If a measurement is taking place, wait for a long enough ++ * time for it to finish, and then check again. If it still ++ * does not finish, something must go wrong. ++ */ ++ udelay(50); ++ regmap_read(map, TEMPSENSE0, &val); ++ if ((val & TEMPSENSE0_POWER_DOWN) == 0) ++ return -ETIMEDOUT; ++ } ++ ++ return 0; ++} ++ ++static int imx_thermal_resume(struct device *dev) ++{ ++ /* Nothing to do for now */ ++ return 0; ++} ++#endif ++ ++static SIMPLE_DEV_PM_OPS(imx_thermal_pm_ops, ++ imx_thermal_suspend, imx_thermal_resume); ++ ++static const struct of_device_id of_imx_thermal_match[] = { ++ { .compatible = "fsl,imx6q-tempmon", }, ++ { /* end */ } ++}; ++ ++static struct platform_driver imx_thermal = { ++ .driver = { ++ .name = "imx_thermal", ++ .owner = THIS_MODULE, ++ .pm = &imx_thermal_pm_ops, ++ .of_match_table = of_imx_thermal_match, ++ }, ++ .probe = imx_thermal_probe, ++ .remove = imx_thermal_remove, ++}; ++module_platform_driver(imx_thermal); ++ ++MODULE_AUTHOR("Freescale Semiconductor, Inc."); ++MODULE_DESCRIPTION("Thermal driver for Freescale i.MX SoCs"); ++MODULE_LICENSE("GPL v2"); ++MODULE_ALIAS("platform:imx-thermal"); +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0004-ARM-i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch b/src/patches/kernel/wandboard/imx/0004-ARM-i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch new file mode 100644 index 0000000..993b1d7 --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0004-ARM-i.MX6-Wandboard-add-wifi-bt-rfkill-driver.patch @@ -0,0 +1,341 @@ +From adf0f7b7d7c0083dd936fe46423b89e974f8df12 Mon Sep 17 00:00:00 2001 +From: Vladimir Ermakov vooon341@gmail.com +Date: Wed, 10 Jul 2013 03:06:54 +0400 +Subject: [PATCH] ARM i.MX6 Wandboard add wifi+bt rfkill driver + +BRCM WiFi module requires initialization for control gpio; +Additional provides rfkill funcs. + +v2: fix wrong probe func in driver struct +v3: add imx6qdl compatible + +Signed-off-by: Vladimir Ermakov vooon341@gmail.com +--- + arch/arm/mach-imx/devices/Kconfig | 6 + + arch/arm/mach-imx/devices/Makefile | 1 + + arch/arm/mach-imx/devices/wand-rfkill.c | 290 ++++++++++++++++++++++++++++++++ + 3 files changed, 297 insertions(+) + create mode 100644 arch/arm/mach-imx/devices/wand-rfkill.c + +diff --git a/arch/arm/mach-imx/devices/Kconfig b/arch/arm/mach-imx/devices/Kconfig +index 68c74fb..a0adf75 100644 +--- a/arch/arm/mach-imx/devices/Kconfig ++++ b/arch/arm/mach-imx/devices/Kconfig +@@ -85,3 +85,9 @@ config IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX + + config IMX_HAVE_PLATFORM_SPI_IMX + bool ++ ++config WAND_RFKILL ++ tristate "Wandboard RF Kill support" ++ depends on SOC_IMX6Q ++ default m ++ select RFKILL +diff --git a/arch/arm/mach-imx/devices/Makefile b/arch/arm/mach-imx/devices/Makefile +index 67416fb..b2aded5 100644 +--- a/arch/arm/mach-imx/devices/Makefile ++++ b/arch/arm/mach-imx/devices/Makefile +@@ -30,3 +30,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o + obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o + obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o + obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_EMMA) += platform-mx2-emma.o ++obj-$(CONFIG_WAND_RFKILL) += wand-rfkill.o +diff --git a/arch/arm/mach-imx/devices/wand-rfkill.c b/arch/arm/mach-imx/devices/wand-rfkill.c +new file mode 100644 +index 0000000..da7ef9f +--- /dev/null ++++ b/arch/arm/mach-imx/devices/wand-rfkill.c +@@ -0,0 +1,290 @@ ++/* ++ * arch/arm/mach-imx/devices/wand-rfkill.c ++ * ++ * Copyright (C) 2013 Vladimir Ermakov vooon341@gmail.com ++ * ++ * based on net/rfkill/rfkill-gpio.c ++ * ++ * This software is licensed under the terms of the GNU General Public ++ * License version 2, as published by the Free Software Foundation, and ++ * may be copied, distributed, and modified under those terms. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ */ ++ ++#include <linux/of.h> ++#include <linux/of_gpio.h> ++#include <linux/of_device.h> ++#include <linux/pinctrl/consumer.h> ++#include <linux/platform_device.h> ++#include <linux/rfkill.h> ++#include <linux/delay.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/slab.h> ++ ++ ++struct wand_rfkill_data { ++ struct rfkill *rfkill_dev; ++ int shutdown_gpio; ++ const char *shutdown_name; ++}; ++ ++static int wand_rfkill_set_block(void *data, bool blocked) ++{ ++ struct wand_rfkill_data *rfkill = data; ++ ++ pr_debug("wandboard-rfkill: set block %d\n", blocked); ++ ++ if (blocked) { ++ if (gpio_is_valid(rfkill->shutdown_gpio)) ++ gpio_direction_output(rfkill->shutdown_gpio, 0); ++ } else { ++ if (gpio_is_valid(rfkill->shutdown_gpio)) ++ gpio_direction_output(rfkill->shutdown_gpio, 1); ++ } ++ ++ return 0; ++} ++ ++static const struct rfkill_ops wand_rfkill_ops = { ++ .set_block = wand_rfkill_set_block, ++}; ++ ++static int wand_rfkill_wifi_probe(struct device *dev, ++ struct device_node *np, ++ struct wand_rfkill_data *rfkill) ++{ ++ int ret; ++ int wl_ref_on, wl_rst_n, wl_reg_on, wl_wake, wl_host_wake; ++ ++ wl_ref_on = of_get_named_gpio(np, "wifi-ref-on", 0); ++ wl_rst_n = of_get_named_gpio(np, "wifi-rst-n", 0); ++ wl_reg_on = of_get_named_gpio(np, "wifi-reg-on", 0); ++ wl_wake = of_get_named_gpio(np, "wifi-wake", 0); ++ wl_host_wake = of_get_named_gpio(np, "wifi-host-wake", 0); ++ ++ if (!gpio_is_valid(wl_rst_n) || !gpio_is_valid(wl_ref_on) || ++ !gpio_is_valid(wl_reg_on) || !gpio_is_valid(wl_wake) || ++ !gpio_is_valid(wl_host_wake)) { ++ ++ dev_err(dev, "incorrect wifi gpios (%d %d %d %d %d)\n", ++ wl_rst_n, wl_ref_on, wl_reg_on, wl_wake, wl_host_wake); ++ return -EINVAL; ++ } ++ ++ dev_info(dev, "initialize wifi chip\n"); ++ ++ gpio_request(wl_rst_n, "wl_rst_n"); ++ gpio_direction_output(wl_rst_n, 0); ++ msleep(11); ++ gpio_set_value(wl_rst_n, 1); ++ ++ gpio_request(wl_ref_on, "wl_ref_on"); ++ gpio_direction_output(wl_ref_on, 1); ++ ++ gpio_request(wl_reg_on, "wl_reg_on"); ++ gpio_direction_output(wl_reg_on, 1); ++ ++ gpio_request(wl_wake, "wl_wake"); ++ gpio_direction_output(wl_wake, 1); ++ ++ gpio_request(wl_host_wake, "wl_host_wake"); ++ gpio_direction_input(wl_host_wake); ++ ++ rfkill->shutdown_name = "wifi_shutdown"; ++ rfkill->shutdown_gpio = wl_wake; ++ ++ rfkill->rfkill_dev = rfkill_alloc("wifi-rfkill", dev, RFKILL_TYPE_WLAN, ++ &wand_rfkill_ops, rfkill); ++ if (!rfkill->rfkill_dev) { ++ ret = -ENOMEM; ++ goto wifi_fail_free_gpio; ++ } ++ ++ ret = rfkill_register(rfkill->rfkill_dev); ++ if (ret < 0) ++ goto wifi_fail_unregister; ++ ++ dev_info(dev, "wifi-rfkill registered.\n"); ++ ++ return 0; ++ ++wifi_fail_unregister: ++ rfkill_destroy(rfkill->rfkill_dev); ++wifi_fail_free_gpio: ++ if (gpio_is_valid(wl_rst_n)) gpio_free(wl_rst_n); ++ if (gpio_is_valid(wl_ref_on)) gpio_free(wl_ref_on); ++ if (gpio_is_valid(wl_reg_on)) gpio_free(wl_reg_on); ++ if (gpio_is_valid(wl_wake)) gpio_free(wl_wake); ++ if (gpio_is_valid(wl_host_wake)) gpio_free(wl_host_wake); ++ ++ return ret; ++} ++ ++static int wand_rfkill_bt_probe(struct device *dev, ++ struct device_node *np, ++ struct wand_rfkill_data *rfkill) ++{ ++ int ret; ++ int bt_on, bt_wake, bt_host_wake; ++ ++ bt_on = of_get_named_gpio(np, "bluetooth-on", 0); ++ bt_wake = of_get_named_gpio(np, "bluetooth-wake", 0); ++ bt_host_wake = of_get_named_gpio(np, "bluetooth-host-wake", 0); ++ ++ if (!gpio_is_valid(bt_on) || !gpio_is_valid(bt_wake) || ++ !gpio_is_valid(bt_host_wake)) { ++ ++ dev_err(dev, "incorrect bt gpios (%d %d %d)\n", ++ bt_on, bt_wake, bt_host_wake); ++ return -EINVAL; ++ } ++ ++ dev_info(dev, "initialize bluetooth chip\n"); ++ ++ gpio_request(bt_on, "bt_on"); ++ gpio_direction_output(bt_on, 0); ++ msleep(11); ++ gpio_set_value(bt_on, 1); ++ ++ gpio_request(bt_wake, "bt_wake"); ++ gpio_direction_output(bt_wake, 1); ++ ++ gpio_request(bt_host_wake, "bt_host_wake"); ++ gpio_direction_input(bt_host_wake); ++ ++ rfkill->shutdown_name = "bluetooth_shutdown"; ++ rfkill->shutdown_gpio = bt_wake; ++ ++ rfkill->rfkill_dev = rfkill_alloc("bluetooth-rfkill", dev, RFKILL_TYPE_BLUETOOTH, ++ &wand_rfkill_ops, rfkill); ++ if (!rfkill->rfkill_dev) { ++ ret = -ENOMEM; ++ goto bt_fail_free_gpio; ++ } ++ ++ ret = rfkill_register(rfkill->rfkill_dev); ++ if (ret < 0) ++ goto bt_fail_unregister; ++ ++ dev_info(dev, "bluetooth-rfkill registered.\n"); ++ ++ return 0; ++ ++bt_fail_unregister: ++ rfkill_destroy(rfkill->rfkill_dev); ++bt_fail_free_gpio: ++ if (gpio_is_valid(bt_on)) gpio_free(bt_on); ++ if (gpio_is_valid(bt_wake)) gpio_free(bt_wake); ++ if (gpio_is_valid(bt_host_wake)) gpio_free(bt_host_wake); ++ ++ return ret; ++} ++ ++static int wand_rfkill_probe(struct platform_device *pdev) ++{ ++ struct wand_rfkill_data *rfkill; ++ struct pinctrl *pinctrl; ++ int ret; ++ ++ dev_info(&pdev->dev, "Wandboard rfkill initialization\n"); ++ ++ if (!pdev->dev.of_node) { ++ dev_err(&pdev->dev, "no device tree node\n"); ++ return -ENODEV; ++ } ++ ++ rfkill = kzalloc(sizeof(*rfkill) * 2, GFP_KERNEL); ++ if (!rfkill) ++ return -ENOMEM; ++ ++ pinctrl = devm_pinctrl_get_select_default(&pdev->dev); ++ if (IS_ERR(pinctrl)) { ++ int ret = PTR_ERR(pinctrl); ++ dev_err(&pdev->dev, "failed to get default pinctrl: %d\n", ret); ++ return ret; ++ } ++ ++ /* setup WiFi */ ++ ret = wand_rfkill_wifi_probe(&pdev->dev, pdev->dev.of_node, &rfkill[0]); ++ if (ret < 0) ++ goto fail_free_rfkill; ++ ++ /* setup bluetooth */ ++ ret = wand_rfkill_bt_probe(&pdev->dev, pdev->dev.of_node, &rfkill[1]); ++ if (ret < 0) ++ goto fail_unregister_wifi; ++ ++ platform_set_drvdata(pdev, rfkill); ++ ++ return 0; ++ ++fail_unregister_wifi: ++ if (rfkill[1].rfkill_dev) { ++ rfkill_unregister(rfkill[1].rfkill_dev); ++ rfkill_destroy(rfkill[1].rfkill_dev); ++ } ++ ++ /* TODO free gpio */ ++ ++fail_free_rfkill: ++ kfree(rfkill); ++ ++ return ret; ++} ++ ++static int wand_rfkill_remove(struct platform_device *pdev) ++{ ++ struct wand_rfkill_data *rfkill = platform_get_drvdata(pdev); ++ ++ dev_info(&pdev->dev, "Module unloading\n"); ++ ++ if (!rfkill) ++ return 0; ++ ++ /* WiFi */ ++ if (gpio_is_valid(rfkill[0].shutdown_gpio)) ++ gpio_free(rfkill[0].shutdown_gpio); ++ ++ rfkill_unregister(rfkill[0].rfkill_dev); ++ rfkill_destroy(rfkill[0].rfkill_dev); ++ ++ /* Bt */ ++ if (gpio_is_valid(rfkill[1].shutdown_gpio)) ++ gpio_free(rfkill[1].shutdown_gpio); ++ ++ rfkill_unregister(rfkill[1].rfkill_dev); ++ rfkill_destroy(rfkill[1].rfkill_dev); ++ ++ kfree(rfkill); ++ ++ return 0; ++} ++ ++static struct of_device_id wand_rfkill_match[] = { ++ { .compatible = "wand,imx6q-wandboard-rfkill", }, ++ { .compatible = "wand,imx6dl-wandboard-rfkill", }, ++ { .compatible = "wand,imx6qdl-wandboard-rfkill", }, ++ {} ++}; ++ ++static struct platform_driver wand_rfkill_driver = { ++ .driver = { ++ .name = "wandboard-rfkill", ++ .owner = THIS_MODULE, ++ .of_match_table = of_match_ptr(wand_rfkill_match), ++ }, ++ .probe = wand_rfkill_probe, ++ .remove = wand_rfkill_remove ++}; ++ ++module_platform_driver(wand_rfkill_driver); ++ ++MODULE_AUTHOR("Vladimir Ermakov vooon341@gmail.com"); ++MODULE_DESCRIPTION("Wandboard rfkill driver"); ++MODULE_LICENSE("GPL v2"); +-- +1.8.4.rc3 + diff --git a/src/patches/kernel/wandboard/imx/0005-Add-IMX6Q-AHCI-support.patch b/src/patches/kernel/wandboard/imx/0005-Add-IMX6Q-AHCI-support.patch new file mode 100644 index 0000000..912b3be --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0005-Add-IMX6Q-AHCI-support.patch @@ -0,0 +1,85 @@ +From 8e890a259208dbe3aba6f46f7c3a213269d8f123 Mon Sep 17 00:00:00 2001 +From: Allen Ibara allen@zee.aero +Date: Tue, 4 Dec 2012 20:44:26 -0800 +Subject: [PATCH 2/5] Add IMX6Q AHCI support + +Adds ahci_platform bits to make AHCI work on sabrelite IMX6Q board. + +Signed-off-by: Allen Ibara allen@zee.aero +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + +diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c +index 7a8a284..d324cdf 100644 +--- a/drivers/ata/ahci_platform.c ++++ b/drivers/ata/ahci_platform.c +@@ -23,6 +23,9 @@ + #include <linux/platform_device.h> + #include <linux/libata.h> + #include <linux/ahci_platform.h> ++#include <linux/of.h> ++#include <linux/of_device.h> ++#include <linux/of_gpio.h> + #include "ahci.h" + + static void ahci_host_stop(struct ata_host *host); +@@ -30,6 +33,7 @@ static void ahci_host_stop(struct ata_host *host); + enum ahci_type { + AHCI, /* standard platform ahci */ + IMX53_AHCI, /* ahci on i.mx53 */ ++ IMX6Q_AHCI, /* ahci on i.mx6q */ + STRICT_AHCI, /* delayed DMA engine start */ + }; + +@@ -41,6 +45,9 @@ static struct platform_device_id ahci_devtype[] = { + .name = "imx53-ahci", + .driver_data = IMX53_AHCI, + }, { ++ .name = "imx6q-ahci", ++ .driver_data = IMX53_AHCI, ++ }, { + .name = "strict-ahci", + .driver_data = STRICT_AHCI, + }, { +@@ -86,12 +93,24 @@ static struct scsi_host_template ahci_platform_sht = { + AHCI_SHT("ahci_platform"), + }; + ++static const struct of_device_id ahci_of_match[] = { ++ { .compatible = "calxeda,hb-ahci", .data = &ahci_devtype[AHCI],}, ++ { .compatible = "fsl,imx6q-ahci", .data = &ahci_devtype[IMX6Q_AHCI],}, ++ { .compatible = "snps,spear-ahci", }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, ahci_of_match); ++ + static int ahci_probe(struct platform_device *pdev) + { + struct device *dev = &pdev->dev; + struct ahci_platform_data *pdata = dev_get_platdata(dev); ++ const struct of_device_id *of_id = ++ of_match_device(ahci_of_match, &pdev->dev); ++ const struct platform_device_id *id_entry = of_id->data; + const struct platform_device_id *id = platform_get_device_id(pdev); +- struct ata_port_info pi = ahci_port_info[id ? id->driver_data : 0]; ++ struct ata_port_info pi = ahci_port_info[id ? id->driver_data : \ ++ id_entry->driver_data]; + const struct ata_port_info *ppi[] = { &pi, NULL }; + struct ahci_host_priv *hpriv; + struct ata_host *host; +@@ -325,12 +344,6 @@ disable_unprepare_clk: + + static SIMPLE_DEV_PM_OPS(ahci_pm_ops, ahci_suspend, ahci_resume); + +-static const struct of_device_id ahci_of_match[] = { +- { .compatible = "snps,spear-ahci", }, +- {}, +-}; +-MODULE_DEVICE_TABLE(of, ahci_of_match); +- + static struct platform_driver ahci_driver = { + .probe = ahci_probe, + .remove = ata_platform_remove_one, +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0006-imx-Add-IMX53-AHCI-support.patch b/src/patches/kernel/wandboard/imx/0006-imx-Add-IMX53-AHCI-support.patch new file mode 100644 index 0000000..1b96d8c --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0006-imx-Add-IMX53-AHCI-support.patch @@ -0,0 +1,25 @@ +From 41cc1967181a833c3c5af30682ea85dd01c28ff4 Mon Sep 17 00:00:00 2001 +From: Robert Nelson robertcnelson@gmail.com +Date: Tue, 22 Jan 2013 22:21:03 -0600 +Subject: [PATCH 3/5] imx: Add IMX53 AHCI support + +Adds ahci_platform bits to make AHCI work on mx53 qsb board. + +Signed-off-by: Robert Nelson robertcnelson@gmail.com +--- + +diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c +index d324cdf..b01eeca 100644 +--- a/drivers/ata/ahci_platform.c ++++ b/drivers/ata/ahci_platform.c +@@ -95,6 +95,7 @@ static struct scsi_host_template ahci_platform_sht = { + + static const struct of_device_id ahci_of_match[] = { + { .compatible = "calxeda,hb-ahci", .data = &ahci_devtype[AHCI],}, ++ { .compatible = "fsl,imx53-ahci", .data = &ahci_devtype[IMX53_AHCI],}, + { .compatible = "fsl,imx6q-ahci", .data = &ahci_devtype[IMX6Q_AHCI],}, + { .compatible = "snps,spear-ahci", }, + {}, +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0007-imx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch b/src/patches/kernel/wandboard/imx/0007-imx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch new file mode 100644 index 0000000..d85e3ff --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0007-imx6-enable-sata-clk-if-SATA_AHCI_PLATFORM.patch @@ -0,0 +1,33 @@ +From 765561c8c72a46c2177b20d730e061ab2ff8f970 Mon Sep 17 00:00:00 2001 +From: Paolo Pisati paolo.pisati@canonical.com +Date: Thu, 31 Jan 2013 18:33:46 +0100 +Subject: [PATCH 4/5] SAUCE: imx6: enable sata clk if SATA_AHCI_PLATFORM + +Clock modifications in 24d340ac "ARM i.MX6: Fix ethernet PLL clocks" broke the +SATA clk, fix it. + +More info: http://www.spinics.net/lists/arm-kernel/msg221503.html + +Original-code-from: Shawn Guo shawn.guo@linaro.org +Signed-off-by: Paolo Pisati paolo.pisati@canonical.com +--- + arch/arm/mach-imx/clk-imx6q.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c +index 4e3148c..38d707a 100644 +--- a/arch/arm/mach-imx/clk-imx6q.c ++++ b/arch/arm/mach-imx/clk-imx6q.c +@@ -568,6 +568,9 @@ int __init mx6q_clocks_init(void) + clk_prepare_enable(clk[usbphy2_gate]); + } + ++ if (IS_ENABLED(CONFIG_SATA_AHCI_PLATFORM)) ++ clk_prepare_enable(clk[sata_ref_100m]); ++ + /* Set initial power mode */ + imx6q_set_lpm(WAIT_CLOCKED); + +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0008-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch b/src/patches/kernel/wandboard/imx/0008-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch new file mode 100644 index 0000000..6f6ea69 --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0008-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch @@ -0,0 +1,150 @@ +From 371863a788db77e6092d69df17d8884cb0d94270 Mon Sep 17 00:00:00 2001 +From: Richard Zhu r65037@freescale.com +Date: Wed, 24 Jul 2013 06:15:28 +0000 +Subject: [PATCH 1/2] ARM: imx6q: update the sata bits definitions of gpr13 + +Replace the SATA_PHY_# by the more readable definitons. + +tj: Being routed through libata branch to enable implementation of + ahci_imx. + +Signed-off-by: Richard Zhu r65037@freescale.com +Acked-by: Shawn Guo shawn.guo@linaro.org +Signed-off-by: Tejun Heo tj@kernel.org +--- + include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 121 +++++++++++++++++++-------- + 1 file changed, 84 insertions(+), 37 deletions(-) + +diff --git a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h +index b1521e8..b6bdcd6 100644 +--- a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h ++++ b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h +@@ -279,41 +279,88 @@ + #define IMX6Q_GPR13_CAN2_STOP_REQ BIT(29) + #define IMX6Q_GPR13_CAN1_STOP_REQ BIT(28) + #define IMX6Q_GPR13_ENET_STOP_REQ BIT(27) +-#define IMX6Q_GPR13_SATA_PHY_8_MASK (0x7 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_0_5_DB (0x0 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_1_0_DB (0x1 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_1_5_DB (0x2 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_2_0_DB (0x3 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_2_5_DB (0x4 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_3_0_DB (0x5 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_3_5_DB (0x6 << 24) +-#define IMX6Q_GPR13_SATA_PHY_8_4_0_DB (0x7 << 24) +-#define IMX6Q_GPR13_SATA_PHY_7_MASK (0x1f << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA1I (0x10 << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA1M (0x10 << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA1X (0x1a << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA2I (0x12 << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA2M (0x12 << 19) +-#define IMX6Q_GPR13_SATA_PHY_7_SATA2X (0x1a << 19) +-#define IMX6Q_GPR13_SATA_PHY_6_MASK (0x7 << 16) +-#define IMX6Q_GPR13_SATA_SPEED_MASK BIT(15) +-#define IMX6Q_GPR13_SATA_SPEED_1P5G 0x0 +-#define IMX6Q_GPR13_SATA_SPEED_3P0G BIT(15) +-#define IMX6Q_GPR13_SATA_PHY_5 BIT(14) +-#define IMX6Q_GPR13_SATA_PHY_4_MASK (0x7 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_16_16 (0x0 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_14_16 (0x1 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_12_16 (0x2 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_10_16 (0x3 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_9_16 (0x4 << 11) +-#define IMX6Q_GPR13_SATA_PHY_4_8_16 (0x5 << 11) +-#define IMX6Q_GPR13_SATA_PHY_3_MASK (0xf << 7) +-#define IMX6Q_GPR13_SATA_PHY_3_OFF 0x7 +-#define IMX6Q_GPR13_SATA_PHY_2_MASK (0x1f << 2) +-#define IMX6Q_GPR13_SATA_PHY_2_OFF 0x2 +-#define IMX6Q_GPR13_SATA_PHY_1_MASK (0x3 << 0) +-#define IMX6Q_GPR13_SATA_PHY_1_FAST (0x0 << 0) +-#define IMX6Q_GPR13_SATA_PHY_1_MED (0x1 << 0) +-#define IMX6Q_GPR13_SATA_PHY_1_SLOW (0x2 << 0) +- ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_MASK (0x7 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_0_5_DB (0x0 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_1_0_DB (0x1 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_1_5_DB (0x2 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_2_0_DB (0x3 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_2_5_DB (0x4 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB (0x5 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_3_5_DB (0x6 << 24) ++#define IMX6Q_GPR13_SATA_RX_EQ_VAL_4_0_DB (0x7 << 24) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_MASK (0x1f << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA1I (0x10 << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA1M (0x10 << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA1X (0x1a << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2I (0x12 << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M (0x12 << 19) ++#define IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2X (0x1a << 19) ++#define IMX6Q_GPR13_SATA_RX_DPLL_MODE_MASK (0x7 << 16) ++#define IMX6Q_GPR13_SATA_RX_DPLL_MODE_1P_1F (0x0 << 16) ++#define IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_2F (0x1 << 16) ++#define IMX6Q_GPR13_SATA_RX_DPLL_MODE_1P_4F (0x2 << 16) ++#define IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_4F (0x3 << 16) ++#define IMX6Q_GPR13_SATA_SPD_MODE_MASK BIT(15) ++#define IMX6Q_GPR13_SATA_SPD_MODE_1P5G 0x0 ++#define IMX6Q_GPR13_SATA_SPD_MODE_3P0G BIT(15) ++#define IMX6Q_GPR13_SATA_MPLL_SS_EN BIT(14) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_MASK (0x7 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_16_16 (0x0 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_14_16 (0x1 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_12_16 (0x2 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_10_16 (0x3 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_9_16 (0x4 << 11) ++#define IMX6Q_GPR13_SATA_TX_ATTEN_8_16 (0x5 << 11) ++#define IMX6Q_GPR13_SATA_TX_BOOST_MASK (0xf << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_0_00_DB (0x0 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_0_37_DB (0x1 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_0_74_DB (0x2 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_1_11_DB (0x3 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_1_48_DB (0x4 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_1_85_DB (0x5 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_2_22_DB (0x6 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_2_59_DB (0x7 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_2_96_DB (0x8 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB (0x9 << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_3_70_DB (0xa << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_4_07_DB (0xb << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_4_44_DB (0xc << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_4_81_DB (0xd << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_5_28_DB (0xe << 7) ++#define IMX6Q_GPR13_SATA_TX_BOOST_5_75_DB (0xf << 7) ++#define IMX6Q_GPR13_SATA_TX_LVL_MASK (0x1f << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_937_V (0x00 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_947_V (0x01 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_957_V (0x02 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_966_V (0x03 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_976_V (0x04 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_986_V (0x05 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_0_996_V (0x06 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_005_V (0x07 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_015_V (0x08 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_025_V (0x09 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_035_V (0x0a << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_045_V (0x0b << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_054_V (0x0c << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_064_V (0x0d << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_074_V (0x0e << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_084_V (0x0f << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_094_V (0x10 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_104_V (0x11 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_113_V (0x12 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_123_V (0x13 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_133_V (0x14 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_143_V (0x15 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_152_V (0x16 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_162_V (0x17 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_172_V (0x18 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_182_V (0x19 << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_191_V (0x1a << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_201_V (0x1b << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_211_V (0x1c << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_221_V (0x1d << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_230_V (0x1e << 2) ++#define IMX6Q_GPR13_SATA_TX_LVL_1_240_V (0x1f << 2) ++#define IMX6Q_GPR13_SATA_MPLL_CLK_EN BIT(1) ++#define IMX6Q_GPR13_SATA_TX_EDGE_RATE BIT(0) + #endif /* __LINUX_IMX6Q_IOMUXC_GPR_H */ +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0009-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch b/src/patches/kernel/wandboard/imx/0009-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch new file mode 100644 index 0000000..758476a --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0009-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch @@ -0,0 +1,316 @@ +From 093f4fdd74f29031d79be747c65b95fb16601a92 Mon Sep 17 00:00:00 2001 +From: Richard Zhu r65037@freescale.com +Date: Wed, 24 Jul 2013 06:15:29 +0000 +Subject: [PATCH 2/2] ahci_imx: add ahci sata support on imx platforms + +imx6q contains one Synopsys AHCI SATA controller, But it can't share +ahci_platform driver with other controllers because there are some +misalignments of the generic AHCI controller - the bits definitions of +the HBA registers, the Vendor Specific registers, the AHCI PHY clock +and the AHCI signals adjustment window(GPR13 register). + + - CAP_SSS(bit20) of the HOST_CAP is writable, default value is '0', + should be configured to be '1' + + - bit0 (only one AHCI SATA port on imx6q) of the HOST_PORTS_IMPL + should be set to be '1'.(default 0) + + - One Vendor Specific register HOST_TIMER1MS(offset:0xe0) should be + configured regarding to the frequency of AHB bus clock. + + - Configurations of the AHCI PHY clock, and the signal parameters of + the GPR13 + +Setup its own ahci sata driver, contained the imx6q specific +initialized codes, re-use the generic ahci_platform driver, and keep +the generic ahci_platform driver clean as much as possible. + +tj: patch description reformatted + +Signed-off-by: Richard Zhu r65037@freescale.com +Reviewed-by: Shawn Guo shawn.guo@linaro.org +Signed-off-by: Tejun Heo tj@kernel.org +--- + drivers/ata/Kconfig | 9 ++ + drivers/ata/Makefile | 1 + + drivers/ata/ahci_imx.c | 236 ++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 246 insertions(+) + create mode 100644 drivers/ata/ahci_imx.c + +diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig +index 80dc988..cbf7a16 100644 +--- a/drivers/ata/Kconfig ++++ b/drivers/ata/Kconfig +@@ -97,6 +97,15 @@ config SATA_AHCI_PLATFORM + + If unsure, say N. + ++config AHCI_IMX ++ tristate "Freescale i.MX AHCI SATA support" ++ depends on SATA_AHCI_PLATFORM ++ help ++ This option enables support for the Freescale i.MX SoC's ++ onboard AHCI SATA. ++ ++ If unsure, say N. ++ + config SATA_FSL + tristate "Freescale 3.0Gbps SATA support" + depends on FSL_SOC +diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile +index c04d0fd..46518c6 100644 +--- a/drivers/ata/Makefile ++++ b/drivers/ata/Makefile +@@ -10,6 +10,7 @@ obj-$(CONFIG_SATA_INIC162X) += sata_inic162x.o + obj-$(CONFIG_SATA_SIL24) += sata_sil24.o + obj-$(CONFIG_SATA_DWC) += sata_dwc_460ex.o + obj-$(CONFIG_SATA_HIGHBANK) += sata_highbank.o libahci.o ++obj-$(CONFIG_AHCI_IMX) += ahci_imx.o + + # SFF w/ custom DMA + obj-$(CONFIG_PDC_ADMA) += pdc_adma.o +diff --git a/drivers/ata/ahci_imx.c b/drivers/ata/ahci_imx.c +new file mode 100644 +index 0000000..58debb0 +--- /dev/null ++++ b/drivers/ata/ahci_imx.c +@@ -0,0 +1,236 @@ ++/* ++ * Freescale IMX AHCI SATA platform driver ++ * Copyright 2013 Freescale Semiconductor, Inc. ++ * ++ * based on the AHCI SATA platform driver by Jeff Garzik and Anton Vorontsov ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms and conditions of the GNU General Public License, ++ * version 2, as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for ++ * more details. ++ * ++ * You should have received a copy of the GNU General Public License along with ++ * this program. If not, see http://www.gnu.org/licenses/. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/platform_device.h> ++#include <linux/regmap.h> ++#include <linux/ahci_platform.h> ++#include <linux/of_device.h> ++#include <linux/mfd/syscon.h> ++#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h> ++#include "ahci.h" ++ ++enum { ++ HOST_TIMER1MS = 0xe0, /* Timer 1-ms */ ++}; ++ ++struct imx_ahci_priv { ++ struct platform_device *ahci_pdev; ++ struct clk *sata_ref_clk; ++ struct clk *ahb_clk; ++ struct regmap *gpr; ++}; ++ ++static int imx6q_sata_init(struct device *dev, void __iomem *mmio) ++{ ++ int ret = 0; ++ unsigned int reg_val; ++ struct imx_ahci_priv *imxpriv = dev_get_drvdata(dev->parent); ++ ++ imxpriv->gpr = ++ syscon_regmap_lookup_by_compatible("fsl,imx6q-iomuxc-gpr"); ++ if (IS_ERR(imxpriv->gpr)) { ++ dev_err(dev, "failed to find fsl,imx6q-iomux-gpr regmap\n"); ++ return PTR_ERR(imxpriv->gpr); ++ } ++ ++ ret = clk_prepare_enable(imxpriv->sata_ref_clk); ++ if (ret < 0) { ++ dev_err(dev, "prepare-enable sata_ref clock err:%d\n", ret); ++ return ret; ++ } ++ ++ /* ++ * set PHY Paremeters, two steps to configure the GPR13, ++ * one write for rest of parameters, mask of first write ++ * is 0x07fffffd, and the other one write for setting ++ * the mpll_clk_en. ++ */ ++ regmap_update_bits(imxpriv->gpr, 0x34, IMX6Q_GPR13_SATA_RX_EQ_VAL_MASK ++ | IMX6Q_GPR13_SATA_RX_LOS_LVL_MASK ++ | IMX6Q_GPR13_SATA_RX_DPLL_MODE_MASK ++ | IMX6Q_GPR13_SATA_SPD_MODE_MASK ++ | IMX6Q_GPR13_SATA_MPLL_SS_EN ++ | IMX6Q_GPR13_SATA_TX_ATTEN_MASK ++ | IMX6Q_GPR13_SATA_TX_BOOST_MASK ++ | IMX6Q_GPR13_SATA_TX_LVL_MASK ++ | IMX6Q_GPR13_SATA_TX_EDGE_RATE ++ , IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB ++ | IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M ++ | IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_4F ++ | IMX6Q_GPR13_SATA_SPD_MODE_3P0G ++ | IMX6Q_GPR13_SATA_MPLL_SS_EN ++ | IMX6Q_GPR13_SATA_TX_ATTEN_9_16 ++ | IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB ++ | IMX6Q_GPR13_SATA_TX_LVL_1_025_V); ++ regmap_update_bits(imxpriv->gpr, 0x34, IMX6Q_GPR13_SATA_MPLL_CLK_EN, ++ IMX6Q_GPR13_SATA_MPLL_CLK_EN); ++ usleep_range(100, 200); ++ ++ /* ++ * Configure the HWINIT bits of the HOST_CAP and HOST_PORTS_IMPL, ++ * and IP vendor specific register HOST_TIMER1MS. ++ * Configure CAP_SSS (support stagered spin up). ++ * Implement the port0. ++ * Get the ahb clock rate, and configure the TIMER1MS register. ++ */ ++ reg_val = readl(mmio + HOST_CAP); ++ if (!(reg_val & HOST_CAP_SSS)) { ++ reg_val |= HOST_CAP_SSS; ++ writel(reg_val, mmio + HOST_CAP); ++ } ++ reg_val = readl(mmio + HOST_PORTS_IMPL); ++ if (!(reg_val & 0x1)) { ++ reg_val |= 0x1; ++ writel(reg_val, mmio + HOST_PORTS_IMPL); ++ } ++ ++ reg_val = clk_get_rate(imxpriv->ahb_clk) / 1000; ++ writel(reg_val, mmio + HOST_TIMER1MS); ++ ++ return 0; ++} ++ ++static void imx6q_sata_exit(struct device *dev) ++{ ++ struct imx_ahci_priv *imxpriv = dev_get_drvdata(dev->parent); ++ ++ regmap_update_bits(imxpriv->gpr, 0x34, IMX6Q_GPR13_SATA_MPLL_CLK_EN, ++ !IMX6Q_GPR13_SATA_MPLL_CLK_EN); ++ clk_disable_unprepare(imxpriv->sata_ref_clk); ++} ++ ++static struct ahci_platform_data imx6q_sata_pdata = { ++ .init = imx6q_sata_init, ++ .exit = imx6q_sata_exit, ++}; ++ ++static const struct of_device_id imx_ahci_of_match[] = { ++ { .compatible = "fsl,imx6q-ahci", .data = &imx6q_sata_pdata}, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, imx_ahci_of_match); ++ ++static int imx_ahci_probe(struct platform_device *pdev) ++{ ++ struct device *dev = &pdev->dev; ++ struct resource *mem, *irq, res[2]; ++ const struct of_device_id *of_id; ++ const struct ahci_platform_data *pdata = NULL; ++ struct imx_ahci_priv *imxpriv; ++ struct device *ahci_dev; ++ struct platform_device *ahci_pdev; ++ int ret; ++ ++ imxpriv = devm_kzalloc(dev, sizeof(*imxpriv), GFP_KERNEL); ++ if (!imxpriv) { ++ dev_err(dev, "can't alloc ahci_host_priv\n"); ++ return -ENOMEM; ++ } ++ ++ ahci_pdev = platform_device_alloc("ahci", -1); ++ if (!ahci_pdev) ++ return -ENODEV; ++ ++ ahci_dev = &ahci_pdev->dev; ++ ahci_dev->parent = dev; ++ ++ imxpriv->ahb_clk = devm_clk_get(dev, "ahb"); ++ if (IS_ERR(imxpriv->ahb_clk)) { ++ dev_err(dev, "can't get ahb clock.\n"); ++ ret = PTR_ERR(imxpriv->ahb_clk); ++ goto err_out; ++ } ++ ++ imxpriv->sata_ref_clk = devm_clk_get(dev, "sata_ref"); ++ if (IS_ERR(imxpriv->sata_ref_clk)) { ++ dev_err(dev, "can't get sata_ref clock.\n"); ++ ret = PTR_ERR(imxpriv->sata_ref_clk); ++ goto err_out; ++ } ++ ++ imxpriv->ahci_pdev = ahci_pdev; ++ platform_set_drvdata(pdev, imxpriv); ++ ++ of_id = of_match_device(imx_ahci_of_match, dev); ++ if (of_id) { ++ pdata = of_id->data; ++ } else { ++ ret = -EINVAL; ++ goto err_out; ++ } ++ ++ mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); ++ if (!mem || !irq) { ++ dev_err(dev, "no mmio/irq resource\n"); ++ ret = -ENOMEM; ++ goto err_out; ++ } ++ ++ res[0] = *mem; ++ res[1] = *irq; ++ ++ ahci_dev->coherent_dma_mask = DMA_BIT_MASK(32); ++ ahci_dev->dma_mask = &ahci_dev->coherent_dma_mask; ++ ahci_dev->of_node = dev->of_node; ++ ++ ret = platform_device_add_resources(ahci_pdev, res, 2); ++ if (ret) ++ goto err_out; ++ ++ ret = platform_device_add_data(ahci_pdev, pdata, sizeof(*pdata)); ++ if (ret) ++ goto err_out; ++ ++ ret = platform_device_add(ahci_pdev); ++ if (ret) { ++err_out: ++ platform_device_put(ahci_pdev); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int imx_ahci_remove(struct platform_device *pdev) ++{ ++ struct imx_ahci_priv *imxpriv = platform_get_drvdata(pdev); ++ struct platform_device *ahci_pdev = imxpriv->ahci_pdev; ++ ++ platform_device_unregister(ahci_pdev); ++ return 0; ++} ++ ++static struct platform_driver imx_ahci_driver = { ++ .probe = imx_ahci_probe, ++ .remove = imx_ahci_remove, ++ .driver = { ++ .name = "ahci-imx", ++ .owner = THIS_MODULE, ++ .of_match_table = imx_ahci_of_match, ++ }, ++}; ++module_platform_driver(imx_ahci_driver); ++ ++MODULE_DESCRIPTION("Freescale i.MX AHCI SATA platform driver"); ++MODULE_AUTHOR("Richard Zhu Hong-Xing.Zhu@freescale.com"); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("ahci:imx"); +-- +1.7.10.4 + diff --git a/src/patches/kernel/wandboard/imx/0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch b/src/patches/kernel/wandboard/imx/0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch new file mode 100644 index 0000000..86e7d8f --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0010-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch @@ -0,0 +1,24 @@ +From: Tejun Heo tj@kernel.org +Subject: [PATCH] ahci_imx: depend on CONFIG_MFD_SYSCON + +ahci_imx makes use of regmap but the dependency wasn't specified in +Kconfig leading build failures if CONFIG_AHCI_IMX is enabled but +CONFIG_MFD_SYSCON is not. Add the Kconfig dependency. + +Signed-off-by: Tejun Heo tj@kernel.org +Reported-by: Stephen Rothwell sfr@canb.auug.org.au +--- + drivers/ata/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/ata/Kconfig ++++ b/drivers/ata/Kconfig +@@ -99,7 +99,7 @@ config SATA_AHCI_PLATFORM + + config AHCI_IMX + tristate "Freescale i.MX AHCI SATA support" +- depends on SATA_AHCI_PLATFORM ++ depends on SATA_AHCI_PLATFORM && MFD_SYSCON + help + This option enables support for the Freescale i.MX SoC's + onboard AHCI SATA. diff --git a/src/patches/kernel/wandboard/imx/0011-add-pcie-designware.patch b/src/patches/kernel/wandboard/imx/0011-add-pcie-designware.patch new file mode 100644 index 0000000..3d865d3 --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0011-add-pcie-designware.patch @@ -0,0 +1,636 @@ +--- /dev/null 2013-12-09 21:30:35.000000000 +0000 ++++ drivers/pci/host/pcie-designware.h 2013-09-20 01:59:32.000000000 +0000 +@@ -0,0 +1,65 @@ ++/* ++ * Synopsys Designware PCIe host controller driver ++ * ++ * Copyright (C) 2013 Samsung Electronics Co., Ltd. ++ * http://www.samsung.com ++ * ++ * Author: Jingoo Han jg1.han@samsung.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++struct pcie_port_info { ++ u32 cfg0_size; ++ u32 cfg1_size; ++ u32 io_size; ++ u32 mem_size; ++ phys_addr_t io_bus_addr; ++ phys_addr_t mem_bus_addr; ++}; ++ ++struct pcie_port { ++ struct device *dev; ++ u8 root_bus_nr; ++ void __iomem *dbi_base; ++ u64 cfg0_base; ++ void __iomem *va_cfg0_base; ++ u64 cfg1_base; ++ void __iomem *va_cfg1_base; ++ u64 io_base; ++ u64 mem_base; ++ spinlock_t conf_lock; ++ struct resource cfg; ++ struct resource io; ++ struct resource mem; ++ struct pcie_port_info config; ++ int irq; ++ u32 lanes; ++ struct pcie_host_ops *ops; ++}; ++ ++struct pcie_host_ops { ++ void (*readl_rc)(struct pcie_port *pp, ++ void __iomem *dbi_base, u32 *val); ++ void (*writel_rc)(struct pcie_port *pp, ++ u32 val, void __iomem *dbi_base); ++ int (*rd_own_conf)(struct pcie_port *pp, int where, int size, u32 *val); ++ int (*wr_own_conf)(struct pcie_port *pp, int where, int size, u32 val); ++ int (*link_up)(struct pcie_port *pp); ++ void (*host_init)(struct pcie_port *pp); ++}; ++ ++extern unsigned long global_io_offset; ++ ++int cfg_read(void __iomem *addr, int where, int size, u32 *val); ++int cfg_write(void __iomem *addr, int where, int size, u32 val); ++int dw_pcie_wr_own_conf(struct pcie_port *pp, int where, int size, u32 val); ++int dw_pcie_rd_own_conf(struct pcie_port *pp, int where, int size, u32 *val); ++int dw_pcie_link_up(struct pcie_port *pp); ++void dw_pcie_setup_rc(struct pcie_port *pp); ++int dw_pcie_host_init(struct pcie_port *pp); ++int dw_pcie_setup(int nr, struct pci_sys_data *sys); ++struct pci_bus *dw_pcie_scan_bus(int nr, struct pci_sys_data *sys); ++int dw_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin); +--- /dev/null 2013-12-09 21:30:35.000000000 +0000 ++++ drivers/pci/host/pcie-designware.c 2013-09-20 01:59:32.000000000 +0000 +@@ -0,0 +1,565 @@ ++/* ++ * Synopsys Designware PCIe host controller driver ++ * ++ * Copyright (C) 2013 Samsung Electronics Co., Ltd. ++ * http://www.samsung.com ++ * ++ * Author: Jingoo Han jg1.han@samsung.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/of_address.h> ++#include <linux/pci.h> ++#include <linux/pci_regs.h> ++#include <linux/types.h> ++ ++#include "pcie-designware.h" ++ ++/* Synopsis specific PCIE configuration registers */ ++#define PCIE_PORT_LINK_CONTROL 0x710 ++#define PORT_LINK_MODE_MASK (0x3f << 16) ++#define PORT_LINK_MODE_1_LANES (0x1 << 16) ++#define PORT_LINK_MODE_2_LANES (0x3 << 16) ++#define PORT_LINK_MODE_4_LANES (0x7 << 16) ++ ++#define PCIE_LINK_WIDTH_SPEED_CONTROL 0x80C ++#define PORT_LOGIC_SPEED_CHANGE (0x1 << 17) ++#define PORT_LOGIC_LINK_WIDTH_MASK (0x1ff << 8) ++#define PORT_LOGIC_LINK_WIDTH_1_LANES (0x1 << 8) ++#define PORT_LOGIC_LINK_WIDTH_2_LANES (0x2 << 8) ++#define PORT_LOGIC_LINK_WIDTH_4_LANES (0x4 << 8) ++ ++#define PCIE_MSI_ADDR_LO 0x820 ++#define PCIE_MSI_ADDR_HI 0x824 ++#define PCIE_MSI_INTR0_ENABLE 0x828 ++#define PCIE_MSI_INTR0_MASK 0x82C ++#define PCIE_MSI_INTR0_STATUS 0x830 ++ ++#define PCIE_ATU_VIEWPORT 0x900 ++#define PCIE_ATU_REGION_INBOUND (0x1 << 31) ++#define PCIE_ATU_REGION_OUTBOUND (0x0 << 31) ++#define PCIE_ATU_REGION_INDEX1 (0x1 << 0) ++#define PCIE_ATU_REGION_INDEX0 (0x0 << 0) ++#define PCIE_ATU_CR1 0x904 ++#define PCIE_ATU_TYPE_MEM (0x0 << 0) ++#define PCIE_ATU_TYPE_IO (0x2 << 0) ++#define PCIE_ATU_TYPE_CFG0 (0x4 << 0) ++#define PCIE_ATU_TYPE_CFG1 (0x5 << 0) ++#define PCIE_ATU_CR2 0x908 ++#define PCIE_ATU_ENABLE (0x1 << 31) ++#define PCIE_ATU_BAR_MODE_ENABLE (0x1 << 30) ++#define PCIE_ATU_LOWER_BASE 0x90C ++#define PCIE_ATU_UPPER_BASE 0x910 ++#define PCIE_ATU_LIMIT 0x914 ++#define PCIE_ATU_LOWER_TARGET 0x918 ++#define PCIE_ATU_BUS(x) (((x) & 0xff) << 24) ++#define PCIE_ATU_DEV(x) (((x) & 0x1f) << 19) ++#define PCIE_ATU_FUNC(x) (((x) & 0x7) << 16) ++#define PCIE_ATU_UPPER_TARGET 0x91C ++ ++static struct hw_pci dw_pci; ++ ++unsigned long global_io_offset; ++ ++static inline struct pcie_port *sys_to_pcie(struct pci_sys_data *sys) ++{ ++ return sys->private_data; ++} ++ ++int cfg_read(void __iomem *addr, int where, int size, u32 *val) ++{ ++ *val = readl(addr); ++ ++ if (size == 1) ++ *val = (*val >> (8 * (where & 3))) & 0xff; ++ else if (size == 2) ++ *val = (*val >> (8 * (where & 3))) & 0xffff; ++ else if (size != 4) ++ return PCIBIOS_BAD_REGISTER_NUMBER; ++ ++ return PCIBIOS_SUCCESSFUL; ++} ++ ++int cfg_write(void __iomem *addr, int where, int size, u32 val) ++{ ++ if (size == 4) ++ writel(val, addr); ++ else if (size == 2) ++ writew(val, addr + (where & 2)); ++ else if (size == 1) ++ writeb(val, addr + (where & 3)); ++ else ++ return PCIBIOS_BAD_REGISTER_NUMBER; ++ ++ return PCIBIOS_SUCCESSFUL; ++} ++ ++static inline void dw_pcie_readl_rc(struct pcie_port *pp, u32 reg, u32 *val) ++{ ++ if (pp->ops->readl_rc) ++ pp->ops->readl_rc(pp, pp->dbi_base + reg, val); ++ else ++ *val = readl(pp->dbi_base + reg); ++} ++ ++static inline void dw_pcie_writel_rc(struct pcie_port *pp, u32 val, u32 reg) ++{ ++ if (pp->ops->writel_rc) ++ pp->ops->writel_rc(pp, val, pp->dbi_base + reg); ++ else ++ writel(val, pp->dbi_base + reg); ++} ++ ++int dw_pcie_rd_own_conf(struct pcie_port *pp, int where, int size, ++ u32 *val) ++{ ++ int ret; ++ ++ if (pp->ops->rd_own_conf) ++ ret = pp->ops->rd_own_conf(pp, where, size, val); ++ else ++ ret = cfg_read(pp->dbi_base + (where & ~0x3), where, size, val); ++ ++ return ret; ++} ++ ++int dw_pcie_wr_own_conf(struct pcie_port *pp, int where, int size, ++ u32 val) ++{ ++ int ret; ++ ++ if (pp->ops->wr_own_conf) ++ ret = pp->ops->wr_own_conf(pp, where, size, val); ++ else ++ ret = cfg_write(pp->dbi_base + (where & ~0x3), where, size, ++ val); ++ ++ return ret; ++} ++ ++int dw_pcie_link_up(struct pcie_port *pp) ++{ ++ if (pp->ops->link_up) ++ return pp->ops->link_up(pp); ++ else ++ return 0; ++} ++ ++int __init dw_pcie_host_init(struct pcie_port *pp) ++{ ++ struct device_node *np = pp->dev->of_node; ++ struct of_pci_range range; ++ struct of_pci_range_parser parser; ++ u32 val; ++ ++ if (of_pci_range_parser_init(&parser, np)) { ++ dev_err(pp->dev, "missing ranges property\n"); ++ return -EINVAL; ++ } ++ ++ /* Get the I/O and memory ranges from DT */ ++ for_each_of_pci_range(&parser, &range) { ++ unsigned long restype = range.flags & IORESOURCE_TYPE_BITS; ++ if (restype == IORESOURCE_IO) { ++ of_pci_range_to_resource(&range, np, &pp->io); ++ pp->io.name = "I/O"; ++ pp->io.start = max_t(resource_size_t, ++ PCIBIOS_MIN_IO, ++ range.pci_addr + global_io_offset); ++ pp->io.end = min_t(resource_size_t, ++ IO_SPACE_LIMIT, ++ range.pci_addr + range.size ++ + global_io_offset); ++ pp->config.io_size = resource_size(&pp->io); ++ pp->config.io_bus_addr = range.pci_addr; ++ } ++ if (restype == IORESOURCE_MEM) { ++ of_pci_range_to_resource(&range, np, &pp->mem); ++ pp->mem.name = "MEM"; ++ pp->config.mem_size = resource_size(&pp->mem); ++ pp->config.mem_bus_addr = range.pci_addr; ++ } ++ if (restype == 0) { ++ of_pci_range_to_resource(&range, np, &pp->cfg); ++ pp->config.cfg0_size = resource_size(&pp->cfg)/2; ++ pp->config.cfg1_size = resource_size(&pp->cfg)/2; ++ } ++ } ++ ++ if (!pp->dbi_base) { ++ pp->dbi_base = devm_ioremap(pp->dev, pp->cfg.start, ++ resource_size(&pp->cfg)); ++ if (!pp->dbi_base) { ++ dev_err(pp->dev, "error with ioremap\n"); ++ return -ENOMEM; ++ } ++ } ++ ++ pp->cfg0_base = pp->cfg.start; ++ pp->cfg1_base = pp->cfg.start + pp->config.cfg0_size; ++ pp->io_base = pp->io.start; ++ pp->mem_base = pp->mem.start; ++ ++ pp->va_cfg0_base = devm_ioremap(pp->dev, pp->cfg0_base, ++ pp->config.cfg0_size); ++ if (!pp->va_cfg0_base) { ++ dev_err(pp->dev, "error with ioremap in function\n"); ++ return -ENOMEM; ++ } ++ pp->va_cfg1_base = devm_ioremap(pp->dev, pp->cfg1_base, ++ pp->config.cfg1_size); ++ if (!pp->va_cfg1_base) { ++ dev_err(pp->dev, "error with ioremap\n"); ++ return -ENOMEM; ++ } ++ ++ if (of_property_read_u32(np, "num-lanes", &pp->lanes)) { ++ dev_err(pp->dev, "Failed to parse the number of lanes\n"); ++ return -EINVAL; ++ } ++ ++ if (pp->ops->host_init) ++ pp->ops->host_init(pp); ++ ++ dw_pcie_wr_own_conf(pp, PCI_BASE_ADDRESS_0, 4, 0); ++ ++ /* program correct class for RC */ ++ dw_pcie_wr_own_conf(pp, PCI_CLASS_DEVICE, 2, PCI_CLASS_BRIDGE_PCI); ++ ++ dw_pcie_rd_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, &val); ++ val |= PORT_LOGIC_SPEED_CHANGE; ++ dw_pcie_wr_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, val); ++ ++ dw_pci.nr_controllers = 1; ++ dw_pci.private_data = (void **)&pp; ++ ++ pci_common_init(&dw_pci); ++ pci_assign_unassigned_resources(); ++#ifdef CONFIG_PCI_DOMAINS ++ dw_pci.domain++; ++#endif ++ ++ return 0; ++} ++ ++static void dw_pcie_prog_viewport_cfg0(struct pcie_port *pp, u32 busdev) ++{ ++ /* Program viewport 0 : OUTBOUND : CFG0 */ ++ dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX0, ++ PCIE_ATU_VIEWPORT); ++ dw_pcie_writel_rc(pp, pp->cfg0_base, PCIE_ATU_LOWER_BASE); ++ dw_pcie_writel_rc(pp, (pp->cfg0_base >> 32), PCIE_ATU_UPPER_BASE); ++ dw_pcie_writel_rc(pp, pp->cfg0_base + pp->config.cfg0_size - 1, ++ PCIE_ATU_LIMIT); ++ dw_pcie_writel_rc(pp, busdev, PCIE_ATU_LOWER_TARGET); ++ dw_pcie_writel_rc(pp, 0, PCIE_ATU_UPPER_TARGET); ++ dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_CFG0, PCIE_ATU_CR1); ++ dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); ++} ++ ++static void dw_pcie_prog_viewport_cfg1(struct pcie_port *pp, u32 busdev) ++{ ++ /* Program viewport 1 : OUTBOUND : CFG1 */ ++ dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX1, ++ PCIE_ATU_VIEWPORT); ++ dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_CFG1, PCIE_ATU_CR1); ++ dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); ++ dw_pcie_writel_rc(pp, pp->cfg1_base, PCIE_ATU_LOWER_BASE); ++ dw_pcie_writel_rc(pp, (pp->cfg1_base >> 32), PCIE_ATU_UPPER_BASE); ++ dw_pcie_writel_rc(pp, pp->cfg1_base + pp->config.cfg1_size - 1, ++ PCIE_ATU_LIMIT); ++ dw_pcie_writel_rc(pp, busdev, PCIE_ATU_LOWER_TARGET); ++ dw_pcie_writel_rc(pp, 0, PCIE_ATU_UPPER_TARGET); ++} ++ ++static void dw_pcie_prog_viewport_mem_outbound(struct pcie_port *pp) ++{ ++ /* Program viewport 0 : OUTBOUND : MEM */ ++ dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX0, ++ PCIE_ATU_VIEWPORT); ++ dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_MEM, PCIE_ATU_CR1); ++ dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); ++ dw_pcie_writel_rc(pp, pp->mem_base, PCIE_ATU_LOWER_BASE); ++ dw_pcie_writel_rc(pp, (pp->mem_base >> 32), PCIE_ATU_UPPER_BASE); ++ dw_pcie_writel_rc(pp, pp->mem_base + pp->config.mem_size - 1, ++ PCIE_ATU_LIMIT); ++ dw_pcie_writel_rc(pp, pp->config.mem_bus_addr, PCIE_ATU_LOWER_TARGET); ++ dw_pcie_writel_rc(pp, upper_32_bits(pp->config.mem_bus_addr), ++ PCIE_ATU_UPPER_TARGET); ++} ++ ++static void dw_pcie_prog_viewport_io_outbound(struct pcie_port *pp) ++{ ++ /* Program viewport 1 : OUTBOUND : IO */ ++ dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX1, ++ PCIE_ATU_VIEWPORT); ++ dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_IO, PCIE_ATU_CR1); ++ dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); ++ dw_pcie_writel_rc(pp, pp->io_base, PCIE_ATU_LOWER_BASE); ++ dw_pcie_writel_rc(pp, (pp->io_base >> 32), PCIE_ATU_UPPER_BASE); ++ dw_pcie_writel_rc(pp, pp->io_base + pp->config.io_size - 1, ++ PCIE_ATU_LIMIT); ++ dw_pcie_writel_rc(pp, pp->config.io_bus_addr, PCIE_ATU_LOWER_TARGET); ++ dw_pcie_writel_rc(pp, upper_32_bits(pp->config.io_bus_addr), ++ PCIE_ATU_UPPER_TARGET); ++} ++ ++static int dw_pcie_rd_other_conf(struct pcie_port *pp, struct pci_bus *bus, ++ u32 devfn, int where, int size, u32 *val) ++{ ++ int ret = PCIBIOS_SUCCESSFUL; ++ u32 address, busdev; ++ ++ busdev = PCIE_ATU_BUS(bus->number) | PCIE_ATU_DEV(PCI_SLOT(devfn)) | ++ PCIE_ATU_FUNC(PCI_FUNC(devfn)); ++ address = where & ~0x3; ++ ++ if (bus->parent->number == pp->root_bus_nr) { ++ dw_pcie_prog_viewport_cfg0(pp, busdev); ++ ret = cfg_read(pp->va_cfg0_base + address, where, size, val); ++ dw_pcie_prog_viewport_mem_outbound(pp); ++ } else { ++ dw_pcie_prog_viewport_cfg1(pp, busdev); ++ ret = cfg_read(pp->va_cfg1_base + address, where, size, val); ++ dw_pcie_prog_viewport_io_outbound(pp); ++ } ++ ++ return ret; ++} ++ ++static int dw_pcie_wr_other_conf(struct pcie_port *pp, struct pci_bus *bus, ++ u32 devfn, int where, int size, u32 val) ++{ ++ int ret = PCIBIOS_SUCCESSFUL; ++ u32 address, busdev; ++ ++ busdev = PCIE_ATU_BUS(bus->number) | PCIE_ATU_DEV(PCI_SLOT(devfn)) | ++ PCIE_ATU_FUNC(PCI_FUNC(devfn)); ++ address = where & ~0x3; ++ ++ if (bus->parent->number == pp->root_bus_nr) { ++ dw_pcie_prog_viewport_cfg0(pp, busdev); ++ ret = cfg_write(pp->va_cfg0_base + address, where, size, val); ++ dw_pcie_prog_viewport_mem_outbound(pp); ++ } else { ++ dw_pcie_prog_viewport_cfg1(pp, busdev); ++ ret = cfg_write(pp->va_cfg1_base + address, where, size, val); ++ dw_pcie_prog_viewport_io_outbound(pp); ++ } ++ ++ return ret; ++} ++ ++ ++static int dw_pcie_valid_config(struct pcie_port *pp, ++ struct pci_bus *bus, int dev) ++{ ++ /* If there is no link, then there is no device */ ++ if (bus->number != pp->root_bus_nr) { ++ if (!dw_pcie_link_up(pp)) ++ return 0; ++ } ++ ++ /* access only one slot on each root port */ ++ if (bus->number == pp->root_bus_nr && dev > 0) ++ return 0; ++ ++ /* ++ * do not read more than one device on the bus directly attached ++ * to RC's (Virtual Bridge's) DS side. ++ */ ++ if (bus->primary == pp->root_bus_nr && dev > 0) ++ return 0; ++ ++ return 1; ++} ++ ++static int dw_pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where, ++ int size, u32 *val) ++{ ++ struct pcie_port *pp = sys_to_pcie(bus->sysdata); ++ unsigned long flags; ++ int ret; ++ ++ if (!pp) { ++ BUG(); ++ return -EINVAL; ++ } ++ ++ if (dw_pcie_valid_config(pp, bus, PCI_SLOT(devfn)) == 0) { ++ *val = 0xffffffff; ++ return PCIBIOS_DEVICE_NOT_FOUND; ++ } ++ ++ spin_lock_irqsave(&pp->conf_lock, flags); ++ if (bus->number != pp->root_bus_nr) ++ ret = dw_pcie_rd_other_conf(pp, bus, devfn, ++ where, size, val); ++ else ++ ret = dw_pcie_rd_own_conf(pp, where, size, val); ++ spin_unlock_irqrestore(&pp->conf_lock, flags); ++ ++ return ret; ++} ++ ++static int dw_pcie_wr_conf(struct pci_bus *bus, u32 devfn, ++ int where, int size, u32 val) ++{ ++ struct pcie_port *pp = sys_to_pcie(bus->sysdata); ++ unsigned long flags; ++ int ret; ++ ++ if (!pp) { ++ BUG(); ++ return -EINVAL; ++ } ++ ++ if (dw_pcie_valid_config(pp, bus, PCI_SLOT(devfn)) == 0) ++ return PCIBIOS_DEVICE_NOT_FOUND; ++ ++ spin_lock_irqsave(&pp->conf_lock, flags); ++ if (bus->number != pp->root_bus_nr) ++ ret = dw_pcie_wr_other_conf(pp, bus, devfn, ++ where, size, val); ++ else ++ ret = dw_pcie_wr_own_conf(pp, where, size, val); ++ spin_unlock_irqrestore(&pp->conf_lock, flags); ++ ++ return ret; ++} ++ ++static struct pci_ops dw_pcie_ops = { ++ .read = dw_pcie_rd_conf, ++ .write = dw_pcie_wr_conf, ++}; ++ ++int dw_pcie_setup(int nr, struct pci_sys_data *sys) ++{ ++ struct pcie_port *pp; ++ ++ pp = sys_to_pcie(sys); ++ ++ if (!pp) ++ return 0; ++ ++ if (global_io_offset < SZ_1M && pp->config.io_size > 0) { ++ sys->io_offset = global_io_offset - pp->config.io_bus_addr; ++ pci_ioremap_io(sys->io_offset, pp->io.start); ++ global_io_offset += SZ_64K; ++ pci_add_resource_offset(&sys->resources, &pp->io, ++ sys->io_offset); ++ } ++ ++ sys->mem_offset = pp->mem.start - pp->config.mem_bus_addr; ++ pci_add_resource_offset(&sys->resources, &pp->mem, sys->mem_offset); ++ ++ return 1; ++} ++ ++struct pci_bus *dw_pcie_scan_bus(int nr, struct pci_sys_data *sys) ++{ ++ struct pci_bus *bus; ++ struct pcie_port *pp = sys_to_pcie(sys); ++ ++ if (pp) { ++ pp->root_bus_nr = sys->busnr; ++ bus = pci_scan_root_bus(NULL, sys->busnr, &dw_pcie_ops, ++ sys, &sys->resources); ++ } else { ++ bus = NULL; ++ BUG(); ++ } ++ ++ return bus; ++} ++ ++int dw_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) ++{ ++ struct pcie_port *pp = sys_to_pcie(dev->bus->sysdata); ++ ++ return pp->irq; ++} ++ ++static struct hw_pci dw_pci = { ++ .setup = dw_pcie_setup, ++ .scan = dw_pcie_scan_bus, ++ .map_irq = dw_pcie_map_irq, ++}; ++ ++void dw_pcie_setup_rc(struct pcie_port *pp) ++{ ++ struct pcie_port_info *config = &pp->config; ++ u32 val; ++ u32 membase; ++ u32 memlimit; ++ ++ /* set the number of lines as 4 */ ++ dw_pcie_readl_rc(pp, PCIE_PORT_LINK_CONTROL, &val); ++ val &= ~PORT_LINK_MODE_MASK; ++ switch (pp->lanes) { ++ case 1: ++ val |= PORT_LINK_MODE_1_LANES; ++ break; ++ case 2: ++ val |= PORT_LINK_MODE_2_LANES; ++ break; ++ case 4: ++ val |= PORT_LINK_MODE_4_LANES; ++ break; ++ } ++ dw_pcie_writel_rc(pp, val, PCIE_PORT_LINK_CONTROL); ++ ++ /* set link width speed control register */ ++ dw_pcie_readl_rc(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, &val); ++ val &= ~PORT_LOGIC_LINK_WIDTH_MASK; ++ switch (pp->lanes) { ++ case 1: ++ val |= PORT_LOGIC_LINK_WIDTH_1_LANES; ++ break; ++ case 2: ++ val |= PORT_LOGIC_LINK_WIDTH_2_LANES; ++ break; ++ case 4: ++ val |= PORT_LOGIC_LINK_WIDTH_4_LANES; ++ break; ++ } ++ dw_pcie_writel_rc(pp, val, PCIE_LINK_WIDTH_SPEED_CONTROL); ++ ++ /* setup RC BARs */ ++ dw_pcie_writel_rc(pp, 0x00000004, PCI_BASE_ADDRESS_0); ++ dw_pcie_writel_rc(pp, 0x00000004, PCI_BASE_ADDRESS_1); ++ ++ /* setup interrupt pins */ ++ dw_pcie_readl_rc(pp, PCI_INTERRUPT_LINE, &val); ++ val &= 0xffff00ff; ++ val |= 0x00000100; ++ dw_pcie_writel_rc(pp, val, PCI_INTERRUPT_LINE); ++ ++ /* setup bus numbers */ ++ dw_pcie_readl_rc(pp, PCI_PRIMARY_BUS, &val); ++ val &= 0xff000000; ++ val |= 0x00010100; ++ dw_pcie_writel_rc(pp, val, PCI_PRIMARY_BUS); ++ ++ /* setup memory base, memory limit */ ++ membase = ((u32)pp->mem_base & 0xfff00000) >> 16; ++ memlimit = (config->mem_size + (u32)pp->mem_base) & 0xfff00000; ++ val = memlimit | membase; ++ dw_pcie_writel_rc(pp, val, PCI_MEMORY_BASE); ++ ++ /* setup command register */ ++ dw_pcie_readl_rc(pp, PCI_COMMAND, &val); ++ val &= 0xffff0000; ++ val |= PCI_COMMAND_IO | PCI_COMMAND_MEMORY | ++ PCI_COMMAND_MASTER | PCI_COMMAND_SERR; ++ dw_pcie_writel_rc(pp, val, PCI_COMMAND); ++} ++ ++MODULE_AUTHOR("Jingoo Han jg1.han@samsung.com"); ++MODULE_DESCRIPTION("Designware PCIe host controller driver"); ++MODULE_LICENSE("GPL v2"); diff --git a/src/patches/kernel/wandboard/imx/0012-pcie-backport-fixes.patch b/src/patches/kernel/wandboard/imx/0012-pcie-backport-fixes.patch new file mode 100644 index 0000000..aef6b05 --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0012-pcie-backport-fixes.patch @@ -0,0 +1,17 @@ +--- a/drivers/pci/Kconfig ++++ b/drivers/pci/Kconfig +@@ -125,3 +125,5 @@ config PCI_IOAPIC + config PCI_LABEL + def_bool y if (DMI || ACPI) + select NLS ++ ++source "drivers/pci/host/Kconfig" +--- a/drivers/pci/Makefile ++++ b/drivers/pci/Makefile +@@ -67,3 +67,6 @@ obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen + obj-$(CONFIG_OF) += of.o + + ccflags-$(CONFIG_PCI_DEBUG) := -DDEBUG ++ ++# PCI host controller drivers ++obj-y += host/ diff --git a/src/patches/kernel/wandboard/imx/0013-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch b/src/patches/kernel/wandboard/imx/0013-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch new file mode 100644 index 0000000..ab20f7f --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0013-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch @@ -0,0 +1,194 @@ +From: Andrew Murray Andrew.Murray@arm.com +Subject: [PATCH] of/pci: Provide support for parsing PCI DT ranges property + +This patch factors out common implementation patterns to reduce overall kernel +code and provide a means for host bridge drivers to directly obtain struct +resources from the DT's ranges property without relying on architecture specific +DT handling. This will make it easier to write archiecture independent host bridge +drivers and mitigate against further duplication of DT parsing code. + +This patch can be used in the following way: + + struct of_pci_range_parser parser; + struct of_pci_range range; + + if (of_pci_range_parser_init(&parser, np)) + ; //no ranges property + + for_each_of_pci_range(&parser, &range) { + + /* + directly access properties of the address range, e.g.: + range.pci_space, range.pci_addr, range.cpu_addr, + range.size, range.flags + + alternatively obtain a struct resource, e.g.: + struct resource res; + of_pci_range_to_resource(&range, np, &res); + */ + } + +Additionally the implementation takes care of adjacent ranges and merges them +into a single range (as was the case with powerpc and microblaze). + +Signed-off-by: Andrew Murray Andrew.Murray@arm.com +Signed-off-by: Liviu Dudau Liviu.Dudau@arm.com +Signed-off-by: Thomas Petazzoni thomas.petazzoni@free-electrons.com +Reviewed-by: Rob Herring rob.herring@calxeda.com +Tested-by: Thomas Petazzoni thomas.petazzoni@free-electrons.com +Tested-by: Linus Walleij linus.walleij@linaro.org +Tested-by: Jingoo Han jg1.han@samsung.com +Acked-by: Grant Likely grant.likely@secretlab.ca +Signed-off-by: Jason Cooper jason@lakedaemon.net +--- + drivers/of/address.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++ + include/linux/of_address.h | 48 +++++++++++++++++++++++++++++++++ + 2 files changed, 115 insertions(+) + +--- a/drivers/of/address.c ++++ b/drivers/of/address.c +@@ -231,6 +231,73 @@ int of_pci_address_to_resource(struct de + return __of_address_to_resource(dev, addrp, size, flags, NULL, r); + } + EXPORT_SYMBOL_GPL(of_pci_address_to_resource); ++ ++int of_pci_range_parser_init(struct of_pci_range_parser *parser, ++ struct device_node *node) ++{ ++ const int na = 3, ns = 2; ++ int rlen; ++ ++ parser->node = node; ++ parser->pna = of_n_addr_cells(node); ++ parser->np = parser->pna + na + ns; ++ ++ parser->range = of_get_property(node, "ranges", &rlen); ++ if (parser->range == NULL) ++ return -ENOENT; ++ ++ parser->end = parser->range + rlen / sizeof(__be32); ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(of_pci_range_parser_init); ++ ++struct of_pci_range *of_pci_range_parser_one(struct of_pci_range_parser *parser, ++ struct of_pci_range *range) ++{ ++ const int na = 3, ns = 2; ++ ++ if (!range) ++ return NULL; ++ ++ if (!parser->range || parser->range + parser->np > parser->end) ++ return NULL; ++ ++ range->pci_space = parser->range[0]; ++ range->flags = of_bus_pci_get_flags(parser->range); ++ range->pci_addr = of_read_number(parser->range + 1, ns); ++ range->cpu_addr = of_translate_address(parser->node, ++ parser->range + na); ++ range->size = of_read_number(parser->range + parser->pna + na, ns); ++ ++ parser->range += parser->np; ++ ++ /* Now consume following elements while they are contiguous */ ++ while (parser->range + parser->np <= parser->end) { ++ u32 flags, pci_space; ++ u64 pci_addr, cpu_addr, size; ++ ++ pci_space = be32_to_cpup(parser->range); ++ flags = of_bus_pci_get_flags(parser->range); ++ pci_addr = of_read_number(parser->range + 1, ns); ++ cpu_addr = of_translate_address(parser->node, ++ parser->range + na); ++ size = of_read_number(parser->range + parser->pna + na, ns); ++ ++ if (flags != range->flags) ++ break; ++ if (pci_addr != range->pci_addr + range->size || ++ cpu_addr != range->cpu_addr + range->size) ++ break; ++ ++ range->size += size; ++ parser->range += parser->np; ++ } ++ ++ return range; ++} ++EXPORT_SYMBOL_GPL(of_pci_range_parser_one); ++ + #endif /* CONFIG_PCI */ + + /* +--- a/include/linux/of_address.h ++++ b/include/linux/of_address.h +@@ -4,6 +4,36 @@ + #include <linux/errno.h> + #include <linux/of.h> + ++struct of_pci_range_parser { ++ struct device_node *node; ++ const __be32 *range; ++ const __be32 *end; ++ int np; ++ int pna; ++}; ++ ++struct of_pci_range { ++ u32 pci_space; ++ u64 pci_addr; ++ u64 cpu_addr; ++ u64 size; ++ u32 flags; ++}; ++ ++#define for_each_of_pci_range(parser, range) \ ++ for (; of_pci_range_parser_one(parser, range);) ++ ++static inline void of_pci_range_to_resource(struct of_pci_range *range, ++ struct device_node *np, ++ struct resource *res) ++{ ++ res->flags = range->flags; ++ res->start = range->cpu_addr; ++ res->end = range->cpu_addr + range->size - 1; ++ res->parent = res->child = res->sibling = NULL; ++ res->name = np->full_name; ++} ++ + #ifdef CONFIG_OF_ADDRESS + extern u64 of_translate_address(struct device_node *np, const __be32 *addr); + extern bool of_can_translate_address(struct device_node *dev); +@@ -27,6 +57,11 @@ static inline unsigned long pci_address_ + #define pci_address_to_pio pci_address_to_pio + #endif + ++extern int of_pci_range_parser_init(struct of_pci_range_parser *parser, ++ struct device_node *node); ++extern struct of_pci_range *of_pci_range_parser_one( ++ struct of_pci_range_parser *parser, ++ struct of_pci_range *range); + #else /* CONFIG_OF_ADDRESS */ + #ifndef of_address_to_resource + static inline int of_address_to_resource(struct device_node *dev, int index, +@@ -53,6 +88,19 @@ static inline const __be32 *of_get_addre + { + return NULL; + } ++ ++static inline int of_pci_range_parser_init(struct of_pci_range_parser *parser, ++ struct device_node *node) ++{ ++ return -1; ++} ++ ++static inline struct of_pci_range *of_pci_range_parser_one( ++ struct of_pci_range_parser *parser, ++ struct of_pci_range *range) ++{ ++ return NULL; ++} + #endif /* CONFIG_OF_ADDRESS */ + + diff --git a/src/patches/kernel/wandboard/imx/0014-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch b/src/patches/kernel/wandboard/imx/0014-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch new file mode 100644 index 0000000..19ca079 --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0014-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch @@ -0,0 +1,37 @@ +From: Sean Cross xobs@kosagi.com +Subject: [PATCH 1/2] ARM: imx6q: Add PCIe bits to GPR syscon definition + +PCIe requires additional bits be defined for GPR8 and GPR12. + +Signed-off-by: Sean Cross xobs@kosagi.com +Signed-off-by: Shawn Guo shawn.guo@linaro.org +Signed-off-by: Bjorn Helgaas bhelgaas@google.com +--- + include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h ++++ b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h +@@ -241,6 +241,12 @@ + + #define IMX6Q_GPR5_L2_CLK_STOP BIT(8) + ++#define IMX6Q_GPR8_TX_SWING_LOW (0x7f << 25) ++#define IMX6Q_GPR8_TX_SWING_FULL (0x7f << 18) ++#define IMX6Q_GPR8_TX_DEEMPH_GEN2_6DB (0x3f << 12) ++#define IMX6Q_GPR8_TX_DEEMPH_GEN2_3P5DB (0x3f << 6) ++#define IMX6Q_GPR8_TX_DEEMPH_GEN1 (0x3f << 0) ++ + #define IMX6Q_GPR9_TZASC2_BYP BIT(1) + #define IMX6Q_GPR9_TZASC1_BYP BIT(0) + +@@ -273,7 +279,9 @@ + #define IMX6Q_GPR12_ARMP_AHB_CLK_EN BIT(26) + #define IMX6Q_GPR12_ARMP_ATB_CLK_EN BIT(25) + #define IMX6Q_GPR12_ARMP_APB_CLK_EN BIT(24) ++#define IMX6Q_GPR12_DEVICE_TYPE (0xf << 12) + #define IMX6Q_GPR12_PCIE_CTL_2 BIT(10) ++#define IMX6Q_GPR12_LOS_LEVEL (0x1f << 4) + + #define IMX6Q_GPR13_SDMA_STOP_REQ BIT(30) + #define IMX6Q_GPR13_CAN2_STOP_REQ BIT(29) diff --git a/src/patches/kernel/wandboard/imx/0015-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch b/src/patches/kernel/wandboard/imx/0015-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch new file mode 100644 index 0000000..599cd0e --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0015-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch @@ -0,0 +1,616 @@ +Subject: [PATCH 2/2] PCI: imx6: Add support for i.MX6 PCIe controller +From: Sean Cross xobs@kosagi.com + +Add support for the PCIe port present on the i.MX6 family of controllers. +These use the Synopsis Designware core tied to their own PHY. + +Signed-off-by: Sean Cross xobs@kosagi.com +Signed-off-by: Shawn Guo shawn.guo@linaro.org +Signed-off-by: Bjorn Helgaas bhelgaas@google.com +Acked-by: Sascha Hauer s.hauer@pengutronix.de +--- + drivers/pci/host/Kconfig | 6 + + drivers/pci/host/Makefile | 1 + + drivers/pci/host/pci-imx6.c | 575 +++++++++++++++++++++ + 4 files changed, 588 insertions(+), 1 deletion(-) + create mode 100644 drivers/pci/host/pci-imx6.c + +--- /dev/null ++++ b/drivers/pci/host/Kconfig +@@ -0,0 +1,13 @@ ++menu "PCI host controller drivers" ++ depends on PCI ++ ++config PCIE_DW ++ bool ++ ++config PCI_IMX6 ++ bool "Freescale i.MX6 PCIe controller" ++ depends on SOC_IMX6Q ++ select PCIEPORTBUS ++ select PCIE_DW ++ ++endmenu +--- /dev/null ++++ b/drivers/pci/host/Makefile +@@ -0,0 +1,2 @@ ++obj-$(CONFIG_PCIE_DW) += pcie-designware.o ++obj-$(CONFIG_PCI_IMX6) += pci-imx6.o +--- /dev/null ++++ b/drivers/pci/host/pci-imx6.c +@@ -0,0 +1,575 @@ ++/* ++ * PCIe host controller driver for Freescale i.MX6 SoCs ++ * ++ * Copyright (C) 2013 Kosagi ++ * http://www.kosagi.com ++ * ++ * Author: Sean Cross xobs@kosagi.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#include <linux/clk.h> ++#include <linux/delay.h> ++#include <linux/gpio.h> ++#include <linux/kernel.h> ++#include <linux/mfd/syscon.h> ++#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h> ++#include <linux/module.h> ++#include <linux/of_gpio.h> ++#include <linux/pci.h> ++#include <linux/platform_device.h> ++#include <linux/regmap.h> ++#include <linux/resource.h> ++#include <linux/signal.h> ++#include <linux/types.h> ++ ++#include "pcie-designware.h" ++ ++#define to_imx6_pcie(x) container_of(x, struct imx6_pcie, pp) ++ ++struct imx6_pcie { ++ int reset_gpio; ++ int power_on_gpio; ++ int wake_up_gpio; ++ int disable_gpio; ++ struct clk *lvds_gate; ++ struct clk *sata_ref_100m; ++ struct clk *pcie_ref_125m; ++ struct clk *pcie_axi; ++ struct pcie_port pp; ++ struct regmap *iomuxc_gpr; ++ void __iomem *mem_base; ++}; ++ ++/* PCIe Port Logic registers (memory-mapped) */ ++#define PL_OFFSET 0x700 ++#define PCIE_PHY_DEBUG_R0 (PL_OFFSET + 0x28) ++#define PCIE_PHY_DEBUG_R1 (PL_OFFSET + 0x2c) ++ ++#define PCIE_PHY_CTRL (PL_OFFSET + 0x114) ++#define PCIE_PHY_CTRL_DATA_LOC 0 ++#define PCIE_PHY_CTRL_CAP_ADR_LOC 16 ++#define PCIE_PHY_CTRL_CAP_DAT_LOC 17 ++#define PCIE_PHY_CTRL_WR_LOC 18 ++#define PCIE_PHY_CTRL_RD_LOC 19 ++ ++#define PCIE_PHY_STAT (PL_OFFSET + 0x110) ++#define PCIE_PHY_STAT_ACK_LOC 16 ++ ++/* PHY registers (not memory-mapped) */ ++#define PCIE_PHY_RX_ASIC_OUT 0x100D ++ ++#define PHY_RX_OVRD_IN_LO 0x1005 ++#define PHY_RX_OVRD_IN_LO_RX_DATA_EN (1 << 5) ++#define PHY_RX_OVRD_IN_LO_RX_PLL_EN (1 << 3) ++ ++static int pcie_phy_poll_ack(void __iomem *dbi_base, int exp_val) ++{ ++ u32 val; ++ u32 max_iterations = 10; ++ u32 wait_counter = 0; ++ ++ do { ++ val = readl(dbi_base + PCIE_PHY_STAT); ++ val = (val >> PCIE_PHY_STAT_ACK_LOC) & 0x1; ++ wait_counter++; ++ ++ if (val == exp_val) ++ return 0; ++ ++ udelay(1); ++ } while (wait_counter < max_iterations); ++ ++ return -ETIMEDOUT; ++} ++ ++static int pcie_phy_wait_ack(void __iomem *dbi_base, int addr) ++{ ++ u32 val; ++ int ret; ++ ++ val = addr << PCIE_PHY_CTRL_DATA_LOC; ++ writel(val, dbi_base + PCIE_PHY_CTRL); ++ ++ val |= (0x1 << PCIE_PHY_CTRL_CAP_ADR_LOC); ++ writel(val, dbi_base + PCIE_PHY_CTRL); ++ ++ ret = pcie_phy_poll_ack(dbi_base, 1); ++ if (ret) ++ return ret; ++ ++ val = addr << PCIE_PHY_CTRL_DATA_LOC; ++ writel(val, dbi_base + PCIE_PHY_CTRL); ++ ++ ret = pcie_phy_poll_ack(dbi_base, 0); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++/* Read from the 16-bit PCIe PHY control registers (not memory-mapped) */ ++static int pcie_phy_read(void __iomem *dbi_base, int addr , int *data) ++{ ++ u32 val, phy_ctl; ++ int ret; ++ ++ ret = pcie_phy_wait_ack(dbi_base, addr); ++ if (ret) ++ return ret; ++ ++ /* assert Read signal */ ++ phy_ctl = 0x1 << PCIE_PHY_CTRL_RD_LOC; ++ writel(phy_ctl, dbi_base + PCIE_PHY_CTRL); ++ ++ ret = pcie_phy_poll_ack(dbi_base, 1); ++ if (ret) ++ return ret; ++ ++ val = readl(dbi_base + PCIE_PHY_STAT); ++ *data = val & 0xffff; ++ ++ /* deassert Read signal */ ++ writel(0x00, dbi_base + PCIE_PHY_CTRL); ++ ++ ret = pcie_phy_poll_ack(dbi_base, 0); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++static int pcie_phy_write(void __iomem *dbi_base, int addr, int data) ++{ ++ u32 var; ++ int ret; ++ ++ /* write addr */ ++ /* cap addr */ ++ ret = pcie_phy_wait_ack(dbi_base, addr); ++ if (ret) ++ return ret; ++ ++ var = data << PCIE_PHY_CTRL_DATA_LOC; ++ writel(var, dbi_base + PCIE_PHY_CTRL); ++ ++ /* capture data */ ++ var |= (0x1 << PCIE_PHY_CTRL_CAP_DAT_LOC); ++ writel(var, dbi_base + PCIE_PHY_CTRL); ++ ++ ret = pcie_phy_poll_ack(dbi_base, 1); ++ if (ret) ++ return ret; ++ ++ /* deassert cap data */ ++ var = data << PCIE_PHY_CTRL_DATA_LOC; ++ writel(var, dbi_base + PCIE_PHY_CTRL); ++ ++ /* wait for ack de-assertion */ ++ ret = pcie_phy_poll_ack(dbi_base, 0); ++ if (ret) ++ return ret; ++ ++ /* assert wr signal */ ++ var = 0x1 << PCIE_PHY_CTRL_WR_LOC; ++ writel(var, dbi_base + PCIE_PHY_CTRL); ++ ++ /* wait for ack */ ++ ret = pcie_phy_poll_ack(dbi_base, 1); ++ if (ret) ++ return ret; ++ ++ /* deassert wr signal */ ++ var = data << PCIE_PHY_CTRL_DATA_LOC; ++ writel(var, dbi_base + PCIE_PHY_CTRL); ++ ++ /* wait for ack de-assertion */ ++ ret = pcie_phy_poll_ack(dbi_base, 0); ++ if (ret) ++ return ret; ++ ++ writel(0x0, dbi_base + PCIE_PHY_CTRL); ++ ++ return 0; ++} ++ ++/* Added for PCI abort handling */ ++static int imx6q_pcie_abort_handler(unsigned long addr, ++ unsigned int fsr, struct pt_regs *regs) ++{ ++ /* ++ * If it was an imprecise abort, then we need to correct the ++ * return address to be _after_ the instruction. ++ */ ++ if (fsr & (1 << 10)) ++ regs->ARM_pc += 4; ++ return 0; ++} ++ ++static int imx6_pcie_assert_core_reset(struct pcie_port *pp) ++{ ++ struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp); ++ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, ++ IMX6Q_GPR1_PCIE_TEST_PD, 1 << 18); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, ++ IMX6Q_GPR12_PCIE_CTL_2, 1 << 10); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, ++ IMX6Q_GPR1_PCIE_REF_CLK_EN, 0 << 16); ++ ++ gpio_set_value(imx6_pcie->reset_gpio, 0); ++ msleep(100); ++ gpio_set_value(imx6_pcie->reset_gpio, 1); ++ ++ return 0; ++} ++ ++static int imx6_pcie_deassert_core_reset(struct pcie_port *pp) ++{ ++ struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp); ++ int ret; ++ ++ if (gpio_is_valid(imx6_pcie->power_on_gpio)) ++ gpio_set_value(imx6_pcie->power_on_gpio, 1); ++ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, ++ IMX6Q_GPR1_PCIE_TEST_PD, 0 << 18); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, ++ IMX6Q_GPR1_PCIE_REF_CLK_EN, 1 << 16); ++ ++ ret = clk_prepare_enable(imx6_pcie->sata_ref_100m); ++ if (ret) { ++ dev_err(pp->dev, "unable to enable sata_ref_100m\n"); ++ goto err_sata_ref; ++ } ++ ++ ret = clk_prepare_enable(imx6_pcie->pcie_ref_125m); ++ if (ret) { ++ dev_err(pp->dev, "unable to enable pcie_ref_125m\n"); ++ goto err_pcie_ref; ++ } ++ ++ ret = clk_prepare_enable(imx6_pcie->lvds_gate); ++ if (ret) { ++ dev_err(pp->dev, "unable to enable lvds_gate\n"); ++ goto err_lvds_gate; ++ } ++ ++ ret = clk_prepare_enable(imx6_pcie->pcie_axi); ++ if (ret) { ++ dev_err(pp->dev, "unable to enable pcie_axi\n"); ++ goto err_pcie_axi; ++ } ++ ++ /* allow the clocks to stabilize */ ++ usleep_range(200, 500); ++ ++ return 0; ++ ++err_pcie_axi: ++ clk_disable_unprepare(imx6_pcie->lvds_gate); ++err_lvds_gate: ++ clk_disable_unprepare(imx6_pcie->pcie_ref_125m); ++err_pcie_ref: ++ clk_disable_unprepare(imx6_pcie->sata_ref_100m); ++err_sata_ref: ++ return ret; ++ ++} ++ ++static void imx6_pcie_init_phy(struct pcie_port *pp) ++{ ++ struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp); ++ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, ++ IMX6Q_GPR12_PCIE_CTL_2, 0 << 10); ++ ++ /* configure constant input signal to the pcie ctrl and phy */ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, ++ IMX6Q_GPR12_DEVICE_TYPE, PCI_EXP_TYPE_ROOT_PORT << 12); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, ++ IMX6Q_GPR12_LOS_LEVEL, 9 << 4); ++ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, ++ IMX6Q_GPR8_TX_DEEMPH_GEN1, 0 << 0); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, ++ IMX6Q_GPR8_TX_DEEMPH_GEN2_3P5DB, 0 << 6); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, ++ IMX6Q_GPR8_TX_DEEMPH_GEN2_6DB, 20 << 12); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, ++ IMX6Q_GPR8_TX_SWING_FULL, 127 << 18); ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, ++ IMX6Q_GPR8_TX_SWING_LOW, 127 << 25); ++} ++ ++static void imx6_pcie_host_init(struct pcie_port *pp) ++{ ++ int count = 0; ++ struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp); ++ ++ imx6_pcie_assert_core_reset(pp); ++ ++ imx6_pcie_init_phy(pp); ++ ++ imx6_pcie_deassert_core_reset(pp); ++ ++ dw_pcie_setup_rc(pp); ++ ++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, ++ IMX6Q_GPR12_PCIE_CTL_2, 1 << 10); ++ ++ while (!dw_pcie_link_up(pp)) { ++ usleep_range(100, 1000); ++ count++; ++ if (count >= 10) { ++ dev_err(pp->dev, "phy link never came up\n"); ++ dev_dbg(pp->dev, ++ "DEBUG_R0: 0x%08x, DEBUG_R1: 0x%08x\n", ++ readl(pp->dbi_base + PCIE_PHY_DEBUG_R0), ++ readl(pp->dbi_base + PCIE_PHY_DEBUG_R1)); ++ break; ++ } ++ } ++ ++ return; ++} ++ ++static int imx6_pcie_link_up(struct pcie_port *pp) ++{ ++ u32 rc, ltssm, rx_valid, temp; ++ ++ /* link is debug bit 36, debug register 1 starts at bit 32 */ ++ rc = readl(pp->dbi_base + PCIE_PHY_DEBUG_R1) & (0x1 << (36 - 32)); ++ if (rc) ++ return -EAGAIN; ++ ++ /* ++ * From L0, initiate MAC entry to gen2 if EP/RC supports gen2. ++ * Wait 2ms (LTSSM timeout is 24ms, PHY lock is ~5us in gen2). ++ * If (MAC/LTSSM.state == Recovery.RcvrLock) ++ * && (PHY/rx_valid==0) then pulse PHY/rx_reset. Transition ++ * to gen2 is stuck ++ */ ++ pcie_phy_read(pp->dbi_base, PCIE_PHY_RX_ASIC_OUT, &rx_valid); ++ ltssm = readl(pp->dbi_base + PCIE_PHY_DEBUG_R0) & 0x3F; ++ ++ if (rx_valid & 0x01) ++ return 0; ++ ++ if (ltssm != 0x0d) ++ return 0; ++ ++ dev_err(pp->dev, "transition to gen2 is stuck, reset PHY!\n"); ++ ++ pcie_phy_read(pp->dbi_base, ++ PHY_RX_OVRD_IN_LO, &temp); ++ temp |= (PHY_RX_OVRD_IN_LO_RX_DATA_EN ++ | PHY_RX_OVRD_IN_LO_RX_PLL_EN); ++ pcie_phy_write(pp->dbi_base, ++ PHY_RX_OVRD_IN_LO, temp); ++ ++ usleep_range(2000, 3000); ++ ++ pcie_phy_read(pp->dbi_base, ++ PHY_RX_OVRD_IN_LO, &temp); ++ temp &= ~(PHY_RX_OVRD_IN_LO_RX_DATA_EN ++ | PHY_RX_OVRD_IN_LO_RX_PLL_EN); ++ pcie_phy_write(pp->dbi_base, ++ PHY_RX_OVRD_IN_LO, temp); ++ ++ return 0; ++} ++ ++static struct pcie_host_ops imx6_pcie_host_ops = { ++ .link_up = imx6_pcie_link_up, ++ .host_init = imx6_pcie_host_init, ++}; ++ ++static int imx6_add_pcie_port(struct pcie_port *pp, ++ struct platform_device *pdev) ++{ ++ int ret; ++ ++ pp->irq = platform_get_irq(pdev, 0); ++ if (!pp->irq) { ++ dev_err(&pdev->dev, "failed to get irq\n"); ++ return -ENODEV; ++ } ++ ++ pp->root_bus_nr = -1; ++ pp->ops = &imx6_pcie_host_ops; ++ ++ spin_lock_init(&pp->conf_lock); ++ ret = dw_pcie_host_init(pp); ++ if (ret) { ++ dev_err(&pdev->dev, "failed to initialize host\n"); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int __init imx6_pcie_probe(struct platform_device *pdev) ++{ ++ struct imx6_pcie *imx6_pcie; ++ struct pcie_port *pp; ++ struct device_node *np = pdev->dev.of_node; ++ struct resource *dbi_base; ++ int ret; ++ ++ imx6_pcie = devm_kzalloc(&pdev->dev, sizeof(*imx6_pcie), GFP_KERNEL); ++ if (!imx6_pcie) ++ return -ENOMEM; ++ ++ pp = &imx6_pcie->pp; ++ pp->dev = &pdev->dev; ++ ++ /* Added for PCI abort handling */ ++ hook_fault_code(16 + 6, imx6q_pcie_abort_handler, SIGBUS, 0, ++ "imprecise external abort"); ++ ++ dbi_base = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ if (!dbi_base) { ++ dev_err(&pdev->dev, "dbi_base memory resource not found\n"); ++ return -ENODEV; ++ } ++ ++ pp->dbi_base = devm_ioremap_resource(&pdev->dev, dbi_base); ++ if (IS_ERR(pp->dbi_base)) { ++ dev_err(&pdev->dev, "unable to remap dbi_base\n"); ++ ret = PTR_ERR(pp->dbi_base); ++ goto err; ++ } ++ ++ /* Fetch GPIOs */ ++ imx6_pcie->reset_gpio = of_get_named_gpio(np, "reset-gpio", 0); ++ if (!gpio_is_valid(imx6_pcie->reset_gpio)) { ++ dev_err(&pdev->dev, "no reset-gpio defined\n"); ++ ret = -ENODEV; ++ } ++ ret = devm_gpio_request_one(&pdev->dev, ++ imx6_pcie->reset_gpio, ++ GPIOF_OUT_INIT_LOW, ++ "PCIe reset"); ++ if (ret) { ++ dev_err(&pdev->dev, "unable to get reset gpio\n"); ++ goto err; ++ } ++ ++ imx6_pcie->power_on_gpio = of_get_named_gpio(np, "power-on-gpio", 0); ++ if (gpio_is_valid(imx6_pcie->power_on_gpio)) { ++ ret = devm_gpio_request_one(&pdev->dev, ++ imx6_pcie->power_on_gpio, ++ GPIOF_OUT_INIT_LOW, ++ "PCIe power enable"); ++ if (ret) { ++ dev_err(&pdev->dev, "unable to get power-on gpio\n"); ++ goto err; ++ } ++ } ++ ++ imx6_pcie->wake_up_gpio = of_get_named_gpio(np, "wake-up-gpio", 0); ++ if (gpio_is_valid(imx6_pcie->wake_up_gpio)) { ++ ret = devm_gpio_request_one(&pdev->dev, ++ imx6_pcie->wake_up_gpio, ++ GPIOF_IN, ++ "PCIe wake up"); ++ if (ret) { ++ dev_err(&pdev->dev, "unable to get wake-up gpio\n"); ++ goto err; ++ } ++ } ++ ++ imx6_pcie->disable_gpio = of_get_named_gpio(np, "disable-gpio", 0); ++ if (gpio_is_valid(imx6_pcie->disable_gpio)) { ++ ret = devm_gpio_request_one(&pdev->dev, ++ imx6_pcie->disable_gpio, ++ GPIOF_OUT_INIT_HIGH, ++ "PCIe disable endpoint"); ++ if (ret) { ++ dev_err(&pdev->dev, "unable to get disable-ep gpio\n"); ++ goto err; ++ } ++ } ++ ++ /* Fetch clocks */ ++ imx6_pcie->lvds_gate = devm_clk_get(&pdev->dev, "lvds_gate"); ++ if (IS_ERR(imx6_pcie->lvds_gate)) { ++ dev_err(&pdev->dev, ++ "lvds_gate clock select missing or invalid\n"); ++ ret = PTR_ERR(imx6_pcie->lvds_gate); ++ goto err; ++ } ++ ++ imx6_pcie->sata_ref_100m = devm_clk_get(&pdev->dev, "sata_ref_100m"); ++ if (IS_ERR(imx6_pcie->sata_ref_100m)) { ++ dev_err(&pdev->dev, ++ "sata_ref_100m clock source missing or invalid\n"); ++ ret = PTR_ERR(imx6_pcie->sata_ref_100m); ++ goto err; ++ } ++ ++ imx6_pcie->pcie_ref_125m = devm_clk_get(&pdev->dev, "pcie_ref_125m"); ++ if (IS_ERR(imx6_pcie->pcie_ref_125m)) { ++ dev_err(&pdev->dev, ++ "pcie_ref_125m clock source missing or invalid\n"); ++ ret = PTR_ERR(imx6_pcie->pcie_ref_125m); ++ goto err; ++ } ++ ++ imx6_pcie->pcie_axi = devm_clk_get(&pdev->dev, "pcie_axi"); ++ if (IS_ERR(imx6_pcie->pcie_axi)) { ++ dev_err(&pdev->dev, ++ "pcie_axi clock source missing or invalid\n"); ++ ret = PTR_ERR(imx6_pcie->pcie_axi); ++ goto err; ++ } ++ ++ /* Grab GPR config register range */ ++ imx6_pcie->iomuxc_gpr = ++ syscon_regmap_lookup_by_compatible("fsl,imx6q-iomuxc-gpr"); ++ if (IS_ERR(imx6_pcie->iomuxc_gpr)) { ++ dev_err(&pdev->dev, "unable to find iomuxc registers\n"); ++ ret = PTR_ERR(imx6_pcie->iomuxc_gpr); ++ goto err; ++ } ++ ++ ret = imx6_add_pcie_port(pp, pdev); ++ if (ret < 0) ++ goto err; ++ ++ platform_set_drvdata(pdev, imx6_pcie); ++ return 0; ++ ++err: ++ return ret; ++} ++ ++static const struct of_device_id imx6_pcie_of_match[] = { ++ { .compatible = "fsl,imx6q-pcie", }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, imx6_pcie_of_match); ++ ++static struct platform_driver imx6_pcie_driver = { ++ .driver = { ++ .name = "imx6q-pcie", ++ .owner = THIS_MODULE, ++ .of_match_table = of_match_ptr(imx6_pcie_of_match), ++ }, ++}; ++ ++/* Freescale PCIe driver does not allow module unload */ ++ ++static int __init imx6_pcie_init(void) ++{ ++ return platform_driver_probe(&imx6_pcie_driver, imx6_pcie_probe); ++} ++module_init(imx6_pcie_init); ++ ++MODULE_AUTHOR("Sean Cross xobs@kosagi.com"); ++MODULE_DESCRIPTION("Freescale i.MX6 PCIe host controller driver"); ++MODULE_LICENSE("GPL v2"); diff --git a/src/patches/kernel/wandboard/imx/0016-imx6-pci-tweaks.patch b/src/patches/kernel/wandboard/imx/0016-imx6-pci-tweaks.patch new file mode 100644 index 0000000..eda007e --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0016-imx6-pci-tweaks.patch @@ -0,0 +1,24 @@ +--- a/drivers/pci/host/pci-imx6.c ++++ b/drivers/pci/host/pci-imx6.c +@@ -200,12 +200,6 @@ static int pcie_phy_write(void __iomem * + static int imx6q_pcie_abort_handler(unsigned long addr, + unsigned int fsr, struct pt_regs *regs) + { +- /* +- * If it was an imprecise abort, then we need to correct the +- * return address to be _after_ the instruction. +- */ +- if (fsr & (1 << 10)) +- regs->ARM_pc += 4; + return 0; + } + +@@ -322,7 +316,7 @@ static void imx6_pcie_host_init(struct p + IMX6Q_GPR12_PCIE_CTL_2, 1 << 10); + + while (!dw_pcie_link_up(pp)) { +- usleep_range(100, 1000); ++ usleep_range(2000, 3000); + count++; + if (count >= 10) { + dev_err(pp->dev, "phy link never came up\n"); diff --git a/src/patches/kernel/wandboard/imx/0017-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch b/src/patches/kernel/wandboard/imx/0017-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch new file mode 100644 index 0000000..3f1b6eb --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0017-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch @@ -0,0 +1,70 @@ +From: Sean Cross xobs@kosagi.com +Subject: [PATCH 1/3] ARM: imx: Add LVDS general-purpose clocks to i.MX6Q + +The i.MX6 has two general-purpose LVDS clocks that can be driven +from a variety of sources. This patch adds a mux and a gate for +both of these clocks. + +Signed-off-by: Sean Cross xobs@kosagi.com +Signed-off-by: Shawn Guo shawn.guo@linaro.org +--- + .../devicetree/bindings/clock/imx6q-clock.txt | 4 ++++ + arch/arm/mach-imx/clk-imx6q.c | 20 +++++++++++++++++++- + 2 files changed, 23 insertions(+), 1 deletion(-) + +--- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt ++++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt +@@ -208,6 +208,10 @@ clocks and IDs. + pll4_post_div 193 + pll5_post_div 194 + pll5_video_div 195 ++ lvds1_sel 204 ++ lvds2_sel 205 ++ lvds1_gate 206 ++ lvds2_gate 207 + + Examples: + +--- a/arch/arm/mach-imx/clk-imx6q.c ++++ b/arch/arm/mach-imx/clk-imx6q.c +@@ -205,6 +205,11 @@ static const char *vpu_axi_sels[] = { "a + static const char *cko1_sels[] = { "pll3_usb_otg", "pll2_bus", "pll1_sys", "pll5_video_div", + "dummy", "axi", "enfc", "ipu1_di0", "ipu1_di1", "ipu2_di0", + "ipu2_di1", "ahb", "ipg", "ipg_per", "ckil", "pll4_post_div", }; ++static const char *lvds_sels[] = { ++ "dummy", "dummy", "dummy", "dummy", "dummy", "dummy", ++ "pll4_audio", "pll5_video", "pll8_mlb", "enet_ref", ++ "pcie_ref", "sata_ref", ++}; + + enum mx6q_clks { + dummy, ckil, ckih, osc, pll2_pfd0_352m, pll2_pfd1_594m, pll2_pfd2_396m, +@@ -238,7 +243,8 @@ enum mx6q_clks { + pll4_audio, pll5_video, pll8_mlb, pll7_usb_host, pll6_enet, ssi1_ipg, + ssi2_ipg, ssi3_ipg, rom, usbphy1, usbphy2, ldb_di0_div_3_5, ldb_di1_div_3_5, + sata_ref, sata_ref_100m, pcie_ref, pcie_ref_125m, enet_ref, usbphy1_gate, +- usbphy2_gate, pll4_post_div, pll5_post_div, pll5_video_div, clk_max ++ usbphy2_gate, pll4_post_div, pll5_post_div, pll5_video_div, ++ lvds1_sel, lvds2_sel, lvds1_gate, lvds2_gate, clk_max + }; + + static struct clk *clk[clk_max]; +@@ -340,6 +346,18 @@ int __init mx6q_clocks_init(void) + base + 0xe0, 0, 2, 0, clk_enet_ref_table, + &imx_ccm_lock); + ++ clk[lvds1_sel] = imx_clk_mux("lvds1_sel", base + 0x160, 0, 5, lvds_sels, ARRAY_SIZE(lvds_sels)); ++ clk[lvds2_sel] = imx_clk_mux("lvds2_sel", base + 0x160, 5, 5, lvds_sels, ARRAY_SIZE(lvds_sels)); ++ ++ /* ++ * lvds1_gate and lvds2_gate are pseudo-gates. Both can be ++ * independently configured as clock inputs or outputs. We treat ++ * the "output_enable" bit as a gate, even though it's really just ++ * enabling clock output. ++ */ ++ clk[lvds1_gate] = imx_clk_gate("lvds1_gate", "dummy", base + 0x160, 10); ++ clk[lvds2_gate] = imx_clk_gate("lvds2_gate", "dummy", base + 0x160, 11); ++ + /* name parent_name reg idx */ + clk[pll2_pfd0_352m] = imx_clk_pfd("pll2_pfd0_352m", "pll2_bus", base + 0x100, 0); + clk[pll2_pfd1_594m] = imx_clk_pfd("pll2_pfd1_594m", "pll2_bus", base + 0x100, 1); diff --git a/src/patches/kernel/wandboard/imx/0018-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch b/src/patches/kernel/wandboard/imx/0018-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch new file mode 100644 index 0000000..25f207a --- /dev/null +++ b/src/patches/kernel/wandboard/imx/0018-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch @@ -0,0 +1,38 @@ +From 4f6723e8ff497e35c8f2fb20886fccc533c58cdb Mon Sep 17 00:00:00 2001 +From: Sean Cross xobs@kosagi.com +Date: Thu, 26 Sep 2013 10:45:35 +0800 +Subject: [PATCH] ARM: imx6q: clock and Kconfig update for PCIe support + +Update imx6q clock initialization and Kconfig for PCIe support. + +Signed-off-by: Sean Cross xobs@kosagi.com +Signed-off-by: Shawn Guo shawn.guo@linaro.org +--- + arch/arm/mach-imx/Kconfig | 2 ++ + arch/arm/mach-imx/clk-imx6q.c | 4 ++++ + 2 files changed, 6 insertions(+) + +--- a/arch/arm/mach-imx/Kconfig ++++ b/arch/arm/mach-imx/Kconfig +@@ -806,6 +806,8 @@ config SOC_IMX6Q + select HAVE_IMX_SRC + select HAVE_SMP + select MFD_SYSCON ++ select MIGHT_HAVE_PCI ++ select PCI_DOMAINS if PCI + select PINCTRL + select PINCTRL_IMX6Q + select PL310_ERRATA_588369 if CACHE_PL310 +--- a/arch/arm/mach-imx/clk-imx6q.c ++++ b/arch/arm/mach-imx/clk-imx6q.c +@@ -586,6 +586,10 @@ int __init mx6q_clocks_init(void) + clk_prepare_enable(clk[usbphy2_gate]); + } + ++ /* All existing boards with PCIe use LVDS1 */ ++ if (IS_ENABLED(CONFIG_PCI_IMX6)) ++ clk_set_parent(clk[lvds1_sel], clk[sata_ref]); ++ + /* Set initial power mode */ + imx6q_set_lpm(WAIT_CLOCKED); + diff --git a/src/patches/linux-2.6-silence-acpi-blacklist.patch b/src/patches/linux-2.6-silence-acpi-blacklist.patch new file mode 100644 index 0000000..c5997bb --- /dev/null +++ b/src/patches/linux-2.6-silence-acpi-blacklist.patch @@ -0,0 +1,25 @@ +diff -up linux-2.6.26.noarch/drivers/acpi/blacklist.c.jx linux-2.6.26.noarch/drivers/acpi/blacklist.c +--- linux-2.6.26.noarch/drivers/acpi/blacklist.c.jx 2008-07-13 17:51:29.000000000 -0400 ++++ linux-2.6.26.noarch/drivers/acpi/blacklist.c 2008-08-12 14:21:39.000000000 -0400 +@@ -81,18 +81,18 @@ static int __init blacklist_by_year(void + + /* Doesn't exist? Likely an old system */ + if (!dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL)) { +- printk(KERN_ERR PREFIX "no DMI BIOS year, " ++ printk(KERN_INFO PREFIX "no DMI BIOS year, " + "acpi=force is required to enable ACPI\n" ); + return 1; + } + /* 0? Likely a buggy new BIOS */ + if (year == 0) { +- printk(KERN_ERR PREFIX "DMI BIOS year==0, " ++ printk(KERN_INFO PREFIX "DMI BIOS year==0, " + "assuming ACPI-capable machine\n" ); + return 0; + } + if (year < CONFIG_ACPI_BLACKLIST_YEAR) { +- printk(KERN_ERR PREFIX "BIOS age (%d) fails cutoff (%d), " ++ printk(KERN_INFO PREFIX "BIOS age (%d) fails cutoff (%d), " + "acpi=force is required to enable ACPI\n", + year, CONFIG_ACPI_BLACKLIST_YEAR); + return 1; diff --git a/src/patches/linux-2.6.30-no-pcspkr-modalias.patch b/src/patches/linux-2.6.30-no-pcspkr-modalias.patch new file mode 100644 index 0000000..439269c --- /dev/null +++ b/src/patches/linux-2.6.30-no-pcspkr-modalias.patch @@ -0,0 +1,12 @@ +diff --git a/drivers/input/misc/pcspkr.c b/drivers/input/misc/pcspkr.c +index 34f4d2e..3e40c70 100644 +--- a/drivers/input/misc/pcspkr.c ++++ b/drivers/input/misc/pcspkr.c +@@ -24,7 +24,6 @@ + MODULE_AUTHOR("Vojtech Pavlik vojtech@ucw.cz"); + MODULE_DESCRIPTION("PC Speaker beeper driver"); + MODULE_LICENSE("GPL"); +-MODULE_ALIAS("platform:pcspkr"); + + static int pcspkr_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) + { diff --git a/src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch b/src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch new file mode 100644 index 0000000..7393760 --- /dev/null +++ b/src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch @@ -0,0 +1,1039 @@ +diff -Naur linux-3.10.9.org/include/linux/netfilter_ipv4/ipt_ipp2p.h linux-3.10.9/include/linux/netfilter_ipv4/ipt_ipp2p.h +--- linux-3.10.9.org/include/linux/netfilter_ipv4/ipt_ipp2p.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.9/include/linux/netfilter_ipv4/ipt_ipp2p.h 2013-08-25 16:00:53.398088168 +0200 +@@ -0,0 +1,31 @@ ++#ifndef __IPT_IPP2P_H ++#define __IPT_IPP2P_H ++#define IPP2P_VERSION "0.8.2-ipfire" ++ ++struct ipt_p2p_info { ++ int cmd; ++ int debug; ++}; ++ ++#endif //__IPT_IPP2P_H ++ ++#define SHORT_HAND_IPP2P 1 /* --ipp2p switch*/ ++//#define SHORT_HAND_DATA 4 /* --ipp2p-data switch*/ ++#define SHORT_HAND_NONE 5 /* no short hand*/ ++ ++#define IPP2P_EDK (1 << 1) ++#define IPP2P_DATA_KAZAA (1 << 2) ++#define IPP2P_DATA_EDK (1 << 3) ++#define IPP2P_DATA_DC (1 << 4) ++#define IPP2P_DC (1 << 5) ++#define IPP2P_DATA_GNU (1 << 6) ++#define IPP2P_GNU (1 << 7) ++#define IPP2P_KAZAA (1 << 8) ++#define IPP2P_BIT (1 << 9) ++#define IPP2P_APPLE (1 << 10) ++#define IPP2P_SOUL (1 << 11) ++#define IPP2P_WINMX (1 << 12) ++#define IPP2P_ARES (1 << 13) ++#define IPP2P_MUTE (1 << 14) ++#define IPP2P_WASTE (1 << 15) ++#define IPP2P_XDCC (1 << 16) +diff -Naur linux-3.10.9.org/net/ipv4/netfilter/ipt_ipp2p.c linux-3.10.9/net/ipv4/netfilter/ipt_ipp2p.c +--- linux-3.10.9.org/net/ipv4/netfilter/ipt_ipp2p.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.9/net/ipv4/netfilter/ipt_ipp2p.c 2013-08-25 16:00:53.398088168 +0200 +@@ -0,0 +1,970 @@ ++#if defined(MODVERSIONS) ++#include <linux/modversions.h> ++#endif ++#include <linux/module.h> ++#include <linux/version.h> ++#include <linux/netfilter_ipv4/ip_tables.h> ++#include <linux/netfilter_ipv4/ipt_ipp2p.h> ++#include <net/tcp.h> ++#include <net/udp.h> ++ ++#define get_u8(X,O) (*(__u8 *)(X + O)) ++#define get_u16(X,O) (*(__u16 *)(X + O)) ++#define get_u32(X,O) (*(__u32 *)(X + O)) ++ ++MODULE_AUTHOR("Eicke Friedrich/Klaus Degner ipp2p@ipp2p.org"); ++MODULE_DESCRIPTION("An extension to iptables to identify P2P traffic."); ++MODULE_LICENSE("GPL"); ++ ++ ++/*Search for UDP eDonkey/eMule/Kad commands*/ ++int ++udp_search_edk (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ t += 8; ++ ++ switch (t[0]) { ++ case 0xe3: ++ { /*edonkey*/ ++ switch (t[1]) ++ { ++ /* client -> server status request */ ++ case 0x96: ++ if (packet_len == 14) return ((IPP2P_EDK * 100) + 50); ++ break; ++ /* server -> client status request */ ++ case 0x97: if (packet_len == 42) return ((IPP2P_EDK * 100) + 51); ++ break; ++ /* server description request */ ++ /* e3 2a ff f0 .. | size == 6 */ ++ case 0xa2: if ( (packet_len == 14) && ( get_u16(t,2) == __constant_htons(0xfff0) ) ) return ((IPP2P_EDK * 100) + 52); ++ break; ++ /* server description response */ ++ /* e3 a3 ff f0 .. | size > 40 && size < 200 */ ++ //case 0xa3: return ((IPP2P_EDK * 100) + 53); ++ // break; ++ case 0x9a: if (packet_len==26) return ((IPP2P_EDK * 100) + 54); ++ break; ++ ++ case 0x92: if (packet_len==18) return ((IPP2P_EDK * 100) + 55); ++ break; ++ } ++ break; ++ } ++ case 0xe4: ++ { ++ switch (t[1]) ++ { ++ /* e4 20 .. | size == 43 */ ++ case 0x20: if ((packet_len == 43) && (t[2] != 0x00) && (t[34] != 0x00)) return ((IPP2P_EDK * 100) + 60); ++ break; ++ /* e4 00 .. 00 | size == 35 ? */ ++ case 0x00: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 61); ++ break; ++ /* e4 10 .. 00 | size == 35 ? */ ++ case 0x10: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 62); ++ break; ++ /* e4 18 .. 00 | size == 35 ? */ ++ case 0x18: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 63); ++ break; ++ /* e4 52 .. | size = 44 */ ++ case 0x52: if (packet_len == 44 ) return ((IPP2P_EDK * 100) + 64); ++ break; ++ /* e4 58 .. | size == 6 */ ++ case 0x58: if (packet_len == 14 ) return ((IPP2P_EDK * 100) + 65); ++ break; ++ /* e4 59 .. | size == 2 */ ++ case 0x59: if (packet_len == 10 )return ((IPP2P_EDK * 100) + 66); ++ break; ++ /* e4 28 .. | packet_len == 52,77,102,127... */ ++ case 0x28: if (((packet_len-52) % 25) == 0) return ((IPP2P_EDK * 100) + 67); ++ break; ++ /* e4 50 xx xx | size == 4 */ ++ case 0x50: if (packet_len == 12) return ((IPP2P_EDK * 100) + 68); ++ break; ++ /* e4 40 xx xx | size == 48 */ ++ case 0x40: if (packet_len == 56) return ((IPP2P_EDK * 100) + 69); ++ break; ++ } ++ break; ++ } ++ } /* end of switch (t[0]) */ ++ return 0; ++}/*udp_search_edk*/ ++ ++ ++/*Search for UDP Gnutella commands*/ ++int ++udp_search_gnu (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ t += 8; ++ ++ if (memcmp(t, "GND", 3) == 0) return ((IPP2P_GNU * 100) + 51); ++ if (memcmp(t, "GNUTELLA ", 9) == 0) return ((IPP2P_GNU * 100) + 52); ++ return 0; ++}/*udp_search_gnu*/ ++ ++ ++/*Search for UDP KaZaA commands*/ ++int ++udp_search_kazaa (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ ++ if (t[packet_len-1] == 0x00){ ++ t += (packet_len - 6); ++ if (memcmp(t, "KaZaA", 5) == 0) return (IPP2P_KAZAA * 100 +50); ++ } ++ ++ return 0; ++}/*udp_search_kazaa*/ ++ ++/*Search for UDP DirectConnect commands*/ ++int ++udp_search_directconnect (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ if ((*(t + 8) == 0x24) && (*(t + packet_len - 1) == 0x7c)) { ++ t+=8; ++ if (memcmp(t, "SR ", 3) == 0) return ((IPP2P_DC * 100) + 60); ++ if (memcmp(t, "Ping ", 5) == 0) return ((IPP2P_DC * 100) + 61); ++ } ++ return 0; ++}/*udp_search_directconnect*/ ++ ++ ++ ++/*Search for UDP BitTorrent commands*/ ++int ++udp_search_bit (unsigned char *haystack, int packet_len) ++{ ++ switch(packet_len) ++ { ++ case 24: ++ /* ^ 00 00 04 17 27 10 19 80 */ ++ if ((ntohl(get_u32(haystack, 8)) == 0x00000417) && (ntohl(get_u32(haystack, 12)) == 0x27101980)) ++ return (IPP2P_BIT * 100 + 50); ++ break; ++ case 44: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000400) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 51); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000400)) ++ return (IPP2P_BIT * 100 + 61); ++ break; ++ case 65: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000404) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 52); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000404)) ++ return (IPP2P_BIT * 100 + 62); ++ break; ++ case 67: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000406) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 53); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000406)) ++ return (IPP2P_BIT * 100 + 63); ++ break; ++ case 211: ++ if (get_u32(haystack, 8) == __constant_htonl(0x00000405)) ++ return (IPP2P_BIT * 100 + 54); ++ break; ++ case 29: ++ if ((get_u32(haystack, 8) == __constant_htonl(0x00000401))) ++ return (IPP2P_BIT * 100 + 55); ++ break; ++ case 52: ++ if (get_u32(haystack,8) == __constant_htonl(0x00000827) && ++ get_u32(haystack,12) == __constant_htonl(0x37502950)) ++ return (IPP2P_BIT * 100 + 80); ++ break; ++ default: ++ /* this packet does not have a constant size */ ++ if (packet_len >= 40 && get_u32(haystack, 16) == __constant_htonl(0x00000402) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 56); ++ break; ++ } ++ ++ /* some extra-bitcomet rules: ++ * "d1:" [a|r] "d2:id20:" ++ */ ++ if (packet_len > 30 && get_u8(haystack, 8) == 'd' && get_u8(haystack, 9) == '1' && get_u8(haystack, 10) == ':' ) ++ { ++ if (get_u8(haystack, 11) == 'a' || get_u8(haystack, 11) == 'r') ++ { ++ if (memcmp(haystack+12,"d2:id20:",8)==0) ++ return (IPP2P_BIT * 100 + 57); ++ } ++ } ++ ++#if 0 ++ /* bitlord rules */ ++ /* packetlen must be bigger than 40 */ ++ /* first 4 bytes are zero */ ++ if (packet_len > 40 && get_u32(haystack, 8) == 0x00000000) ++ { ++ /* first rule: 00 00 00 00 01 00 00 xx xx xx xx 00 00 00 00*/ ++ if (get_u32(haystack, 12) == 0x00000000 && ++ get_u32(haystack, 16) == 0x00010000 && ++ get_u32(haystack, 24) == 0x00000000 ) ++ return (IPP2P_BIT * 100 + 71); ++ ++ /* 00 01 00 00 0d 00 00 xx xx xx xx 00 00 00 00*/ ++ if (get_u32(haystack, 12) == 0x00000001 && ++ get_u32(haystack, 16) == 0x000d0000 && ++ get_u32(haystack, 24) == 0x00000000 ) ++ return (IPP2P_BIT * 100 + 71); ++ ++ ++ } ++#endif ++ ++ return 0; ++}/*udp_search_bit*/ ++ ++ ++ ++/*Search for Ares commands*/ ++//#define IPP2P_DEBUG_ARES ++int ++search_ares (const unsigned char *payload, const u16 plen) ++//int search_ares (unsigned char *haystack, int packet_len, int head_len) ++{ ++// const unsigned char *t = haystack + head_len; ++ ++ /* all ares packets start with */ ++ if (payload[1] == 0 && (plen - payload[0]) == 3) ++ { ++ switch (payload[2]) ++ { ++ case 0x5a: ++ /* ares connect */ ++ if ( plen == 6 && payload[5] == 0x05 ) return ((IPP2P_ARES * 100) + 1); ++ break; ++ case 0x09: ++ /* ares search, min 3 chars --> 14 bytes ++ * lets define a search can be up to 30 chars --> max 34 bytes ++ */ ++ if ( plen >= 14 && plen <= 34 ) return ((IPP2P_ARES * 100) + 1); ++ break; ++#ifdef IPP2P_DEBUG_ARES ++ default: ++ printk(KERN_DEBUG "Unknown Ares command %x recognized, len: %u \n", (unsigned int) payload[2],plen); ++#endif /* IPP2P_DEBUG_ARES */ ++ } ++ } ++ ++#if 0 ++ /* found connect packet: 03 00 5a 04 03 05 */ ++ /* new version ares 1.8: 03 00 5a xx xx 05 */ ++ if ((plen) == 6){ /* possible connect command*/ ++ if ((payload[0] == 0x03) && (payload[1] == 0x00) && (payload[2] == 0x5a) && (payload[5] == 0x05)) ++ return ((IPP2P_ARES * 100) + 1); ++ } ++ if ((plen) == 60){ /* possible download command*/ ++ if ((payload[59] == 0x0a) && (payload[58] == 0x0a)){ ++ if (memcmp(t, "PUSH SHA1:", 10) == 0) /* found download command */ ++ return ((IPP2P_ARES * 100) + 2); ++ } ++ } ++#endif ++ ++ return 0; ++} /*search_ares*/ ++ ++/*Search for SoulSeek commands*/ ++int ++search_soul (const unsigned char *payload, const u16 plen) ++{ ++//#define IPP2P_DEBUG_SOUL ++ /* match: xx xx xx xx | xx = sizeof(payload) - 4 */ ++ if (get_u32(payload, 0) == (plen - 4)){ ++ const __u32 m=get_u32(payload, 4); ++ /* match 00 yy yy 00, yy can be everything */ ++ if ( get_u8(payload, 4) == 0x00 && get_u8(payload, 7) == 0x00 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "0: Soulseek command 0x%x recognized\n",get_u32(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 1); ++ } ++ ++ /* next match: 01 yy 00 00 | yy can be everything */ ++ if ( get_u8(payload, 4) == 0x01 && get_u16(payload, 6) == 0x0000 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "1: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 2); ++ } ++ ++ /* other soulseek commandos are: 1-5,7,9,13-18,22,23,26,28,35-37,40-46,50,51,60,62-69,91,92,1001 */ ++ /* try to do this in an intelligent way */ ++ /* get all small commandos */ ++ switch(m) ++ { ++ case 7: ++ case 9: ++ case 22: ++ case 23: ++ case 26: ++ case 28: ++ case 50: ++ case 51: ++ case 60: ++ case 91: ++ case 92: ++ case 1001: ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "2: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 3); ++ } ++ ++ if (m > 0 && m < 6 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "3: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 4); ++ } ++ if (m > 12 && m < 19 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "4: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 5); ++ } ++ ++ if (m > 34 && m < 38 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "5: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 6); ++ } ++ ++ if (m > 39 && m < 47 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "6: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 7); ++ } ++ ++ if (m > 61 && m < 70 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "7: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 8); ++ } ++ ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "unknown SOULSEEK command: 0x%x, first 16 bit: 0x%x, first 8 bit: 0x%x ,soulseek ???\n",get_u32(payload, 4),get_u16(payload, 4) >> 16,get_u8(payload, 4) >> 24); ++#endif /* IPP2P_DEBUG_SOUL */ ++ } ++ ++ /* match 14 00 00 00 01 yy 00 00 00 STRING(YY) 01 00 00 00 00 46|50 00 00 00 00 */ ++ /* without size at the beginning !!! */ ++ if ( get_u32(payload, 0) == 0x14 && get_u8(payload, 4) == 0x01 ) ++ { ++ __u32 y=get_u32(payload, 5); ++ /* we need 19 chars + string */ ++ if ( (y + 19) <= (plen) ) ++ { ++ const unsigned char *w=payload+9+y; ++ if (get_u32(w, 0) == 0x01 && ( get_u16(w, 4) == 0x4600 || get_u16(w, 4) == 0x5000) && get_u32(w, 6) == 0x00); ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "Soulssek special client command recognized\n"); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 9); ++ } ++ } ++ return 0; ++} ++ ++ ++/*Search for WinMX commands*/ ++int ++search_winmx (const unsigned char *payload, const u16 plen) ++{ ++//#define IPP2P_DEBUG_WINMX ++ if (((plen) == 4) && (memcmp(payload, "SEND", 4) == 0)) return ((IPP2P_WINMX * 100) + 1); ++ if (((plen) == 3) && (memcmp(payload, "GET", 3) == 0)) return ((IPP2P_WINMX * 100) + 2); ++ //if (packet_len < (head_len + 10)) return 0; ++ if (plen < 10) return 0; ++ ++ if ((memcmp(payload, "SEND", 4) == 0) || (memcmp(payload, "GET", 3) == 0)){ ++ u16 c=4; ++ const u16 end=plen-2; ++ u8 count=0; ++ while (c < end) ++ { ++ if (payload[c]== 0x20 && payload[c+1] == 0x22) ++ { ++ c++; ++ count++; ++ if (count>=2) return ((IPP2P_WINMX * 100) + 3); ++ } ++ c++; ++ } ++ } ++ ++ if ( plen == 149 && payload[0] == '8' ) ++ { ++#ifdef IPP2P_DEBUG_WINMX ++ printk(KERN_INFO "maybe WinMX\n"); ++#endif ++ if (get_u32(payload,17) == 0 && get_u32(payload,21) == 0 && get_u32(payload,25) == 0 && ++// get_u32(payload,33) == __constant_htonl(0x71182b1a) && get_u32(payload,37) == __constant_htonl(0x05050000) && ++// get_u32(payload,133) == __constant_htonl(0x31097edf) && get_u32(payload,145) == __constant_htonl(0xdcb8f792)) ++ get_u16(payload,39) == 0 && get_u16(payload,135) == __constant_htons(0x7edf) && get_u16(payload,147) == __constant_htons(0xf792)) ++ ++ { ++#ifdef IPP2P_DEBUG_WINMX ++ printk(KERN_INFO "got WinMX\n"); ++#endif ++ return ((IPP2P_WINMX * 100) + 4); ++ } ++ } ++ return 0; ++} /*search_winmx*/ ++ ++ ++/*Search for appleJuice commands*/ ++int ++search_apple (const unsigned char *payload, const u16 plen) ++{ ++ if ( (plen > 7) && (payload[6] == 0x0d) && (payload[7] == 0x0a) && (memcmp(payload, "ajprot", 6) == 0)) return (IPP2P_APPLE * 100); ++ ++ return 0; ++} ++ ++ ++/*Search for BitTorrent commands*/ ++int ++search_bittorrent (const unsigned char *payload, const u16 plen) ++{ ++ if (plen > 20) ++ { ++ /* test for match 0x13+"BitTorrent protocol" */ ++ if (payload[0] == 0x13) ++ { ++ if (memcmp(payload+1, "BitTorrent protocol", 19) == 0) return (IPP2P_BIT * 100); ++ } ++ ++ /* get tracker commandos, all starts with GET / ++ * then it can follow: scrape| announce ++ * and then ?hash_info= ++ */ ++ if (memcmp(payload,"GET /",5) == 0) ++ { ++ /* message scrape */ ++ if ( memcmp(payload+5,"scrape?info_hash=",17)==0 ) return (IPP2P_BIT * 100 + 1); ++ /* message announce */ ++ if ( memcmp(payload+5,"announce?info_hash=",19)==0 ) return (IPP2P_BIT * 100 + 2); ++ } ++ } ++ else ++ { ++ /* bitcomet encryptes the first packet, so we have to detect another ++ * one later in the flow */ ++ /* first try failed, too many missdetections */ ++ //if ( size == 5 && get_u32(t,0) == __constant_htonl(1) && t[4] < 3) return (IPP2P_BIT * 100 + 3); ++ ++ /* second try: block request packets */ ++ if ( plen == 17 && get_u32(payload,0) == __constant_htonl(0x0d) && payload[4] == 0x06 && get_u32(payload,13) == __constant_htonl(0x4000) ) return (IPP2P_BIT * 100 + 3); ++ } ++ ++ return 0; ++} ++ ++ ++ ++/*check for Kazaa get command*/ ++int ++search_kazaa (const unsigned char *payload, const u16 plen) ++ ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a) && memcmp(payload, "GET /.hash=", 11) == 0) ++ return (IPP2P_DATA_KAZAA * 100); ++ ++ return 0; ++} ++ ++ ++/*check for gnutella get command*/ ++int ++search_gnu (const unsigned char *payload, const u16 plen) ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ if (memcmp(payload, "GET /get/", 9) == 0) return ((IPP2P_DATA_GNU * 100) + 1); ++ if (memcmp(payload, "GET /uri-res/", 13) == 0) return ((IPP2P_DATA_GNU * 100) + 2); ++ } ++ return 0; ++} ++ ++ ++/*check for gnutella get commands and other typical data*/ ++int ++search_all_gnu (const unsigned char *payload, const u16 plen) ++{ ++ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ ++ if (memcmp(payload, "GNUTELLA CONNECT/", 17) == 0) return ((IPP2P_GNU * 100) + 1); ++ if (memcmp(payload, "GNUTELLA/", 9) == 0) return ((IPP2P_GNU * 100) + 2); ++ ++ ++ if ((memcmp(payload, "GET /get/", 9) == 0) || (memcmp(payload, "GET /uri-res/", 13) == 0)) ++ { ++ u16 c=8; ++ const u16 end=plen-22; ++ while (c < end) { ++ if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Gnutella-", 11) == 0) || (memcmp(&payload[c+2], "X-Queue:", 8) == 0))) ++ return ((IPP2P_GNU * 100) + 3); ++ c++; ++ } ++ } ++ } ++ return 0; ++} ++ ++ ++/*check for KaZaA download commands and other typical data*/ ++int ++search_all_kazaa (const unsigned char *payload, const u16 plen) ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ ++ if (memcmp(payload, "GIVE ", 5) == 0) return ((IPP2P_KAZAA * 100) + 1); ++ ++ if (memcmp(payload, "GET /", 5) == 0) { ++ u16 c = 8; ++ const u16 end=plen-22; ++ while (c < end) { ++ if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Kazaa-Username: ", 18) == 0) || (memcmp(&payload[c+2], "User-Agent: PeerEnabler/", 24) == 0))) ++ return ((IPP2P_KAZAA * 100) + 2); ++ c++; ++ } ++ } ++ } ++ return 0; ++} ++ ++/*fast check for edonkey file segment transfer command*/ ++int ++search_edk (const unsigned char *payload, const u16 plen) ++{ ++ if (payload[0] != 0xe3) ++ return 0; ++ else { ++ if (payload[5] == 0x47) ++ return (IPP2P_DATA_EDK * 100); ++ else ++ return 0; ++ } ++} ++ ++ ++ ++/*intensive but slower search for some edonkey packets including size-check*/ ++int ++search_all_edk (const unsigned char *payload, const u16 plen) ++{ ++ if (payload[0] != 0xe3) ++ return 0; ++ else { ++ //t += head_len; ++ const u16 cmd = get_u16(payload, 1); ++ if (cmd == (plen - 5)) { ++ switch (payload[5]) { ++ case 0x01: return ((IPP2P_EDK * 100) + 1); /*Client: hello or Server:hello*/ ++ case 0x4c: return ((IPP2P_EDK * 100) + 9); /*Client: Hello-Answer*/ ++ } ++ } ++ return 0; ++ } ++} ++ ++ ++/*fast check for Direct Connect send command*/ ++int ++search_dc (const unsigned char *payload, const u16 plen) ++{ ++ ++ if (payload[0] != 0x24 ) ++ return 0; ++ else { ++ if (memcmp(&payload[1], "Send|", 5) == 0) ++ return (IPP2P_DATA_DC * 100); ++ else ++ return 0; ++ } ++ ++} ++ ++ ++/*intensive but slower check for all direct connect packets*/ ++int ++search_all_dc (const unsigned char *payload, const u16 plen) ++{ ++// unsigned char *t = haystack; ++ ++ if (payload[0] == 0x24 && payload[plen-1] == 0x7c) ++ { ++ const unsigned char *t=&payload[1]; ++ /* Client-Hub-Protocol */ ++ if (memcmp(t, "Lock ", 5) == 0) return ((IPP2P_DC * 100) + 1); ++ /* Client-Client-Protocol, some are already recognized by client-hub (like lock) */ ++ if (memcmp(t, "MyNick ", 7) == 0) return ((IPP2P_DC * 100) + 38); ++ } ++ return 0; ++} ++ ++/*check for mute*/ ++int ++search_mute (const unsigned char *payload, const u16 plen) ++{ ++ if ( plen == 209 || plen == 345 || plen == 473 || plen == 609 || plen == 1121 ) ++ { ++ //printk(KERN_DEBUG "size hit: %u",size); ++ if (memcmp(payload,"PublicKey: ",11) == 0 ) ++ { ++ return ((IPP2P_MUTE * 100) + 0); ++ ++/* if (memcmp(t+size-14,"\x0aEndPublicKey\x0a",14) == 0) ++ { ++ printk(KERN_DEBUG "end pubic key hit: %u",size); ++ ++ }*/ ++ } ++ } ++ return 0; ++} ++ ++ ++/* check for xdcc */ ++int ++search_xdcc (const unsigned char *payload, const u16 plen) ++{ ++ /* search in small packets only */ ++ if (plen > 20 && plen < 200 && payload[plen-1] == 0x0a && payload[plen-2] == 0x0d && memcmp(payload,"PRIVMSG ",8) == 0) ++ { ++ ++ u16 x=10; ++ const u16 end=plen - 13; ++ ++ /* is seems to be a irc private massage, chedck for xdcc command */ ++ while (x < end) ++ { ++ if (payload[x] == ':') ++ { ++ if ( memcmp(&payload[x+1],"xdcc send #",11) == 0 ) ++ return ((IPP2P_XDCC * 100) + 0); ++ } ++ x++; ++ } ++ } ++ return 0; ++} ++ ++/* search for waste */ ++int search_waste(const unsigned char *payload, const u16 plen) ++{ ++ if ( plen >= 8 && memcmp(payload,"GET.sha1:",9) == 0) ++ return ((IPP2P_WASTE * 100) + 0); ++ ++ return 0; ++} ++ ++ ++static struct { ++ int command; ++ __u8 short_hand; /*for fucntions included in short hands*/ ++ int packet_len; ++ int (*function_name) (const unsigned char *, const u16); ++} matchlist[] = { ++ {IPP2P_EDK,SHORT_HAND_IPP2P,20, &search_all_edk}, ++// {IPP2P_DATA_KAZAA,SHORT_HAND_DATA,200, &search_kazaa}, ++// {IPP2P_DATA_EDK,SHORT_HAND_DATA,60, &search_edk}, ++// {IPP2P_DATA_DC,SHORT_HAND_DATA,26, &search_dc}, ++ {IPP2P_DC,SHORT_HAND_IPP2P,5, search_all_dc}, ++// {IPP2P_DATA_GNU,SHORT_HAND_DATA,40, &search_gnu}, ++ {IPP2P_GNU,SHORT_HAND_IPP2P,5, &search_all_gnu}, ++ {IPP2P_KAZAA,SHORT_HAND_IPP2P,5, &search_all_kazaa}, ++ {IPP2P_BIT,SHORT_HAND_IPP2P,20, &search_bittorrent}, ++ {IPP2P_APPLE,SHORT_HAND_IPP2P,5, &search_apple}, ++ {IPP2P_SOUL,SHORT_HAND_IPP2P,5, &search_soul}, ++ {IPP2P_WINMX,SHORT_HAND_IPP2P,2, &search_winmx}, ++ {IPP2P_ARES,SHORT_HAND_IPP2P,5, &search_ares}, ++ {IPP2P_MUTE,SHORT_HAND_NONE,200, &search_mute}, ++ {IPP2P_WASTE,SHORT_HAND_NONE,5, &search_waste}, ++ {IPP2P_XDCC,SHORT_HAND_NONE,5, &search_xdcc}, ++ {0,0,0,NULL} ++}; ++ ++ ++static struct { ++ int command; ++ __u8 short_hand; /*for fucntions included in short hands*/ ++ int packet_len; ++ int (*function_name) (unsigned char *, int); ++} udp_list[] = { ++ { IPP2P_KAZAA, SHORT_HAND_IPP2P, 14, &udp_search_kazaa}, ++ { IPP2P_BIT, SHORT_HAND_IPP2P, 23, &udp_search_bit}, ++ { IPP2P_GNU, SHORT_HAND_IPP2P, 11, &udp_search_gnu}, ++ { IPP2P_EDK, SHORT_HAND_IPP2P, 9, &udp_search_edk}, ++ { IPP2P_DC, SHORT_HAND_IPP2P, 12, &udp_search_directconnect}, ++ { 0, 0, 0, NULL } ++}; ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ const void *hdr, ++ u_int16_t datalen, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++static bool ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ bool *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++static bool ++match(const struct sk_buff *skb, ++ const struct xt_match_param *par) ++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */ ++static int ++match(const struct sk_buff *skb, ++ struct xt_action_param *par) ++#endif ++{ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++ const struct ipt_p2p_info *info = matchinfo; ++#else ++ const struct ipt_p2p_info *info = par->matchinfo; ++ const int offset = par->fragoff; ++#endif ++ unsigned char *haystack; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) ++ struct iphdr *ip = ip_hdr(skb); ++#else ++ struct iphdr *ip = skb->nh.iph; ++#endif ++ int p2p_result = 0, i = 0; ++// int head_len; ++ int hlen = ntohs(ip->tot_len)-(ip->ihl*4); /*hlen = packet-data length*/ ++ ++ /*must not be a fragment*/ ++ if (offset) { ++ if (info->debug) printk("IPP2P.match: offset found %i \n",offset); ++ return 0; ++ } ++ ++ /*make sure that skb is linear*/ ++ if(skb_is_nonlinear(skb)){ ++ if (info->debug) printk("IPP2P.match: nonlinear skb found\n"); ++ return 0; ++ } ++ ++ ++ haystack=(char *)ip+(ip->ihl*4); /*haystack = packet data*/ ++ ++ switch (ip->protocol){ ++ case IPPROTO_TCP: /*what to do with a TCP packet*/ ++ { ++ struct tcphdr *tcph = (void *) ip + ip->ihl * 4; ++ ++ if (tcph->fin) return 0; /*if FIN bit is set bail out*/ ++ if (tcph->syn) return 0; /*if SYN bit is set bail out*/ ++ if (tcph->rst) return 0; /*if RST bit is set bail out*/ ++ ++ haystack += tcph->doff * 4; /*get TCP-Header-Size*/ ++ hlen -= tcph->doff * 4; ++ while (matchlist[i].command) { ++ if ((((info->cmd & matchlist[i].command) == matchlist[i].command) || ++ ((info->cmd & matchlist[i].short_hand) == matchlist[i].short_hand)) && ++ (hlen > matchlist[i].packet_len)) { ++ p2p_result = matchlist[i].function_name(haystack, hlen); ++ if (p2p_result) ++ { ++ if (info->debug) printk("IPP2P.debug:TCP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", ++ p2p_result, &ip->saddr,ntohs(tcph->source), &ip->daddr,ntohs(tcph->dest),hlen); ++ return p2p_result; ++ } ++ } ++ i++; ++ } ++ return p2p_result; ++ } ++ ++ case IPPROTO_UDP: /*what to do with an UDP packet*/ ++ { ++ struct udphdr *udph = (void *) ip + ip->ihl * 4; ++ ++ while (udp_list[i].command){ ++ if ((((info->cmd & udp_list[i].command) == udp_list[i].command) || ++ ((info->cmd & udp_list[i].short_hand) == udp_list[i].short_hand)) && ++ (hlen > udp_list[i].packet_len)) { ++ p2p_result = udp_list[i].function_name(haystack, hlen); ++ if (p2p_result){ ++ if (info->debug) printk("IPP2P.debug:UDP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", ++ p2p_result, &ip->saddr,ntohs(udph->source), &ip->daddr,ntohs(udph->dest),hlen); ++ return p2p_result; ++ } ++ } ++ i++; ++ } ++ return p2p_result; ++ } ++ ++ default: return 0; ++ } ++} ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) ++static int ++checkentry(const char *tablename, ++ const struct ipt_ip *ip, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++static bool ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++static bool ++checkentry(const struct xt_mtchk_param *par) ++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */ ++static int ++checkentry(const struct xt_mtchk_param *par) ++#endif ++{ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++ return 1; ++#else ++ return 0; ++#endif ++} ++ ++ ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++static struct xt_match ipp2p_match = { ++#else ++static struct ipt_match ipp2p_match = { ++#endif ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++ { NULL, NULL }, ++ "ipp2p", ++ &ipp2p_match, ++ &ipp2p_checkentry, ++ NULL, ++ THIS_MODULE ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++ .name = "ipp2p", ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ .family = AF_INET, ++#endif ++ .match = &match, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17) ++ .matchsize = sizeof(struct ipt_p2p_info), ++#endif ++ .checkentry = &checkentry, ++ .me = THIS_MODULE, ++#endif ++}; ++ ++ ++static int __init init(void) ++{ ++ printk(KERN_INFO "IPP2P v%s loading\n", IPP2P_VERSION); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ return xt_register_match(&ipp2p_match); ++#else ++ return ipt_register_match(&ipp2p_match); ++#endif ++} ++ ++static void __exit fini(void) ++{ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ xt_unregister_match(&ipp2p_match); ++#else ++ ipt_unregister_match(&ipp2p_match); ++#endif ++ printk(KERN_INFO "IPP2P v%s unloaded\n", IPP2P_VERSION); ++} ++ ++module_init(init); ++module_exit(fini); ++ ++ +diff -Naur linux-3.10.9.org/net/ipv4/netfilter/Kconfig linux-3.10.9/net/ipv4/netfilter/Kconfig +--- linux-3.10.9.org/net/ipv4/netfilter/Kconfig 2013-08-21 00:40:47.000000000 +0200 ++++ linux-3.10.9/net/ipv4/netfilter/Kconfig 2013-08-25 16:00:53.398088168 +0200 +@@ -320,5 +320,15 @@ + + endif # IP_NF_ARPTABLES + ++config IP_NF_MATCH_IPP2P ++ tristate 'IPP2P match support' ++ depends on IP_NF_IPTABLES ++ help ++ This option makes possible to match some P2P packets ++ therefore helps controlling such traffic. ++ ++ If you want to compile it as a module, say M here and read ++ file:Documentation/modules.txt. If unsure, say `N'. ++ + endmenu + +diff -Naur linux-3.10.9.org/net/ipv4/netfilter/Makefile linux-3.10.9/net/ipv4/netfilter/Makefile +--- linux-3.10.9.org/net/ipv4/netfilter/Makefile 2013-08-21 00:40:47.000000000 +0200 ++++ linux-3.10.9/net/ipv4/netfilter/Makefile 2013-08-25 16:03:21.634750053 +0200 +@@ -40,6 +40,7 @@ + # matches + obj-$(CONFIG_IP_NF_MATCH_AH) += ipt_ah.o + obj-$(CONFIG_IP_NF_MATCH_RPFILTER) += ipt_rpfilter.o ++obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_ipp2p.o + + # targets + obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o diff --git a/src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch b/src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch new file mode 100644 index 0000000..6a4b3c5 --- /dev/null +++ b/src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch @@ -0,0 +1,82 @@ +diff -Naur linux-3.10.10/drivers/net/usb/smsc95xx.c linux-c1af7c6db316763b9dce7137495cb9ada8fa17b4/drivers/net/usb/smsc95xx.c +--- linux-3.10.10/drivers/net/usb/smsc95xx.c 2013-08-29 18:47:51.000000000 +0200 ++++ linux-c1af7c6db316763b9dce7137495cb9ada8fa17b4/drivers/net/usb/smsc95xx.c 2013-08-30 20:12:54.000000000 +0200 +@@ -61,6 +61,7 @@ + #define SUSPEND_SUSPEND3 (0x08) + #define SUSPEND_ALLMODES (SUSPEND_SUSPEND0 | SUSPEND_SUSPEND1 | \ + SUSPEND_SUSPEND2 | SUSPEND_SUSPEND3) ++#define MAC_ADDR_LEN (6) + + struct smsc95xx_priv { + u32 mac_cr; +@@ -76,6 +77,10 @@ + module_param(turbo_mode, bool, 0644); + MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); + ++static char *macaddr = ":"; ++module_param(macaddr, charp, 0); ++MODULE_PARM_DESC(macaddr, "MAC address"); ++ + static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, + u32 *data, int in_pm) + { +@@ -765,8 +770,59 @@ + return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL); + } + ++/* Check the macaddr module parameter for a MAC address */ ++static int smsc95xx_is_macaddr_param(struct usbnet *dev, u8 *dev_mac) ++{ ++ int i, j, got_num, num; ++ u8 mtbl[MAC_ADDR_LEN]; ++ ++ if (macaddr[0] == ':') ++ return 0; ++ ++ i = 0; ++ j = 0; ++ num = 0; ++ got_num = 0; ++ while (j < MAC_ADDR_LEN) { ++ if (macaddr[i] && macaddr[i] != ':') { ++ got_num++; ++ if ('0' <= macaddr[i] && macaddr[i] <= '9') ++ num = num * 16 + macaddr[i] - '0'; ++ else if ('A' <= macaddr[i] && macaddr[i] <= 'F') ++ num = num * 16 + 10 + macaddr[i] - 'A'; ++ else if ('a' <= macaddr[i] && macaddr[i] <= 'f') ++ num = num * 16 + 10 + macaddr[i] - 'a'; ++ else ++ break; ++ i++; ++ } else if (got_num == 2) { ++ mtbl[j++] = (u8) num; ++ num = 0; ++ got_num = 0; ++ i++; ++ } else { ++ break; ++ } ++ } ++ ++ if (j == MAC_ADDR_LEN) { ++ netif_dbg(dev, ifup, dev->net, "Overriding MAC address with: " ++ "%02x:%02x:%02x:%02x:%02x:%02x\n", mtbl[0], mtbl[1], mtbl[2], ++ mtbl[3], mtbl[4], mtbl[5]); ++ for (i = 0; i < MAC_ADDR_LEN; i++) ++ dev_mac[i] = mtbl[i]; ++ return 1; ++ } else { ++ return 0; ++ } ++} ++ + static void smsc95xx_init_mac_address(struct usbnet *dev) + { ++ /* Check module parameters */ ++ if (smsc95xx_is_macaddr_param(dev, dev->net->dev_addr)) ++ return; ++ + /* try reading mac address from EEPROM */ + if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, + dev->net->dev_addr) == 0) { diff --git a/src/patches/linux-3.10.10-arm_kirkwood_setups.patch b/src/patches/linux-3.10.10-arm_kirkwood_setups.patch new file mode 100644 index 0000000..3564465 --- /dev/null +++ b/src/patches/linux-3.10.10-arm_kirkwood_setups.patch @@ -0,0 +1,704 @@ +diff -Naur linux-3.10.10.org/arch/arm/Kconfig linux-3.10.10/arch/arm/Kconfig +--- linux-3.10.10.org/arch/arm/Kconfig 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/arch/arm/Kconfig 2013-09-02 19:37:01.000000000 +0200 +@@ -217,7 +217,7 @@ + + config ARM_PATCH_PHYS_VIRT + bool "Patch physical to virtual translations at runtime" if EMBEDDED +- default y ++ default n + depends on !XIP_KERNEL && MMU + depends on !ARCH_REALVIEW || !SPARSEMEM + help +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-3.10.10/arch/arm/mach-kirkwood/dreamplug-setup.c +--- linux-3.10.10.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.10/arch/arm/mach-kirkwood/dreamplug-setup.c 2013-09-02 21:29:28.000000000 +0200 +@@ -0,0 +1,151 @@ ++/* ++ * arch/arm/mach-kirkwood/dreamplug-setup.c ++ * ++ * Marvell DreamPlug Reference Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/mtd/mtd.h> ++#include <linux/mtd/partitions.h> ++#include <linux/ata_platform.h> ++#include <linux/mv643xx_eth.h> ++#include <linux/gpio.h> ++#include <linux/leds.h> ++#include <linux/spi/flash.h> ++#include <linux/spi/spi.h> ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <mach/kirkwood.h> ++#include <linux/platform_data/mmc-mvsdio.h> ++#include "common.h" ++#include "mpp.h" ++ ++static const struct flash_platform_data dreamplug_spi_slave_data = { ++ .type = "mx25l1606e", ++}; ++ ++static struct spi_board_info __initdata dreamplug_spi_slave_info[] = { ++ { ++ .modalias = "m25p80", ++ .platform_data = &dreamplug_spi_slave_data, ++ .irq = -1, ++ .max_speed_hz = 50000000, ++ .bus_num = 0, ++ .chip_select = 0, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data dreamplug_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(0), ++}; ++ ++static struct mv643xx_eth_platform_data dreamplug_ge01_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(1), ++}; ++ ++static struct mv_sata_platform_data dreamplug_sata_data = { ++ .n_ports = 1, ++}; ++ ++static struct mvsdio_platform_data dreamplug_mvsdio_data = { ++ /* unfortunately the CD signal has not been connected */ ++}; ++ ++static struct gpio_led dreamplug_led_pins[] = { ++ { ++ .name = "dreamplug:blue:bluetooth", ++ .gpio = 47, ++ .active_low = 1, ++ }, ++ { ++ .name = "dreamplug:green:wlan", ++ .gpio = 48, ++ .active_low = 1, ++ }, ++ { ++ .name = "dreamplug:blue:wlanap", ++ .gpio = 49, ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_led_platform_data dreamplug_led_data = { ++ .leds = dreamplug_led_pins, ++ .num_leds = ARRAY_SIZE(dreamplug_led_pins), ++}; ++ ++static struct platform_device dreamplug_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &dreamplug_led_data, ++ } ++}; ++ ++static unsigned int dreamplug_mpp_config[] __initdata = { ++ MPP0_SPI_SCn, ++ MPP1_SPI_MOSI, ++ MPP2_SPI_SCK, ++ MPP3_SPI_MISO, ++ MPP4_GPIO, ++ MPP5_GPO, ++ MPP7_GPO, ++ MPP18_GPO, ++ MPP19_GPO, ++ MPP47_GPIO, /* B_BLED */ ++ MPP48_GPIO, /* W_GLED */ ++ MPP49_GPIO, /* W_BLED */ ++ 0 ++}; ++ ++static void __init dreamplug_legacy_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(dreamplug_mpp_config); ++ ++ kirkwood_uart0_init(); ++ ++ spi_register_board_info(dreamplug_spi_slave_info, ++ ARRAY_SIZE(dreamplug_spi_slave_info)); ++ ++ kirkwood_spi_init(); ++ kirkwood_ehci_init(); ++ ++ kirkwood_ge00_init(&dreamplug_ge00_data); ++ kirkwood_ge01_init(&dreamplug_ge01_data); ++ kirkwood_sata_init(&dreamplug_sata_data); ++ kirkwood_sdio_init(&dreamplug_mvsdio_data); ++ ++ platform_device_register(&dreamplug_leds); ++} ++ ++MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board") ++ /* Maintainer: Siddarth Gore <gores <at> marvell.com> */ ++ .atag_offset = 0x100, ++ .init_machine = dreamplug_legacy_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .init_time = kirkwood_timer_init, ++ .restart = kirkwood_restart, ++MACHINE_END ++ ++MACHINE_START(DREAMPLUG1, "Marvell DreamPlug Reference Board") ++ .atag_offset = 0x100, ++ .init_machine = dreamplug_legacy_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .init_time = kirkwood_timer_init, ++ .restart = kirkwood_restart, ++ ++MACHINE_END +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-3.10.10/arch/arm/mach-kirkwood/guruplug-setup.c +--- linux-3.10.10.org/arch/arm/mach-kirkwood/guruplug-setup.c 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/arch/arm/mach-kirkwood/guruplug-setup.c 2013-09-02 19:37:02.000000000 +0200 +@@ -11,6 +11,7 @@ + #include <linux/kernel.h> + #include <linux/init.h> + #include <linux/platform_device.h> ++#include <linux/mtd/mtd.h> + #include <linux/mtd/partitions.h> + #include <linux/ata_platform.h> + #include <linux/mv643xx_eth.h> +@@ -27,15 +28,16 @@ + { + .name = "u-boot", + .offset = 0, +- .size = SZ_1M ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ + }, { + .name = "uImage", + .offset = MTDPART_OFS_NXTBLK, +- .size = SZ_4M ++ .size = SZ_4M, + }, { + .name = "root", + .offset = MTDPART_OFS_NXTBLK, +- .size = MTDPART_SIZ_FULL ++ .size = MTDPART_SIZ_FULL, + }, + }; + +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/iconnect-setup.c linux-3.10.10/arch/arm/mach-kirkwood/iconnect-setup.c +--- linux-3.10.10.org/arch/arm/mach-kirkwood/iconnect-setup.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.10/arch/arm/mach-kirkwood/iconnect-setup.c 2013-09-02 21:31:09.000000000 +0200 +@@ -0,0 +1,214 @@ ++/* ++ * arch/arm/mach-kirkwood/iconnect-setup.c ++ * ++ * Iomega iConnect Wireless Data Station Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/mtd/mtd.h> ++#include <linux/mtd/partitions.h> ++#include <linux/ata_platform.h> ++#include <linux/mv643xx_eth.h> ++#include <linux/gpio.h> ++#include <linux/gpio_keys.h> ++#include <linux/i2c.h> ++#include <linux/input.h> ++#include <linux/leds.h> ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <mach/kirkwood.h> ++#include "common.h" ++#include "mpp.h" ++ ++static struct mtd_partition iconnect_nand_parts[] = { ++ { ++ .name = "u-boot", ++ .offset = 0, ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ ++ }, { ++ .name = "uImage", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = 0x440000, ++ }, { ++ .name = "uInit", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = 0x440000, ++ }, { ++ .name = "root", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = MTDPART_SIZ_FULL, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data iconnect_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(0xB), ++}; ++ ++static struct gpio_led iconnect_led_pins[] = { ++ { ++ .name = "iconnect:led_level", ++ .default_trigger = "default-on", ++ .gpio = 41, ++ .active_low = 0, ++ }, ++ ++ { ++ .name = "iconnect:blue:power", ++ .default_trigger = "default-on", ++ .gpio = 42, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:red:power", ++ .default_trigger = "none", ++ .gpio = 43, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_1", ++ .default_trigger = "none", ++ .gpio = 44, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_2", ++ .default_trigger = "none", ++ .gpio = 45, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_3", ++ .default_trigger = "none", ++ .gpio = 46, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_4", ++ .default_trigger = "none", ++ .gpio = 47, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:otb", ++ .default_trigger = "none", ++ .gpio = 48, ++ .active_low = 0, ++ }, ++}; ++ ++static struct gpio_led_platform_data iconnect_led_data = { ++ .leds = iconnect_led_pins, ++ .num_leds = ARRAY_SIZE(iconnect_led_pins), ++}; ++ ++static struct platform_device iconnect_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &iconnect_led_data, ++ } ++}; ++ ++static struct gpio_keys_button iconnect_buttons[] = { ++ { ++ .code = KEY_COPY, ++ .gpio = 35, ++ .desc = "OTB Button", ++ .active_low = 1, ++ }, ++ { ++ .code = KEY_RESTART, ++ .gpio = 12, ++ .desc = "Reset", ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_keys_platform_data iconnect_button_data = { ++ .buttons = iconnect_buttons, ++ .nbuttons = ARRAY_SIZE(iconnect_buttons), ++}; ++ ++static struct platform_device iconnect_button_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .num_resources = 0, ++ .dev = { ++ .platform_data = &iconnect_button_data, ++ } ++}; ++ ++static unsigned int iconnect_mpp_config[] __initdata = { ++ MPP0_NF_IO2, ++ MPP1_NF_IO3, ++ MPP2_NF_IO4, ++ MPP3_NF_IO5, ++ MPP4_NF_IO6, ++ MPP5_NF_IO7, ++ MPP18_NF_IO0, ++ MPP19_NF_IO1, ++ MPP12_GPIO, /* Reset Button */ ++ MPP35_GPIO, /* OTB Button */ ++ ++ MPP41_GPIO, /* LED Level */ ++ MPP42_GPIO, /* Power LED blue */ ++ MPP43_GPIO, /* Power LED red */ ++ MPP44_GPIO, /* USB LED 1 */ ++ MPP45_GPIO, /* USB LED 2 */ ++ MPP46_GPIO, /* USB LED 3 */ ++ MPP47_GPIO, /* USB LED 4 */ ++ MPP48_GPIO, /* OTB LED */ ++ 0 ++}; ++ ++static struct i2c_board_info __initdata iconnect_i2c = { ++ I2C_BOARD_INFO("lm63", 0x4c), ++}; ++ ++static void __init iconnect_legacy_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(iconnect_mpp_config); ++ ++ kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25); ++ kirkwood_ehci_init(); ++ kirkwood_ge00_init(&iconnect_ge00_data); ++ ++ kirkwood_uart0_init(); ++ platform_device_register(&iconnect_leds); ++ platform_device_register(&iconnect_button_device); ++ ++ kirkwood_i2c_init(); ++ i2c_register_board_info(0, &iconnect_i2c,1); ++} ++ ++static int __init iconnect_pci_init(void) ++{ ++ if (machine_is_iconnect()) { ++ kirkwood_pcie_init(KW_PCIE0); ++ } ++ return 0; ++} ++subsys_initcall(iconnect_pci_init); ++ ++MACHINE_START(ICONNECT, "Iomega iConnect Wireless Data Station") ++ /* Maintainer: Arne Fitzenreiter arne_f@ipfire.org */ ++ .atag_offset = 0x100, ++ .init_machine = iconnect_legacy_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .init_time = kirkwood_timer_init, ++ .restart = kirkwood_restart, ++ ++MACHINE_END +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/Kconfig linux-3.10.10/arch/arm/mach-kirkwood/Kconfig +--- linux-3.10.10.org/arch/arm/mach-kirkwood/Kconfig 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/arch/arm/mach-kirkwood/Kconfig 2013-09-02 19:37:02.000000000 +0200 +@@ -116,6 +116,12 @@ + Say 'Y' here if you want your kernel to support the + HP t5325 Thin Client. + ++config MACH_DREAMPLUG ++ bool "Marvell DreamPlug Reference Board" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Marvell DreamPlug Reference Board. ++ + config MACH_TS219 + bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" + help +@@ -317,6 +323,18 @@ + or MV6282. If you have the wrong one, the buttons will not + work. + ++config MACH_ICONNECT ++ bool "Iomega iConnect Wireless Data Station" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Iomega iConnect Wireless Data Station. ++ ++config MACH_NAS6210 ++ bool "Raidsonic ICY BOX IB-62x0" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Raidsonic ICY BOX IB-62x0. ++ + endmenu + + endif +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/Makefile linux-3.10.10/arch/arm/mach-kirkwood/Makefile +--- linux-3.10.10.org/arch/arm/mach-kirkwood/Makefile 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/arch/arm/mach-kirkwood/Makefile 2013-09-02 19:50:19.000000000 +0200 +@@ -5,6 +5,7 @@ + obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o + obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o + obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o ++obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o + obj-$(CONFIG_MACH_INETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o + obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o + obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o +@@ -18,6 +19,8 @@ + obj-$(CONFIG_MACH_T5325) += t5325-setup.o + obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o + obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o ++obj-$(CONFIG_MACH_ICONNECT) += iconnect-setup.o ++obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o + + obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o + obj-$(CONFIG_MACH_CLOUDBOX_DT) += board-ns2.o +diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-3.10.10/arch/arm/mach-kirkwood/nas6210-setup.c +--- linux-3.10.10.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.10/arch/arm/mach-kirkwood/nas6210-setup.c 2013-09-02 21:32:36.000000000 +0200 +@@ -0,0 +1,185 @@ ++/* ++ * arch/arm/mach-kirkwood/nas6210-setup.c ++ * ++ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/mtd/mtd.h> ++#include <linux/mtd/partitions.h> ++#include <linux/ata_platform.h> ++#include <linux/mv643xx_eth.h> ++#include <linux/gpio.h> ++#include <linux/gpio_keys.h> ++#include <linux/i2c.h> ++#include <linux/input.h> ++#include <linux/leds.h> ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <mach/kirkwood.h> ++#include "common.h" ++#include "mpp.h" ++ ++#define NAS6210_GPIO_POWER_OFF 24 ++ ++static struct mtd_partition nas6210_nand_parts[] = { ++ { ++ .name = "u-boot", ++ .offset = 0, ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ ++ }, { ++ .name = "uImage", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = (SZ_1M*6), ++ }, { ++ .name = "root", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = MTDPART_SIZ_FULL, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data nas6210_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(8), ++}; ++ ++static struct mv_sata_platform_data nas6210_sata_data = { ++ .n_ports = 2, ++}; ++ ++static struct gpio_led nas6210_led_pins[] = { ++ { ++ .name = "nas6210:green:power", ++ .default_trigger = "default-on", ++ .gpio = 25, ++ .active_low = 0, ++ }, ++ { ++ .name = "nas6210:red:power", ++ .default_trigger = "none", ++ .gpio = 22, ++ .active_low = 0, ++ }, ++ { ++ .name = "nas6210:red:usb_copy", ++ .default_trigger = "none", ++ .gpio = 27, ++ .active_low = 0, ++ }, ++}; ++ ++static struct gpio_led_platform_data nas6210_led_data = { ++ .leds = nas6210_led_pins, ++ .num_leds = ARRAY_SIZE(nas6210_led_pins), ++}; ++ ++static struct platform_device nas6210_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &nas6210_led_data, ++ } ++}; ++ ++static struct gpio_keys_button nas6210_buttons[] = { ++ { ++ .code = KEY_COPY, ++ .gpio = 29, ++ .desc = "USB Copy", ++ .active_low = 1, ++ }, ++ { ++ .code = KEY_RESTART, ++ .gpio = 28, ++ .desc = "Reset", ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_keys_platform_data nas6210_button_data = { ++ .buttons = nas6210_buttons, ++ .nbuttons = ARRAY_SIZE(nas6210_buttons), ++}; ++ ++static struct platform_device nas6210_button_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .num_resources = 0, ++ .dev = { ++ .platform_data = &nas6210_button_data, ++ } ++}; ++ ++static unsigned int nas6210_mpp_config[] __initdata = { ++ MPP0_NF_IO2, ++ MPP1_NF_IO3, ++ MPP2_NF_IO4, ++ MPP3_NF_IO5, ++ MPP4_NF_IO6, ++ MPP5_NF_IO7, ++ MPP18_NF_IO0, ++ MPP19_NF_IO1, ++ MPP22_GPIO, /* Power LED red */ ++ MPP24_GPIO, /* Power off */ ++ MPP25_GPIO, /* Power LED green */ ++ MPP27_GPIO, /* USB transfer LED */ ++ MPP28_GPIO, /* Reset button */ ++ MPP29_GPIO, /* USB Copy button */ ++ 0 ++}; ++ ++void nas6210_power_off(void) ++{ ++ gpio_set_value(NAS6210_GPIO_POWER_OFF, 1); ++ while(1); ++} ++ ++static void __init nas6210_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(nas6210_mpp_config); ++ ++ kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25); ++ kirkwood_ehci_init(); ++ kirkwood_ge00_init(&nas6210_ge00_data); ++ kirkwood_sata_init(&nas6210_sata_data); ++ kirkwood_uart0_init(); ++ platform_device_register(&nas6210_leds); ++ platform_device_register(&nas6210_button_device); ++ ++ if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 && ++ gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0) ++ pm_power_off = nas6210_power_off; ++ ++ else ++ pr_err("nas6210: failed to configure power-off gpio pin"); ++} ++ ++static int __init nas6210_pci_init(void) ++{ ++ if (machine_is_nas6210()) { ++ kirkwood_pcie_init(KW_PCIE0); ++ } ++ return 0; ++} ++subsys_initcall(nas6210_pci_init); ++ ++MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0") ++ /* Maintainer: Arne Fitzenreiter arne_f@ipfire.org */ ++ .atag_offset = 0x00000100, ++ .init_machine = nas6210_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .init_time = kirkwood_timer_init, ++ .restart = kirkwood_restart, ++MACHINE_END +diff -Naur linux-3.10.10.org/arch/arm/tools/mach-types linux-3.10.10/arch/arm/tools/mach-types +--- linux-3.10.10.org/arch/arm/tools/mach-types 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/arch/arm/tools/mach-types 2013-09-02 22:06:34.000000000 +0200 +@@ -447,6 +447,7 @@ + smartq5 MACH_SMARTQ5 SMARTQ5 2534 + davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548 + mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 ++guruplug MACH_GURUPLUG GURUPLUG 2601 + capc7117 MACH_CAPC7117 CAPC7117 2612 + icontrol MACH_ICONTROL ICONTROL 2624 + gplugd MACH_GPLUGD GPLUGD 2625 +@@ -454,7 +455,7 @@ + mx23evk MACH_MX23EVK MX23EVK 2629 + ap4evb MACH_AP4EVB AP4EVB 2630 + mityomapl138 MACH_MITYOMAPL138 MITYOMAPL138 2650 +-guruplug MACH_GURUPLUG GURUPLUG 2659 ++dreamplug1 MACH_DREAMPLUG1 DREAMPLUG1 2659 + spear310 MACH_SPEAR310 SPEAR310 2660 + spear320 MACH_SPEAR320 SPEAR320 2661 + aquila MACH_AQUILA AQUILA 2676 +@@ -491,6 +492,7 @@ + t5325 MACH_T5325 T5325 2846 + income MACH_INCOME INCOME 2849 + goni MACH_GONI GONI 2862 ++iconnect MACH_ICONNECT ICONNECT 2870 + bv07 MACH_BV07 BV07 2882 + openrd_ultimate MACH_OPENRD_ULTIMATE OPENRD_ULTIMATE 2884 + devixp MACH_DEVIXP DEVIXP 2885 +@@ -520,6 +522,7 @@ + vpr200 MACH_VPR200 VPR200 3087 + torbreck MACH_TORBRECK TORBRECK 3090 + prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103 ++nas6210 MACH_NAS6210 NAS6210 3104 + paz00 MACH_PAZ00 PAZ00 3128 + acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129 + ag5evm MACH_AG5EVM AG5EVM 3189 +@@ -544,6 +547,7 @@ + nspire MACH_NSPIRE NSPIRE 3503 + nokia_rm696 MACH_NOKIA_RM696 NOKIA_RM696 3522 + mikrap_x168 MACH_MIKRAP_X168 MIKRAP_X168 3543 ++dreamplug MACH_DREAMPLUG DREAMPLUG 3550 + deto_macarm9 MACH_DETO_MACARM9 DETO_MACARM9 3568 + m28evk MACH_M28EVK M28EVK 3613 + kota2 MACH_KOTA2 KOTA2 3616 diff --git a/src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch b/src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch new file mode 100644 index 0000000..e892d88 --- /dev/null +++ b/src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch @@ -0,0 +1,19 @@ +diff -Naur linux-3.10.10.org/drivers/crypto/mv_cesa.c linux-3.10.10/drivers/crypto/mv_cesa.c +--- linux-3.10.10.org/drivers/crypto/mv_cesa.c 2013-08-29 18:47:51.000000000 +0200 ++++ linux-3.10.10/drivers/crypto/mv_cesa.c 2013-09-04 13:06:35.000000000 +0200 +@@ -1120,6 +1120,7 @@ + else + printk(KERN_WARNING MV_CESA "Could not register sha1 driver\n"); + ++/* + ret = crypto_register_ahash(&mv_hmac_sha1_alg); + if (ret == 0) { + cpg->has_hmac_sha1 = 1; +@@ -1127,6 +1128,7 @@ + printk(KERN_WARNING MV_CESA + "Could not register hmac-sha1 driver\n"); + } ++*/ + + return 0; + err_unreg_ecb: diff --git a/src/patches/linux-3.10.9-ledtrig-netdev-1.patch b/src/patches/linux-3.10.9-ledtrig-netdev-1.patch new file mode 100644 index 0000000..8ad1ebd --- /dev/null +++ b/src/patches/linux-3.10.9-ledtrig-netdev-1.patch @@ -0,0 +1,478 @@ +diff -Naur linux-3.10.9.org/drivers/leds/trigger/Kconfig linux-3.10.9/drivers/leds/trigger/Kconfig +--- linux-3.10.9.org/drivers/leds/trigger/Kconfig 2013-08-21 00:40:47.000000000 +0200 ++++ linux-3.10.9/drivers/leds/trigger/Kconfig 2013-08-30 20:43:19.064025933 +0200 +@@ -108,4 +108,11 @@ + This enables direct flash/torch on/off by the driver, kernel space. + If unsure, say Y. + ++config LEDS_TRIGGER_NETDEV ++ tristate "LED Netdev Trigger" ++ depends on LEDS_TRIGGERS ++ help ++ This allows LEDs to be controlled by network device activity. ++ If unsure, say Y. ++ + endif # LEDS_TRIGGERS +diff -Naur linux-3.10.9.org/drivers/leds/trigger/ledtrig-netdev.c linux-3.10.9/drivers/leds/trigger/ledtrig-netdev.c +--- linux-3.10.9.org/drivers/leds/trigger/ledtrig-netdev.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.9/drivers/leds/trigger/ledtrig-netdev.c 2013-08-30 20:44:17.857339974 +0200 +@@ -0,0 +1,451 @@ ++/* ++ * LED Kernel Netdev Trigger ++ * ++ * Toggles the LED to reflect the link and traffic state of a named net device ++ * ++ * Copyright 2007 Oliver Jowett oliver@opencloud.com ++ * ++ * Derived from ledtrig-timer.c which is: ++ * Copyright 2005-2006 Openedhand Ltd. ++ * Author: Richard Purdie rpurdie@openedhand.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/jiffies.h> ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/list.h> ++#include <linux/spinlock.h> ++#include <linux/device.h> ++#include <linux/netdevice.h> ++#include <linux/timer.h> ++#include <linux/ctype.h> ++#include <linux/leds.h> ++#include <linux/version.h> ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ++#include <net/net_namespace.h> ++#endif ++ ++#include "../leds.h" ++ ++/* ++ * Configurable sysfs attributes: ++ * ++ * device_name - network device name to monitor ++ * ++ * interval - duration of LED blink, in milliseconds ++ * ++ * mode - either "none" (LED is off) or a space separated list of one or more of: ++ * link: LED's normal state reflects whether the link is up (has carrier) or not ++ * tx: LED blinks on transmitted data ++ * rx: LED blinks on receive data ++ * ++ * Some suggestions: ++ * ++ * Simple link status LED: ++ * $ echo netdev >someled/trigger ++ * $ echo eth0 >someled/device_name ++ * $ echo link >someled/mode ++ * ++ * Ethernet-style link/activity LED: ++ * $ echo netdev >someled/trigger ++ * $ echo eth0 >someled/device_name ++ * $ echo "link tx rx" >someled/mode ++ * ++ * Modem-style tx/rx LEDs: ++ * $ echo netdev >led1/trigger ++ * $ echo ppp0 >led1/device_name ++ * $ echo tx >led1/mode ++ * $ echo netdev >led2/trigger ++ * $ echo ppp0 >led2/device_name ++ * $ echo rx >led2/mode ++ * ++ */ ++ ++#define MODE_LINK 1 ++#define MODE_TX 2 ++#define MODE_RX 4 ++ ++struct led_netdev_data { ++ rwlock_t lock; ++ ++ struct timer_list timer; ++ struct notifier_block notifier; ++ ++ struct led_classdev *led_cdev; ++ struct net_device *net_dev; ++ ++ char device_name[IFNAMSIZ]; ++ unsigned interval; ++ unsigned mode; ++ unsigned link_up; ++ unsigned last_activity; ++}; ++ ++static void set_baseline_state(struct led_netdev_data *trigger_data) ++{ ++ if ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ else ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ ++ if ((trigger_data->mode & (MODE_TX | MODE_RX)) != 0 && trigger_data->link_up) ++ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); ++ else ++ del_timer(&trigger_data->timer); ++} ++ ++static ssize_t led_device_name_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ sprintf(buf, "%s\n", trigger_data->device_name); ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf) + 1; ++} ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++extern struct net init_net; ++#endif ++ ++static ssize_t led_device_name_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ if (size < 0 || size >= IFNAMSIZ) ++ return -EINVAL; ++ ++ write_lock(&trigger_data->lock); ++ ++ strcpy(trigger_data->device_name, buf); ++ if (size > 0 && trigger_data->device_name[size-1] == '\n') ++ trigger_data->device_name[size-1] = 0; ++ ++ if (trigger_data->device_name[0] != 0) { ++ /* check for existing device to update from */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ++ trigger_data->net_dev = dev_get_by_name(&init_net, trigger_data->device_name); ++#else ++ trigger_data->net_dev = dev_get_by_name(trigger_data->device_name); ++#endif ++ if (trigger_data->net_dev != NULL) ++ trigger_data->link_up = (dev_get_flags(trigger_data->net_dev) & IFF_LOWER_UP) != 0; ++ set_baseline_state(trigger_data); /* updates LEDs, may start timers */ ++ } ++ ++ write_unlock(&trigger_data->lock); ++ return size; ++} ++ ++static DEVICE_ATTR(device_name, 0644, led_device_name_show, led_device_name_store); ++ ++static ssize_t led_mode_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ ++ if (trigger_data->mode == 0) { ++ strcpy(buf, "none\n"); ++ } else { ++ if (trigger_data->mode & MODE_LINK) ++ strcat(buf, "link "); ++ if (trigger_data->mode & MODE_TX) ++ strcat(buf, "tx "); ++ if (trigger_data->mode & MODE_RX) ++ strcat(buf, "rx "); ++ strcat(buf, "\n"); ++ } ++ ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf)+1; ++} ++ ++static ssize_t led_mode_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ char copybuf[1024]; ++ int new_mode = -1; ++ char *p, *token; ++ ++ /* take a copy since we don't want to trash the inbound buffer when using strsep */ ++ strncpy(copybuf, buf, sizeof(copybuf)); ++ copybuf[1023] = 0; ++ p = copybuf; ++ ++ while ((token = strsep(&p, " \t\n")) != NULL) { ++ if (!*token) ++ continue; ++ ++ if (new_mode == -1) ++ new_mode = 0; ++ ++ if (!strcmp(token, "none")) ++ new_mode = 0; ++ else if (!strcmp(token, "tx")) ++ new_mode |= MODE_TX; ++ else if (!strcmp(token, "rx")) ++ new_mode |= MODE_RX; ++ else if (!strcmp(token, "link")) ++ new_mode |= MODE_LINK; ++ else ++ return -EINVAL; ++ } ++ ++ if (new_mode == -1) ++ return -EINVAL; ++ ++ write_lock(&trigger_data->lock); ++ trigger_data->mode = new_mode; ++ set_baseline_state(trigger_data); ++ write_unlock(&trigger_data->lock); ++ ++ return size; ++} ++ ++static DEVICE_ATTR(mode, 0644, led_mode_show, led_mode_store); ++ ++static ssize_t led_interval_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ sprintf(buf, "%u\n", jiffies_to_msecs(trigger_data->interval)); ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf) + 1; ++} ++ ++static ssize_t led_interval_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ int ret = -EINVAL; ++ char *after; ++ unsigned long value = simple_strtoul(buf, &after, 10); ++ size_t count = after - buf; ++ ++ if (*after && isspace(*after)) ++ count++; ++ ++ /* impose some basic bounds on the timer interval */ ++ if (count == size && value >= 5 && value <= 10000) { ++ write_lock(&trigger_data->lock); ++ trigger_data->interval = msecs_to_jiffies(value); ++ set_baseline_state(trigger_data); // resets timer ++ write_unlock(&trigger_data->lock); ++ ret = count; ++ } ++ ++ return ret; ++} ++ ++static DEVICE_ATTR(interval, 0644, led_interval_show, led_interval_store); ++ ++static int netdev_trig_notify(struct notifier_block *nb, ++ unsigned long evt, ++ void *dv) ++{ ++ struct net_device *dev = dv; ++ struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier); ++ ++ if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER) ++ return NOTIFY_DONE; ++ ++ write_lock(&trigger_data->lock); ++ ++ if (strcmp(dev->name, trigger_data->device_name)) ++ goto done; ++ ++ if (evt == NETDEV_REGISTER) { ++ if (trigger_data->net_dev != NULL) ++ dev_put(trigger_data->net_dev); ++ dev_hold(dev); ++ trigger_data->net_dev = dev; ++ trigger_data->link_up = 0; ++ goto done; ++ } ++ ++ if (evt == NETDEV_UNREGISTER && trigger_data->net_dev != NULL) { ++ dev_put(trigger_data->net_dev); ++ trigger_data->net_dev = NULL; ++ goto done; ++ } ++ ++ /* UP / DOWN / CHANGE */ ++ ++ trigger_data->link_up = (evt != NETDEV_DOWN && netif_carrier_ok(dev)); ++ set_baseline_state(trigger_data); ++ ++done: ++ write_unlock(&trigger_data->lock); ++ return NOTIFY_DONE; ++} ++ ++/* here's the real work! */ ++static void netdev_trig_timer(unsigned long arg) ++{ ++ struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg; ++ struct rtnl_link_stats64 *dev_stats; ++ unsigned new_activity; ++ struct rtnl_link_stats64 temp; ++ ++ write_lock(&trigger_data->lock); ++ ++ if (!trigger_data->link_up || !trigger_data->net_dev || (trigger_data->mode & (MODE_TX | MODE_RX)) == 0) { ++ /* we don't need to do timer work, just reflect link state. */ ++ led_set_brightness(trigger_data->led_cdev, ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ? LED_FULL : LED_OFF); ++ goto no_restart; ++ } ++ ++ dev_stats = dev_get_stats(trigger_data->net_dev, &temp); ++ new_activity = ++ ((trigger_data->mode & MODE_TX) ? dev_stats->tx_packets : 0) + ++ ((trigger_data->mode & MODE_RX) ? dev_stats->rx_packets : 0); ++ ++ if (trigger_data->mode & MODE_LINK) { ++ /* base state is ON (link present) */ ++ /* if there's no link, we don't get this far and the LED is off */ ++ ++ /* OFF -> ON always */ ++ /* ON -> OFF on activity */ ++ if (trigger_data->led_cdev->brightness == LED_OFF) { ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ } else if (trigger_data->last_activity != new_activity) { ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ } ++ } else { ++ /* base state is OFF */ ++ /* ON -> OFF always */ ++ /* OFF -> ON on activity */ ++ if (trigger_data->led_cdev->brightness == LED_FULL) { ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ } else if (trigger_data->last_activity != new_activity) { ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ } ++ } ++ ++ trigger_data->last_activity = new_activity; ++ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); ++ ++no_restart: ++ write_unlock(&trigger_data->lock); ++} ++ ++static void netdev_trig_activate(struct led_classdev *led_cdev) ++{ ++ struct led_netdev_data *trigger_data; ++ int rc; ++ ++ trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL); ++ if (!trigger_data) ++ return; ++ ++ rwlock_init(&trigger_data->lock); ++ ++ trigger_data->notifier.notifier_call = netdev_trig_notify; ++ trigger_data->notifier.priority = 10; ++ ++ setup_timer(&trigger_data->timer, netdev_trig_timer, (unsigned long) trigger_data); ++ ++ trigger_data->led_cdev = led_cdev; ++ trigger_data->net_dev = NULL; ++ trigger_data->device_name[0] = 0; ++ ++ trigger_data->mode = 0; ++ trigger_data->interval = msecs_to_jiffies(50); ++ trigger_data->link_up = 0; ++ trigger_data->last_activity = 0; ++ ++ led_cdev->trigger_data = trigger_data; ++ ++ rc = device_create_file(led_cdev->dev, &dev_attr_device_name); ++ if (rc) ++ goto err_out; ++ rc = device_create_file(led_cdev->dev, &dev_attr_mode); ++ if (rc) ++ goto err_out_device_name; ++ rc = device_create_file(led_cdev->dev, &dev_attr_interval); ++ if (rc) ++ goto err_out_mode; ++ ++ register_netdevice_notifier(&trigger_data->notifier); ++ return; ++ ++err_out_mode: ++ device_remove_file(led_cdev->dev, &dev_attr_mode); ++err_out_device_name: ++ device_remove_file(led_cdev->dev, &dev_attr_device_name); ++err_out: ++ led_cdev->trigger_data = NULL; ++ kfree(trigger_data); ++} ++ ++static void netdev_trig_deactivate(struct led_classdev *led_cdev) ++{ ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ if (trigger_data) { ++ unregister_netdevice_notifier(&trigger_data->notifier); ++ ++ device_remove_file(led_cdev->dev, &dev_attr_device_name); ++ device_remove_file(led_cdev->dev, &dev_attr_mode); ++ device_remove_file(led_cdev->dev, &dev_attr_interval); ++ ++ write_lock(&trigger_data->lock); ++ ++ if (trigger_data->net_dev) { ++ dev_put(trigger_data->net_dev); ++ trigger_data->net_dev = NULL; ++ } ++ ++ write_unlock(&trigger_data->lock); ++ ++ del_timer_sync(&trigger_data->timer); ++ ++ kfree(trigger_data); ++ } ++} ++ ++static struct led_trigger netdev_led_trigger = { ++ .name = "netdev", ++ .activate = netdev_trig_activate, ++ .deactivate = netdev_trig_deactivate, ++}; ++ ++static int __init netdev_trig_init(void) ++{ ++ return led_trigger_register(&netdev_led_trigger); ++} ++ ++static void __exit netdev_trig_exit(void) ++{ ++ led_trigger_unregister(&netdev_led_trigger); ++} ++ ++module_init(netdev_trig_init); ++module_exit(netdev_trig_exit); ++ ++MODULE_AUTHOR("Oliver Jowett oliver@opencloud.com"); ++MODULE_DESCRIPTION("Netdev LED trigger"); ++MODULE_LICENSE("GPL"); +diff -Naur linux-3.10.9.org/drivers/leds/trigger/Makefile linux-3.10.9/drivers/leds/trigger/Makefile +--- linux-3.10.9.org/drivers/leds/trigger/Makefile 2013-08-21 00:40:47.000000000 +0200 ++++ linux-3.10.9/drivers/leds/trigger/Makefile 2013-08-30 20:43:56.414009853 +0200 +@@ -8,3 +8,4 @@ + obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o + obj-$(CONFIG_LEDS_TRIGGER_TRANSIENT) += ledtrig-transient.o + obj-$(CONFIG_LEDS_TRIGGER_CAMERA) += ledtrig-camera.o ++obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o diff --git a/src/patches/linux-3.7-disable-compat_vdso.patch b/src/patches/linux-3.7-disable-compat_vdso.patch new file mode 100644 index 0000000..c06bd8b --- /dev/null +++ b/src/patches/linux-3.7-disable-compat_vdso.patch @@ -0,0 +1,46 @@ +No need to wrap vdso calls as gentoo does not use any version of +glibc <=2.3.3 +--- +From: Gordon Malm gengor@gentoo.org +From: Kerin Millar kerframil@gmail.com +From: Jory A. Pratt anarchy@gentoo.org + +COMPAT_VDSO is inappropriate for any modern Hardened Gentoo system. It +conflicts with various parts of PaX, crashing the system if enabled +while PaX's NOEXEC or UDEREF features are active. Moreover, it prevents +a number of important PaX options from appearing in the configuration +menu, including all PaX NOEXEC implementations. Unfortunately, the +reason for the disappearance of these PaX configuration options is +often far from obvious to inexperienced users. + +Therefore, we disable the COMPAT_VDSO menu entry entirely. However, +COMPAT_VDSO operation can still be enabled via bootparam and sysctl +interfaces. Consequently, we must also disable the ability to select +COMPAT_VDSO operation at boot or runtime. Here we patch the kernel so +that selecting COMPAT_VDSO operation at boot/runtime has no effect if +conflicting PaX options are enabled, leaving VDSO_ENABLED operation +intact. + +Closes bug: http://bugs.gentoo.org/show_bug.cgi?id=210138 + +diff -urp a/arch/x86/Kconfig b/arch/x86/Kconfig +--- a/arch/x86/Kconfig 2009-07-31 01:36:57.323857684 +0100 ++++ b/arch/x86/Kconfig 2009-07-31 01:51:39.395749681 +0100 +@@ -1651,17 +1651,8 @@ + + config COMPAT_VDSO + def_bool n +- prompt "Compat VDSO support" + depends on X86_32 || IA32_EMULATION + depends on !PAX_PAGEEXEC && !PAX_SEGMEXEC && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF +- ---help--- +- Map the 32-bit VDSO to the predictable old-style address too. +- +- Say N here if you are running a sufficiently recent glibc +- version (2.3.3 or later), to remove the high-mapped +- VDSO mapping and to exclusively use the randomized VDSO. +- +- If unsure, say Y. + + config CMDLINE_BOOL + bool "Built-in kernel command line" diff --git a/src/patches/linux-3.9-dvbsky-wot2.patch b/src/patches/linux-3.9-dvbsky-wot2.patch new file mode 100644 index 0000000..e084c8c --- /dev/null +++ b/src/patches/linux-3.9-dvbsky-wot2.patch @@ -0,0 +1,6161 @@ +diff -urN a/drivers/media/dvb-frontends/Kconfig b/drivers/media/dvb-frontends/Kconfig +--- a/drivers/media/dvb-frontends/Kconfig 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/dvb-frontends/Kconfig 2013-05-03 17:03:57.000000000 +0800 +@@ -200,6 +200,20 @@ + help + A DVB-S/S2 tuner module. Say Y when you want to support this frontend. + ++config DVB_M88DS3103 ++ tristate "Montage M88DS3103 based" ++ depends on DVB_CORE && I2C ++ default m if !MEDIA_SUBDRV_AUTOSELECT ++ help ++ A DVB-S/S2 tuner module. Say Y when you want to support this frontend. ++ ++config DVB_M88DC2800 ++ tristate "Montage M88DC2800 based" ++ depends on DVB_CORE && I2C ++ default m if !MEDIA_SUBDRV_AUTOSELECT ++ help ++ A DVB-C tuner module. Say Y when you want to support this frontend. ++ + config DVB_SI21XX + tristate "Silicon Labs SI21XX based" + depends on DVB_CORE && I2C +diff -urN a/drivers/media/dvb-frontends/m88dc2800.c b/drivers/media/dvb-frontends/m88dc2800.c +--- a/drivers/media/dvb-frontends/m88dc2800.c 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/dvb-frontends/m88dc2800.c 2013-01-26 16:03:21.000000000 +0800 +@@ -0,0 +1,2124 @@ ++/* ++ M88DC2800/M88TC2800 - DVB-C demodulator and tuner from Montage ++ ++ Copyright (C) 2012 Max nibblenibble.max@gmail.com ++ Copyright (C) 2011 Montage Technology / www.montage-tech.com ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++ ++#include <linux/delay.h> ++#include <linux/errno.h> ++#include <linux/init.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/string.h> ++#include <linux/slab.h> ++#include <asm/div64.h> ++#include "dvb_frontend.h" ++#include "m88dc2800.h" ++ ++struct m88dc2800_state { ++ struct i2c_adapter *i2c; ++ const struct m88dc2800_config *config; ++ struct dvb_frontend frontend; ++ u32 freq; ++ u32 ber; ++ u32 sym; ++ u16 qam; ++ u8 inverted; ++ u32 xtal; ++ /* tuner state */ ++ u8 tuner_init_OK; /* Tuner initialize status */ ++ u8 tuner_dev_addr; /* Tuner device address */ ++ u32 tuner_freq; /* RF frequency to be set, unit: KHz */ ++ u16 tuner_qam; /* Reserved */ ++ u16 tuner_mode; ++ u8 tuner_bandwidth; /* Bandwidth of the channel, unit: MHz, 6/7/8 */ ++ u8 tuner_loopthrough; /* Tuner loop through switch, 0/1 */ ++ u32 tuner_crystal; /* Tuner crystal frequency, unit: KHz */ ++ u32 tuner_dac; /* Tuner DAC frequency, unit: KHz */ ++ u16 tuner_mtt; /* Tuner chip version, D1: 0x0d, E0: 0x0e, E1: 0x8e */ ++ u16 tuner_custom_cfg; ++ u32 tuner_version; /* Tuner driver version number */ ++ u32 tuner_time; ++}; ++ ++static int debug; ++module_param(debug, int, 0644); ++MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)"); ++ ++#define dprintk(args...) \ ++ do { \ ++ if (debug) \ ++ printk(KERN_INFO "m88dc2800: " args); \ ++ } while (0) ++ ++ ++static int m88dc2800_i2c_write(struct m88dc2800_state *state, u8 addr, ++ u8 * p_data, u8 len) ++{ ++ struct i2c_msg msg = { .flags = 0 }; ++ ++ msg.addr = addr; ++ msg.buf = p_data; ++ msg.len = len; ++ ++ return i2c_transfer(state->i2c, &msg, 1); ++} ++ ++static int m88dc2800_i2c_read(struct m88dc2800_state *state, u8 addr, ++ u8 * p_data, u8 len) ++{ ++ struct i2c_msg msg = { .flags = I2C_M_RD }; ++ ++ msg.addr = addr; ++ msg.buf = p_data; ++ msg.len = len; ++ ++ return i2c_transfer(state->i2c, &msg, 1); ++} ++ ++/*demod register operations.*/ ++static int WriteReg(struct m88dc2800_state *state, u8 reg, u8 data) ++{ ++ u8 buf[] = { reg, data }; ++ u8 addr = state->config->demod_address; ++ int err; ++ ++ dprintk("%s: write reg 0x%02x, value 0x%02x\n", __func__, reg, data); ++ ++ err = m88dc2800_i2c_write(state, addr, buf, 2); ++ ++ if (err != 1) { ++ printk(KERN_ERR ++ "%s: writereg error(err == %i, reg == 0x%02x," ++ " value == 0x%02x)\n", __func__, err, reg, data); ++ return -EIO; ++ } ++ return 0; ++} ++ ++static int ReadReg(struct m88dc2800_state *state, u8 reg) ++{ ++ int ret; ++ u8 b0[] = { reg }; ++ u8 b1[] = { 0 }; ++ u8 addr = state->config->demod_address; ++ ++ ret = m88dc2800_i2c_write(state, addr, b0, 1); ++ ++ if (ret != 1) { ++ printk(KERN_ERR "%s: reg=0x%x (error=%d)\n", ++ __func__, reg, ret); ++ return -EIO; ++ } ++ ++ ret = m88dc2800_i2c_read(state, addr, b1, 1); ++ ++ dprintk("%s: read reg 0x%02x, value 0x%02x\n", __func__, reg, b1[0]); ++ return b1[0]; ++} ++ ++static int _mt_fe_tn_set_reg(struct m88dc2800_state *state, u8 reg, ++ u8 data) ++{ ++ int ret; ++ u8 buf[2]; ++ u8 addr = state->tuner_dev_addr; ++ ++ buf[1] = ReadReg(state, 0x86); ++ buf[1] |= 0x80; ++ ret = WriteReg(state, 0x86, buf[1]); ++ ++ buf[0] = reg; ++ buf[1] = data; ++ ++ ret = m88dc2800_i2c_write(state, addr, buf, 2); ++ if (ret != 1) ++ return -EIO; ++ return 0; ++} ++ ++static int _mt_fe_tn_get_reg(struct m88dc2800_state *state, u8 reg, ++ u8 * p_data) ++{ ++ int ret; ++ u8 buf[2]; ++ u8 addr = state->tuner_dev_addr; ++ ++ buf[1] = ReadReg(state, 0x86); ++ buf[1] |= 0x80; ++ ret = WriteReg(state, 0x86, buf[1]); ++ ++ buf[0] = reg; ++ ret = m88dc2800_i2c_write(state, addr, buf, 1); ++ ++ msleep(1); ++ ++ buf[1] = ReadReg(state, 0x86); ++ buf[1] |= 0x80; ++ ret = WriteReg(state, 0x86, buf[1]); ++ ++ return m88dc2800_i2c_read(state, addr, p_data, 1); ++} ++ ++/* Tuner operation functions.*/ ++static int _mt_fe_tn_set_RF_front_tc2800(struct m88dc2800_state *state) ++{ ++ u32 freq_KHz = state->tuner_freq; ++ u8 a, b, c; ++ if (state->tuner_mtt == 0xD1) { /* D1 */ ++ if (freq_KHz <= 123000) { ++ if (freq_KHz <= 56000) { ++ a = 0x00; b = 0x00; c = 0x00; ++ } else if (freq_KHz <= 64000) { ++ a = 0x10; b = 0x01; c = 0x08; ++ } else if (freq_KHz <= 72000) { ++ a = 0x20; b = 0x02; c = 0x10; ++ } else if (freq_KHz <= 80000) { ++ a = 0x30; b = 0x03; c = 0x18; ++ } else if (freq_KHz <= 88000) { ++ a = 0x40; b = 0x04; c = 0x20; ++ } else if (freq_KHz <= 96000) { ++ a = 0x50; b = 0x05; c = 0x28; ++ } else if (freq_KHz <= 104000) { ++ a = 0x60; b = 0x06; c = 0x30; ++ } else { ++ a = 0x70; b = 0x07; c = 0x38; ++ } ++ _mt_fe_tn_set_reg(state, 0x58, 0x9b); ++ _mt_fe_tn_set_reg(state, 0x59, a); ++ _mt_fe_tn_set_reg(state, 0x5d, b); ++ _mt_fe_tn_set_reg(state, 0x5e, c); ++ _mt_fe_tn_set_reg(state, 0x5a, 0x75); ++ _mt_fe_tn_set_reg(state, 0x73, 0x0c); ++ } else { /* if (freq_KHz > 112000) */ ++ _mt_fe_tn_set_reg(state, 0x58, 0x7b); ++ if (freq_KHz <= 304000) { ++ if (freq_KHz <= 136000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x40); ++ } else if (freq_KHz <= 160000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x48); ++ } else if (freq_KHz <= 184000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x50); ++ } else if (freq_KHz <= 208000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x58); ++ } else if (freq_KHz <= 232000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x60); ++ } else if (freq_KHz <= 256000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x68); ++ } else if (freq_KHz <= 280000) { ++ _mt_fe_tn_set_reg(state, 0x5e, 0x70); ++ } else { /* if (freq_KHz <= 304000) */ ++ _mt_fe_tn_set_reg(state, 0x5e, 0x78); ++ } ++ if (freq_KHz <= 171000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x08); ++ } else if (freq_KHz <= 211000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x0a); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x73, 0x0e); ++ } ++ } else { /* if (freq_KHz > 304000) */ ++ _mt_fe_tn_set_reg(state, 0x5e, 0x88); ++ if (freq_KHz <= 400000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x0c); ++ } else if (freq_KHz <= 450000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x09); ++ } else if (freq_KHz <= 550000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x0e); ++ } else if (freq_KHz <= 650000) { ++ _mt_fe_tn_set_reg(state, 0x73, 0x0d); ++ } else { /*if (freq_KHz > 650000) */ ++ _mt_fe_tn_set_reg(state, 0x73, 0x0e); ++ } ++ } ++ } ++ if (freq_KHz > 800000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x24); ++ else if (freq_KHz > 700000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x34); ++ else if (freq_KHz > 500000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x44); ++ else if (freq_KHz > 300000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x43); ++ else if (freq_KHz > 220000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ else if (freq_KHz > 110000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x14); ++ else ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ if (freq_KHz > 600000) ++ _mt_fe_tn_set_reg(state, 0x6a, 0x53); ++ else if (freq_KHz > 500000) ++ _mt_fe_tn_set_reg(state, 0x6a, 0x57); ++ else ++ _mt_fe_tn_set_reg(state, 0x6a, 0x59); ++ if (freq_KHz < 200000) { ++ _mt_fe_tn_set_reg(state, 0x20, 0x5d); ++ } else if (freq_KHz < 500000) { ++ _mt_fe_tn_set_reg(state, 0x20, 0x7d); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x20, 0xfd); ++ } /* end of 0xD1 */ ++ } else if (state->tuner_mtt == 0xE1) { /* E1 */ ++ if (freq_KHz <= 112000) { /* 123MHz */ ++ if (freq_KHz <= 56000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x01); ++ } else if (freq_KHz <= 64000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x09); ++ } else if (freq_KHz <= 72000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x11); ++ } else if (freq_KHz <= 80000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x19); ++ } else if (freq_KHz <= 88000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x21); ++ } else if (freq_KHz <= 96000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x29); ++ } else if (freq_KHz <= 104000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x31); ++ } else { /* if (freq_KHz <= 112000) */ ++ _mt_fe_tn_set_reg(state, 0x5c, 0x39); ++ } ++ _mt_fe_tn_set_reg(state, 0x5b, 0x30); ++ } else { /* if (freq_KHz > 112000) */ ++ if (freq_KHz <= 304000) { ++ if (freq_KHz <= 136000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x41); ++ } else if (freq_KHz <= 160000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x49); ++ } else if (freq_KHz <= 184000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x51); ++ } else if (freq_KHz <= 208000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x59); ++ } else if (freq_KHz <= 232000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x61); ++ } else if (freq_KHz <= 256000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x69); ++ } else if (freq_KHz <= 280000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x71); ++ } else { /* if (freq_KHz <= 304000) */ ++ _mt_fe_tn_set_reg(state, 0x5c, 0x79); ++ } ++ if (freq_KHz <= 150000) { ++ _mt_fe_tn_set_reg(state, 0x5b, 0x28); ++ } else if (freq_KHz <= 256000) { ++ _mt_fe_tn_set_reg(state, 0x5b, 0x29); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x5b, 0x2a); ++ } ++ } else { /* if (freq_KHz > 304000) */ ++ if (freq_KHz <= 400000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x89); ++ } else if (freq_KHz <= 450000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x91); ++ } else if (freq_KHz <= 650000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0x98); ++ } else if (freq_KHz <= 850000) { ++ _mt_fe_tn_set_reg(state, 0x5c, 0xa0); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x5c, 0xa8); ++ } ++ _mt_fe_tn_set_reg(state, 0x5b, 0x08); ++ } ++ } ++ } /* end of 0xE1 */ ++ return 0; ++} ++ ++static int _mt_fe_tn_cali_PLL_tc2800(struct m88dc2800_state *state, ++ u32 freq_KHz, ++ u32 cali_freq_thres_div2, ++ u32 cali_freq_thres_div3r, ++ u32 cali_freq_thres_div3) ++{ ++ s32 N, F, MUL; ++ u8 buf, tmp, tmp2; ++ s32 M; ++ const s32 crystal_KHz = state->tuner_crystal; ++ if (state->tuner_mtt == 0xD1) { ++ M = state->tuner_crystal / 4000; ++ if (freq_KHz > cali_freq_thres_div2) { ++ MUL = 4; ++ tmp = 2; ++ } else if (freq_KHz > 300000) { ++ MUL = 8; ++ tmp = 3; ++ } else if (freq_KHz > (cali_freq_thres_div2 / 2)) { ++ MUL = 8; ++ tmp = 4; ++ } else if (freq_KHz > (cali_freq_thres_div2 / 4)) { ++ MUL = 16; ++ tmp = 5; ++ } else if (freq_KHz > (cali_freq_thres_div2 / 8)) { ++ MUL = 32; ++ tmp = 6; ++ } else if (freq_KHz > (cali_freq_thres_div2 / 16)) { ++ MUL = 64; ++ tmp = 7; ++ } else { /* invalid */ ++ MUL = 0; ++ tmp = 0; ++ return 1; ++ } ++ } else if (state->tuner_mtt == 0xE1) { ++ M = state->tuner_crystal / 1000; ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_set_reg(state, 0x32, 0xe0); ++ _mt_fe_tn_set_reg(state, 0x33, 0x86); ++ _mt_fe_tn_set_reg(state, 0x37, 0x70); ++ _mt_fe_tn_set_reg(state, 0x38, 0x20); ++ _mt_fe_tn_set_reg(state, 0x39, 0x18); ++ _mt_fe_tn_set_reg(state, 0x89, 0x83); ++ if (freq_KHz > cali_freq_thres_div2) { ++ M = M / 4; ++ MUL = 4; ++ tmp = 2; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > cali_freq_thres_div3r) { ++ M = M / 3; ++ MUL = 6; ++ tmp = 2; ++ tmp2 = M + 32; /* 32 */ ++ } else if (freq_KHz > cali_freq_thres_div3) { ++ M = M / 3; ++ MUL = 6; ++ tmp = 2; ++ tmp2 = M; /* 16 */ ++ } else if (freq_KHz > 304000) { ++ M = M / 4; ++ MUL = 8; ++ tmp = 3; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > (cali_freq_thres_div2 / 2)) { ++ M = M / 4; ++ MUL = 8; ++ tmp = 4; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > (cali_freq_thres_div3r / 2)) { ++ M = M / 3; ++ MUL = 12; ++ tmp = 4; ++ tmp2 = M + 32; /* 32 */ ++ } else if (freq_KHz > (cali_freq_thres_div3 / 2)) { ++ M = M / 3; ++ MUL = 12; ++ tmp = 4; ++ tmp2 = M; /* 16 */ ++ } else if (freq_KHz > (cali_freq_thres_div2 / 4)) { ++ M = M / 4; ++ MUL = 16; ++ tmp = 5; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > (cali_freq_thres_div3r / 4)) { ++ M = M / 3; ++ MUL = 24; ++ tmp = 5; ++ tmp2 = M + 32; /* 32 */ ++ } else if (freq_KHz > (cali_freq_thres_div3 / 4)) { ++ M = M / 3; ++ MUL = 24; ++ tmp = 5; ++ tmp2 = M; /* 16 */ ++ } else if (freq_KHz > (cali_freq_thres_div2 / 8)) { ++ M = M / 4; ++ MUL = 32; ++ tmp = 6; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > (cali_freq_thres_div3r / 8)) { ++ M = M / 3; ++ MUL = 48; ++ tmp = 6; ++ tmp2 = M + 32; /* 32 */ ++ } else if (freq_KHz > (cali_freq_thres_div3 / 8)) { ++ M = M / 3; ++ MUL = 48; ++ tmp = 6; ++ tmp2 = M; /* 16 */ ++ } else if (freq_KHz > (cali_freq_thres_div2 / 16)) { ++ M = M / 4; ++ MUL = 64; ++ tmp = 7; ++ tmp2 = M + 16; /* 48 */ ++ } else if (freq_KHz > (cali_freq_thres_div3r / 16)) { ++ M = M / 3; ++ MUL = 96; ++ tmp = 7; ++ tmp2 = M + 32; /* 32 */ ++ } else if (freq_KHz > (cali_freq_thres_div3 / 16)) { ++ M = M / 3; ++ MUL = 96; ++ tmp = 7; ++ tmp2 = M; /* 16 */ ++ } else { /* invalid */ ++ M = M / 4; ++ MUL = 0; ++ tmp = 0; ++ tmp2 = 48; ++ return 1; ++ } ++ if (freq_KHz == 291000) { ++ M = state->tuner_crystal / 1000 / 3; ++ MUL = 12; ++ tmp = 4; ++ tmp2 = M + 32; /* 32 */ ++ } ++ /* ++ if (freq_KHz == 578000) { ++ M = state->tuner_crystal / 1000 / 4; ++ MUL = 4; ++ tmp = 2; ++ tmp2 = M + 16; // 48 ++ } ++ */ ++ if (freq_KHz == 690000) { ++ M = state->tuner_crystal / 1000 / 3; ++ MUL = 4; ++ tmp = 2; ++ tmp2 = M + 16; /* 48 */ ++ } ++ _mt_fe_tn_get_reg(state, 0x33, &buf); ++ buf &= 0xc0; ++ buf += tmp2; ++ _mt_fe_tn_set_reg(state, 0x33, buf); ++ } else { ++ return 1; ++ } ++ _mt_fe_tn_get_reg(state, 0x39, &buf); ++ buf &= 0xf8; ++ buf += tmp; ++ _mt_fe_tn_set_reg(state, 0x39, buf); ++ N = (freq_KHz * MUL * M / crystal_KHz) / 2 * 2 - 256; ++ buf = (N >> 8) & 0xcf; ++ if (state->tuner_mtt == 0xE1) { ++ buf |= 0x30; ++ } ++ _mt_fe_tn_set_reg(state, 0x34, buf); ++ buf = N & 0xff; ++ _mt_fe_tn_set_reg(state, 0x35, buf); ++ F = ((freq_KHz * MUL * M / (crystal_KHz / 1000) / 2) - ++ (freq_KHz * MUL * M / crystal_KHz / 2 * 1000)) * 64 / 1000; ++ buf = F & 0xff; ++ _mt_fe_tn_set_reg(state, 0x36, buf); ++ if (F == 0) { ++ if (state->tuner_mtt == 0xD1) { ++ _mt_fe_tn_set_reg(state, 0x3d, 0xca); ++ } else if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_set_reg(state, 0x3d, 0xfe); ++ } else { ++ return 1; ++ } ++ _mt_fe_tn_set_reg(state, 0x3e, 0x9c); ++ _mt_fe_tn_set_reg(state, 0x3f, 0x34); ++ } ++ if (F > 0) { ++ if (state->tuner_mtt == 0xD1) { ++ if ((F == 32) || (F == 16) || (F == 48)) { ++ _mt_fe_tn_set_reg(state, 0x3e, 0xa4); ++ _mt_fe_tn_set_reg(state, 0x3d, 0x4a); ++ _mt_fe_tn_set_reg(state, 0x3f, 0x36); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x3e, 0xa4); ++ _mt_fe_tn_set_reg(state, 0x3d, 0x4a); ++ _mt_fe_tn_set_reg(state, 0x3f, 0x36); ++ } ++ } else if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_set_reg(state, 0x3e, 0xa4); ++ _mt_fe_tn_set_reg(state, 0x3d, 0x7e); ++ _mt_fe_tn_set_reg(state, 0x3f, 0x36); ++ _mt_fe_tn_set_reg(state, 0x89, 0x84); ++ _mt_fe_tn_get_reg(state, 0x39, &buf); ++ buf = buf & 0x1f; ++ _mt_fe_tn_set_reg(state, 0x39, buf); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf | 0x02; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ } else { ++ return 1; ++ } ++ } ++ _mt_fe_tn_set_reg(state, 0x41, 0x00); ++ if (state->tuner_mtt == 0xD1) { ++ msleep(5); ++ } else if (state->tuner_mtt == 0xE1) { ++ msleep(2); ++ } else { ++ return 1; ++ } ++ _mt_fe_tn_set_reg(state, 0x41, 0x02); ++ _mt_fe_tn_set_reg(state, 0x30, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_set_reg(state, 0x31, 0x80); ++ _mt_fe_tn_set_reg(state, 0x31, 0x00); ++ ++ return 0; ++} ++ ++static int _mt_fe_tn_set_PLL_freq_tc2800(struct m88dc2800_state *state) ++{ ++ u8 buf, buf1; ++ u32 freq_thres_div2_KHz, freq_thres_div3r_KHz, ++ freq_thres_div3_KHz; ++ const u32 freq_KHz = state->tuner_freq; ++ if (state->tuner_mtt == 0xD1) { ++ _mt_fe_tn_set_reg(state, 0x32, 0xe1); ++ _mt_fe_tn_set_reg(state, 0x33, 0xa6); ++ _mt_fe_tn_set_reg(state, 0x37, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x38, 0x20); ++ _mt_fe_tn_set_reg(state, 0x39, 0x18); ++ _mt_fe_tn_set_reg(state, 0x40, 0x40); ++ freq_thres_div2_KHz = 520000; ++ _mt_fe_tn_cali_PLL_tc2800(state, freq_KHz, ++ freq_thres_div2_KHz, 0, 0); ++ msleep(5); ++ _mt_fe_tn_get_reg(state, 0x3a, &buf); ++ buf1 = buf; ++ buf = buf & 0x03; ++ buf1 = buf1 & 0x01; ++ if ((buf1 == 0) || (buf == 3)) { ++ freq_thres_div2_KHz = 420000; ++ _mt_fe_tn_cali_PLL_tc2800(state, freq_KHz, ++ freq_thres_div2_KHz, 0, ++ 0); ++ msleep(5); ++ _mt_fe_tn_get_reg(state, 0x3a, &buf); ++ buf = buf & 0x07; ++ if (buf == 5) { ++ freq_thres_div2_KHz = 520000; ++ _mt_fe_tn_cali_PLL_tc2800(state, freq_KHz, ++ freq_thres_div2_KHz, ++ 0, 0); ++ msleep(5); ++ } ++ } ++ _mt_fe_tn_get_reg(state, 0x38, &buf); ++ _mt_fe_tn_set_reg(state, 0x38, buf); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf | 0x10; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x30, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf & 0xdf; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x40, 0x0); ++ _mt_fe_tn_set_reg(state, 0x30, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_set_reg(state, 0x31, 0x80); ++ _mt_fe_tn_set_reg(state, 0x31, 0x00); ++ msleep(5); ++ _mt_fe_tn_get_reg(state, 0x39, &buf); ++ buf = buf >> 5; ++ if (buf < 5) { ++ _mt_fe_tn_get_reg(state, 0x39, &buf); ++ buf = buf | 0xa0; ++ buf = buf & 0xbf; ++ _mt_fe_tn_set_reg(state, 0x39, buf); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf | 0x02; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ } ++ _mt_fe_tn_get_reg(state, 0x37, &buf); ++ if (buf > 0x70) { ++ buf = 0x7f; ++ _mt_fe_tn_set_reg(state, 0x40, 0x40); ++ } ++ _mt_fe_tn_set_reg(state, 0x37, buf); ++ _mt_fe_tn_get_reg(state, 0x38, &buf); ++ if (buf < 0x0f) { ++ buf = (buf & 0x0f) << 2; ++ buf = buf + 0x0f; ++ _mt_fe_tn_set_reg(state, 0x37, buf); ++ } else if (buf < 0x1f) { ++ buf = buf + 0x0f; ++ _mt_fe_tn_set_reg(state, 0x37, buf); ++ } ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = (buf | 0x20) & 0xef; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x41, 0x00); ++ msleep(5); ++ _mt_fe_tn_set_reg(state, 0x41, 0x02); ++ } else if (state->tuner_mtt == 0xE1) { ++ freq_thres_div2_KHz = 580000; ++ freq_thres_div3r_KHz = 500000; ++ freq_thres_div3_KHz = 440000; ++ _mt_fe_tn_cali_PLL_tc2800(state, freq_KHz, ++ freq_thres_div2_KHz, ++ freq_thres_div3r_KHz, ++ freq_thres_div3_KHz); ++ msleep(3); ++ _mt_fe_tn_get_reg(state, 0x38, &buf); ++ _mt_fe_tn_set_reg(state, 0x38, buf); ++ _mt_fe_tn_set_reg(state, 0x30, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_set_reg(state, 0x31, 0x80); ++ _mt_fe_tn_set_reg(state, 0x31, 0x00); ++ msleep(3); ++ _mt_fe_tn_get_reg(state, 0x38, &buf); ++ _mt_fe_tn_set_reg(state, 0x38, buf); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf | 0x10; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x30, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = buf & 0xdf; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x31, 0x80); ++ _mt_fe_tn_set_reg(state, 0x31, 0x00); ++ msleep(3); ++ _mt_fe_tn_get_reg(state, 0x37, &buf); ++ _mt_fe_tn_set_reg(state, 0x37, buf); ++ /* ++ if ((freq_KHz == 802000) || (freq_KHz == 826000)) { ++ _mt_fe_tn_set_reg(state, 0x37, 0x5e); ++ } ++ */ ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = (buf & 0xef) | 0x30; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ _mt_fe_tn_set_reg(state, 0x41, 0x00); ++ msleep(2); ++ _mt_fe_tn_set_reg(state, 0x41, 0x02); ++ } else { ++ return 1; ++ } ++ return 0; ++} ++ ++static int _mt_fe_tn_set_BB_tc2800(struct m88dc2800_state *state) ++{ ++ return 0; ++} ++ ++ static int _mt_fe_tn_set_appendix_tc2800(struct m88dc2800_state *state) ++ ++{ ++ u8 buf; ++ const u32 freq_KHz = state->tuner_freq; ++ if (state->tuner_mtt == 0xD1) { ++ if ((freq_KHz == 123000) || (freq_KHz == 147000) || ++ (freq_KHz == 171000) || (freq_KHz == 195000)) { ++ _mt_fe_tn_set_reg(state, 0x20, 0x1b); ++ } ++ if ((freq_KHz == 371000) || (freq_KHz == 419000) || ++ (freq_KHz == 610000) || (freq_KHz == 730000) || ++ (freq_KHz == 754000) || (freq_KHz == 826000)) { ++ _mt_fe_tn_get_reg(state, 0x0d, &buf); ++ _mt_fe_tn_set_reg(state, 0x0d, (u8) (buf + 1)); ++ } ++ if ((freq_KHz == 522000) || (freq_KHz == 578000) || ++ (freq_KHz == 634000) || (freq_KHz == 690000) || ++ (freq_KHz == 834000)) { ++ _mt_fe_tn_get_reg(state, 0x0d, &buf); ++ _mt_fe_tn_set_reg(state, 0x0d, (u8) (buf - 1)); ++ } ++ } else if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_set_reg(state, 0x20, 0xfc); ++ if (freq_KHz == 123000 || freq_KHz == 147000 || ++ freq_KHz == 171000 || freq_KHz == 195000 || ++ freq_KHz == 219000 || freq_KHz == 267000 || ++ freq_KHz == 291000 || freq_KHz == 339000 || ++ freq_KHz == 387000 || freq_KHz == 435000 || ++ freq_KHz == 482000 || freq_KHz == 530000 || ++ freq_KHz == 722000 || ++ (state->tuner_custom_cfg == 1 && freq_KHz == 315000)) { ++ _mt_fe_tn_set_reg(state, 0x20, 0x5c); ++ } ++ } ++ return 0; ++} ++ ++ static int _mt_fe_tn_set_DAC_tc2800(struct m88dc2800_state *state) ++{ ++ u8 buf, tempnumber; ++ s32 N; ++ s32 f1f2number, f1, f2, delta1, Totalnum1; ++ s32 cntT, cntin, NCOI, z0, z1, z2, tmp; ++ u32 fc, fadc, fsd, f2d; ++ u32 FreqTrue108_Hz; ++ s32 M = state->tuner_crystal / 4000; ++ /* const u8 bandwidth = state->tuner_bandwidth; */ ++ const u16 DAC_fre = 108; ++ const u32 crystal_KHz = state->tuner_crystal; ++ const u32 DACFreq_KHz = state->tuner_dac; ++ const u32 freq_KHz = state->tuner_freq; ++ ++ if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_get_reg(state, 0x33, &buf); ++ M = buf & 0x0f; ++ if (M == 0) ++ M = 6; ++ } ++ _mt_fe_tn_get_reg(state, 0x34, &buf); ++ N = buf & 0x07; ++ _mt_fe_tn_get_reg(state, 0x35, &buf); ++ N = (N << 8) + buf; ++ buf = ((N + 256) * crystal_KHz / M / DAC_fre + 500) / 1000; ++ if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_set_appendix_tc2800(state); ++ if (freq_KHz == 187000 || freq_KHz == 195000 || ++ freq_KHz == 131000 || freq_KHz == 211000 || ++ freq_KHz == 219000 || freq_KHz == 227000 || ++ freq_KHz == 267000 || freq_KHz == 299000 || ++ freq_KHz == 347000 || freq_KHz == 363000 || ++ freq_KHz == 395000 || freq_KHz == 403000 || ++ freq_KHz == 435000 || freq_KHz == 482000 || ++ freq_KHz == 474000 || freq_KHz == 490000 || ++ freq_KHz == 610000 || freq_KHz == 642000 || ++ freq_KHz == 666000 || freq_KHz == 722000 || ++ freq_KHz == 754000 || ++ ((freq_KHz == 379000 || freq_KHz == 467000 || ++ freq_KHz == 762000) && state->tuner_custom_cfg != 1)) { ++ buf = buf + 1; ++ } ++ if (freq_KHz == 123000 || freq_KHz == 139000 || ++ freq_KHz == 147000 || freq_KHz == 171000 || ++ freq_KHz == 179000 || freq_KHz == 203000 || ++ freq_KHz == 235000 || freq_KHz == 251000 || ++ freq_KHz == 259000 || freq_KHz == 283000 || ++ freq_KHz == 331000 || freq_KHz == 363000 || ++ freq_KHz == 371000 || freq_KHz == 387000 || ++ freq_KHz == 411000 || freq_KHz == 427000 || ++ freq_KHz == 443000 || freq_KHz == 451000 || ++ freq_KHz == 459000 || freq_KHz == 506000 || ++ freq_KHz == 514000 || freq_KHz == 538000 || ++ freq_KHz == 546000 || freq_KHz == 554000 || ++ freq_KHz == 562000 || freq_KHz == 570000 || ++ freq_KHz == 578000 || freq_KHz == 602000 || ++ freq_KHz == 626000 || freq_KHz == 658000 || ++ freq_KHz == 690000 || freq_KHz == 714000 || ++ freq_KHz == 746000 || freq_KHz == 522000 || ++ freq_KHz == 826000 || freq_KHz == 155000 || ++ freq_KHz == 530000 || ++ ((freq_KHz == 275000 || freq_KHz == 355000) && ++ state->tuner_custom_cfg != 1) || ++ ((freq_KHz == 467000 || freq_KHz == 762000 || ++ freq_KHz == 778000 || freq_KHz == 818000) && ++ state->tuner_custom_cfg == 1)) { ++ buf = buf - 1; ++ } ++ } ++ _mt_fe_tn_set_reg(state, 0x0e, buf); ++ _mt_fe_tn_set_reg(state, 0x0d, buf); ++ f1f2number = ++ (((DACFreq_KHz * M * buf) / crystal_KHz) << 16) / (N + 256) + ++ (((DACFreq_KHz * M * buf) % crystal_KHz) << 16) / ((N + 256) * ++ crystal_KHz); ++ _mt_fe_tn_set_reg(state, 0xf1, (f1f2number & 0xff00) >> 8); ++ _mt_fe_tn_set_reg(state, 0xf2, f1f2number & 0x00ff); ++ FreqTrue108_Hz = ++ (N + 256) * crystal_KHz / (M * buf) * 1000 + ++ (((N + 256) * crystal_KHz) % (M * buf)) * 1000 / (M * buf); ++ f1 = 4096; ++ fc = FreqTrue108_Hz; ++ fadc = fc / 4; ++ fsd = 27000000; ++ f2d = state->tuner_bandwidth * 1000 / 2 - 150; ++ f2 = (fsd / 250) * f2d / ((fc + 500) / 1000); ++ delta1 = ((f1 - f2) << 15) / f2; ++ Totalnum1 = ((f1 - f2) << 15) - delta1 * f2; ++ cntT = f2; ++ cntin = Totalnum1; ++ NCOI = delta1; ++ z0 = cntin; ++ z1 = cntT; ++ z2 = NCOI; ++ tempnumber = (z0 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xc9, (u8) (tempnumber & 0x0f)); ++ tempnumber = (z0 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xca, tempnumber); ++ tempnumber = (z1 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xcb, tempnumber); ++ tempnumber = (z1 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xcc, tempnumber); ++ tempnumber = (z2 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xcd, tempnumber); ++ tempnumber = (z2 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xce, tempnumber); ++ tmp = f1; ++ f1 = f2; ++ f2 = tmp / 2; ++ delta1 = ((f1 - f2) << 15) / f2; ++ Totalnum1 = ((f1 - f2) << 15) - delta1 * f2; ++ NCOI = (f1 << 15) / f2 - (1 << 15); ++ cntT = f2; ++ cntin = Totalnum1; ++ z0 = cntin; ++ z1 = cntT; ++ z2 = NCOI; ++ tempnumber = (z0 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xd9, (u8) (tempnumber & 0x0f)); ++ tempnumber = (z0 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xda, tempnumber); ++ tempnumber = (z1 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xdb, tempnumber); ++ tempnumber = (z1 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xdc, tempnumber); ++ tempnumber = (z2 & 0xff00) >> 8; ++ _mt_fe_tn_set_reg(state, 0xdd, tempnumber); ++ tempnumber = (z2 & 0xff); ++ _mt_fe_tn_set_reg(state, 0xde, tempnumber); ++ ++ return 0; ++} ++ ++static int _mt_fe_tn_preset_tc2800(struct m88dc2800_state *state) ++{ ++ if (state->tuner_mtt == 0xD1) { ++ _mt_fe_tn_set_reg(state, 0x19, 0x4a); ++ _mt_fe_tn_set_reg(state, 0x1b, 0x4b); ++ _mt_fe_tn_set_reg(state, 0x04, 0x04); ++ _mt_fe_tn_set_reg(state, 0x17, 0x0d); ++ _mt_fe_tn_set_reg(state, 0x62, 0x6c); ++ _mt_fe_tn_set_reg(state, 0x63, 0xf4); ++ _mt_fe_tn_set_reg(state, 0x1f, 0x0e); ++ _mt_fe_tn_set_reg(state, 0x6b, 0xf4); ++ _mt_fe_tn_set_reg(state, 0x14, 0x01); ++ _mt_fe_tn_set_reg(state, 0x5a, 0x75); ++ _mt_fe_tn_set_reg(state, 0x66, 0x74); ++ _mt_fe_tn_set_reg(state, 0x72, 0xe0); ++ _mt_fe_tn_set_reg(state, 0x70, 0x07); ++ _mt_fe_tn_set_reg(state, 0x15, 0x7b); ++ _mt_fe_tn_set_reg(state, 0x55, 0x71); ++ _mt_fe_tn_set_reg(state, 0x75, 0x55); ++ _mt_fe_tn_set_reg(state, 0x76, 0xac); ++ _mt_fe_tn_set_reg(state, 0x77, 0x6c); ++ _mt_fe_tn_set_reg(state, 0x78, 0x8b); ++ _mt_fe_tn_set_reg(state, 0x79, 0x42); ++ _mt_fe_tn_set_reg(state, 0x7a, 0xd2); ++ _mt_fe_tn_set_reg(state, 0x81, 0x01); ++ _mt_fe_tn_set_reg(state, 0x82, 0x00); ++ _mt_fe_tn_set_reg(state, 0x82, 0x02); ++ _mt_fe_tn_set_reg(state, 0x82, 0x04); ++ _mt_fe_tn_set_reg(state, 0x82, 0x06); ++ _mt_fe_tn_set_reg(state, 0x82, 0x08); ++ _mt_fe_tn_set_reg(state, 0x82, 0x09); ++ _mt_fe_tn_set_reg(state, 0x82, 0x29); ++ _mt_fe_tn_set_reg(state, 0x82, 0x49); ++ _mt_fe_tn_set_reg(state, 0x82, 0x58); ++ _mt_fe_tn_set_reg(state, 0x82, 0x59); ++ _mt_fe_tn_set_reg(state, 0x82, 0x98); ++ _mt_fe_tn_set_reg(state, 0x82, 0x99); ++ _mt_fe_tn_set_reg(state, 0x10, 0x05); ++ _mt_fe_tn_set_reg(state, 0x10, 0x0d); ++ _mt_fe_tn_set_reg(state, 0x11, 0x95); ++ _mt_fe_tn_set_reg(state, 0x11, 0x9d); ++ if (state->tuner_loopthrough != 0) { ++ _mt_fe_tn_set_reg(state, 0x67, 0x25); ++ } else { ++ _mt_fe_tn_set_reg(state, 0x67, 0x05); ++ } ++ } else if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_set_reg(state, 0x1b, 0x47); ++ if (state->tuner_mode == 0) { /* DVB-C */ ++ _mt_fe_tn_set_reg(state, 0x66, 0x74); ++ _mt_fe_tn_set_reg(state, 0x62, 0x2c); ++ _mt_fe_tn_set_reg(state, 0x63, 0x54); ++ _mt_fe_tn_set_reg(state, 0x68, 0x0b); ++ _mt_fe_tn_set_reg(state, 0x14, 0x00); ++ } else { /* CTTB */ ++ _mt_fe_tn_set_reg(state, 0x66, 0x74); ++ _mt_fe_tn_set_reg(state, 0x62, 0x0c); ++ _mt_fe_tn_set_reg(state, 0x63, 0x54); ++ _mt_fe_tn_set_reg(state, 0x68, 0x0b); ++ _mt_fe_tn_set_reg(state, 0x14, 0x05); ++ } ++ _mt_fe_tn_set_reg(state, 0x6f, 0x00); ++ _mt_fe_tn_set_reg(state, 0x84, 0x04); ++ _mt_fe_tn_set_reg(state, 0x5e, 0xbe); ++ _mt_fe_tn_set_reg(state, 0x87, 0x07); ++ _mt_fe_tn_set_reg(state, 0x8a, 0x1f); ++ _mt_fe_tn_set_reg(state, 0x8b, 0x1f); ++ _mt_fe_tn_set_reg(state, 0x88, 0x30); ++ _mt_fe_tn_set_reg(state, 0x58, 0x34); ++ _mt_fe_tn_set_reg(state, 0x61, 0x8c); ++ _mt_fe_tn_set_reg(state, 0x6a, 0x42); ++ } ++ return 0; ++} ++ ++static int mt_fe_tn_wakeup_tc2800(struct m88dc2800_state *state) ++{ ++ _mt_fe_tn_set_reg(state, 0x16, 0xb1); ++ _mt_fe_tn_set_reg(state, 0x09, 0x7d); ++ return 0; ++} ++ ++ static int mt_fe_tn_sleep_tc2800(struct m88dc2800_state *state) ++{ ++ _mt_fe_tn_set_reg(state, 0x16, 0xb0); ++ _mt_fe_tn_set_reg(state, 0x09, 0x6d); ++ return 0; ++} ++ ++ static int mt_fe_tn_init_tc2800(struct m88dc2800_state *state) ++{ ++ if (state->tuner_init_OK != 1) { ++ state->tuner_dev_addr = 0x61; /* TUNER_I2C_ADDR_TC2800 */ ++ state->tuner_freq = 650000; ++ state->tuner_qam = 0; ++ state->tuner_mode = 0; // 0: DVB-C, 1: CTTB ++ state->tuner_bandwidth = 8; ++ state->tuner_loopthrough = 0; ++ state->tuner_crystal = 24000; ++ state->tuner_dac = 7200; ++ state->tuner_mtt = 0x00; ++ state->tuner_custom_cfg = 0; ++ state->tuner_version = 30022; /* Driver version number */ ++ state->tuner_time = 12092611; ++ state->tuner_init_OK = 1; ++ } ++ _mt_fe_tn_set_reg(state, 0x2b, 0x46); ++ _mt_fe_tn_set_reg(state, 0x2c, 0x75); ++ if (state->tuner_mtt == 0x00) { ++ u8 tmp = 0; ++ _mt_fe_tn_get_reg(state, 0x01, &tmp); ++ printk(KERN_INFO "m88dc2800: tuner id = 0x%02x ", tmp); ++ switch (tmp) { ++ case 0x0d: ++ state->tuner_mtt = 0xD1; ++ break; ++ case 0x8e: ++ default: ++ state->tuner_mtt = 0xE1; ++ break; ++ } ++ } ++ return 0; ++} ++ ++ static int mt_fe_tn_set_freq_tc2800(struct m88dc2800_state *state, ++ u32 freq_KHz) ++{ ++ u8 buf; ++ u8 buf1; ++ ++ mt_fe_tn_init_tc2800(state); ++ state->tuner_freq = freq_KHz; ++ _mt_fe_tn_set_reg(state, 0x21, freq_KHz > 500000 ? 0xb9 : 0x99); ++ mt_fe_tn_wakeup_tc2800(state); ++ _mt_fe_tn_set_reg(state, 0x05, 0x7f); ++ _mt_fe_tn_set_reg(state, 0x06, 0xf8); ++ _mt_fe_tn_set_RF_front_tc2800(state); ++ _mt_fe_tn_set_PLL_freq_tc2800(state); ++ _mt_fe_tn_set_DAC_tc2800(state); ++ _mt_fe_tn_set_BB_tc2800(state); ++ _mt_fe_tn_preset_tc2800(state); ++ _mt_fe_tn_set_reg(state, 0x05, 0x00); ++ _mt_fe_tn_set_reg(state, 0x06, 0x00); ++ if (state->tuner_mtt == 0xD1) { ++ _mt_fe_tn_set_reg(state, 0x00, 0x01); ++ _mt_fe_tn_set_reg(state, 0x00, 0x00); ++ msleep(5); ++ _mt_fe_tn_set_reg(state, 0x41, 0x00); ++ msleep(5); ++ _mt_fe_tn_set_reg(state, 0x41, 0x02); ++ ++ _mt_fe_tn_get_reg(state, 0x69, &buf1); ++ buf1 = buf1 & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x61, &buf); ++ buf = buf & 0x0f; ++ if (buf == 0x0c) ++ _mt_fe_tn_set_reg(state, 0x6a, 0x59); ++ if (buf1 > 0x02) { ++ if (freq_KHz > 600000) ++ _mt_fe_tn_set_reg(state, 0x66, 0x44); ++ else if (freq_KHz > 500000) ++ _mt_fe_tn_set_reg(state, 0x66, 0x64); ++ else ++ _mt_fe_tn_set_reg(state, 0x66, 0x74); ++ } ++ if (buf1 < 0x03) { ++ if (freq_KHz > 800000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x64); ++ else if (freq_KHz > 600000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ else if (freq_KHz > 500000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ else if (freq_KHz > 300000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x43); ++ else if (freq_KHz > 220000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ else if (freq_KHz > 110000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x14); ++ else ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ msleep(5); ++ } else if (buf < 0x0c) { ++ if (freq_KHz > 800000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x14); ++ else if (freq_KHz > 600000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x14); ++ else if (freq_KHz > 500000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x34); ++ else if (freq_KHz > 300000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x43); ++ else if (freq_KHz > 220000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ else if (freq_KHz > 110000) ++ _mt_fe_tn_set_reg(state, 0x87, 0x14); ++ else ++ _mt_fe_tn_set_reg(state, 0x87, 0x54); ++ msleep(5); ++ } ++ } else if ((state->tuner_mtt == 0xE1)) { ++ _mt_fe_tn_set_reg(state, 0x00, 0x01); ++ _mt_fe_tn_set_reg(state, 0x00, 0x00); ++ msleep(20); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = (buf & 0xef) | 0x28; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ msleep(50); ++ _mt_fe_tn_get_reg(state, 0x38, &buf); ++ _mt_fe_tn_set_reg(state, 0x38, buf); ++ _mt_fe_tn_get_reg(state, 0x32, &buf); ++ buf = (buf & 0xf7) | 0x10; ++ _mt_fe_tn_set_reg(state, 0x32, buf); ++ msleep(10); ++ _mt_fe_tn_get_reg(state, 0x69, &buf); ++ buf = buf & 0x03; ++ _mt_fe_tn_set_reg(state, 0x2a, buf); ++ if (buf > 0) { ++ msleep(20); ++ _mt_fe_tn_get_reg(state, 0x84, &buf); ++ buf = buf & 0x1f; ++ _mt_fe_tn_set_reg(state, 0x68, 0x0a); ++ _mt_fe_tn_get_reg(state, 0x88, &buf1); ++ buf1 = buf1 & 0x1f; ++ if (buf <= buf1) ++ _mt_fe_tn_set_reg(state, 0x66, 0x44); ++ else ++ _mt_fe_tn_set_reg(state, 0x66, 0x74); ++ } else { ++ if (freq_KHz <= 600000) ++ _mt_fe_tn_set_reg(state, 0x68, 0x0c); ++ else ++ _mt_fe_tn_set_reg(state, 0x68, 0x0e); ++ _mt_fe_tn_set_reg(state, 0x30, 0xfb); ++ _mt_fe_tn_set_reg(state, 0x30, 0xff); ++ _mt_fe_tn_set_reg(state, 0x31, 0x04); ++ _mt_fe_tn_set_reg(state, 0x31, 0x00); ++ } ++ if (state->tuner_loopthrough != 0) { ++ _mt_fe_tn_get_reg(state, 0x28, &buf); ++ if (buf == 0) { ++ _mt_fe_tn_set_reg(state, 0x28, 0xff); ++ _mt_fe_tn_get_reg(state, 0x61, &buf); ++ buf = buf & 0x0f; ++ if (buf > 9) ++ _mt_fe_tn_set_reg(state, 0x67, 0x74); ++ else if (buf > 6) ++ _mt_fe_tn_set_reg(state, 0x67, 0x64); ++ else if (buf > 3) ++ _mt_fe_tn_set_reg(state, 0x67, 0x54); ++ else ++ _mt_fe_tn_set_reg(state, 0x67, 0x44); ++ } ++ } else { ++ _mt_fe_tn_set_reg(state, 0x67, 0x34); ++ } ++ } else { ++ return 1; ++ } ++ return 0; ++} ++ ++ ++/* ++static int mt_fe_tn_set_BB_filter_band_tc2800(struct m88dc2800_state *state, ++ u8 bandwidth) ++{ ++ u8 buf, tmp; ++ ++ _mt_fe_tn_get_reg(state, 0x53, &tmp); ++ ++ if (bandwidth == 6) ++ buf = 0x01 << 1; ++ else if (bandwidth == 7) ++ buf = 0x02 << 1; ++ else if (bandwidth == 8) ++ buf = 0x04 << 1; ++ else ++ buf = 0x04 << 1; ++ ++ tmp &= 0xf1; ++ tmp |= buf; ++ _mt_fe_tn_set_reg(state, 0x53, tmp); ++ state->tuner_bandwidth = bandwidth; ++ return 0; ++} ++*/ ++ ++static s32 mt_fe_tn_get_signal_strength_tc2800(struct m88dc2800_state ++ *state) ++{ ++ s32 level = -107; ++ s32 tmp1, tmp2, tmp3, tmp4, tmp5, tmp6; ++ s32 val1, val2, val; ++ s32 result2, result3, result4, result5, result6; ++ s32 append; ++ u8 tmp; ++ s32 freq_KHz = (s32) state->tuner_freq; ++ if (state->tuner_mtt == 0xD1) { ++ _mt_fe_tn_get_reg(state, 0x61, &tmp); ++ tmp1 = tmp & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x69, &tmp); ++ tmp2 = tmp & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x73, &tmp); ++ tmp3 = tmp & 0x07; ++ _mt_fe_tn_get_reg(state, 0x7c, &tmp); ++ tmp4 = (tmp >> 4) & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x7b, &tmp); ++ tmp5 = tmp & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x7f, &tmp); ++ tmp6 = (tmp >> 5) & 0x01; ++ if (tmp1 > 6) { ++ val1 = 0; ++ if (freq_KHz <= 200000) { ++ val2 = (tmp1 - 6) * 267; ++ } else if (freq_KHz <= 600000) { ++ val2 = (tmp1 - 6) * 280; ++ } else { ++ val2 = (tmp1 - 6) * 290; ++ } ++ val = val1 + val2; ++ } else { ++ if (tmp1 == 0) { ++ val1 = -550; ++ } else { ++ val1 = 0; ++ } ++ if ((tmp1 < 4) && (freq_KHz >= 506000)) { ++ val1 = -850; ++ } ++ val2 = 0; ++ val = val1 + val2; ++ } ++ if (freq_KHz <= 95000) { ++ result2 = tmp2 * 289; ++ } else if (freq_KHz <= 155000) { ++ result2 = tmp2 * 278; ++ } else if (freq_KHz <= 245000) { ++ result2 = tmp2 * 267; ++ } else if (freq_KHz <= 305000) { ++ result2 = tmp2 * 256; ++ } else if (freq_KHz <= 335000) { ++ result2 = tmp2 * 244; ++ } else if (freq_KHz <= 425000) { ++ result2 = tmp2 * 233; ++ } else if (freq_KHz <= 575000) { ++ result2 = tmp2 * 222; ++ } else if (freq_KHz <= 665000) { ++ result2 = tmp2 * 211; ++ } else { ++ result2 = tmp2 * 200; ++ } ++ result3 = (6 - tmp3) * 100; ++ result4 = 300 * tmp4; ++ result5 = 50 * tmp5; ++ result6 = 300 * tmp6; ++ if (freq_KHz < 105000) { ++ append = -450; ++ } else if (freq_KHz <= 227000) { ++ append = -4 * (freq_KHz / 1000 - 100) + 150; ++ } else if (freq_KHz <= 305000) { ++ append = -4 * (freq_KHz / 1000 - 100); ++ } else if (freq_KHz <= 419000) { ++ append = 500 - 40 * (freq_KHz / 1000 - 300) / 17 + 130; ++ } else if (freq_KHz <= 640000) { ++ append = 500 - 40 * (freq_KHz / 1000 - 300) / 17; ++ } else { ++ append = -500; ++ } ++ level = append - (val + result2 + result3 + result4 + ++ result5 + result6); ++ level /= 100; ++ } else if (state->tuner_mtt == 0xE1) { ++ _mt_fe_tn_get_reg(state, 0x61, &tmp); ++ tmp1 = tmp & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x84, &tmp); ++ tmp2 = tmp & 0x1f; ++ _mt_fe_tn_get_reg(state, 0x69, &tmp); ++ tmp3 = tmp & 0x03; ++ _mt_fe_tn_get_reg(state, 0x73, &tmp); ++ tmp4 = tmp & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x7c, &tmp); ++ tmp5 = (tmp >> 4) & 0x0f; ++ _mt_fe_tn_get_reg(state, 0x7b, &tmp); ++ tmp6 = tmp & 0x0f; ++ if (freq_KHz < 151000) { ++ result2 = (1150 - freq_KHz / 100) * 163 / 33 + 4230; ++ result3 = (1150 - freq_KHz / 100) * 115 / 33 + 1850; ++ result4 = -3676 * (freq_KHz / 1000) / 100 + 6115; ++ } else if (freq_KHz < 257000) { ++ result2 = (1540 - freq_KHz / 100) * 11 / 4 + 3870; ++ result3 = (1540 - freq_KHz / 100) * 205 / 96 + 2100; ++ result4 = -21 * freq_KHz / 1000 + 5084; ++ } else if (freq_KHz < 305000) { ++ result2 = (2620 - freq_KHz / 100) * 5 / 3 + 2770; ++ result3 = (2620 - freq_KHz / 100) * 10 / 7 + 1700; ++ result4 = 650; ++ } else if (freq_KHz < 449000) { ++ result2 = (307 - freq_KHz / 1000) * 82 / 27 + 11270; ++ result3 = (3100 - freq_KHz / 100) * 5 / 3 + 10000; ++ result4 = 134 * freq_KHz / 10000 + 11875; ++ } else { ++ result2 = (307 - freq_KHz / 1000) * 82 / 27 + 11270; ++ result3 = 8400; ++ result4 = 5300; ++ } ++ if (tmp1 > 6) { ++ val1 = result2; ++ val2 = 2900; ++ val = 500; ++ } else if (tmp1 > 0) { ++ val1 = result3; ++ val2 = 2700; ++ val = 500; ++ } else { ++ val1 = result4; ++ val2 = 2700; ++ val = 400; ++ } ++ level = val1 - (val2 * tmp1 + 500 * tmp2 + 3000 * tmp3 - ++ 500 * tmp4 + 3000 * tmp5 + val * tmp6) - 1000; ++ level /= 1000; ++ } ++ return level; ++} ++ ++ ++/* m88dc2800 operation functions */ ++u8 M88DC2000GetLock(struct m88dc2800_state * state) ++{ ++ u8 u8ret = 0; ++ if (ReadReg(state, 0x80) < 0x06) { ++ if ((ReadReg(state, 0xdf) & 0x80) == 0x80 ++ &&(ReadReg(state, 0x91) & 0x23) == 0x03 ++ &&(ReadReg(state, 0x43) & 0x08) == 0x08) ++ u8ret = 1; ++ else ++ u8ret = 0; ++ } else { ++ if ((ReadReg(state, 0x85) & 0x08) == 0x08) ++ u8ret = 1; ++ else ++ u8ret = 0; ++ } ++ dprintk("%s, lock=%d\n", __func__, u8ret); ++ return u8ret; ++} ++ ++static int M88DC2000SetTsType(struct m88dc2800_state *state, u8 type) ++{ ++ u8 regC2H; ++ ++ if (type == 3) { ++ WriteReg(state, 0x84, 0x6A); ++ WriteReg(state, 0xC0, 0x43); ++ WriteReg(state, 0xE2, 0x06); ++ regC2H = ReadReg(state, 0xC2); ++ regC2H &= 0xC0; ++ regC2H |= 0x1B; ++ WriteReg(state, 0xC2, regC2H); ++ WriteReg(state, 0xC1, 0x60); /* common interface */ ++ } else if (type == 1) { ++ WriteReg(state, 0x84, 0x6A); ++ WriteReg(state, 0xC0, 0x47); /* serial format */ ++ WriteReg(state, 0xE2, 0x02); ++ regC2H = ReadReg(state, 0xC2); ++ regC2H &= 0xC7; ++ WriteReg(state, 0xC2, regC2H); ++ WriteReg(state, 0xC1, 0x00); ++ } else { ++ WriteReg(state, 0x84, 0x6C); ++ WriteReg(state, 0xC0, 0x43); /* parallel format */ ++ WriteReg(state, 0xE2, 0x06); ++ regC2H = ReadReg(state, 0xC2); ++ regC2H &= 0xC7; ++ WriteReg(state, 0xC2, regC2H); ++ WriteReg(state, 0xC1, 0x00); ++ } ++ return 0; ++} ++ ++static int M88DC2000RegInitial_TC2800(struct m88dc2800_state *state) ++{ ++ u8 RegE3H, RegE4H; ++ ++ WriteReg(state, 0x00, 0x48); ++ WriteReg(state, 0x01, 0x09); ++ WriteReg(state, 0xFB, 0x0A); ++ WriteReg(state, 0xFC, 0x0B); ++ WriteReg(state, 0x02, 0x0B); ++ WriteReg(state, 0x03, 0x18); ++ WriteReg(state, 0x05, 0x0D); ++ WriteReg(state, 0x36, 0x80); ++ WriteReg(state, 0x43, 0x40); ++ WriteReg(state, 0x55, 0x7A); ++ WriteReg(state, 0x56, 0xD9); ++ WriteReg(state, 0x57, 0xDF); ++ WriteReg(state, 0x58, 0x39); ++ WriteReg(state, 0x5A, 0x00); ++ WriteReg(state, 0x5C, 0x71); ++ WriteReg(state, 0x5D, 0x23); ++ WriteReg(state, 0x86, 0x40); ++ WriteReg(state, 0xF9, 0x08); ++ WriteReg(state, 0x61, 0x40); ++ WriteReg(state, 0x62, 0x0A); ++ WriteReg(state, 0x90, 0x06); ++ WriteReg(state, 0xDE, 0x00); ++ WriteReg(state, 0xA0, 0x03); ++ WriteReg(state, 0xDF, 0x81); ++ WriteReg(state, 0xFA, 0x40); ++ WriteReg(state, 0x37, 0x10); ++ WriteReg(state, 0xF0, 0x40); ++ WriteReg(state, 0xF2, 0x9C); ++ WriteReg(state, 0xF3, 0x40); ++ RegE3H = ReadReg(state, 0xE3); ++ RegE4H = ReadReg(state, 0xE4); ++ if (((RegE3H & 0xC0) == 0x00) && ((RegE4H & 0xC0) == 0x00)) { ++ WriteReg(state, 0x30, 0xFF); ++ WriteReg(state, 0x31, 0x00); ++ WriteReg(state, 0x32, 0x00); ++ WriteReg(state, 0x33, 0x00); ++ WriteReg(state, 0x35, 0x32); ++ WriteReg(state, 0x40, 0x00); ++ WriteReg(state, 0x41, 0x10); ++ WriteReg(state, 0xF1, 0x02); ++ WriteReg(state, 0xF4, 0x04); ++ WriteReg(state, 0xF5, 0x00); ++ WriteReg(state, 0x42, 0x14); ++ WriteReg(state, 0xE1, 0x25); ++ } else if (((RegE3H & 0xC0) == 0x80) && ((RegE4H & 0xC0) == 0x40)) { ++ WriteReg(state, 0x30, 0xFF); ++ WriteReg(state, 0x31, 0x00); ++ WriteReg(state, 0x32, 0x00); ++ WriteReg(state, 0x33, 0x00); ++ WriteReg(state, 0x35, 0x32); ++ WriteReg(state, 0x39, 0x00); ++ WriteReg(state, 0x3A, 0x00); ++ WriteReg(state, 0x40, 0x00); ++ WriteReg(state, 0x41, 0x10); ++ WriteReg(state, 0xF1, 0x00); ++ WriteReg(state, 0xF4, 0x00); ++ WriteReg(state, 0xF5, 0x40); ++ WriteReg(state, 0x42, 0x14); ++ WriteReg(state, 0xE1, 0x25); ++ } else if ((RegE3H == 0x80 || RegE3H == 0x81) ++ && (RegE4H == 0x80 || RegE4H == 0x81)) { ++ WriteReg(state, 0x30, 0xFF); ++ WriteReg(state, 0x31, 0x00); ++ WriteReg(state, 0x32, 0x00); ++ WriteReg(state, 0x33, 0x00); ++ WriteReg(state, 0x35, 0x32); ++ WriteReg(state, 0x39, 0x00); ++ WriteReg(state, 0x3A, 0x00); ++ WriteReg(state, 0xF1, 0x00); ++ WriteReg(state, 0xF4, 0x00); ++ WriteReg(state, 0xF5, 0x40); ++ WriteReg(state, 0x42, 0x24); ++ WriteReg(state, 0xE1, 0x25); ++ WriteReg(state, 0x92, 0x7F); ++ WriteReg(state, 0x93, 0x91); ++ WriteReg(state, 0x95, 0x00); ++ WriteReg(state, 0x2B, 0x33); ++ WriteReg(state, 0x2A, 0x2A); ++ WriteReg(state, 0x2E, 0x80); ++ WriteReg(state, 0x25, 0x25); ++ WriteReg(state, 0x2D, 0xFF); ++ WriteReg(state, 0x26, 0xFF); ++ WriteReg(state, 0x27, 0x00); ++ WriteReg(state, 0x24, 0x25); ++ WriteReg(state, 0xA4, 0xFF); ++ WriteReg(state, 0xA3, 0x0D); ++ } else { ++ WriteReg(state, 0x30, 0xFF); ++ WriteReg(state, 0x31, 0x00); ++ WriteReg(state, 0x32, 0x00); ++ WriteReg(state, 0x33, 0x00); ++ WriteReg(state, 0x35, 0x32); ++ WriteReg(state, 0x39, 0x00); ++ WriteReg(state, 0x3A, 0x00); ++ WriteReg(state, 0xF1, 0x00); ++ WriteReg(state, 0xF4, 0x00); ++ WriteReg(state, 0xF5, 0x40); ++ WriteReg(state, 0x42, 0x24); ++ WriteReg(state, 0xE1, 0x27); ++ WriteReg(state, 0x92, 0x7F); ++ WriteReg(state, 0x93, 0x91); ++ WriteReg(state, 0x95, 0x00); ++ WriteReg(state, 0x2B, 0x33); ++ WriteReg(state, 0x2A, 0x2A); ++ WriteReg(state, 0x2E, 0x80); ++ WriteReg(state, 0x25, 0x25); ++ WriteReg(state, 0x2D, 0xFF); ++ WriteReg(state, 0x26, 0xFF); ++ WriteReg(state, 0x27, 0x00); ++ WriteReg(state, 0x24, 0x25); ++ WriteReg(state, 0xA4, 0xFF); ++ WriteReg(state, 0xA3, 0x10); ++ } ++ WriteReg(state, 0xF6, 0x4E); ++ WriteReg(state, 0xF7, 0x20); ++ WriteReg(state, 0x89, 0x02); ++ WriteReg(state, 0x14, 0x08); ++ WriteReg(state, 0x6F, 0x0D); ++ WriteReg(state, 0x10, 0xFF); ++ WriteReg(state, 0x11, 0x00); ++ WriteReg(state, 0x12, 0x30); ++ WriteReg(state, 0x13, 0x23); ++ WriteReg(state, 0x60, 0x00); ++ WriteReg(state, 0x69, 0x00); ++ WriteReg(state, 0x6A, 0x03); ++ WriteReg(state, 0xE0, 0x75); ++ WriteReg(state, 0x8D, 0x29); ++ WriteReg(state, 0x4E, 0xD8); ++ WriteReg(state, 0x88, 0x80); ++ WriteReg(state, 0x52, 0x79); ++ WriteReg(state, 0x53, 0x03); ++ WriteReg(state, 0x59, 0x30); ++ WriteReg(state, 0x5E, 0x02); ++ WriteReg(state, 0x5F, 0x0F); ++ WriteReg(state, 0x71, 0x03); ++ WriteReg(state, 0x72, 0x12); ++ WriteReg(state, 0x73, 0x12); ++ ++ return 0; ++} ++ ++static int M88DC2000AutoTSClock_P(struct m88dc2800_state *state, u32 sym, ++ u16 qam) ++{ ++ u32 dataRate; ++ u8 clk_div, value; ++ printk(KERN_INFO ++ "m88dc2800: M88DC2000AutoTSClock_P, symrate=%d qam=%d\n", ++ sym, qam); ++ switch (qam) { ++ case 16: ++ dataRate = 4; ++ break; ++ case 32: ++ dataRate = 5; ++ break; ++ case 128: ++ dataRate = 7; ++ break; ++ case 256: ++ dataRate = 8; ++ break; ++ case 64: ++ default: ++ dataRate = 6; ++ break; ++ } ++ dataRate *= sym * 105; ++ dataRate /= 800; ++ if (dataRate <= 4115) ++ clk_div = 0x05; ++ else if (dataRate <= 4800) ++ clk_div = 0x04; ++ else if (dataRate <= 5760) ++ clk_div = 0x03; ++ else if (dataRate <= 7200) ++ clk_div = 0x02; ++ else if (dataRate <= 9600) ++ clk_div = 0x01; ++ else ++ clk_div = 0x00; ++ value = ReadReg(state, 0xC2); ++ value &= 0xc0; ++ value |= clk_div; ++ WriteReg(state, 0xC2, value); ++ return 0; ++} ++ ++static int M88DC2000AutoTSClock_C(struct m88dc2800_state *state, u32 sym, ++ u16 qam) ++{ ++ u32 dataRate; ++ u8 clk_div, value; ++ printk(KERN_INFO ++ "m88dc2800: M88DC2000AutoTSClock_C, symrate=%d qam=%d\n", ++ sym, qam); ++ switch (qam) { ++ case 16: ++ dataRate = 4; ++ break; ++ case 32: ++ dataRate = 5; ++ break; ++ case 128: ++ dataRate = 7; ++ break; ++ case 256: ++ dataRate = 8; ++ break; ++ case 64: ++ default: ++ dataRate = 6; ++ break; ++ } ++ dataRate *= sym * 105; ++ dataRate /= 800; ++ if (dataRate <= 4115) ++ clk_div = 0x3F; ++ else if (dataRate <= 4800) ++ clk_div = 0x36; ++ else if (dataRate <= 5760) ++ clk_div = 0x2D; ++ else if (dataRate <= 7200) ++ clk_div = 0x24; ++ else if (dataRate <= 9600) ++ clk_div = 0x1B; ++ else ++ clk_div = 0x12; ++ value = ReadReg(state, 0xC2); ++ value &= 0xc0; ++ value |= clk_div; ++ WriteReg(state, 0xC2, value); ++ return 0; ++} ++ ++static int M88DC2000SetTxMode(struct m88dc2800_state *state, u8 inverted, ++ u8 j83) ++{ ++ u8 value = 0; ++ if (inverted) ++ value |= 0x08; /* spectrum inverted */ ++ if (j83) ++ value |= 0x01; /* J83C */ ++ WriteReg(state, 0x83, value); ++ return 0; ++} ++ ++static int M88DC2000SoftReset(struct m88dc2800_state *state) ++{ ++ WriteReg(state, 0x80, 0x01); ++ WriteReg(state, 0x82, 0x00); ++ msleep(1); ++ WriteReg(state, 0x80, 0x00); ++ return 0; ++} ++ ++static int M88DC2000SetSym(struct m88dc2800_state *state, u32 sym, u32 xtal) ++{ ++ u8 value; ++ u8 reg6FH, reg12H; ++ u64 fValue; ++ u32 dwValue; ++ ++ printk(KERN_INFO "%s, sym=%d, xtal=%d\n", __func__, sym, xtal); ++ fValue = 4294967296 * (sym + 10); ++ do_div(fValue, xtal); ++ ++ /* fValue = 4294967296 * (sym + 10) / xtal; */ ++ dwValue = (u32) fValue; ++ printk(KERN_INFO "%s, fvalue1=%x\n", __func__, dwValue); ++ WriteReg(state, 0x58, (u8) ((dwValue >> 24) & 0xff)); ++ WriteReg(state, 0x57, (u8) ((dwValue >> 16) & 0xff)); ++ WriteReg(state, 0x56, (u8) ((dwValue >> 8) & 0xff)); ++ WriteReg(state, 0x55, (u8) ((dwValue >> 0) & 0xff)); ++ ++ /* fValue = 2048 * xtal / sym; */ ++ fValue = 2048 * xtal; ++ do_div(fValue, sym); ++ dwValue = (u32) fValue; ++ printk(KERN_INFO "%s, fvalue2=%x\n", __func__, dwValue); ++ WriteReg(state, 0x5D, (u8) ((dwValue >> 8) & 0xff)); ++ WriteReg(state, 0x5C, (u8) ((dwValue >> 0) & 0xff)); ++ value = ReadReg(state, 0x5A); ++ if (((dwValue >> 16) & 0x0001) == 0) ++ value &= 0x7F; ++ else ++ value |= 0x80; ++ WriteReg(state, 0x5A, value); ++ value = ReadReg(state, 0x89); ++ if (sym <= 1800) ++ value |= 0x01; ++ else ++ value &= 0xFE; ++ WriteReg(state, 0x89, value); ++ if (sym >= 6700) { ++ reg6FH = 0x0D; ++ reg12H = 0x30; ++ } else if (sym >= 4000) { ++ fValue = 22 * 4096 / sym; ++ reg6FH = (u8) fValue; ++ reg12H = 0x30; ++ } else if (sym >= 2000) { ++ fValue = 14 * 4096 / sym; ++ reg6FH = (u8) fValue; ++ reg12H = 0x20; ++ } else { ++ fValue = 7 * 4096 / sym; ++ reg6FH = (u8) fValue; ++ reg12H = 0x10; ++ } ++ WriteReg(state, 0x6F, reg6FH); ++ WriteReg(state, 0x12, reg12H); ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ if (sym < 3000) { ++ WriteReg(state, 0x6C, 0x16); ++ WriteReg(state, 0x6D, 0x10); ++ WriteReg(state, 0x6E, 0x18); ++ } else { ++ WriteReg(state, 0x6C, 0x14); ++ WriteReg(state, 0x6D, 0x0E); ++ WriteReg(state, 0x6E, 0x36); ++ } ++ } else { ++ WriteReg(state, 0x6C, 0x16); ++ WriteReg(state, 0x6D, 0x10); ++ WriteReg(state, 0x6E, 0x18); ++ } ++ return 0; ++} ++ ++static int M88DC2000SetQAM(struct m88dc2800_state *state, u16 qam) ++{ ++ u8 reg00H, reg4AH, regC2H, reg44H, reg4CH, reg4DH, reg74H, value; ++ u8 reg8BH, reg8EH; ++ printk(KERN_INFO "%s, qam=%d\n", __func__, qam); ++ regC2H = ReadReg(state, 0xC2); ++ regC2H &= 0xF8; ++ switch (qam) { ++ case 16: /* 16 QAM */ ++ reg00H = 0x08; ++ reg4AH = 0x0F; ++ regC2H |= 0x02; ++ reg44H = 0xAA; ++ reg4CH = 0x0C; ++ reg4DH = 0xF7; ++ reg74H = 0x0E; ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ reg8BH = 0x5A; ++ reg8EH = 0xBD; ++ } else { ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ } ++ WriteReg(state, 0x6E, 0x18); ++ break; ++ case 32: /* 32 QAM */ ++ reg00H = 0x18; ++ reg4AH = 0xFB; ++ regC2H |= 0x02; ++ reg44H = 0xAA; ++ reg4CH = 0x0C; ++ reg4DH = 0xF7; ++ reg74H = 0x0E; ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ reg8BH = 0x5A; ++ reg8EH = 0xBD; ++ } else { ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ } ++ WriteReg(state, 0x6E, 0x18); ++ break; ++ case 64: /* 64 QAM */ ++ reg00H = 0x48; ++ reg4AH = 0xCD; ++ regC2H |= 0x02; ++ reg44H = 0xAA; ++ reg4CH = 0x0C; ++ reg4DH = 0xF7; ++ reg74H = 0x0E; ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ reg8BH = 0x5A; ++ reg8EH = 0xBD; ++ } else { ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ } ++ break; ++ case 128: /* 128 QAM */ ++ reg00H = 0x28; ++ reg4AH = 0xFF; ++ regC2H |= 0x02; ++ reg44H = 0xA9; ++ reg4CH = 0x08; ++ reg4DH = 0xF5; ++ reg74H = 0x0E; ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ break; ++ case 256: /* 256 QAM */ ++ reg00H = 0x38; ++ reg4AH = 0xCD; ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ regC2H |= 0x02; ++ } else { ++ regC2H |= 0x01; ++ } ++ reg44H = 0xA9; ++ reg4CH = 0x08; ++ reg4DH = 0xF5; ++ reg74H = 0x0E; ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ break; ++ default: /* 64 QAM */ ++ reg00H = 0x48; ++ reg4AH = 0xCD; ++ regC2H |= 0x02; ++ reg44H = 0xAA; ++ reg4CH = 0x0C; ++ reg4DH = 0xF7; ++ reg74H = 0x0E; ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) { ++ reg8BH = 0x5A; ++ reg8EH = 0xBD; ++ } else { ++ reg8BH = 0x5B; ++ reg8EH = 0x9D; ++ } ++ break; ++ } ++ WriteReg(state, 0x00, reg00H); ++ value = ReadReg(state, 0x88); ++ value |= 0x08; ++ WriteReg(state, 0x88, value); ++ WriteReg(state, 0x4B, 0xFF); ++ WriteReg(state, 0x4A, reg4AH); ++ value &= 0xF7; ++ WriteReg(state, 0x88, value); ++ WriteReg(state, 0xC2, regC2H); ++ WriteReg(state, 0x44, reg44H); ++ WriteReg(state, 0x4C, reg4CH); ++ WriteReg(state, 0x4D, reg4DH); ++ WriteReg(state, 0x74, reg74H); ++ WriteReg(state, 0x8B, reg8BH); ++ WriteReg(state, 0x8E, reg8EH); ++ return 0; ++} ++ ++static int M88DC2000WriteTuner_TC2800(struct m88dc2800_state *state, ++ u32 freq_KHz) ++{ ++ printk(KERN_INFO "%s, freq=%d KHz\n", __func__, freq_KHz); ++ return mt_fe_tn_set_freq_tc2800(state, freq_KHz); ++} ++ ++static int m88dc2800_init(struct dvb_frontend *fe) ++{ ++ dprintk("%s()\n", __func__); ++ return 0; ++} ++ ++static int m88dc2800_set_parameters(struct dvb_frontend *fe) ++{ ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ u8 is_annex_c, is_update; ++ u16 temp_qam; ++ s32 waiting_time; ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ ++ is_annex_c = c->delivery_system == SYS_DVBC_ANNEX_C ? 1 : 0; ++ ++ switch (c->modulation) { ++ case QAM_16: ++ temp_qam = 16; ++ break; ++ case QAM_32: ++ temp_qam = 32; ++ break; ++ case QAM_128: ++ temp_qam = 128; ++ break; ++ case QAM_256: ++ temp_qam = 256; ++ break; ++ default: /* QAM_64 */ ++ temp_qam = 64; ++ break; ++ } ++ ++ state->inverted = c->inversion == INVERSION_ON ? 1 : 0; ++ ++ printk(KERN_INFO ++ "m88dc2800: state, freq=%d qam=%d sym=%d inverted=%d xtal=%d\n", ++ state->freq, state->qam, state->sym, state->inverted, ++ state->xtal); ++ printk(KERN_INFO ++ "m88dc2800: set frequency to %d qam=%d symrate=%d annex-c=%d\n", ++ c->frequency, temp_qam, c->symbol_rate, is_annex_c); ++ ++ is_update = 0; ++ WriteReg(state, 0x80, 0x01); ++ if (c->frequency != state->freq) { ++ M88DC2000WriteTuner_TC2800(state, c->frequency / 1000); ++ state->freq = c->frequency; ++ } ++ if (c->symbol_rate != state->sym) { ++ M88DC2000SetSym(state, c->symbol_rate / 1000, state->xtal); ++ state->sym = c->symbol_rate; ++ is_update = 1; ++ } ++ if (temp_qam != state->qam) { ++ M88DC2000SetQAM(state, temp_qam); ++ state->qam = temp_qam; ++ is_update = 1; ++ } ++ ++ if (is_update != 0) { ++ if (state->config->ts_mode == 3) ++ M88DC2000AutoTSClock_C(state, state->sym / 1000, ++ temp_qam); ++ else ++ M88DC2000AutoTSClock_P(state, state->sym / 1000, ++ temp_qam); ++ } ++ ++ M88DC2000SetTxMode(state, state->inverted, is_annex_c); ++ M88DC2000SoftReset(state); ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) ++ && ((ReadReg(state, 0xE4) & 0x80) == 0x80)) ++ waiting_time = 800; ++ else ++ waiting_time = 500; ++ while (waiting_time > 0) { ++ msleep(50); ++ waiting_time -= 50; ++ if (M88DC2000GetLock(state)) ++ return 0; ++ } ++ ++ state->inverted = (state->inverted != 0) ? 0 : 1; ++ M88DC2000SetTxMode(state, state->inverted, is_annex_c); ++ M88DC2000SoftReset(state); ++ if (((ReadReg(state, 0xE3) & 0x80) == 0x80) && ++ ((ReadReg(state, 0xE4) & 0x80) == 0x80)) ++ waiting_time = 800; ++ else ++ waiting_time = 500; ++ while (waiting_time > 0) { ++ msleep(50); ++ waiting_time -= 50; ++ if (M88DC2000GetLock(state)) ++ return 0; ++ } ++ return 0; ++} ++ ++static int m88dc2800_read_status(struct dvb_frontend *fe, ++ fe_status_t * status) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ *status = 0; ++ ++ if (M88DC2000GetLock(state)) { ++ *status = FE_HAS_SIGNAL | FE_HAS_CARRIER ++ |FE_HAS_SYNC | FE_HAS_VITERBI | FE_HAS_LOCK; ++ } ++ return 0; ++} ++ ++static int m88dc2800_read_ber(struct dvb_frontend *fe, u32 * ber) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ u16 tmp; ++ ++ if (M88DC2000GetLock(state) == 0) { ++ state->ber = 0; ++ } else if ((ReadReg(state, 0xA0) & 0x80) != 0x80) { ++ tmp = ReadReg(state, 0xA2) << 8; ++ tmp += ReadReg(state, 0xA1); ++ state->ber = tmp; ++ WriteReg(state, 0xA0, 0x05); ++ WriteReg(state, 0xA0, 0x85); ++ } ++ *ber = state->ber; ++ return 0; ++} ++ ++static int m88dc2800_read_signal_strength(struct dvb_frontend *fe, ++ u16 * strength) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ s16 tuner_strength; ++ ++ tuner_strength = mt_fe_tn_get_signal_strength_tc2800(state); ++ *strength = tuner_strength < -107 ? 0 : tuner_strength + 107; ++ ++ return 0; ++} ++ ++static int m88dc2800_read_snr(struct dvb_frontend *fe, u16 * snr) ++{ ++ static const u32 mes_log[] = { ++ 0, 3010, 4771, 6021, 6990, 7781, 8451, 9031, 9542, 10000, ++ 10414, 10792, 11139, 11461, 11761, 12041, 12304, 12553, 12788, ++ 13010, 13222, 13424, 13617, 13802, 13979, 14150, 14314, 14472, ++ 14624, 14771, 14914, 15052, 15185, 15315, 15441, 15563, 15682, ++ 15798, 15911, 16021, 16128, 16232, 16335, 16435, 16532, 16628, ++ 16721, 16812, 16902, 16990, 17076, 17160, 17243, 17324, 17404, ++ 17482, 17559, 17634, 17709, 17782, 17853, 17924, 17993, 18062, ++ 18129, 18195, 18261, 18325, 18388, 18451, 18513, 18573, 18633, ++ 18692, 18751, 18808, 18865, 18921, 18976, 19031 ++ }; ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ u8 i; ++ u32 _snr, mse; ++ ++ if ((ReadReg(state, 0x91) & 0x23) != 0x03) { ++ *snr = 0; ++ return 0; ++ } ++ mse = 0; ++ for (i = 0; i < 30; i++) { ++ mse += (ReadReg(state, 0x08) << 8) + ReadReg(state, 0x07); ++ } ++ mse /= 30; ++ if (mse > 80) ++ mse = 80; ++ switch (state->qam) { ++ case 16: ++ _snr = 34080; ++ break; /* 16QAM */ ++ case 32: ++ _snr = 37600; ++ break; /* 32QAM */ ++ case 64: ++ _snr = 40310; ++ break; /* 64QAM */ ++ case 128: ++ _snr = 43720; ++ break; /* 128QAM */ ++ case 256: ++ _snr = 46390; ++ break; /* 256QAM */ ++ default: ++ _snr = 40310; ++ break; ++ } ++ _snr -= mes_log[mse - 1]; /* C - 10*log10(MSE) */ ++ _snr /= 1000; ++ if (_snr > 0xff) ++ _snr = 0xff; ++ *snr = _snr; ++ return 0; ++} ++ ++static int m88dc2800_read_ucblocks(struct dvb_frontend *fe, u32 * ucblocks) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ u8 u8Value; ++ ++ u8Value = ReadReg(state, 0xdf); ++ u8Value |= 0x02; /* Hold */ ++ WriteReg(state, 0xdf, u8Value); ++ ++ *ucblocks = ReadReg(state, 0xd5); ++ *ucblocks = (*ucblocks << 8) | ReadReg(state, 0xd4); ++ ++ u8Value &= 0xfe; /* Clear */ ++ WriteReg(state, 0xdf, u8Value); ++ u8Value &= 0xfc; /* Update */ ++ u8Value |= 0x01; ++ WriteReg(state, 0xdf, u8Value); ++ ++ return 0; ++} ++ ++static int m88dc2800_sleep(struct dvb_frontend *fe) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ ++ mt_fe_tn_sleep_tc2800(state); ++ state->freq = 0; ++ ++ return 0; ++} ++ ++static void m88dc2800_release(struct dvb_frontend *fe) ++{ ++ struct m88dc2800_state *state = fe->demodulator_priv; ++ kfree(state); ++} ++ ++static struct dvb_frontend_ops m88dc2800_ops; ++ ++struct dvb_frontend *m88dc2800_attach(const struct m88dc2800_config ++ *config, struct i2c_adapter *i2c) ++{ ++ struct m88dc2800_state *state = NULL; ++ ++ /* allocate memory for the internal state */ ++ state = kzalloc(sizeof(struct m88dc2800_state), GFP_KERNEL); ++ if (state == NULL) ++ goto error; ++ ++ /* setup the state */ ++ state->config = config; ++ state->i2c = i2c; ++ state->xtal = 28800; ++ ++ WriteReg(state, 0x80, 0x01); ++ M88DC2000RegInitial_TC2800(state); ++ M88DC2000SetTsType(state, state->config->ts_mode); ++ mt_fe_tn_init_tc2800(state); ++ ++ /* create dvb_frontend */ ++ memcpy(&state->frontend.ops, &m88dc2800_ops, ++ sizeof(struct dvb_frontend_ops)); ++ state->frontend.demodulator_priv = state; ++ return &state->frontend; ++ ++ error: ++ kfree(state); ++ return NULL; ++} ++ ++EXPORT_SYMBOL(m88dc2800_attach); ++ ++static struct dvb_frontend_ops m88dc2800_ops = { ++ .delsys = {SYS_DVBC_ANNEX_A, SYS_DVBC_ANNEX_C}, ++ .info = { ++ .name = "Montage M88DC2800 DVB-C", ++ .frequency_stepsize = 62500, ++ .frequency_min = 48000000, ++ .frequency_max = 870000000, ++ .symbol_rate_min = 870000, ++ .symbol_rate_max = 9000000, ++ .caps = FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 | ++ FE_CAN_QAM_128 | FE_CAN_QAM_256 | FE_CAN_FEC_AUTO ++ }, ++ .release = m88dc2800_release, ++ .init = m88dc2800_init, ++ .sleep = m88dc2800_sleep, ++ .set_frontend = m88dc2800_set_parameters, ++ .read_status = m88dc2800_read_status, ++ .read_ber = m88dc2800_read_ber, ++ .read_signal_strength = m88dc2800_read_signal_strength, ++ .read_snr = m88dc2800_read_snr, ++ .read_ucblocks = m88dc2800_read_ucblocks, ++}; ++ ++MODULE_DESCRIPTION("Montage DVB-C demodulator driver"); ++MODULE_AUTHOR("Max Nibble nibble.max@gmail.com"); ++MODULE_LICENSE("GPL"); ++MODULE_VERSION("1.00"); +diff -urN a/drivers/media/dvb-frontends/m88dc2800.h b/drivers/media/dvb-frontends/m88dc2800.h +--- a/drivers/media/dvb-frontends/m88dc2800.h 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/dvb-frontends/m88dc2800.h 2013-01-26 14:57:32.000000000 +0800 +@@ -0,0 +1,43 @@ ++/* ++ M88DC2800/M88TC2800 - DVB-C demodulator and tuner from Montage ++ ++ Copyright (C) 2012 Max Nibble nibble.max@gmail.com ++ Copyright (C) 2011 Montage Technology - www.montage-tech.com ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++ ++#ifndef M88DC2800_H ++#define M88DC2800_H ++ ++#include <linux/dvb/frontend.h> ++ ++struct m88dc2800_config { ++ u8 demod_address; ++ u8 ts_mode; ++}; ++ ++#if defined(CONFIG_DVB_M88DC2800) || (defined(CONFIG_DVB_M88DC2800_MODULE) && defined(MODULE)) ++extern struct dvb_frontend* m88dc2800_attach(const struct m88dc2800_config* config, ++ struct i2c_adapter* i2c); ++#else ++static inline struct dvb_frontend* m88dc2800_attach(const struct m88dc2800_config* config, ++ struct i2c_adapter* i2c) ++{ ++ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); ++ return NULL; ++} ++#endif /* CONFIG_DVB_M88DC2800 */ ++#endif /* M88DC2800_H */ +diff -urN a/drivers/media/dvb-frontends/m88ds3103.c b/drivers/media/dvb-frontends/m88ds3103.c +--- a/drivers/media/dvb-frontends/m88ds3103.c 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/dvb-frontends/m88ds3103.c 2013-01-30 12:33:47.000000000 +0800 +@@ -0,0 +1,1710 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ Copyright (C) 2011 Max nibblenibble.max@gmail.com ++ Copyright (C) 2010 Montage Technology<www.montage-tech.com> ++ Copyright (C) 2009 Konstantin Dimitrov. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include <linux/slab.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/moduleparam.h> ++#include <linux/init.h> ++#include <linux/firmware.h> ++ ++#include "dvb_frontend.h" ++#include "m88ds3103.h" ++#include "m88ds3103_priv.h" ++ ++static int debug; ++module_param(debug, int, 0644); ++MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)"); ++ ++#define dprintk(args...) \ ++ do { \ ++ if (debug) \ ++ printk(KERN_INFO "m88ds3103: " args); \ ++ } while (0) ++ ++/*demod register operations.*/ ++static int m88ds3103_writereg(struct m88ds3103_state *state, int reg, int data) ++{ ++ u8 buf[] = { reg, data }; ++ struct i2c_msg msg = { .addr = state->config->demod_address, ++ .flags = 0, .buf = buf, .len = 2 }; ++ int err; ++ ++ if (debug > 1) ++ printk("m88ds3103: %s: write reg 0x%02x, value 0x%02x\n", ++ __func__, reg, data); ++ ++ err = i2c_transfer(state->i2c, &msg, 1); ++ if (err != 1) { ++ printk(KERN_ERR "%s: writereg error(err == %i, reg == 0x%02x," ++ " value == 0x%02x)\n", __func__, err, reg, data); ++ return -EREMOTEIO; ++ } ++ return 0; ++} ++ ++static int m88ds3103_readreg(struct m88ds3103_state *state, u8 reg) ++{ ++ int ret; ++ u8 b0[] = { reg }; ++ u8 b1[] = { 0 }; ++ struct i2c_msg msg[] = { ++ { .addr = state->config->demod_address, .flags = 0, ++ .buf = b0, .len = 1 }, ++ { .addr = state->config->demod_address, .flags = I2C_M_RD, ++ .buf = b1, .len = 1 } ++ }; ++ ret = i2c_transfer(state->i2c, msg, 2); ++ ++ if (ret != 2) { ++ printk(KERN_ERR "%s: reg=0x%x (error=%d)\n", ++ __func__, reg, ret); ++ return ret; ++ } ++ ++ if (debug > 1) ++ printk(KERN_INFO "m88ds3103: read reg 0x%02x, value 0x%02x\n", ++ reg, b1[0]); ++ ++ return b1[0]; ++} ++ ++/*tuner register operations.*/ ++static int m88ds3103_tuner_writereg(struct m88ds3103_state *state, int reg, int data) ++{ ++ u8 buf[] = { reg, data }; ++ struct i2c_msg msg = { .addr = 0x60, ++ .flags = 0, .buf = buf, .len = 2 }; ++ int err; ++ ++ m88ds3103_writereg(state, 0x03, 0x11); ++ err = i2c_transfer(state->i2c, &msg, 1); ++ ++ if (err != 1) { ++ printk("%s: writereg error(err == %i, reg == 0x%02x," ++ " value == 0x%02x)\n", __func__, err, reg, data); ++ return -EREMOTEIO; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_tuner_readreg(struct m88ds3103_state *state, u8 reg) ++{ ++ int ret; ++ u8 b0[] = { reg }; ++ u8 b1[] = { 0 }; ++ struct i2c_msg msg[] = { ++ { .addr = 0x60, .flags = 0, ++ .buf = b0, .len = 1 }, ++ { .addr = 0x60, .flags = I2C_M_RD, ++ .buf = b1, .len = 1 } ++ }; ++ ++ m88ds3103_writereg(state, 0x03, 0x11); ++ ret = i2c_transfer(state->i2c, msg, 2); ++ ++ if (ret != 2) { ++ printk(KERN_ERR "%s: reg=0x%x(error=%d)\n", __func__, reg, ret); ++ return ret; ++ } ++ ++ return b1[0]; ++} ++ ++/* Bulk demod I2C write, for firmware download. */ ++static int m88ds3103_writeregN(struct m88ds3103_state *state, int reg, ++ const u8 *data, u16 len) ++{ ++ int ret = -EREMOTEIO; ++ struct i2c_msg msg; ++ u8 *buf; ++ ++ buf = kmalloc(len + 1, GFP_KERNEL); ++ if (buf == NULL) { ++ printk("Unable to kmalloc\n"); ++ ret = -ENOMEM; ++ goto error; ++ } ++ ++ *(buf) = reg; ++ memcpy(buf + 1, data, len); ++ ++ msg.addr = state->config->demod_address; ++ msg.flags = 0; ++ msg.buf = buf; ++ msg.len = len + 1; ++ ++ if (debug > 1) ++ printk(KERN_INFO "m88ds3103: %s: write regN 0x%02x, len = %d\n", ++ __func__, reg, len); ++ ++ ret = i2c_transfer(state->i2c, &msg, 1); ++ if (ret != 1) { ++ printk(KERN_ERR "%s: writereg error(err == %i, reg == 0x%02x\n", ++ __func__, ret, reg); ++ ret = -EREMOTEIO; ++ } ++ ++error: ++ kfree(buf); ++ ++ return ret; ++} ++ ++static int m88ds3103_load_firmware(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ const struct firmware *fw; ++ int i, ret = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ if (state->skip_fw_load) ++ return 0; ++ /* Load firmware */ ++ /* request the firmware, this will block until someone uploads it */ ++ if(state->demod_id == DS3000_ID){ ++ printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__, ++ DS3000_DEFAULT_FIRMWARE); ++ ret = request_firmware(&fw, DS3000_DEFAULT_FIRMWARE, ++ state->i2c->dev.parent); ++ }else if(state->demod_id == DS3103_ID){ ++ printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__, ++ DS3103_DEFAULT_FIRMWARE); ++ ret = request_firmware(&fw, DS3103_DEFAULT_FIRMWARE, ++ state->i2c->dev.parent); ++ } ++ ++ printk(KERN_INFO "%s: Waiting for firmware upload(2)...\n", __func__); ++ if (ret) { ++ printk(KERN_ERR "%s: No firmware uploaded (timeout or file not " ++ "found?)\n", __func__); ++ return ret; ++ } ++ ++ /* Make sure we don't recurse back through here during loading */ ++ state->skip_fw_load = 1; ++ ++ dprintk("Firmware is %zu bytes (%02x %02x .. %02x %02x)\n", ++ fw->size, ++ fw->data[0], ++ fw->data[1], ++ fw->data[fw->size - 2], ++ fw->data[fw->size - 1]); ++ ++ /* stop internal mcu. */ ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ /* split firmware to download.*/ ++ for(i = 0; i < FW_DOWN_LOOP; i++){ ++ ret = m88ds3103_writeregN(state, 0xb0, &(fw->data[FW_DOWN_SIZE*i]), FW_DOWN_SIZE); ++ if(ret != 1) break; ++ } ++ /* start internal mcu. */ ++ if(ret == 1) ++ m88ds3103_writereg(state, 0xb2, 0x00); ++ ++ release_firmware(fw); ++ ++ dprintk("%s: Firmware upload %s\n", __func__, ++ ret == 1 ? "complete" : "failed"); ++ ++ if(ret == 1) ret = 0; ++ ++ /* Ensure firmware is always loaded if required */ ++ state->skip_fw_load = 0; ++ ++ return ret; ++} ++ ++ ++static int m88ds3103_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 data; ++ ++ dprintk("%s(%d)\n", __func__, voltage); ++ ++ dprintk("m88ds3103:pin_ctrl = (%02x)\n", state->config->pin_ctrl); ++ ++ if(state->config->set_voltage) ++ state->config->set_voltage(fe, voltage); ++ ++ data = m88ds3103_readreg(state, 0xa2); ++ ++ if(state->config->pin_ctrl & 0x80){ /*If control pin is assigned.*/ ++ data &= ~0x03; /* bit0 V/H, bit1 off/on */ ++ if(state->config->pin_ctrl & 0x02) ++ data |= 0x02; ++ ++ switch (voltage) { ++ case SEC_VOLTAGE_18: ++ if((state->config->pin_ctrl & 0x01) == 0) ++ data |= 0x01; ++ break; ++ case SEC_VOLTAGE_13: ++ if(state->config->pin_ctrl & 0x01) ++ data |= 0x01; ++ break; ++ case SEC_VOLTAGE_OFF: ++ if(state->config->pin_ctrl & 0x02) ++ data &= ~0x02; ++ else ++ data |= 0x02; ++ break; ++ } ++ } ++ ++ m88ds3103_writereg(state, 0xa2, data); ++ ++ return 0; ++} ++ ++static int m88ds3103_read_status(struct dvb_frontend *fe, fe_status_t* status) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int lock = 0; ++ ++ *status = 0; ++ ++ switch (state->delivery_system){ ++ case SYS_DVBS: ++ lock = m88ds3103_readreg(state, 0xd1); ++ dprintk("%s: SYS_DVBS status=%x.\n", __func__, lock); ++ ++ if ((lock & 0x07) == 0x07){ ++ /*if((m88ds3103_readreg(state, 0x0d) & 0x07) == 0x07)*/ ++ *status = FE_HAS_SIGNAL | FE_HAS_CARRIER ++ | FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK; ++ ++ } ++ break; ++ case SYS_DVBS2: ++ lock = m88ds3103_readreg(state, 0x0d); ++ dprintk("%s: SYS_DVBS2 status=%x.\n", __func__, lock); ++ ++ if ((lock & 0x8f) == 0x8f) ++ *status = FE_HAS_SIGNAL | FE_HAS_CARRIER ++ | FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK; ++ ++ break; ++ default: ++ break; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_read_ber(struct dvb_frontend *fe, u32* ber) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp1, tmp2, tmp3; ++ u32 ldpc_frame_cnt, pre_err_packags, code_rate_fac = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ m88ds3103_writereg(state, 0xf9, 0x04); ++ tmp3 = m88ds3103_readreg(state, 0xf8); ++ if ((tmp3&0x10) == 0){ ++ tmp1 = m88ds3103_readreg(state, 0xf7); ++ tmp2 = m88ds3103_readreg(state, 0xf6); ++ tmp3 |= 0x10; ++ m88ds3103_writereg(state, 0xf8, tmp3); ++ state->preBer = (tmp1<<8) | tmp2; ++ } ++ break; ++ case SYS_DVBS2: ++ tmp1 = m88ds3103_readreg(state, 0x7e) & 0x0f; ++ switch(tmp1){ ++ case 0: code_rate_fac = 16008 - 80; break; ++ case 1: code_rate_fac = 21408 - 80; break; ++ case 2: code_rate_fac = 25728 - 80; break; ++ case 3: code_rate_fac = 32208 - 80; break; ++ case 4: code_rate_fac = 38688 - 80; break; ++ case 5: code_rate_fac = 43040 - 80; break; ++ case 6: code_rate_fac = 48408 - 80; break; ++ case 7: code_rate_fac = 51648 - 80; break; ++ case 8: code_rate_fac = 53840 - 80; break; ++ case 9: code_rate_fac = 57472 - 80; break; ++ case 10: code_rate_fac = 58192 - 80; break; ++ } ++ ++ tmp1 = m88ds3103_readreg(state, 0xd7) & 0xff; ++ tmp2 = m88ds3103_readreg(state, 0xd6) & 0xff; ++ tmp3 = m88ds3103_readreg(state, 0xd5) & 0xff; ++ ldpc_frame_cnt = (tmp1 << 16) | (tmp2 << 8) | tmp3; ++ ++ tmp1 = m88ds3103_readreg(state, 0xf8) & 0xff; ++ tmp2 = m88ds3103_readreg(state, 0xf7) & 0xff; ++ pre_err_packags = tmp1<<8 | tmp2; ++ ++ if (ldpc_frame_cnt > 1000){ ++ m88ds3103_writereg(state, 0xd1, 0x01); ++ m88ds3103_writereg(state, 0xf9, 0x01); ++ m88ds3103_writereg(state, 0xf9, 0x00); ++ m88ds3103_writereg(state, 0xd1, 0x00); ++ state->preBer = pre_err_packags; ++ } ++ break; ++ default: ++ break; ++ } ++ *ber = state->preBer; ++ ++ return 0; ++} ++ ++static int m88ds3103_read_signal_strength(struct dvb_frontend *fe, ++ u16 *signal_strength) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u16 gain; ++ u8 gain1, gain2, gain3 = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ gain1 = m88ds3103_tuner_readreg(state, 0x3d) & 0x1f; ++ dprintk("%s: gain1 = 0x%02x \n", __func__, gain1); ++ ++ if (gain1 > 15) gain1 = 15; ++ gain2 = m88ds3103_tuner_readreg(state, 0x21) & 0x1f; ++ dprintk("%s: gain2 = 0x%02x \n", __func__, gain2); ++ ++ if(state->tuner_id == TS2022_ID){ ++ gain3 = (m88ds3103_tuner_readreg(state, 0x66)>>3) & 0x07; ++ dprintk("%s: gain3 = 0x%02x \n", __func__, gain3); ++ ++ if (gain2 > 16) gain2 = 16; ++ if (gain2 < 2) gain2 = 2; ++ if (gain3 > 6) gain3 = 6; ++ }else{ ++ if (gain2 > 13) gain2 = 13; ++ gain3 = 0; ++ } ++ ++ gain = gain1*23 + gain2*35 + gain3*29; ++ *signal_strength = 60000 - gain*55; ++ ++ return 0; ++} ++ ++ ++static int m88ds3103_read_snr(struct dvb_frontend *fe, u16 *p_snr) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val, npow1, npow2, spow1, cnt; ++ u16 tmp, snr; ++ u32 npow, spow, snr_total; ++ static const u16 mes_log10[] ={ ++ 0, 3010, 4771, 6021, 6990, 7781, 8451, 9031, 9542, 10000, ++ 10414, 10792, 11139, 11461, 11761, 12041, 12304, 12553, 12788, 13010, ++ 13222, 13424, 13617, 13802, 13979, 14150, 14314, 14472, 14624, 14771, ++ 14914, 15052, 15185, 15315, 15441, 15563, 15682, 15798, 15911, 16021, ++ 16128, 16232, 16335, 16435, 16532, 16628, 16721, 16812, 16902, 16990, ++ 17076, 17160, 17243, 17324, 17404, 17482, 17559, 17634, 17709, 17782, ++ 17853, 17924, 17993, 18062, 18129, 18195, 18261, 18325, 18388, 18451, ++ 18513, 18573, 18633, 18692, 18751, 18808, 18865, 18921, 18976, 19031 ++ }; ++ static const u16 mes_loge[] ={ ++ 0, 6931, 10986, 13863, 16094, 17918, 19459, 20794, 21972, 23026, ++ 23979, 24849, 25649, 26391, 27081, 27726, 28332, 28904, 29444, 29957, ++ 30445, 30910, 31355, 31781, 32189, 32581, 32958, 33322, 33673, 34012, ++ 34340, 34657, ++ }; ++ ++ dprintk("%s()\n", __func__); ++ ++ snr = 0; ++ ++ switch (state->delivery_system){ ++ case SYS_DVBS: ++ cnt = 10; snr_total = 0; ++ while(cnt > 0){ ++ val = m88ds3103_readreg(state, 0xff); ++ snr_total += val; ++ cnt--; ++ } ++ tmp = (u16)(snr_total/80); ++ if(tmp > 0){ ++ if (tmp > 32) tmp = 32; ++ snr = (mes_loge[tmp - 1] * 100) / 45; ++ }else{ ++ snr = 0; ++ } ++ break; ++ case SYS_DVBS2: ++ cnt = 10; npow = 0; spow = 0; ++ while(cnt >0){ ++ npow1 = m88ds3103_readreg(state, 0x8c) & 0xff; ++ npow2 = m88ds3103_readreg(state, 0x8d) & 0xff; ++ npow += (((npow1 & 0x3f) + (u16)(npow2 << 6)) >> 2); ++ ++ spow1 = m88ds3103_readreg(state, 0x8e) & 0xff; ++ spow += ((spow1 * spow1) >> 1); ++ cnt--; ++ } ++ npow /= 10; spow /= 10; ++ if(spow == 0){ ++ snr = 0; ++ }else if(npow == 0){ ++ snr = 19; ++ }else{ ++ if(spow > npow){ ++ tmp = (u16)(spow / npow); ++ if (tmp > 80) tmp = 80; ++ snr = mes_log10[tmp - 1]*3; ++ }else{ ++ tmp = (u16)(npow / spow); ++ if (tmp > 80) tmp = 80; ++ snr = -(mes_log10[tmp - 1] / 1000); ++ } ++ } ++ break; ++ default: ++ break; ++ } ++ *p_snr = snr; ++ ++ return 0; ++} ++ ++ ++static int m88ds3103_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp1, tmp2, tmp3, data; ++ ++ dprintk("%s()\n", __func__); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ data = m88ds3103_readreg(state, 0xf8); ++ data |= 0x40; ++ m88ds3103_writereg(state, 0xf8, data); ++ tmp1 = m88ds3103_readreg(state, 0xf5); ++ tmp2 = m88ds3103_readreg(state, 0xf4); ++ *ucblocks = (tmp1 <<8) | tmp2; ++ data &= ~0x20; ++ m88ds3103_writereg(state, 0xf8, data); ++ data |= 0x20; ++ m88ds3103_writereg(state, 0xf8, data); ++ data &= ~0x40; ++ m88ds3103_writereg(state, 0xf8, data); ++ break; ++ case SYS_DVBS2: ++ tmp1 = m88ds3103_readreg(state, 0xda); ++ tmp2 = m88ds3103_readreg(state, 0xd9); ++ tmp3 = m88ds3103_readreg(state, 0xd8); ++ *ucblocks = (tmp1 <<16)|(tmp2 <<8)|tmp3; ++ data = m88ds3103_readreg(state, 0xd1); ++ data |= 0x01; ++ m88ds3103_writereg(state, 0xd1, data); ++ data &= ~0x01; ++ m88ds3103_writereg(state, 0xd1, data); ++ break; ++ default: ++ break; ++ } ++ return 0; ++} ++ ++static int m88ds3103_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 data_a1, data_a2; ++ ++ dprintk("%s(%d)\n", __func__, tone); ++ if ((tone != SEC_TONE_ON) && (tone != SEC_TONE_OFF)) { ++ printk(KERN_ERR "%s: Invalid, tone=%d\n", __func__, tone); ++ return -EINVAL; ++ } ++ ++ data_a1 = m88ds3103_readreg(state, 0xa1); ++ data_a2 = m88ds3103_readreg(state, 0xa2); ++ if(state->demod_id == DS3103_ID) ++ data_a2 &= 0xdf; /* Normal mode */ ++ switch (tone) { ++ case SEC_TONE_ON: ++ dprintk("%s: SEC_TONE_ON\n", __func__); ++ data_a1 |= 0x04; ++ data_a1 &= ~0x03; ++ data_a1 &= ~0x40; ++ data_a2 &= ~0xc0; ++ break; ++ case SEC_TONE_OFF: ++ dprintk("%s: SEC_TONE_OFF\n", __func__); ++ data_a2 &= ~0xc0; ++ data_a2 |= 0x80; ++ break; ++ } ++ m88ds3103_writereg(state, 0xa2, data_a2); ++ m88ds3103_writereg(state, 0xa1, data_a1); ++ return 0; ++} ++ ++static int m88ds3103_send_diseqc_msg(struct dvb_frontend *fe, ++ struct dvb_diseqc_master_cmd *d) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int i, ret = 0; ++ u8 tmp, time_out; ++ ++ /* Dump DiSEqC message */ ++ if (debug) { ++ printk(KERN_INFO "m88ds3103: %s(", __func__); ++ for (i = 0 ; i < d->msg_len ;) { ++ printk(KERN_INFO "0x%02x", d->msg[i]); ++ if (++i < d->msg_len) ++ printk(KERN_INFO ", "); ++ } ++ } ++ ++ tmp = m88ds3103_readreg(state, 0xa2); ++ tmp &= ~0xc0; ++ if(state->demod_id == DS3103_ID) ++ tmp &= ~0x20; ++ m88ds3103_writereg(state, 0xa2, tmp); ++ ++ for (i = 0; i < d->msg_len; i ++) ++ m88ds3103_writereg(state, (0xa3+i), d->msg[i]); ++ ++ tmp = m88ds3103_readreg(state, 0xa1); ++ tmp &= ~0x38; ++ tmp &= ~0x40; ++ tmp |= ((d->msg_len-1) << 3) | 0x07; ++ tmp &= ~0x80; ++ m88ds3103_writereg(state, 0xa1, tmp); ++ /* 1.5 * 9 * 8 = 108ms */ ++ time_out = 150; ++ while (time_out > 0){ ++ msleep(10); ++ time_out -= 10; ++ tmp = m88ds3103_readreg(state, 0xa1); ++ if ((tmp & 0x40) == 0) ++ break; ++ } ++ if (time_out == 0){ ++ tmp = m88ds3103_readreg(state, 0xa1); ++ tmp &= ~0x80; ++ tmp |= 0x40; ++ m88ds3103_writereg(state, 0xa1, tmp); ++ ret = 1; ++ } ++ tmp = m88ds3103_readreg(state, 0xa2); ++ tmp &= ~0xc0; ++ tmp |= 0x80; ++ m88ds3103_writereg(state, 0xa2, tmp); ++ return ret; ++} ++ ++ ++static int m88ds3103_diseqc_send_burst(struct dvb_frontend *fe, ++ fe_sec_mini_cmd_t burst) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val, time_out; ++ ++ dprintk("%s()\n", __func__); ++ ++ val = m88ds3103_readreg(state, 0xa2); ++ val &= ~0xc0; ++ if(state->demod_id == DS3103_ID) ++ val &= 0xdf; /* Normal mode */ ++ m88ds3103_writereg(state, 0xa2, val); ++ /* DiSEqC burst */ ++ if (burst == SEC_MINI_B) ++ m88ds3103_writereg(state, 0xa1, 0x01); ++ else ++ m88ds3103_writereg(state, 0xa1, 0x02); ++ ++ msleep(13); ++ ++ time_out = 5; ++ do{ ++ val = m88ds3103_readreg(state, 0xa1); ++ if ((val & 0x40) == 0) ++ break; ++ msleep(1); ++ time_out --; ++ } while (time_out > 0); ++ ++ val = m88ds3103_readreg(state, 0xa2); ++ val &= ~0xc0; ++ val |= 0x80; ++ m88ds3103_writereg(state, 0xa2, val); ++ ++ return 0; ++} ++ ++static void m88ds3103_release(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ ++ dprintk("%s\n", __func__); ++ kfree(state); ++} ++ ++static int m88ds3103_check_id(struct m88ds3103_state *state) ++{ ++ int val_00, val_01; ++ ++ /*check demod id*/ ++ val_01 = m88ds3103_readreg(state, 0x01); ++ printk(KERN_INFO "DS3000 chip version: %x attached.\n", val_01); ++ ++ if(val_01 == 0xD0) ++ state->demod_id = DS3103_ID; ++ else if(val_01 == 0xC0) ++ state->demod_id = DS3000_ID; ++ else ++ state->demod_id = UNKNOW_ID; ++ ++ /*check tuner id*/ ++ val_00 = m88ds3103_tuner_readreg(state, 0x00); ++ printk(KERN_INFO "TS202x chip version[1]: %x attached.\n", val_00); ++ val_00 &= 0x03; ++ if(val_00 == 0) ++ { ++ m88ds3103_tuner_writereg(state, 0x00, 0x01); ++ msleep(3); ++ } ++ m88ds3103_tuner_writereg(state, 0x00, 0x03); ++ msleep(5); ++ ++ val_00 = m88ds3103_tuner_readreg(state, 0x00); ++ printk(KERN_INFO "TS202x chip version[2]: %x attached.\n", val_00); ++ val_00 &= 0xff; ++ if((val_00 == 0x01) || (val_00 == 0x41) || (val_00 == 0x81)) ++ state->tuner_id = TS2020_ID; ++ else if(((val_00 & 0xc0)== 0xc0) || (val_00 == 0x83)) ++ state->tuner_id = TS2022_ID; ++ else ++ state->tuner_id = UNKNOW_ID; ++ ++ return state->demod_id; ++} ++ ++static struct dvb_frontend_ops m88ds3103_ops; ++static int m88ds3103_initilaze(struct dvb_frontend *fe); ++ ++struct dvb_frontend *m88ds3103_attach(const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c) ++{ ++ struct m88ds3103_state *state = NULL; ++ ++ dprintk("%s\n", __func__); ++ ++ /* allocate memory for the internal state */ ++ state = kzalloc(sizeof(struct m88ds3103_state), GFP_KERNEL); ++ if (state == NULL) { ++ printk(KERN_ERR "Unable to kmalloc\n"); ++ goto error2; ++ } ++ ++ state->config = config; ++ state->i2c = i2c; ++ state->preBer = 0xffff; ++ state->delivery_system = SYS_DVBS; /*Default to DVB-S.*/ ++ ++ /* check demod id */ ++ if(m88ds3103_check_id(state) == UNKNOW_ID){ ++ printk(KERN_ERR "Unable to find Montage chip\n"); ++ goto error3; ++ } ++ ++ memcpy(&state->frontend.ops, &m88ds3103_ops, ++ sizeof(struct dvb_frontend_ops)); ++ state->frontend.demodulator_priv = state; ++ ++ m88ds3103_initilaze(&state->frontend); ++ ++ return &state->frontend; ++ ++error3: ++ kfree(state); ++error2: ++ return NULL; ++} ++EXPORT_SYMBOL(m88ds3103_attach); ++ ++static int m88ds3103_set_carrier_offset(struct dvb_frontend *fe, ++ s32 carrier_offset_khz) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ s32 tmp; ++ ++ tmp = carrier_offset_khz; ++ tmp *= 65536; ++ ++ tmp = (2*tmp + MT_FE_MCLK_KHZ) / (2*MT_FE_MCLK_KHZ); ++ ++ if (tmp < 0) ++ tmp += 65536; ++ ++ m88ds3103_writereg(state, 0x5f, tmp >> 8); ++ m88ds3103_writereg(state, 0x5e, tmp & 0xff); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_symrate(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ u16 value; ++ ++ value = (((c->symbol_rate / 1000) << 15) + (MT_FE_MCLK_KHZ / 4)) / (MT_FE_MCLK_KHZ / 2); ++ m88ds3103_writereg(state, 0x61, value & 0x00ff); ++ m88ds3103_writereg(state, 0x62, (value & 0xff00) >> 8); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_CCI(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp; ++ ++ tmp = m88ds3103_readreg(state, 0x56); ++ tmp &= ~0x01; ++ m88ds3103_writereg(state, 0x56, tmp); ++ ++ tmp = m88ds3103_readreg(state, 0x76); ++ tmp &= ~0x80; ++ m88ds3103_writereg(state, 0x76, tmp); ++ ++ return 0; ++} ++ ++static int m88ds3103_init_reg(struct m88ds3103_state *state, const u8 *p_reg_tab, u32 size) ++{ ++ u32 i; ++ ++ for(i = 0; i < size; i+=2) ++ m88ds3103_writereg(state, p_reg_tab[i], p_reg_tab[i+1]); ++ ++ return 0; ++} ++ ++static int m88ds3103_get_locked_sym_rate(struct m88ds3103_state *state, u32 *sym_rate_KSs) ++{ ++ u16 tmp; ++ u32 sym_rate_tmp; ++ u8 val_0x6d, val_0x6e; ++ ++ val_0x6d = m88ds3103_readreg(state, 0x6d); ++ val_0x6e = m88ds3103_readreg(state, 0x6e); ++ ++ tmp = (u16)((val_0x6e<<8) | val_0x6d); ++ ++ sym_rate_tmp = (u32)(tmp * MT_FE_MCLK_KHZ); ++ sym_rate_tmp = (u32)(sym_rate_tmp / (1<<16)); ++ *sym_rate_KSs = sym_rate_tmp; ++ ++ return 0; ++} ++ ++static int m88ds3103_get_channel_info(struct m88ds3103_state *state, u8 *p_mode, u8 *p_coderate) ++{ ++ u8 tmp, val_0x7E; ++ ++ if(state->delivery_system == SYS_DVBS2){ ++ val_0x7E = m88ds3103_readreg(state, 0x7e); ++ tmp = (u8)((val_0x7E&0xC0) >> 6); ++ *p_mode = tmp; ++ tmp = (u8)(val_0x7E & 0x0f); ++ *p_coderate = tmp; ++ } else { ++ *p_mode = 0; ++ tmp = m88ds3103_readreg(state, 0xe6); ++ tmp = (u8)(tmp >> 5); ++ *p_coderate = tmp; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_set_clock_ratio(struct m88ds3103_state *state) ++{ ++ u8 val, mod_fac, tmp1, tmp2; ++ u32 input_datarate, locked_sym_rate_KSs; ++ u32 MClk_KHz = 96000; ++ u8 mod_mode, code_rate, divid_ratio = 0; ++ ++ locked_sym_rate_KSs = 0; ++ m88ds3103_get_locked_sym_rate(state, &locked_sym_rate_KSs); ++ if(locked_sym_rate_KSs == 0) ++ return 0; ++ ++ m88ds3103_get_channel_info(state, &mod_mode, &code_rate); ++ ++ if (state->delivery_system == SYS_DVBS2) ++ { ++ switch(mod_mode) { ++ case 1: mod_fac = 3; break; ++ case 2: mod_fac = 4; break; ++ case 3: mod_fac = 5; break; ++ default: mod_fac = 2; break; ++ } ++ ++ switch(code_rate) { ++ case 0: input_datarate = locked_sym_rate_KSs*mod_fac/8/4; break; ++ case 1: input_datarate = locked_sym_rate_KSs*mod_fac/8/3; break; ++ case 2: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/5; break; ++ case 3: input_datarate = locked_sym_rate_KSs*mod_fac/8/2; break; ++ case 4: input_datarate = locked_sym_rate_KSs*mod_fac*3/8/5; break; ++ case 5: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/3; break; ++ case 6: input_datarate = locked_sym_rate_KSs*mod_fac*3/8/4; break; ++ case 7: input_datarate = locked_sym_rate_KSs*mod_fac*4/8/5; break; ++ case 8: input_datarate = locked_sym_rate_KSs*mod_fac*5/8/6; break; ++ case 9: input_datarate = locked_sym_rate_KSs*mod_fac*8/8/9; break; ++ case 10: input_datarate = locked_sym_rate_KSs*mod_fac*9/8/10; break; ++ default: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/3; break; ++ } ++ ++ if(state->demod_id == DS3000_ID) ++ input_datarate = input_datarate * 115 / 100; ++ ++ if(input_datarate < 4800) {tmp1 = 15;tmp2 = 15;} //4.8MHz TS clock ++ else if(input_datarate < 4966) {tmp1 = 14;tmp2 = 15;} //4.966MHz TS clock ++ else if(input_datarate < 5143) {tmp1 = 14;tmp2 = 14;} //5.143MHz TS clock ++ else if(input_datarate < 5333) {tmp1 = 13;tmp2 = 14;} //5.333MHz TS clock ++ else if(input_datarate < 5538) {tmp1 = 13;tmp2 = 13;} //5.538MHz TS clock ++ else if(input_datarate < 5760) {tmp1 = 12;tmp2 = 13;} //5.76MHz TS clock allan 0809 ++ else if(input_datarate < 6000) {tmp1 = 12;tmp2 = 12;} //6MHz TS clock ++ else if(input_datarate < 6260) {tmp1 = 11;tmp2 = 12;} //6.26MHz TS clock ++ else if(input_datarate < 6545) {tmp1 = 11;tmp2 = 11;} //6.545MHz TS clock ++ else if(input_datarate < 6857) {tmp1 = 10;tmp2 = 11;} //6.857MHz TS clock ++ else if(input_datarate < 7200) {tmp1 = 10;tmp2 = 10;} //7.2MHz TS clock ++ else if(input_datarate < 7578) {tmp1 = 9;tmp2 = 10;} //7.578MHz TS clock ++ else if(input_datarate < 8000) {tmp1 = 9;tmp2 = 9;} //8MHz TS clock ++ else if(input_datarate < 8470) {tmp1 = 8;tmp2 = 9;} //8.47MHz TS clock ++ else if(input_datarate < 9000) {tmp1 = 8;tmp2 = 8;} //9MHz TS clock ++ else if(input_datarate < 9600) {tmp1 = 7;tmp2 = 8;} //9.6MHz TS clock ++ else if(input_datarate < 10285) {tmp1 = 7;tmp2 = 7;} //10.285MHz TS clock ++ else if(input_datarate < 12000) {tmp1 = 6;tmp2 = 6;} //12MHz TS clock ++ else if(input_datarate < 14400) {tmp1 = 5;tmp2 = 5;} //14.4MHz TS clock ++ else if(input_datarate < 18000) {tmp1 = 4;tmp2 = 4;} //18MHz TS clock ++ else {tmp1 = 3;tmp2 = 3;} //24MHz TS clock ++ ++ if(state->demod_id == DS3000_ID) { ++ val = (u8)((tmp1<<4) + tmp2); ++ m88ds3103_writereg(state, 0xfe, val); ++ } else { ++ tmp1 = m88ds3103_readreg(state, 0x22); ++ tmp2 = m88ds3103_readreg(state, 0x24); ++ ++ tmp1 >>= 6; ++ tmp1 &= 0x03; ++ tmp2 >>= 6; ++ tmp2 &= 0x03; ++ ++ if((tmp1 == 0x00) && (tmp2 == 0x01)) ++ MClk_KHz = 144000; ++ else if((tmp1 == 0x00) && (tmp2 == 0x03)) ++ MClk_KHz = 72000; ++ else if((tmp1 == 0x01) && (tmp2 == 0x01)) ++ MClk_KHz = 115200; ++ else if((tmp1 == 0x02) && (tmp2 == 0x01)) ++ MClk_KHz = 96000; ++ else if((tmp1 == 0x03) && (tmp2 == 0x00)) ++ MClk_KHz = 192000; ++ else ++ return 0; ++ ++ if(input_datarate < 5200) /*Max. 2011-12-23 11:55*/ ++ input_datarate = 5200; ++ ++ if(input_datarate != 0) ++ divid_ratio = (u8)(MClk_KHz / input_datarate); ++ else ++ divid_ratio = 0xFF; ++ ++ if(divid_ratio > 128) ++ divid_ratio = 128; ++ ++ if(divid_ratio < 2) ++ divid_ratio = 2; ++ ++ tmp1 = (u8)(divid_ratio / 2); ++ tmp2 = (u8)(divid_ratio / 2); ++ ++ if((divid_ratio % 2) != 0) ++ tmp2 += 1; ++ ++ tmp1 -= 1; ++ tmp2 -= 1; ++ ++ tmp1 &= 0x3f; ++ tmp2 &= 0x3f; ++ ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xF0; ++ val |= (tmp2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, val); ++ ++ val = (u8)((tmp2 & 0x03) << 6); ++ val |= tmp1; ++ m88ds3103_writereg(state, 0xea, val); ++ } ++ } else { ++ mod_fac = 2; ++ ++ switch(code_rate) { ++ case 4: input_datarate = locked_sym_rate_KSs*mod_fac/2/8; break; ++ case 3: input_datarate = locked_sym_rate_KSs*mod_fac*2/3/8; break; ++ case 2: input_datarate = locked_sym_rate_KSs*mod_fac*3/4/8; break; ++ case 1: input_datarate = locked_sym_rate_KSs*mod_fac*5/6/8; break; ++ case 0: input_datarate = locked_sym_rate_KSs*mod_fac*7/8/8; break; ++ default: input_datarate = locked_sym_rate_KSs*mod_fac*3/4/8; break; ++ } ++ ++ if(state->demod_id == DS3000_ID) ++ input_datarate = input_datarate * 115 / 100; ++ ++ if(input_datarate < 6857) {tmp1 = 7;tmp2 = 7;} //6.857MHz TS clock ++ else if(input_datarate < 7384) {tmp1 = 6;tmp2 = 7;} //7.384MHz TS clock ++ else if(input_datarate < 8000) {tmp1 = 6;tmp2 = 6;} //8MHz TS clock ++ else if(input_datarate < 8727) {tmp1 = 5;tmp2 = 6;} //8.727MHz TS clock ++ else if(input_datarate < 9600) {tmp1 = 5;tmp2 = 5;} //9.6MHz TS clock ++ else if(input_datarate < 10666) {tmp1 = 4;tmp2 = 5;} //10.666MHz TS clock ++ else if(input_datarate < 12000) {tmp1 = 4;tmp2 = 4;} //12MHz TS clock ++ else if(input_datarate < 13714) {tmp1 = 3;tmp2 = 4;} //13.714MHz TS clock ++ else if(input_datarate < 16000) {tmp1 = 3;tmp2 = 3;} //16MHz TS clock ++ else if(input_datarate < 19200) {tmp1 = 2;tmp2 = 3;} //19.2MHz TS clock ++ else {tmp1 = 2;tmp2 = 2;} //24MHz TS clock ++ ++ if(state->demod_id == DS3000_ID) { ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xc0; ++ val |= ((u8)((tmp1<<3) + tmp2)); ++ m88ds3103_writereg(state, 0xfe, val); ++ } else { ++ if(input_datarate < 5200) /*Max. 2011-12-23 11:55*/ ++ input_datarate = 5200; ++ ++ if(input_datarate != 0) ++ divid_ratio = (u8)(MClk_KHz / input_datarate); ++ else ++ divid_ratio = 0xFF; ++ ++ if(divid_ratio > 128) ++ divid_ratio = 128; ++ ++ if(divid_ratio < 2) ++ divid_ratio = 2; ++ ++ tmp1 = (u8)(divid_ratio / 2); ++ tmp2 = (u8)(divid_ratio / 2); ++ ++ if((divid_ratio % 2) != 0) ++ tmp2 += 1; ++ ++ tmp1 -= 1; ++ tmp2 -= 1; ++ ++ tmp1 &= 0x3f; ++ tmp2 &= 0x3f; ++ ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xF0; ++ val |= (tmp2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, val); ++ ++ val = (u8)((tmp2 & 0x03) << 6); ++ val |= tmp1; ++ m88ds3103_writereg(state, 0xea, val); ++ } ++ } ++ return 0; ++} ++ ++static int m88ds3103_demod_connect(struct dvb_frontend *fe, s32 carrier_offset_khz) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ u16 value; ++ u8 val1,val2,data; ++ ++ dprintk("connect delivery system = %d\n", state->delivery_system); ++ ++ /* ds3000 global reset */ ++ m88ds3103_writereg(state, 0x07, 0x80); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ /* ds3000 build-in uC reset */ ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ /* ds3000 software reset */ ++ m88ds3103_writereg(state, 0x00, 0x01); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ /* initialise the demod in DVB-S mode */ ++ if(state->demod_id == DS3000_ID){ ++ m88ds3103_init_reg(state, ds3000_dvbs_init_tab, sizeof(ds3000_dvbs_init_tab)); ++ ++ value = m88ds3103_readreg(state, 0xfe); ++ value &= 0xc0; ++ value |= 0x1b; ++ m88ds3103_writereg(state, 0xfe, value); ++ ++ if(state->config->ci_mode) ++ val1 = 0x80; ++ else if(state->config->ts_mode) ++ val1 = 0x60; ++ else ++ val1 = 0x20; ++ m88ds3103_writereg(state, 0xfd, val1); ++ ++ }else if(state->demod_id == DS3103_ID){ ++ m88ds3103_init_reg(state, ds3103_dvbs_init_tab, sizeof(ds3103_dvbs_init_tab)); ++ ++ /* set ts clock */ ++ if(state->config->ci_mode == 2){ ++ val1 = 6; val2 = 6; ++ }else if(state->config->ts_mode == 0) { ++ val1 = 3; val2 = 3; ++ }else{ ++ val1 = 0; val2 = 0; ++ } ++ val1 -= 1; val2 -= 1; ++ val1 &= 0x3f; val2 &= 0x3f; ++ data = m88ds3103_readreg(state, 0xfe); ++ data &= 0xf0; ++ data |= (val2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, data); ++ data = (val2 & 0x03) << 6; ++ data |= val1; ++ m88ds3103_writereg(state, 0xea, data); ++ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ ++ /* set master clock */ ++ val1 = m88ds3103_readreg(state, 0x22); ++ val2 = m88ds3103_readreg(state, 0x24); ++ ++ val1 &= 0x3f; ++ val2 &= 0x3f; ++ val1 |= 0x80; ++ val2 |= 0x40; ++ ++ m88ds3103_writereg(state, 0x22, val1); ++ m88ds3103_writereg(state, 0x24, val2); ++ ++ if(state->config->ci_mode) ++ val1 = 0x03; ++ else if(state->config->ts_mode) ++ val1 = 0x06; ++ else ++ val1 = 0x42; ++ m88ds3103_writereg(state, 0xfd, val1); ++ } ++ break; ++ case SYS_DVBS2: ++ /* initialise the demod in DVB-S2 mode */ ++ if(state->demod_id == DS3000_ID){ ++ m88ds3103_init_reg(state, ds3000_dvbs2_init_tab, sizeof(ds3000_dvbs2_init_tab)); ++ ++ if (c->symbol_rate >= 30000000) ++ m88ds3103_writereg(state, 0xfe, 0x54); ++ else ++ m88ds3103_writereg(state, 0xfe, 0x98); ++ ++ }else if(state->demod_id == DS3103_ID){ ++ m88ds3103_init_reg(state, ds3103_dvbs2_init_tab, sizeof(ds3103_dvbs2_init_tab)); ++ ++ /* set ts clock */ ++ if(state->config->ci_mode == 2){ ++ val1 = 6; val2 = 6; ++ }else if(state->config->ts_mode == 0){ ++ val1 = 5; val2 = 4; ++ }else{ ++ val1 = 0; val2 = 0; ++ } ++ val1 -= 1; val2 -= 1; ++ val1 &= 0x3f; val2 &= 0x3f; ++ data = m88ds3103_readreg(state, 0xfe); ++ data &= 0xf0; ++ data |= (val2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, data); ++ data = (val2 & 0x03) << 6; ++ data |= val1; ++ m88ds3103_writereg(state, 0xea, data); ++ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ ++ /* set master clock */ ++ val1 = m88ds3103_readreg(state, 0x22); ++ val2 = m88ds3103_readreg(state, 0x24); ++ ++ val1 &= 0x3f; ++ val2 &= 0x3f; ++ if((state->config->ci_mode == 2) || (state->config->ts_mode == 1)){ ++ val1 |= 0x80; ++ val2 |= 0x40; ++ }else{ ++ if (c->symbol_rate >= 28000000){ ++ val1 |= 0xc0; ++ }else if (c->symbol_rate >= 18000000){ ++ val2 |= 0x40; ++ }else{ ++ val1 |= 0x80; ++ val2 |= 0x40; ++ } ++ } ++ m88ds3103_writereg(state, 0x22, val1); ++ m88ds3103_writereg(state, 0x24, val2); ++ } ++ ++ if(state->config->ci_mode) ++ val1 = 0x03; ++ else if(state->config->ts_mode) ++ val1 = 0x06; ++ else ++ val1 = 0x42; ++ m88ds3103_writereg(state, 0xfd, val1); ++ ++ break; ++ default: ++ return 1; ++ } ++ /* disable 27MHz clock output */ ++ m88ds3103_writereg(state, 0x29, 0x80); ++ /* enable ac coupling */ ++ m88ds3103_writereg(state, 0x25, 0x8a); ++ ++ if ((c->symbol_rate / 1000) <= 3000){ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 32 * 100 / 64 = 400*/ ++ m88ds3103_writereg(state, 0xc8, 0x20); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ }else if((c->symbol_rate / 1000) <= 10000){ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 16 * 100 / 64 = 200*/ ++ m88ds3103_writereg(state, 0xc8, 0x10); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ }else{ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 6 * 100 / 64 = 75*/ ++ m88ds3103_writereg(state, 0xc8, 0x06); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ } ++ ++ m88ds3103_set_symrate(fe); ++ ++ m88ds3103_set_CCI(fe); ++ ++ m88ds3103_set_carrier_offset(fe, carrier_offset_khz); ++ ++ /* ds3000 out of software reset */ ++ m88ds3103_writereg(state, 0x00, 0x00); ++ /* start ds3000 build-in uC */ ++ m88ds3103_writereg(state, 0xb2, 0x00); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_frontend(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ ++ int i; ++ fe_status_t status; ++ u8 lpf_mxdiv, mlpf_max, mlpf_min, nlpf, div4, capCode, changePLL; ++ s32 offset_khz, lpf_offset_KHz; ++ u16 value, ndiv, lpf_coeff; ++ u32 f3db, gdiv28, realFreq; ++ u8 RFgain; ++ ++ dprintk("%s() ", __func__); ++ dprintk("c frequency = %d\n", c->frequency); ++ dprintk("symbol rate = %d\n", c->symbol_rate); ++ dprintk("delivery system = %d\n", c->delivery_system); ++ ++ realFreq = c->frequency; ++ lpf_offset_KHz = 0; ++ if(c->symbol_rate < 5000000){ ++ lpf_offset_KHz = FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz; ++ realFreq += FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz; ++ } ++ ++ if (state->config->set_ts_params) ++ state->config->set_ts_params(fe, 0); ++ ++ div4 = 0; ++ RFgain = 0; ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x0a); ++ m88ds3103_tuner_writereg(state, 0x11, 0x40); ++ if (realFreq < 1103000) { ++ m88ds3103_tuner_writereg(state, 0x10, 0x1b); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4)/MT_FE_CRYSTAL_KHZ; ++ }else { ++ ndiv = (realFreq * (6 + 8) * 2)/MT_FE_CRYSTAL_KHZ; ++ } ++ ndiv = ndiv + ndiv%2; ++ if(ndiv < 4095) ++ ndiv = ndiv - 1024; ++ else if (ndiv < 6143) ++ ndiv = ndiv + 1024; ++ else ++ ndiv = ndiv + 3072; ++ ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv & 0x3f00) >> 8); ++ }else{ ++ m88ds3103_tuner_writereg(state, 0x10, 0x00); ++ if (realFreq < 1146000){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x11); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4) / MT_FE_CRYSTAL_KHZ; ++ }else{ ++ m88ds3103_tuner_writereg(state, 0x10, 0x01); ++ ndiv = (realFreq * (6 + 8) * 2) / MT_FE_CRYSTAL_KHZ; ++ } ++ ndiv = ndiv + ndiv%2; ++ ndiv = ndiv - 1024; ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv>>8)&0x0f); ++ } ++ /* set pll */ ++ m88ds3103_tuner_writereg(state, 0x02, ndiv & 0x00ff); ++ m88ds3103_tuner_writereg(state, 0x03, 0x06); ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ if(state->tuner_id == TS2022_ID){ ++ if(( realFreq >= 1650000 ) && (realFreq <= 1850000)){ ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x14); ++ value &= 0x7f; ++ if(value < 64){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x82); ++ m88ds3103_tuner_writereg(state, 0x11, 0x6f); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x14); ++ value &= 0x1f; ++ ++ if(value > 19){ ++ value = m88ds3103_tuner_readreg(state, 0x10); ++ value &= 0x1d; ++ m88ds3103_tuner_writereg(state, 0x10, value); ++ } ++ }else{ ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x66); ++ changePLL = (((value & 0x80) >> 7) != div4); ++ ++ if(changePLL){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x11); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4)/MT_FE_CRYSTAL_KHZ; ++ ndiv = ndiv + ndiv%2; ++ ndiv = ndiv - 1024; ++ ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv>>8) & 0x0f); ++ m88ds3103_tuner_writereg(state, 0x02, ndiv & 0xff); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ /*set the RF gain*/ ++ if(state->tuner_id == TS2020_ID) ++ m88ds3103_tuner_writereg(state, 0x60, 0x79); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ if(state->tuner_id == TS2020_ID){ ++ RFgain = m88ds3103_tuner_readreg(state, 0x3d); ++ RFgain &= 0x0f; ++ if(RFgain < 15){ ++ if(RFgain < 4) ++ RFgain = 0; ++ else ++ RFgain = RFgain -3; ++ value = ((RFgain << 3) | 0x01) & 0x79; ++ m88ds3103_tuner_writereg(state, 0x60, value); ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ ++ /* set the LPF */ ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x25, 0x00); ++ m88ds3103_tuner_writereg(state, 0x27, 0x70); ++ m88ds3103_tuner_writereg(state, 0x41, 0x09); ++ m88ds3103_tuner_writereg(state, 0x08, 0x0b); ++ } ++ ++ f3db = ((c->symbol_rate / 1000) *135) / 200 + 2000; ++ f3db += lpf_offset_KHz; ++ if (f3db < 7000) ++ f3db = 7000; ++ if (f3db > 40000) ++ f3db = 40000; ++ ++ gdiv28 = (MT_FE_CRYSTAL_KHZ / 1000 * 1694 + 500) / 1000; ++ m88ds3103_tuner_writereg(state, 0x04, gdiv28 & 0xff); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ capCode = value & 0x3f; ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x41, 0x0d); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ msleep(2); ++ ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ value &= 0x3f; ++ value = (capCode + value) / 2; ++ } ++ else ++ value = capCode; ++ ++ gdiv28 = gdiv28 * 207 / (value * 2 + 151); ++ mlpf_max = gdiv28 * 135 / 100; ++ mlpf_min = gdiv28 * 78 / 100; ++ if (mlpf_max > 63) ++ mlpf_max = 63; ++ ++ if(state->tuner_id == TS2022_ID) ++ lpf_coeff = 3200; ++ else ++ lpf_coeff = 2766; ++ ++ nlpf = (f3db * gdiv28 * 2 / lpf_coeff / (MT_FE_CRYSTAL_KHZ / 1000) + 1) / 2 ; ++ if (nlpf > 23) nlpf = 23; ++ if (nlpf < 1) nlpf = 1; ++ ++ lpf_mxdiv = (nlpf * (MT_FE_CRYSTAL_KHZ / 1000) * lpf_coeff * 2 / f3db + 1) / 2; ++ ++ if (lpf_mxdiv < mlpf_min){ ++ nlpf++; ++ lpf_mxdiv = (nlpf * (MT_FE_CRYSTAL_KHZ / 1000) * lpf_coeff * 2 / f3db + 1) / 2; ++ } ++ ++ if (lpf_mxdiv > mlpf_max) ++ lpf_mxdiv = mlpf_max; ++ ++ m88ds3103_tuner_writereg(state, 0x04, lpf_mxdiv); ++ m88ds3103_tuner_writereg(state, 0x06, nlpf); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ if(state->tuner_id == TS2022_ID){ ++ msleep(2); ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ capCode = value & 0x3f; ++ ++ m88ds3103_tuner_writereg(state, 0x41, 0x09); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ msleep(2); ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ value &= 0x3f; ++ value = (capCode + value) / 2; ++ ++ value = value | 0x80; ++ m88ds3103_tuner_writereg(state, 0x25, value); ++ m88ds3103_tuner_writereg(state, 0x27, 0x30); ++ ++ m88ds3103_tuner_writereg(state, 0x08, 0x09); ++ } ++ ++ /* Set the BB gain */ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1e); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x01); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ if(state->tuner_id == TS2020_ID){ ++ if(RFgain == 15){ ++ msleep(40); ++ value = m88ds3103_tuner_readreg(state, 0x21); ++ value &= 0x0f; ++ if(value < 3){ ++ m88ds3103_tuner_writereg(state, 0x60, 0x61); ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ } ++ msleep(60); ++ ++ offset_khz = (ndiv - ndiv % 2 + 1024) * MT_FE_CRYSTAL_KHZ ++ / (6 + 8) / (div4 + 1) / 2 - realFreq; ++ ++ m88ds3103_demod_connect(fe, offset_khz+lpf_offset_KHz); ++ ++ for (i = 0; i < 30 ; i++) { ++ m88ds3103_read_status(fe, &status); ++ if (status & FE_HAS_LOCK){ ++ break; ++ } ++ msleep(20); ++ } ++ ++ if((status & FE_HAS_LOCK) == 0){ ++ state->delivery_system = (state->delivery_system == SYS_DVBS) ? SYS_DVBS2 : SYS_DVBS; ++ m88ds3103_demod_connect(fe, offset_khz); ++ ++ for (i = 0; i < 30 ; i++) { ++ m88ds3103_read_status(fe, &status); ++ if (status & FE_HAS_LOCK){ ++ break; ++ } ++ msleep(20); ++ } ++ } ++ ++ if (status & FE_HAS_LOCK){ ++ if(state->config->ci_mode == 2) ++ m88ds3103_set_clock_ratio(state); ++ if(state->config->start_ctrl){ ++ if(state->first_lock == 0){ ++ state->config->start_ctrl(fe); ++ state->first_lock = 1; ++ } ++ } ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_tune(struct dvb_frontend *fe, ++ bool re_tune, ++ unsigned int mode_flags, ++ unsigned int *delay, ++ fe_status_t *status) ++{ ++ *delay = HZ / 5; ++ ++ dprintk("%s() ", __func__); ++ dprintk("re_tune = %d\n", re_tune); ++ ++ if (re_tune) { ++ int ret = m88ds3103_set_frontend(fe); ++ if (ret) ++ return ret; ++ } ++ ++ return m88ds3103_read_status(fe, status); ++} ++ ++static enum dvbfe_algo m88ds3103_get_algo(struct dvb_frontend *fe) ++{ ++ return DVBFE_ALGO_HW; ++} ++ ++ /* ++ * Power config will reset and load initial firmware if required ++ */ ++static int m88ds3103_initilaze(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int ret; ++ ++ dprintk("%s()\n", __func__); ++ /* hard reset */ ++ m88ds3103_writereg(state, 0x07, 0x80); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ msleep(1); ++ ++ m88ds3103_writereg(state, 0x08, 0x01 | m88ds3103_readreg(state, 0x08)); ++ msleep(1); ++ ++ if(state->tuner_id == TS2020_ID){ ++ /* TS2020 init */ ++ m88ds3103_tuner_writereg(state, 0x42, 0x73); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x05, 0x01); ++ m88ds3103_tuner_writereg(state, 0x62, 0xb5); ++ m88ds3103_tuner_writereg(state, 0x07, 0x02); ++ m88ds3103_tuner_writereg(state, 0x08, 0x01); ++ } ++ else if(state->tuner_id == TS2022_ID){ ++ /* TS2022 init */ ++ m88ds3103_tuner_writereg(state, 0x62, 0x6c); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x42, 0x6c); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x7d, 0x9d); ++ m88ds3103_tuner_writereg(state, 0x7c, 0x9a); ++ m88ds3103_tuner_writereg(state, 0x7a, 0x76); ++ ++ m88ds3103_tuner_writereg(state, 0x3b, 0x01); ++ m88ds3103_tuner_writereg(state, 0x63, 0x88); ++ ++ m88ds3103_tuner_writereg(state, 0x61, 0x85); ++ m88ds3103_tuner_writereg(state, 0x22, 0x30); ++ m88ds3103_tuner_writereg(state, 0x30, 0x40); ++ m88ds3103_tuner_writereg(state, 0x20, 0x23); ++ m88ds3103_tuner_writereg(state, 0x24, 0x02); ++ m88ds3103_tuner_writereg(state, 0x12, 0xa0); ++ } ++ ++ if(state->demod_id == DS3103_ID){ ++ m88ds3103_writereg(state, 0x07, 0xe0); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ msleep(1); ++ } ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ ++ /* Load the firmware if required */ ++ ret = m88ds3103_load_firmware(fe); ++ if (ret != 0){ ++ printk(KERN_ERR "%s: Unable initialize firmware\n", __func__); ++ return ret; ++ } ++ if(state->demod_id == DS3103_ID){ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ } ++ ++ return 0; ++} ++ ++/* ++ * Initialise or wake up device ++ */ ++static int m88ds3103_initfe(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val; ++ ++ dprintk("%s()\n", __func__); ++ ++ /* 1st step to wake up demod */ ++ m88ds3103_writereg(state, 0x08, 0x01 | m88ds3103_readreg(state, 0x08)); ++ m88ds3103_writereg(state, 0x04, 0xfe & m88ds3103_readreg(state, 0x04)); ++ m88ds3103_writereg(state, 0x23, 0xef & m88ds3103_readreg(state, 0x23)); ++ ++ /* 2nd step to wake up tuner */ ++ val = m88ds3103_tuner_readreg(state, 0x00) & 0xff; ++ if((val & 0x01) == 0){ ++ m88ds3103_tuner_writereg(state, 0x00, 0x01); ++ msleep(50); ++ } ++ m88ds3103_tuner_writereg(state, 0x00, 0x03); ++ msleep(50); ++ ++ return 0; ++} ++ ++/* Put device to sleep */ ++static int m88ds3103_sleep(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ ++ dprintk("%s()\n", __func__); ++ ++ /* 1st step to sleep tuner */ ++ m88ds3103_tuner_writereg(state, 0x00, 0x00); ++ ++ /* 2nd step to sleep demod */ ++ m88ds3103_writereg(state, 0x08, 0xfe & m88ds3103_readreg(state, 0x08)); ++ m88ds3103_writereg(state, 0x04, 0x01 | m88ds3103_readreg(state, 0x04)); ++ m88ds3103_writereg(state, 0x23, 0x10 | m88ds3103_readreg(state, 0x23)); ++ ++ ++ return 0; ++} ++ ++static struct dvb_frontend_ops m88ds3103_ops = { ++ .delsys = { SYS_DVBS, SYS_DVBS2}, ++ .info = { ++ .name = "Montage DS3103/TS2022", ++ .type = FE_QPSK, ++ .frequency_min = 950000, ++ .frequency_max = 2150000, ++ .frequency_stepsize = 1011, /* kHz for QPSK frontends */ ++ .frequency_tolerance = 5000, ++ .symbol_rate_min = 1000000, ++ .symbol_rate_max = 45000000, ++ .caps = FE_CAN_INVERSION_AUTO | ++ FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | ++ FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | ++ FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | ++ FE_CAN_2G_MODULATION | ++ FE_CAN_QPSK | FE_CAN_RECOVER ++ }, ++ ++ .release = m88ds3103_release, ++ ++ .init = m88ds3103_initfe, ++ .sleep = m88ds3103_sleep, ++ .read_status = m88ds3103_read_status, ++ .read_ber = m88ds3103_read_ber, ++ .read_signal_strength = m88ds3103_read_signal_strength, ++ .read_snr = m88ds3103_read_snr, ++ .read_ucblocks = m88ds3103_read_ucblocks, ++ .set_tone = m88ds3103_set_tone, ++ .set_voltage = m88ds3103_set_voltage, ++ .diseqc_send_master_cmd = m88ds3103_send_diseqc_msg, ++ .diseqc_send_burst = m88ds3103_diseqc_send_burst, ++ .get_frontend_algo = m88ds3103_get_algo, ++ .tune = m88ds3103_tune, ++ .set_frontend = m88ds3103_set_frontend, ++}; ++ ++MODULE_DESCRIPTION("DVB Frontend module for Montage DS3103/TS2022 hardware"); ++MODULE_AUTHOR("Max nibble"); ++MODULE_LICENSE("GPL"); +diff -urN a/drivers/media/dvb-frontends/m88ds3103.h b/drivers/media/dvb-frontends/m88ds3103.h +--- a/drivers/media/dvb-frontends/m88ds3103.h 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/dvb-frontends/m88ds3103.h 2013-01-30 12:33:51.000000000 +0800 +@@ -0,0 +1,53 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef M88DS3103_H ++#define M88DS3103_H ++ ++#include <linux/dvb/frontend.h> ++ ++struct m88ds3103_config { ++ /* the demodulator's i2c address */ ++ u8 demod_address; ++ u8 ci_mode; ++ u8 pin_ctrl; ++ u8 ts_mode; /* 0: Parallel, 1: Serial */ ++ ++ /* Set device param to start dma */ ++ int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured); ++ /* Start to transfer data */ ++ int (*start_ctrl)(struct dvb_frontend *fe); ++ /* Set LNB voltage */ ++ int (*set_voltage)(struct dvb_frontend* fe, fe_sec_voltage_t voltage); ++}; ++ ++#if defined(CONFIG_DVB_M88DS3103) || \ ++ (defined(CONFIG_DVB_M88DS3103_MODULE) && defined(MODULE)) ++extern struct dvb_frontend *m88ds3103_attach( ++ const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c); ++#else ++static inline struct dvb_frontend *m88ds3103_attach( ++ const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c) ++{ ++ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); ++ return NULL; ++} ++#endif /* CONFIG_DVB_M88DS3103 */ ++#endif /* M88DS3103_H */ +diff -urN a/drivers/media/dvb-frontends/m88ds3103_priv.h b/drivers/media/dvb-frontends/m88ds3103_priv.h +--- a/drivers/media/dvb-frontends/m88ds3103_priv.h 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/dvb-frontends/m88ds3103_priv.h 2013-01-30 12:33:56.000000000 +0800 +@@ -0,0 +1,403 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef M88DS3103_PRIV_H ++#define M88DS3103_PRIV_H ++ ++#define FW_DOWN_SIZE 32 ++#define FW_DOWN_LOOP (8192/FW_DOWN_SIZE) ++#define DS3103_DEFAULT_FIRMWARE "dvb-fe-ds3103.fw" ++#define DS3000_DEFAULT_FIRMWARE "dvb-fe-ds300x.fw" ++#define MT_FE_MCLK_KHZ 96000 /* in kHz */ ++#define MT_FE_CRYSTAL_KHZ 27000 /* in kHz */ ++#define FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz 3000 ++#define DS3000_ID 0x3000 ++#define DS3103_ID 0x3103 ++#define TS2020_ID 0x2020 ++#define TS2022_ID 0x2022 ++#define UNKNOW_ID 0x0000 ++ ++struct m88ds3103_state { ++ struct i2c_adapter *i2c; ++ const struct m88ds3103_config *config; ++ ++ struct dvb_frontend frontend; ++ ++ u32 preBer; ++ u8 skip_fw_load; ++ u8 first_lock; /* The first time of signal lock */ ++ u16 demod_id; /* demod chip type */ ++ u16 tuner_id; /* tuner chip type */ ++ fe_delivery_system_t delivery_system; ++}; ++ ++/* For M88DS3103 demod dvbs mode.*/ ++static u8 ds3103_dvbs_init_tab[] = { ++ 0x23, 0x07, ++ 0x08, 0x03, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x40, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x0f, ++ 0x64, 0x30, ++ 0x65, 0x40, ++ 0x68, 0x26, ++ 0x69, 0x4c, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x38, ++ 0x77, 0xa6, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x14, ++ 0x7c, 0x00, ++ 0xae, 0x82, ++ 0x80, 0x64, ++ 0x81, 0x66, ++ 0x82, 0x44, ++ 0x85, 0x04, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xff, ++ 0xc7, 0x00, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xe0, 0xf8, ++ 0xe6, 0x8b, ++ 0xd0, 0x40, ++ 0xf8, 0x20, ++ 0xfa, 0x0f, ++ 0x00, 0x00, ++ 0xbd, 0x01, ++ 0xb8, 0x00, ++}; ++/* For M88DS3103 demod dvbs2 mode.*/ ++static u8 ds3103_dvbs2_init_tab[] = { ++ 0x23, 0x07, ++ 0x08, 0x07, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x0f, ++ 0x64, 0x10, ++ 0x65, 0x20, ++ 0x68, 0x46, ++ 0x69, 0xcd, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x38, ++ 0x77, 0xa6, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x14, ++ 0x85, 0x08, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0x86, 0x00, ++ 0x87, 0x0f, ++ 0x89, 0x00, ++ 0x8b, 0x44, ++ 0x8c, 0x66, ++ 0x9d, 0xc1, ++ 0x8a, 0x10, ++ 0xad, 0x40, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc1, 0x10, ++ 0xc2, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xff, ++ 0xc7, 0x00, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xca, 0x23, ++ 0xcb, 0x24, ++ 0xcc, 0xf4, ++ 0xce, 0x74, ++ 0x00, 0x00, ++ 0xbd, 0x01, ++ 0xb8, 0x00, ++}; ++ ++/* For M88DS3000 demod dvbs mode.*/ ++static u8 ds3000_dvbs_init_tab[] = { ++ 0x23, 0x05, ++ 0x08, 0x03, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x40, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x40, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x77, ++ 0x51, 0x77, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x56, 0x01, ++ 0x63, 0x47, ++ 0x64, 0x30, ++ 0x65, 0x40, ++ 0x68, 0x26, ++ 0x69, 0x4c, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x00, ++ 0x77, 0xd1, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x04, ++ 0x7c, 0x00, ++ 0x80, 0x86, ++ 0x81, 0xa6, ++ 0x85, 0x04, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0xa0, 0x44, ++ 0xc0, 0x18, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0x80, ++ 0xc6, 0x80, ++ 0xc7, 0x0a, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xfe, 0xb6, ++ 0xe0, 0xf8, ++ 0xe6, 0x8b, ++ 0xd0, 0x40, ++ 0xf8, 0x20, ++ 0xfa, 0x0f, ++ 0xad, 0x20, ++ 0xae, 0x07, ++ 0xb8, 0x00, ++}; ++ ++/* For M88DS3000 demod dvbs2 mode.*/ ++static u8 ds3000_dvbs2_init_tab[] = { ++ 0x23, 0x0f, ++ 0x08, 0x07, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x32, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0x88, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x60, ++ 0x64, 0x10, ++ 0x65, 0x10, ++ 0x68, 0x04, ++ 0x69, 0x29, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc1, 0x10, ++ 0xc2, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xf0, ++ 0xc7, 0x0a, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xca, 0x23, ++ 0xcb, 0x24, ++ 0xce, 0x74, ++ 0x56, 0x01, ++ 0x90, 0x03, ++ 0x76, 0x80, ++ 0x77, 0x42, ++ 0x78, 0x0a, ++ 0x79, 0x80, ++ 0xad, 0x40, ++ 0xae, 0x07, ++ 0x7f, 0xd4, ++ 0x7c, 0x00, ++ 0x80, 0xa8, ++ 0x81, 0xda, ++ 0x7c, 0x01, ++ 0x80, 0xda, ++ 0x81, 0xec, ++ 0x7c, 0x02, ++ 0x80, 0xca, ++ 0x81, 0xeb, ++ 0x7c, 0x03, ++ 0x80, 0xba, ++ 0x81, 0xdb, ++ 0x85, 0x08, ++ 0x86, 0x00, ++ 0x87, 0x02, ++ 0x89, 0x80, ++ 0x8b, 0x44, ++ 0x8c, 0xaa, ++ 0x8a, 0x10, ++ 0xba, 0x00, ++ 0xf5, 0x04, ++ 0xd2, 0x32, ++ 0xb8, 0x00, ++}; ++ ++#endif /* M88DS3103_PRIV_H */ +diff -urN a/drivers/media/dvb-frontends/Makefile b/drivers/media/dvb-frontends/Makefile +--- a/drivers/media/dvb-frontends/Makefile 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/dvb-frontends/Makefile 2013-05-03 17:04:31.000000000 +0800 +@@ -103,4 +103,5 @@ + obj-$(CONFIG_DVB_RTL2832) += rtl2832.o + obj-$(CONFIG_DVB_M88RS2000) += m88rs2000.o + obj-$(CONFIG_DVB_AF9033) += af9033.o +- ++obj-$(CONFIG_DVB_M88DS3103) += m88ds3103.o ++obj-$(CONFIG_DVB_M88DC2800) += m88dc2800.o +diff -urN a/drivers/media/pci/cx23885/cimax2.c b/drivers/media/pci/cx23885/cimax2.c +--- a/drivers/media/pci/cx23885/cimax2.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cimax2.c 2013-03-31 22:03:29.000000000 +0800 +@@ -415,7 +415,7 @@ + return state->status; + } + +-int netup_ci_init(struct cx23885_tsport *port) ++int netup_ci_init(struct cx23885_tsport *port, bool isDVBSky) + { + struct netup_ci_state *state; + u8 cimax_init[34] = { +@@ -464,6 +464,11 @@ + goto err; + } + ++ if(isDVBSky) { ++ cimax_init[32] = 0x22; ++ cimax_init[33] = 0x00; ++ } ++ + port->port_priv = state; + + switch (port->nr) { +@@ -537,3 +542,19 @@ + dvb_ca_en50221_release(&state->ca); + kfree(state); + } ++ ++/* CI irq handler for DVBSky board*/ ++int dvbsky_ci_slot_status(struct cx23885_dev *dev) ++{ ++ struct cx23885_tsport *port = NULL; ++ struct netup_ci_state *state = NULL; ++ ++ ci_dbg_print("%s:\n", __func__); ++ ++ port = &dev->ts1; ++ state = port->port_priv; ++ schedule_work(&state->work); ++ ci_dbg_print("%s: Wakeup CI0\n", __func__); ++ ++ return 1; ++} +diff -urN a/drivers/media/pci/cx23885/cimax2.h b/drivers/media/pci/cx23885/cimax2.h +--- a/drivers/media/pci/cx23885/cimax2.h 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cimax2.h 2013-01-30 12:34:37.000000000 +0800 +@@ -41,7 +41,9 @@ + extern int netup_ci_slot_status(struct cx23885_dev *dev, u32 pci_status); + extern int netup_poll_ci_slot_status(struct dvb_ca_en50221 *en50221, + int slot, int open); +-extern int netup_ci_init(struct cx23885_tsport *port); ++extern int netup_ci_init(struct cx23885_tsport *port, bool isDVBSky); + extern void netup_ci_exit(struct cx23885_tsport *port); + ++extern int dvbsky_ci_slot_status(struct cx23885_dev *dev); ++ + #endif +diff -urN a/drivers/media/pci/cx23885/cx23885-cards.c b/drivers/media/pci/cx23885/cx23885-cards.c +--- a/drivers/media/pci/cx23885/cx23885-cards.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cx23885-cards.c 2013-05-03 17:34:46.000000000 +0800 +@@ -569,6 +569,34 @@ + .name = "TeVii S471", + .portb = CX23885_MPEG_DVB, + }, ++ [CX23885_BOARD_BST_PS8512] = { ++ .name = "Bestunar PS8512", ++ .portb = CX23885_MPEG_DVB, ++ }, ++ [CX23885_BOARD_DVBSKY_S950] = { ++ .name = "DVBSKY S950", ++ .portb = CX23885_MPEG_DVB, ++ }, ++ [CX23885_BOARD_DVBSKY_S952] = { ++ .name = "DVBSKY S952", ++ .portb = CX23885_MPEG_DVB, ++ .portc = CX23885_MPEG_DVB, ++ }, ++ [CX23885_BOARD_DVBSKY_S950_CI] = { ++ .ci_type = 3, ++ .name = "DVBSKY S950CI DVB-S2 CI", ++ .portb = CX23885_MPEG_DVB, ++ }, ++ [CX23885_BOARD_DVBSKY_C2800E_CI] = { ++ .ci_type = 3, ++ .name = "DVBSKY C2800E DVB-C CI", ++ .portb = CX23885_MPEG_DVB, ++ }, ++ [CX23885_BOARD_DVBSKY_T9580] = { ++ .name = "DVBSKY T9580", ++ .portb = CX23885_MPEG_DVB, ++ .portc = CX23885_MPEG_DVB, ++ }, + [CX23885_BOARD_PROF_8000] = { + .name = "Prof Revolution DVB-S2 8000", + .portb = CX23885_MPEG_DVB, +@@ -605,7 +633,7 @@ + CX25840_NONE1_CH3, + .amux = CX25840_AUDIO6, + } }, +- } ++ } + }; + const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); + +@@ -818,6 +846,30 @@ + .subdevice = 0x9022, + .card = CX23885_BOARD_TEVII_S471, + }, { ++ .subvendor = 0x14f1, ++ .subdevice = 0x8512, ++ .card = CX23885_BOARD_BST_PS8512, ++ }, { ++ .subvendor = 0x4254, ++ .subdevice = 0x0950, ++ .card = CX23885_BOARD_DVBSKY_S950, ++ }, { ++ .subvendor = 0x4254, ++ .subdevice = 0x0952, ++ .card = CX23885_BOARD_DVBSKY_S952, ++ }, { ++ .subvendor = 0x4254, ++ .subdevice = 0x950C, ++ .card = CX23885_BOARD_DVBSKY_S950_CI, ++ }, { ++ .subvendor = 0x4254, ++ .subdevice = 0x2800, ++ .card = CX23885_BOARD_DVBSKY_C2800E_CI, ++ }, { ++ .subvendor = 0x4254, ++ .subdevice = 0x9580, ++ .card = CX23885_BOARD_DVBSKY_T9580, ++ }, { + .subvendor = 0x8000, + .subdevice = 0x3034, + .card = CX23885_BOARD_PROF_8000, +@@ -1224,7 +1276,7 @@ + cx_set(GP0_IO, 0x00040004); + break; + case CX23885_BOARD_TBS_6920: +- case CX23885_BOARD_PROF_8000: ++ case CX23885_BOARD_PROF_8000: + cx_write(MC417_CTL, 0x00000036); + cx_write(MC417_OEN, 0x00001000); + cx_set(MC417_RWD, 0x00000002); +@@ -1394,9 +1446,84 @@ + cx_set(GP0_IO, 0x00040004); + mdelay(60); + break; ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_BST_PS8512: ++ cx23885_gpio_enable(dev, GPIO_2, 1); ++ cx23885_gpio_clear(dev, GPIO_2); ++ msleep(100); ++ cx23885_gpio_set(dev, GPIO_2); ++ break; ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_T9580: ++ cx_write(MC417_CTL, 0x00000037);/* enable GPIO3-18 pins */ ++ ++ cx23885_gpio_enable(dev, GPIO_2, 1); ++ cx23885_gpio_enable(dev, GPIO_11, 1); ++ ++ cx23885_gpio_clear(dev, GPIO_2); ++ cx23885_gpio_clear(dev, GPIO_11); ++ msleep(100); ++ cx23885_gpio_set(dev, GPIO_2); ++ cx23885_gpio_set(dev, GPIO_11); ++ break; ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ /* GPIO-0 INTA from CiMax, input ++ GPIO-1 reset CiMax, output, high active ++ GPIO-2 reset demod, output, low active ++ GPIO-3 to GPIO-10 data/addr for CAM ++ GPIO-11 ~CS0 to CiMax1 ++ GPIO-12 ~CS1 to CiMax2 ++ GPIO-13 ADL0 load LSB addr ++ GPIO-14 ADL1 load MSB addr ++ GPIO-15 ~RDY from CiMax ++ GPIO-17 ~RD to CiMax ++ GPIO-18 ~WR to CiMax ++ */ ++ cx_set(GP0_IO, 0x00060002); /* GPIO 1/2 as output */ ++ cx_clear(GP0_IO, 0x00010004); /*GPIO 0 as input*/ ++ mdelay(100);/* reset delay */ ++ cx_set(GP0_IO, 0x00060004); /* GPIO as out, reset high */ ++ cx_clear(GP0_IO, 0x00010002); ++ cx_write(MC417_CTL, 0x00000037);/* enable GPIO3-18 pins */ ++ /* GPIO-15 IN as ~ACK, rest as OUT */ ++ cx_write(MC417_OEN, 0x00001000); ++ /* ~RD, ~WR high; ADL0, ADL1 low; ~CS0, ~CS1 high */ ++ cx_write(MC417_RWD, 0x0000c300); ++ /* enable irq */ ++ cx_write(GPIO_ISM, 0x00000000);/* INTERRUPTS active low*/ ++ break; + } + } + ++static int cx23885_ir_patch(struct i2c_adapter *i2c, u8 reg, u8 mask) ++{ ++ struct i2c_msg msgs[2]; ++ u8 tx_buf[2], rx_buf[1]; ++ /* Write register address */ ++ tx_buf[0] = reg; ++ msgs[0].addr = 0x4c; ++ msgs[0].flags = 0; ++ msgs[0].len = 1; ++ msgs[0].buf = (char *) tx_buf; ++ /* Read data from register */ ++ msgs[1].addr = 0x4c; ++ msgs[1].flags = I2C_M_RD; ++ msgs[1].len = 1; ++ msgs[1].buf = (char *) rx_buf; ++ ++ i2c_transfer(i2c, msgs, 2); ++ ++ tx_buf[0] = reg; ++ tx_buf[1] = rx_buf[0] | mask; ++ msgs[0].addr = 0x4c; ++ msgs[0].flags = 0; ++ msgs[0].len = 2; ++ msgs[0].buf = (char *) tx_buf; ++ ++ return i2c_transfer(i2c, msgs, 1); ++} ++ + int cx23885_ir_init(struct cx23885_dev *dev) + { + static struct v4l2_subdev_io_pin_config ir_rxtx_pin_cfg[] = { +@@ -1482,6 +1609,23 @@ + v4l2_subdev_call(dev->sd_cx25840, core, s_io_pin_config, + ir_rx_pin_cfg_count, ir_rx_pin_cfg); + break; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: ++ dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_AV_CORE); ++ if (dev->sd_ir == NULL) { ++ ret = -ENODEV; ++ break; ++ } ++ v4l2_subdev_call(dev->sd_cx25840, core, s_io_pin_config, ++ ir_rx_pin_cfg_count, ir_rx_pin_cfg); ++ ++ cx23885_ir_patch(&(dev->i2c_bus[2].i2c_adap),0x1f,0x80); ++ cx23885_ir_patch(&(dev->i2c_bus[2].i2c_adap),0x23,0x80); ++ break; + case CX23885_BOARD_HAUPPAUGE_HVR1250: + if (!enable_885_ir) + break; +@@ -1511,9 +1655,15 @@ + cx23888_ir_remove(dev); + dev->sd_ir = NULL; + break; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: + case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL: + case CX23885_BOARD_TEVII_S470: +- case CX23885_BOARD_HAUPPAUGE_HVR1250: ++ case CX23885_BOARD_HAUPPAUGE_HVR1250: + case CX23885_BOARD_MYGICA_X8507: + cx23885_irq_remove(dev, PCI_MSK_AV_CORE); + /* sd_ir is a duplicate pointer to the AV Core, just clear it */ +@@ -1556,6 +1706,12 @@ + if (dev->sd_ir) + cx23885_irq_add_enable(dev, PCI_MSK_IR); + break; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: + case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL: + case CX23885_BOARD_TEVII_S470: + case CX23885_BOARD_HAUPPAUGE_HVR1250: +@@ -1657,6 +1813,10 @@ + ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ + ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; + break; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: + case CX23885_BOARD_TEVII_S470: + case CX23885_BOARD_TEVII_S471: + case CX23885_BOARD_DVBWORLD_2005: +@@ -1694,6 +1854,22 @@ + ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ + ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; + break; ++ case CX23885_BOARD_DVBSKY_S952: ++ ts1->gen_ctrl_val = 0x5; /* Parallel */ ++ ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ ++ ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; ++ ts2->gen_ctrl_val = 0xe; /* Serial bus + punctured clock */ ++ ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ ++ ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; ++ break; ++ case CX23885_BOARD_DVBSKY_T9580: ++ ts1->gen_ctrl_val = 0x5; /* Parallel */ ++ ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ ++ ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; ++ ts2->gen_ctrl_val = 0x8; /* Serial bus */ ++ ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ ++ ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; ++ break; + case CX23885_BOARD_HAUPPAUGE_HVR1250: + case CX23885_BOARD_HAUPPAUGE_HVR1500: + case CX23885_BOARD_HAUPPAUGE_HVR1500Q: +@@ -1749,6 +1925,12 @@ + case CX23885_BOARD_MPX885: + case CX23885_BOARD_MYGICA_X8507: + case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL: ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: + case CX23885_BOARD_AVERMEDIA_HC81R: + dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev, + &dev->i2c_bus[2].i2c_adap, +diff -urN a/drivers/media/pci/cx23885/cx23885-core.c b/drivers/media/pci/cx23885/cx23885-core.c +--- a/drivers/media/pci/cx23885/cx23885-core.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cx23885-core.c 2013-05-03 17:36:31.000000000 +0800 +@@ -1909,6 +1909,10 @@ + (pci_status & PCI_MSK_GPIO0)) + handled += altera_ci_irq(dev); + ++ if (cx23885_boards[dev->board].ci_type == 3 && ++ (pci_status & PCI_MSK_GPIO0)) ++ handled += dvbsky_ci_slot_status(dev); ++ + if (ts1_status) { + if (cx23885_boards[dev->board].portb == CX23885_MPEG_DVB) + handled += cx23885_irq_ts(ts1, ts1_status); +@@ -2144,6 +2148,8 @@ + cx23885_irq_add_enable(dev, PCI_MSK_GPIO1 | PCI_MSK_GPIO0); + break; + case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: + cx23885_irq_add_enable(dev, PCI_MSK_GPIO0); + break; + } +diff -urN a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c +--- a/drivers/media/pci/cx23885/cx23885-dvb.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cx23885-dvb.c 2013-05-03 17:38:34.000000000 +0800 +@@ -51,6 +51,8 @@ + #include "stv6110.h" + #include "lnbh24.h" + #include "cx24116.h" ++#include "m88ds3103.h" ++#include "m88dc2800.h" + #include "cimax2.h" + #include "lgs8gxx.h" + #include "netup-eeprom.h" +@@ -64,8 +66,8 @@ + #include "stv0367.h" + #include "drxk.h" + #include "mt2063.h" +-#include "stv090x.h" +-#include "stb6100.h" ++#include "stv090x.h" ++#include "stb6100.h" + #include "stb6100_cfg.h" + #include "tda10071.h" + #include "a8293.h" +@@ -500,42 +502,130 @@ + .if_khz = 5380, + }; + +-static struct stv090x_config prof_8000_stv090x_config = { +- .device = STV0903, +- .demod_mode = STV090x_SINGLE, +- .clk_mode = STV090x_CLK_EXT, +- .xtal = 27000000, +- .address = 0x6A, +- .ts1_mode = STV090x_TSMODE_PARALLEL_PUNCTURED, +- .repeater_level = STV090x_RPTLEVEL_64, +- .adc1_range = STV090x_ADC_2Vpp, +- .diseqc_envelope_mode = false, +- +- .tuner_get_frequency = stb6100_get_frequency, +- .tuner_set_frequency = stb6100_set_frequency, +- .tuner_set_bandwidth = stb6100_set_bandwidth, +- .tuner_get_bandwidth = stb6100_get_bandwidth, +-}; + +-static struct stb6100_config prof_8000_stb6100_config = { +- .tuner_address = 0x60, +- .refclock = 27000000, +-}; +- +-static int p8000_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++/* bst control */ ++int bst_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) + { + struct cx23885_tsport *port = fe->dvb->priv; + struct cx23885_dev *dev = port->dev; ++ ++ cx23885_gpio_enable(dev, GPIO_1, 1); ++ cx23885_gpio_enable(dev, GPIO_0, 1); ++ ++ switch (voltage) { ++ case SEC_VOLTAGE_13: ++ cx23885_gpio_set(dev, GPIO_1); ++ cx23885_gpio_clear(dev, GPIO_0); ++ break; ++ case SEC_VOLTAGE_18: ++ cx23885_gpio_set(dev, GPIO_1); ++ cx23885_gpio_set(dev, GPIO_0); ++ break; ++ case SEC_VOLTAGE_OFF: ++ cx23885_gpio_clear(dev, GPIO_1); ++ cx23885_gpio_clear(dev, GPIO_0); ++ break; ++ } ++ return 0; ++} + +- if (voltage == SEC_VOLTAGE_18) +- cx_write(MC417_RWD, 0x00001e00); +- else if (voltage == SEC_VOLTAGE_13) +- cx_write(MC417_RWD, 0x00001a00); +- else +- cx_write(MC417_RWD, 0x00001800); ++int dvbsky_set_voltage_sec(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ struct cx23885_tsport *port = fe->dvb->priv; ++ struct cx23885_dev *dev = port->dev; ++ ++ cx23885_gpio_enable(dev, GPIO_12, 1); ++ cx23885_gpio_enable(dev, GPIO_13, 1); ++ ++ switch (voltage) { ++ case SEC_VOLTAGE_13: ++ cx23885_gpio_set(dev, GPIO_13); ++ cx23885_gpio_clear(dev, GPIO_12); ++ break; ++ case SEC_VOLTAGE_18: ++ cx23885_gpio_set(dev, GPIO_13); ++ cx23885_gpio_set(dev, GPIO_12); ++ break; ++ case SEC_VOLTAGE_OFF: ++ cx23885_gpio_clear(dev, GPIO_13); ++ cx23885_gpio_clear(dev, GPIO_12); ++ break; ++ } + return 0; + } + ++/* bestunar single dvb-s2 */ ++static struct m88ds3103_config bst_ds3103_config = { ++ .demod_address = 0x68, ++ .ci_mode = 0, ++ .pin_ctrl = 0x82, ++ .ts_mode = 0, ++ .set_voltage = bst_set_voltage, ++}; ++/* DVBSKY dual dvb-s2 */ ++static struct m88ds3103_config dvbsky_ds3103_config_pri = { ++ .demod_address = 0x68, ++ .ci_mode = 0, ++ .pin_ctrl = 0x82, ++ .ts_mode = 0, ++ .set_voltage = bst_set_voltage, ++}; ++static struct m88ds3103_config dvbsky_ds3103_config_sec = { ++ .demod_address = 0x68, ++ .ci_mode = 0, ++ .pin_ctrl = 0x82, ++ .ts_mode = 1, ++ .set_voltage = dvbsky_set_voltage_sec, ++}; ++ ++static struct m88ds3103_config dvbsky_ds3103_ci_config = { ++ .demod_address = 0x68, ++ .ci_mode = 2, ++ .pin_ctrl = 0x82, ++ .ts_mode = 0, ++}; ++ ++static struct m88dc2800_config dvbsky_dc2800_config = { ++ .demod_address = 0x1c, ++ .ts_mode = 3, ++}; ++ ++static struct stv090x_config prof_8000_stv090x_config = { ++ .device = STV0903, ++ .demod_mode = STV090x_SINGLE, ++ .clk_mode = STV090x_CLK_EXT, ++ .xtal = 27000000, ++ .address = 0x6A, ++ .ts1_mode = STV090x_TSMODE_PARALLEL_PUNCTURED, ++ .repeater_level = STV090x_RPTLEVEL_64, ++ .adc1_range = STV090x_ADC_2Vpp, ++ .diseqc_envelope_mode = false, ++ ++ .tuner_get_frequency = stb6100_get_frequency, ++ .tuner_set_frequency = stb6100_set_frequency, ++ .tuner_set_bandwidth = stb6100_set_bandwidth, ++ .tuner_get_bandwidth = stb6100_get_bandwidth, ++}; ++ ++static struct stb6100_config prof_8000_stb6100_config = { ++ .tuner_address = 0x60, ++ .refclock = 27000000, ++}; ++ ++static int p8000_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ struct cx23885_tsport *port = fe->dvb->priv; ++ struct cx23885_dev *dev = port->dev; ++ ++ if (voltage == SEC_VOLTAGE_18) ++ cx_write(MC417_RWD, 0x00001e00); ++ else if (voltage == SEC_VOLTAGE_13) ++ cx_write(MC417_RWD, 0x00001a00); ++ else ++ cx_write(MC417_RWD, 0x00001800); ++ return 0; ++} ++ + static int cx23885_dvb_set_frontend(struct dvb_frontend *fe) + { + struct dtv_frontend_properties *p = &fe->dtv_property_cache; +@@ -1250,23 +1340,79 @@ + &tevii_ds3000_config, + &i2c_bus->i2c_adap); + break; +- case CX23885_BOARD_PROF_8000: +- i2c_bus = &dev->i2c_bus[0]; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ i2c_bus = &dev->i2c_bus[1]; ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &bst_ds3103_config, ++ &i2c_bus->i2c_adap); ++ break; ++ ++ case CX23885_BOARD_DVBSKY_S952: ++ switch (port->nr) { ++ /* port B */ ++ case 1: ++ i2c_bus = &dev->i2c_bus[1]; ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &dvbsky_ds3103_config_pri, ++ &i2c_bus->i2c_adap); ++ break; ++ /* port C */ ++ case 2: ++ i2c_bus = &dev->i2c_bus[0]; ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &dvbsky_ds3103_config_sec, ++ &i2c_bus->i2c_adap); ++ break; ++ } ++ break; + +- fe0->dvb.frontend = dvb_attach(stv090x_attach, +- &prof_8000_stv090x_config, +- &i2c_bus->i2c_adap, +- STV090x_DEMODULATOR_0); +- if (fe0->dvb.frontend != NULL) { +- if (!dvb_attach(stb6100_attach, +- fe0->dvb.frontend, +- &prof_8000_stb6100_config, +- &i2c_bus->i2c_adap)) +- goto frontend_detach; ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ i2c_bus = &dev->i2c_bus[1]; ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &dvbsky_ds3103_ci_config, ++ &i2c_bus->i2c_adap); ++ break; ++ ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ i2c_bus = &dev->i2c_bus[1]; ++ fe0->dvb.frontend = dvb_attach(m88dc2800_attach, ++ &dvbsky_dc2800_config, ++ &i2c_bus->i2c_adap); ++ break; + +- fe0->dvb.frontend->ops.set_voltage = p8000_set_voltage; ++ case CX23885_BOARD_DVBSKY_T9580: ++ switch (port->nr) { ++ /* port B */ ++ case 1: ++ i2c_bus = &dev->i2c_bus[1]; ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &dvbsky_ds3103_config_pri, ++ &i2c_bus->i2c_adap); ++ break; ++ /* port C */ ++ case 2: ++ break; + } + break; ++ ++ case CX23885_BOARD_PROF_8000: ++ i2c_bus = &dev->i2c_bus[0]; ++ ++ fe0->dvb.frontend = dvb_attach(stv090x_attach, ++ &prof_8000_stv090x_config, ++ &i2c_bus->i2c_adap, ++ STV090x_DEMODULATOR_0); ++ if (fe0->dvb.frontend != NULL) { ++ if (!dvb_attach(stb6100_attach, ++ fe0->dvb.frontend, ++ &prof_8000_stb6100_config, ++ &i2c_bus->i2c_adap)) ++ goto frontend_detach; ++ ++ fe0->dvb.frontend->ops.set_voltage = p8000_set_voltage; ++ } ++ break; + case CX23885_BOARD_HAUPPAUGE_HVR4400: + i2c_bus = &dev->i2c_bus[0]; + fe0->dvb.frontend = dvb_attach(tda10071_attach, +@@ -1325,7 +1471,7 @@ + printk(KERN_INFO "NetUP Dual DVB-S2 CI card port%d MAC=%pM\n", + port->nr, port->frontends.adapter.proposed_mac); + +- netup_ci_init(port); ++ netup_ci_init(port, false); + break; + } + case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF: { +@@ -1352,6 +1498,41 @@ + memcpy(port->frontends.adapter.proposed_mac, eeprom + 0xa0, 6); + break; + } ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_T9580:{ ++ u8 eeprom[256]; /* 24C02 i2c eeprom */ ++ ++ if(port->nr > 2) ++ break; ++ ++ dev->i2c_bus[0].i2c_client.addr = 0xa0 >> 1; ++ tveeprom_read(&dev->i2c_bus[0].i2c_client, eeprom, sizeof(eeprom)); ++ printk(KERN_INFO "DVBSKY PCIe MAC= %pM\n", eeprom + 0xc0+(port->nr-1)*8); ++ memcpy(port->frontends.adapter.proposed_mac, eeprom + 0xc0 + ++ (port->nr-1)*8, 6); ++ break; ++ } ++ case CX23885_BOARD_DVBSKY_S950_CI: { ++ u8 eeprom[256]; /* 24C02 i2c eeprom */ ++ ++ if(port->nr > 2) ++ break; ++ ++ dev->i2c_bus[0].i2c_client.addr = 0xa0 >> 1; ++ tveeprom_read(&dev->i2c_bus[0].i2c_client, eeprom, sizeof(eeprom)); ++ printk(KERN_INFO "DVBSKY PCIe MAC= %pM\n", eeprom + 0xc0+(port->nr-1)*8); ++ memcpy(port->frontends.adapter.proposed_mac, eeprom + 0xc0 + ++ (port->nr-1)*8, 6); ++ ++ netup_ci_init(port, true); ++ break; ++ } ++ case CX23885_BOARD_DVBSKY_C2800E_CI: { ++ netup_ci_init(port, true); ++ break; ++ } + } + + return ret; +@@ -1434,6 +1615,8 @@ + + switch (port->dev->board) { + case CX23885_BOARD_NETUP_DUAL_DVBS2_CI: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: + netup_ci_exit(port); + break; + case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF: +diff -urN a/drivers/media/pci/cx23885/cx23885.h b/drivers/media/pci/cx23885/cx23885.h +--- a/drivers/media/pci/cx23885/cx23885.h 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cx23885.h 2013-05-03 17:14:20.000000000 +0800 +@@ -94,6 +94,14 @@ + #define CX23885_BOARD_HAUPPAUGE_HVR4400 38 + #define CX23885_BOARD_AVERMEDIA_HC81R 39 + ++#define CX23885_BOARD_BASE_INDEX 40 ++#define CX23885_BOARD_BST_PS8512 (CX23885_BOARD_BASE_INDEX) ++#define CX23885_BOARD_DVBSKY_S952 (CX23885_BOARD_BASE_INDEX+1) ++#define CX23885_BOARD_DVBSKY_S950 (CX23885_BOARD_BASE_INDEX+2) ++#define CX23885_BOARD_DVBSKY_S950_CI (CX23885_BOARD_BASE_INDEX+3) ++#define CX23885_BOARD_DVBSKY_C2800E_CI (CX23885_BOARD_BASE_INDEX+4) ++#define CX23885_BOARD_DVBSKY_T9580 (CX23885_BOARD_BASE_INDEX+5) ++ + #define GPIO_0 0x00000001 + #define GPIO_1 0x00000002 + #define GPIO_2 0x00000004 +@@ -231,7 +239,7 @@ + */ + u32 clk_freq; + struct cx23885_input input[MAX_CX23885_INPUT]; +- int ci_type; /* for NetUP */ ++ int ci_type; /* 1 and 2 for NetUP, 3 for DVBSky. */ + /* Force bottom field first during DMA (888 workaround) */ + u32 force_bff; + }; +diff -urN a/drivers/media/pci/cx23885/cx23885-input.c b/drivers/media/pci/cx23885/cx23885-input.c +--- a/drivers/media/pci/cx23885/cx23885-input.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/cx23885-input.c 2013-05-03 17:42:09.000000000 +0800 +@@ -89,6 +89,12 @@ + case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL: + case CX23885_BOARD_TEVII_S470: + case CX23885_BOARD_HAUPPAUGE_HVR1250: ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: + case CX23885_BOARD_MYGICA_X8507: + /* + * The only boards we handle right now. However other boards +@@ -141,6 +147,12 @@ + case CX23885_BOARD_HAUPPAUGE_HVR1850: + case CX23885_BOARD_HAUPPAUGE_HVR1290: + case CX23885_BOARD_HAUPPAUGE_HVR1250: ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: + case CX23885_BOARD_MYGICA_X8507: + /* + * The IR controller on this board only returns pulse widths. +@@ -291,6 +303,18 @@ + /* A guess at the remote */ + rc_map = RC_MAP_TEVII_NEC; + break; ++ case CX23885_BOARD_BST_PS8512: ++ case CX23885_BOARD_DVBSKY_S950: ++ case CX23885_BOARD_DVBSKY_S952: ++ case CX23885_BOARD_DVBSKY_S950_CI: ++ case CX23885_BOARD_DVBSKY_C2800E_CI: ++ case CX23885_BOARD_DVBSKY_T9580: ++ /* Integrated CX2388[58] IR controller */ ++ driver_type = RC_DRIVER_IR_RAW; ++ allowed_protos = RC_BIT_ALL; ++ /* A guess at the remote */ ++ rc_map = RC_MAP_DVBSKY; ++ break; + case CX23885_BOARD_MYGICA_X8507: + /* Integrated CX23885 IR controller */ + driver_type = RC_DRIVER_IR_RAW; +diff -urN a/drivers/media/pci/cx23885/Kconfig b/drivers/media/pci/cx23885/Kconfig +--- a/drivers/media/pci/cx23885/Kconfig 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx23885/Kconfig 2013-05-03 17:43:05.000000000 +0800 +@@ -23,6 +23,8 @@ + select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STV6110 if MEDIA_SUBDRV_AUTOSELECT + select DVB_CX24116 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_M88DS3103 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_M88DC2800 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STV0900 if MEDIA_SUBDRV_AUTOSELECT + select DVB_DS3000 if MEDIA_SUBDRV_AUTOSELECT + select DVB_TS2020 if MEDIA_SUBDRV_AUTOSELECT +diff -urN a/drivers/media/pci/cx88/cx88-cards.c b/drivers/media/pci/cx88/cx88-cards.c +--- a/drivers/media/pci/cx88/cx88-cards.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx88/cx88-cards.c 2013-05-03 17:06:55.000000000 +0800 +@@ -2309,6 +2309,18 @@ + } }, + .mpeg = CX88_MPEG_DVB, + }, ++ [CX88_BOARD_BST_PS8312] = { ++ .name = "Bestunar PS8312 DVB-S/S2", ++ .tuner_type = UNSET, ++ .radio_type = UNSET, ++ .tuner_addr = ADDR_UNSET, ++ .radio_addr = ADDR_UNSET, ++ .input = { { ++ .type = CX88_VMUX_DVB, ++ .vmux = 0, ++ } }, ++ .mpeg = CX88_MPEG_DVB, ++ }, + }; + + /* ------------------------------------------------------------------ */ +@@ -2813,6 +2825,10 @@ + .subvendor = 0x1822, + .subdevice = 0x0023, + .card = CX88_BOARD_TWINHAN_VP1027_DVBS, ++ }, { ++ .subvendor = 0x14f1, ++ .subdevice = 0x8312, ++ .card = CX88_BOARD_BST_PS8312, + }, + }; + +@@ -3547,6 +3563,12 @@ + cx_write(MO_SRST_IO, 1); + msleep(100); + break; ++ case CX88_BOARD_BST_PS8312: ++ cx_write(MO_GP1_IO, 0x808000); ++ msleep(100); ++ cx_write(MO_GP1_IO, 0x808080); ++ msleep(100); ++ break; + } /*end switch() */ + + +diff -urN a/drivers/media/pci/cx88/cx88-dvb.c b/drivers/media/pci/cx88/cx88-dvb.c +--- a/drivers/media/pci/cx88/cx88-dvb.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx88/cx88-dvb.c 2013-05-03 17:09:09.000000000 +0800 +@@ -54,6 +54,7 @@ + #include "stv0288.h" + #include "stb6000.h" + #include "cx24116.h" ++#include "m88ds3103.h" + #include "stv0900.h" + #include "stb6100.h" + #include "stb6100_proc.h" +@@ -459,6 +460,56 @@ + return core->prev_set_voltage(fe, voltage); + return 0; + } ++/*CX88_BOARD_BST_PS8312*/ ++static int bst_dvbs_set_voltage(struct dvb_frontend *fe, ++ fe_sec_voltage_t voltage) ++{ ++ struct cx8802_dev *dev= fe->dvb->priv; ++ struct cx88_core *core = dev->core; ++ ++ cx_write(MO_GP1_IO, 0x111111); ++ switch (voltage) { ++ case SEC_VOLTAGE_13: ++ cx_write(MO_GP1_IO, 0x020200); ++ break; ++ case SEC_VOLTAGE_18: ++ cx_write(MO_GP1_IO, 0x020202); ++ break; ++ case SEC_VOLTAGE_OFF: ++ cx_write(MO_GP1_IO, 0x111100); ++ break; ++ } ++ ++ if (core->prev_set_voltage) ++ return core->prev_set_voltage(fe, voltage); ++ return 0; ++} ++ ++static int bst_dvbs_set_voltage_v2(struct dvb_frontend *fe, ++ fe_sec_voltage_t voltage) ++{ ++ struct cx8802_dev *dev= fe->dvb->priv; ++ struct cx88_core *core = dev->core; ++ ++ cx_write(MO_GP1_IO, 0x111101); ++ switch (voltage) { ++ case SEC_VOLTAGE_13: ++ cx_write(MO_GP1_IO, 0x020200); ++ break; ++ case SEC_VOLTAGE_18: ++ ++ cx_write(MO_GP1_IO, 0x020202); ++ break; ++ case SEC_VOLTAGE_OFF: ++ ++ cx_write(MO_GP1_IO, 0x111110); ++ break; ++ } ++ ++ if (core->prev_set_voltage) ++ return core->prev_set_voltage(fe, voltage); ++ return 0; ++} + + static int vp1027_set_voltage(struct dvb_frontend *fe, + fe_sec_voltage_t voltage) +@@ -706,6 +757,11 @@ + .clk_out_div = 1, + }; + ++static struct m88ds3103_config dvbsky_ds3103_config = { ++ .demod_address = 0x68, ++ .set_ts_params = ds3000_set_ts_param, ++}; ++ + static const struct stv0900_config prof_7301_stv0900_config = { + .demod_address = 0x6a, + /* demod_mode = 0,*/ +@@ -1477,6 +1533,35 @@ + &tevii_ts2020_config, &core->i2c_adap); + fe0->dvb.frontend->ops.set_voltage = + tevii_dvbs_set_voltage; ++ } ++ break; ++ case CX88_BOARD_BST_PS8312: ++ fe0->dvb.frontend = dvb_attach(m88ds3103_attach, ++ &dvbsky_ds3103_config, ++ &core->i2c_adap); ++ if (fe0->dvb.frontend != NULL){ ++ int ret; ++ u8 b0[] = { 0x60 }; ++ u8 b1[2] = { 0 }; ++ struct i2c_msg msg[] = { ++ { ++ .addr = 0x50, ++ .flags = 0, ++ .buf = b0, ++ .len = 1 ++ }, { ++ .addr = 0x50, ++ .flags = I2C_M_RD, ++ .buf = b1, ++ .len = 2 ++ } ++ }; ++ ret = i2c_transfer(&core->i2c_adap, msg, 2); ++ printk("PS8312: config = %02x, %02x", b1[0],b1[1]); ++ if(b1[0] == 0xaa) ++ fe0->dvb.frontend->ops.set_voltage = bst_dvbs_set_voltage_v2; ++ else ++ fe0->dvb.frontend->ops.set_voltage = bst_dvbs_set_voltage; + } + break; + case CX88_BOARD_OMICOM_SS4_PCI: +diff -urN a/drivers/media/pci/cx88/cx88.h b/drivers/media/pci/cx88/cx88.h +--- a/drivers/media/pci/cx88/cx88.h 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx88/cx88.h 2013-05-03 17:05:57.000000000 +0800 +@@ -238,6 +238,7 @@ + #define CX88_BOARD_WINFAST_DTV1800H_XC4000 88 + #define CX88_BOARD_WINFAST_TV2000_XP_GLOBAL_6F36 89 + #define CX88_BOARD_WINFAST_TV2000_XP_GLOBAL_6F43 90 ++#define CX88_BOARD_BST_PS8312 91 + + enum cx88_itype { + CX88_VMUX_COMPOSITE1 = 1, +diff -urN a/drivers/media/pci/cx88/cx88-input.c b/drivers/media/pci/cx88/cx88-input.c +--- a/drivers/media/pci/cx88/cx88-input.c 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx88/cx88-input.c 2013-01-26 14:52:03.000000000 +0800 +@@ -419,6 +419,10 @@ + rc_type = RC_BIT_NEC; + ir->sampling = 0xff00; /* address */ + break; ++ case CX88_BOARD_BST_PS8312: ++ ir_codes = RC_MAP_DVBSKY; ++ ir->sampling = 0xff00; /* address */ ++ break; + } + + if (!ir_codes) { +diff -urN a/drivers/media/pci/cx88/Kconfig b/drivers/media/pci/cx88/Kconfig +--- a/drivers/media/pci/cx88/Kconfig 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/pci/cx88/Kconfig 2013-05-03 17:10:41.000000000 +0800 +@@ -57,6 +57,7 @@ + select DVB_ISL6421 if MEDIA_SUBDRV_AUTOSELECT + select DVB_S5H1411 if MEDIA_SUBDRV_AUTOSELECT + select DVB_CX24116 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_M88DS3103 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STV0299 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STV0288 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STB6000 if MEDIA_SUBDRV_AUTOSELECT +diff -urN a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile +--- a/drivers/media/rc/keymaps/Makefile 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/rc/keymaps/Makefile 2013-05-03 17:43:41.000000000 +0800 +@@ -27,6 +27,7 @@ + rc-dm1105-nec.o \ + rc-dntv-live-dvb-t.o \ + rc-dntv-live-dvbt-pro.o \ ++ rc-dvbsky.o \ + rc-em-terratec.o \ + rc-encore-enltv2.o \ + rc-encore-enltv.o \ +diff -urN a/drivers/media/rc/keymaps/rc-dvbsky.c b/drivers/media/rc/keymaps/rc-dvbsky.c +--- a/drivers/media/rc/keymaps/rc-dvbsky.c 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/rc/keymaps/rc-dvbsky.c 2013-01-26 14:52:49.000000000 +0800 +@@ -0,0 +1,78 @@ ++/* rc-dvbsky.c - Keytable for Dvbsky Remote Controllers ++ * ++ * keymap imported from ir-keymaps.c ++ * ++ * ++ * Copyright (c) 2010-2012 by Nibble Max nibble.max@gmail.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ */ ++ ++#include <media/rc-map.h> ++#include <linux/module.h> ++/* ++ * This table contains the complete RC5 code, instead of just the data part ++ */ ++ ++static struct rc_map_table rc5_dvbsky[] = { ++ { 0x0000, KEY_0 }, ++ { 0x0001, KEY_1 }, ++ { 0x0002, KEY_2 }, ++ { 0x0003, KEY_3 }, ++ { 0x0004, KEY_4 }, ++ { 0x0005, KEY_5 }, ++ { 0x0006, KEY_6 }, ++ { 0x0007, KEY_7 }, ++ { 0x0008, KEY_8 }, ++ { 0x0009, KEY_9 }, ++ { 0x000a, KEY_MUTE }, ++ { 0x000d, KEY_OK }, ++ { 0x000b, KEY_STOP }, ++ { 0x000c, KEY_EXIT }, ++ { 0x000e, KEY_CAMERA }, /*Snap shot*/ ++ { 0x000f, KEY_SUBTITLE }, /*PIP*/ ++ { 0x0010, KEY_VOLUMEUP }, ++ { 0x0011, KEY_VOLUMEDOWN }, ++ { 0x0012, KEY_FAVORITES }, ++ { 0x0013, KEY_LIST }, /*Info*/ ++ { 0x0016, KEY_PAUSE }, ++ { 0x0017, KEY_PLAY }, ++ { 0x001f, KEY_RECORD }, ++ { 0x0020, KEY_CHANNELDOWN }, ++ { 0x0021, KEY_CHANNELUP }, ++ { 0x0025, KEY_POWER2 }, ++ { 0x0026, KEY_REWIND }, ++ { 0x0027, KEY_FASTFORWARD }, ++ { 0x0029, KEY_LAST }, ++ { 0x002b, KEY_MENU }, ++ { 0x002c, KEY_EPG }, ++ { 0x002d, KEY_ZOOM }, ++}; ++ ++static struct rc_map_list rc5_dvbsky_map = { ++ .map = { ++ .scan = rc5_dvbsky, ++ .size = ARRAY_SIZE(rc5_dvbsky), ++ .rc_type = RC_TYPE_RC5, ++ .name = RC_MAP_DVBSKY, ++ } ++}; ++ ++static int __init init_rc_map_rc5_dvbsky(void) ++{ ++ return rc_map_register(&rc5_dvbsky_map); ++} ++ ++static void __exit exit_rc_map_rc5_dvbsky(void) ++{ ++ rc_map_unregister(&rc5_dvbsky_map); ++} ++ ++module_init(init_rc_map_rc5_dvbsky) ++module_exit(exit_rc_map_rc5_dvbsky) ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Nibble Max nibble.max@gmail.com"); +diff -urN a/drivers/media/usb/dvb-usb-v2/dvbsky.c b/drivers/media/usb/dvb-usb-v2/dvbsky.c +--- a/drivers/media/usb/dvb-usb-v2/dvbsky.c 1970-01-01 08:00:00.000000000 +0800 ++++ b/drivers/media/usb/dvb-usb-v2/dvbsky.c 2013-05-03 17:47:38.000000000 +0800 +@@ -0,0 +1,665 @@ ++/* ++ * Driver for DVBSky USB2.0 receiver ++ * ++ * Copyright (C) 2013 Max nibble nibble.max@gmail.com ++ * ++ * CIMax code is copied and modified from: ++ * CIMax2(R) SP2 driver in conjunction with NetUp Dual DVB-S2 CI card ++ * Copyright (C) 2009 NetUP Inc. ++ * Copyright (C) 2009 Igor M. Liplianin liplianin@netup.ru ++ * Copyright (C) 2009 Abylay Ospan aospan@netup.ru ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include "dvb_ca_en50221.h" ++#include "dvb_usb.h" ++#include "m88ds3103.h" ++ ++static int dvbsky_debug; ++module_param(dvbsky_debug, int, 0644); ++MODULE_PARM_DESC(dvbsky_debug, "Activates dvbsky usb debugging (default:0)"); ++ ++#define DVBSKY_CI_CTL 0x04 ++#define DVBSKY_CI_RD 1 ++ ++#define dprintk(args...) \ ++ do { \ ++ if (dvbsky_debug) \ ++ printk(KERN_INFO "dvbsky_usb: " args); \ ++ } while (0) ++ ++DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); ++ ++struct dvbsky_state { ++ struct mutex stream_mutex; ++ u8 has_ci; ++ u8 ci_attached; ++ struct dvb_ca_en50221 ci; ++ unsigned long next_status_checked_time; ++ u8 ci_i2c_addr; ++ u8 current_ci_flag; ++ int ci_status; ++}; ++ ++static int dvbsky_stream_ctrl(struct dvb_usb_device *d, u8 onoff) ++{ ++ struct dvbsky_state *state = d_to_priv(d); ++ int ret; ++ u8 obuf_pre[3] = { 0x37, 0, 0 }; ++ u8 obuf_post[3] = { 0x36, 3, 0 }; ++ dprintk("%s() -off \n", __func__); ++ mutex_lock(&state->stream_mutex); ++ ret = dvb_usbv2_generic_write(d, obuf_pre, 3); ++ if (!ret && onoff) { ++ msleep(10); ++ ret = dvb_usbv2_generic_write(d, obuf_post, 3); ++ dprintk("%s() -on \n", __func__); ++ } ++ mutex_unlock(&state->stream_mutex); ++ return ret; ++} ++ ++/* CI opertaions */ ++static int dvbsky_ci_read_i2c(struct i2c_adapter *i2c_adap, u8 addr, u8 reg, ++ u8 *buf, int len) ++{ ++ int ret; ++ struct i2c_msg msg[] = { ++ { ++ .addr = addr, ++ .flags = 0, ++ .buf = ®, ++ .len = 1 ++ }, { ++ .addr = addr, ++ .flags = I2C_M_RD, ++ .buf = buf, ++ .len = len ++ } ++ }; ++ ++ ret = i2c_transfer(i2c_adap, msg, 2); ++ ++ if (ret != 2) { ++ dprintk("%s: error, Reg = 0x%02x, Status = %d\n", __func__, reg, ret); ++ return -1; ++ } ++ return 0; ++} ++ ++static int dvbsky_ci_write_i2c(struct i2c_adapter *i2c_adap, u8 addr, u8 reg, ++ u8 *buf, int len) ++{ ++ int ret; ++ u8 buffer[len + 1]; ++ ++ struct i2c_msg msg = { ++ .addr = addr, ++ .flags = 0, ++ .buf = &buffer[0], ++ .len = len + 1 ++ }; ++ ++ buffer[0] = reg; ++ memcpy(&buffer[1], buf, len); ++ ++ ret = i2c_transfer(i2c_adap, &msg, 1); ++ ++ if (ret != 1) { ++ dprintk("%s: error, Reg=[0x%02x], Status=%d\n", __func__, reg, ret); ++ return -1; ++ } ++ return 0; ++} ++ ++static int dvbsky_ci_op_cam(struct dvb_ca_en50221 *ci, int slot, ++ u8 flag, u8 read, int addr, u8 data) ++{ ++ struct dvb_usb_device *d = ci->data; ++ struct dvbsky_state *state = d_to_priv(d); ++ u8 store; ++ int ret; ++ u8 command[4], respond[2], command_size, respond_size; ++ ++ /*dprintk("%s()\n", __func__);*/ ++ if (0 != slot) ++ return -EINVAL; ++ ++ if (state->current_ci_flag != flag) { ++ ret = dvbsky_ci_read_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &store, 1); ++ if (ret != 0) ++ return ret; ++ ++ store &= ~0x0c; ++ store |= flag; ++ ++ ret = dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &store, 1); ++ if (ret != 0) ++ return ret; ++ } ++ state->current_ci_flag = flag; ++ ++ command[1] = (u8)((addr >> 8) & 0xff); /*high part of address*/ ++ command[2] = (u8)(addr & 0xff); /*low part of address*/ ++ if (read) { ++ command[0] = 0x71; ++ command_size = 3; ++ respond_size = 2; ++ } else { ++ command[0] = 0x70; ++ command[3] = data; ++ command_size = 4; ++ respond_size = 1; ++ } ++ ret = dvb_usbv2_generic_rw(d, command, command_size, respond, respond_size); ++ ++ return (read) ? respond[1] : 0; ++} ++ ++static int dvbsky_ci_read_attribute_mem(struct dvb_ca_en50221 *ci, ++ int slot, int addr) ++{ ++ return dvbsky_ci_op_cam(ci, slot, 0, DVBSKY_CI_RD, addr, 0); ++} ++ ++static int dvbsky_ci_write_attribute_mem(struct dvb_ca_en50221 *ci, ++ int slot, int addr, u8 data) ++{ ++ return dvbsky_ci_op_cam(ci, slot, 0, 0, addr, data); ++} ++ ++static int dvbsky_ci_read_cam_ctl(struct dvb_ca_en50221 *ci, int slot, u8 addr) ++{ ++ return dvbsky_ci_op_cam(ci, slot, DVBSKY_CI_CTL, DVBSKY_CI_RD, addr, 0); ++} ++ ++static int dvbsky_ci_write_cam_ctl(struct dvb_ca_en50221 *ci, int slot, ++ u8 addr, u8 data) ++{ ++ return dvbsky_ci_op_cam(ci, slot, DVBSKY_CI_CTL, 0, addr, data); ++} ++ ++static int dvbsky_ci_slot_reset(struct dvb_ca_en50221 *ci, int slot) ++{ ++ struct dvb_usb_device *d = ci->data; ++ struct dvbsky_state *state = d_to_priv(d); ++ u8 buf = 0x80; ++ int ret; ++ dprintk("%s() slot=%d\n", __func__, slot); ++ ++ if (0 != slot) ++ return -EINVAL; ++ ++ udelay(500); ++ ret = dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &buf, 1); ++ ++ if (ret != 0) ++ return ret; ++ ++ udelay(500); ++ ++ buf = 0x00; ++ ret = dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &buf, 1); ++ msleep(1000); ++ dprintk("%s() slot=%d complete\n", __func__, slot); ++ return 0; ++ ++} ++ ++static int dvbsky_ci_slot_shutdown(struct dvb_ca_en50221 *ci, int slot) ++{ ++ /* not implemented */ ++ dprintk("%s()\n", __func__); ++ return 0; ++} ++ ++static int dvbsky_ci_slot_ts_enable(struct dvb_ca_en50221 *ci, int slot) ++{ ++ struct dvb_usb_device *d = ci->data; ++ struct dvbsky_state *state = d_to_priv(d); ++ u8 buf; ++ int ret; ++ ++ dprintk("%s()\n", __func__); ++ if (0 != slot) ++ return -EINVAL; ++ ++ dvbsky_ci_read_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &buf, 1); ++ buf |= 0x60; ++ ++ ret = dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &buf, 1); ++ return ret; ++} ++ ++static int dvbsky_ci_poll_slot_status(struct dvb_ca_en50221 *ci, int slot, ++ int open) ++{ ++ struct dvb_usb_device *d = ci->data; ++ struct dvbsky_state *state = d_to_priv(d); ++ int ret = 0; ++ u8 buf = 0; ++ /*dprintk("%s()\n", __func__);*/ ++ ++ /* CAM module INSERT/REMOVE processing. slow operation because of i2c ++ * transfers */ ++ if (time_after(jiffies, state->next_status_checked_time)) { ++ ret = dvbsky_ci_read_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &buf, 1); ++ ++ /*dprintk("%s() status=%x\n", __func__, buf);*/ ++ ++ state->next_status_checked_time = jiffies ++ + msecs_to_jiffies(1000); ++ ++ if (ret != 0) ++ return 0; ++ ++ if (buf & 1) { ++ state->ci_status = DVB_CA_EN50221_POLL_CAM_PRESENT | ++ DVB_CA_EN50221_POLL_CAM_READY; ++ } ++ else ++ state->ci_status = 0; ++ } ++ /*dprintk("%s() ret=%x\n", __func__, state->ci_status);*/ ++ return state->ci_status; ++} ++ ++static int dvbsky_ci_init(struct dvb_usb_device *d) ++{ ++ struct dvbsky_state *state = d_to_priv(d); ++ int ret; ++ u8 cimax_init[34] = { ++ 0x00, /* module A control*/ ++ 0x00, /* auto select mask high A */ ++ 0x00, /* auto select mask low A */ ++ 0x00, /* auto select pattern high A */ ++ 0x00, /* auto select pattern low A */ ++ 0x44, /* memory access time A */ ++ 0x00, /* invert input A */ ++ 0x00, /* RFU */ ++ 0x00, /* RFU */ ++ 0x00, /* module B control*/ ++ 0x00, /* auto select mask high B */ ++ 0x00, /* auto select mask low B */ ++ 0x00, /* auto select pattern high B */ ++ 0x00, /* auto select pattern low B */ ++ 0x44, /* memory access time B */ ++ 0x00, /* invert input B */ ++ 0x00, /* RFU */ ++ 0x00, /* RFU */ ++ 0x00, /* auto select mask high Ext */ ++ 0x00, /* auto select mask low Ext */ ++ 0x00, /* auto select pattern high Ext */ ++ 0x00, /* auto select pattern low Ext */ ++ 0x00, /* RFU */ ++ 0x02, /* destination - module A */ ++ 0x01, /* power on (use it like store place) */ ++ 0x00, /* RFU */ ++ 0x00, /* int status read only */ ++ 0x00, /* Max: Disable the interrupt in USB solution.*/ ++ 0x05, /* EXTINT=active-high, INT=push-pull */ ++ 0x00, /* USCG1 */ ++ 0x04, /* ack active low */ ++ 0x00, /* LOCK = 0 */ ++ 0x22, /* serial mode, rising in, rising out, MSB first*/ ++ 0x00 /* synchronization */ ++ }; ++ dprintk("%s()\n", __func__); ++ state->current_ci_flag = 0xff; ++ state->ci_status = 0; ++ state->next_status_checked_time = jiffies + msecs_to_jiffies(1000); ++ state->ci_i2c_addr = 0x40; ++ ++ state->ci.owner = THIS_MODULE; ++ state->ci.read_attribute_mem = dvbsky_ci_read_attribute_mem; ++ state->ci.write_attribute_mem = dvbsky_ci_write_attribute_mem; ++ state->ci.read_cam_control = dvbsky_ci_read_cam_ctl; ++ state->ci.write_cam_control = dvbsky_ci_write_cam_ctl; ++ state->ci.slot_reset = dvbsky_ci_slot_reset; ++ state->ci.slot_shutdown = dvbsky_ci_slot_shutdown; ++ state->ci.slot_ts_enable = dvbsky_ci_slot_ts_enable; ++ state->ci.poll_slot_status = dvbsky_ci_poll_slot_status; ++ state->ci.data = d; ++ ++ ret = dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0, &cimax_init[0], 34); ++ /* lock registers */ ++ ret |= dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0x1f, &cimax_init[0x18], 1); ++ /* power on slots */ ++ ret |= dvbsky_ci_write_i2c(&d->i2c_adap, state->ci_i2c_addr, ++ 0x18, &cimax_init[0x18], 1); ++ if (0 != ret) ++ return ret; ++ ++ ret = dvb_ca_en50221_init(&d->adapter[0].dvb_adap, &state->ci, 0, 1); ++ if (ret) ++ return ret; ++ state->ci_attached = 1; ++ dprintk("%s() complete.\n", __func__); ++ return 0; ++} ++ ++static void dvbsky_ci_release(struct dvb_usb_device *d) ++{ ++ struct dvbsky_state *state = d_to_priv(d); ++ ++ /* detach CI */ ++ if (state->ci_attached) ++ dvb_ca_en50221_release(&state->ci); ++ ++ return; ++} ++ ++static int dvbsky_streaming_ctrl(struct dvb_frontend *fe, int onoff) ++{ ++ struct dvb_usb_device *d = fe_to_d(fe); ++ /*dprintk("%s() %d\n", __func__, onoff);*/ ++ return dvbsky_stream_ctrl(d, (onoff == 0) ? 0 : 1); ++} ++ ++/* GPIO */ ++static int dvbsky_gpio_ctrl(struct dvb_usb_device *d, u8 gport, u8 value) ++{ ++ u8 obuf[64], ibuf[64]; ++ obuf[0] = 0x0e; ++ obuf[1] = gport; ++ obuf[2] = value; ++ return dvb_usbv2_generic_rw(d, obuf, 3, ibuf, 1); ++} ++ ++/* I2C */ ++static int dvbsky_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], ++ int num) ++{ ++ struct dvb_usb_device *d = i2c_get_adapdata(adap); ++ int ret = 0; ++ u8 ibuf[64], obuf[64]; ++ ++ if (mutex_lock_interruptible(&d->i2c_mutex) < 0) ++ return -EAGAIN; ++ ++ if (num > 2) { ++ printk(KERN_ERR "dvbsky_usb: too many i2c messages[%d] than 2.", num); ++ ret = -EOPNOTSUPP; ++ goto i2c_error; ++ } ++ ++ if(num == 1) { ++ if (msg[0].len > 60) { ++ printk(KERN_ERR "dvbsky_usb: too many i2c bytes[%d] than 60.", msg[0].len); ++ ret = -EOPNOTSUPP; ++ goto i2c_error; ++ } ++ if (msg[0].flags & I2C_M_RD) { ++ /* single read */ ++ obuf[0] = 0x09; ++ obuf[1] = 0; ++ obuf[2] = msg[0].len; ++ obuf[3] = msg[0].addr; ++ ret = dvb_usbv2_generic_rw(d, obuf, 4, ibuf, msg[0].len + 1); ++ /*dprintk("%s(): read status = %d\n", __func__, ibuf[0]);*/ ++ if (!ret) ++ memcpy(msg[0].buf, &ibuf[1], msg[0].len); ++ } else { ++ /* write */ ++ obuf[0] = 0x08; ++ obuf[1] = msg[0].addr; ++ obuf[2] = msg[0].len; ++ memcpy(&obuf[3], msg[0].buf, msg[0].len); ++ ret = dvb_usbv2_generic_rw(d, obuf, msg[0].len + 3, ibuf, 1); ++ /*dprintk("%s(): write status = %d\n", __func__, ibuf[0]);*/ ++ } ++ } else { ++ if ((msg[0].len > 60) || (msg[1].len > 60)) { ++ printk(KERN_ERR "dvbsky_usb: too many i2c bytes[w-%d][r-%d] than 60.", msg[0].len, msg[1].len); ++ ret = -EOPNOTSUPP; ++ goto i2c_error; ++ } ++ /* write then read */ ++ obuf[0] = 0x09; ++ obuf[1] = msg[0].len; ++ obuf[2] = msg[1].len; ++ obuf[3] = msg[0].addr; ++ memcpy(&obuf[4], msg[0].buf, msg[0].len); ++ ret = dvb_usbv2_generic_rw(d, obuf, msg[0].len + 4, ibuf, msg[1].len + 1); ++ /*dprintk("%s(): write then read status = %d\n", __func__, ibuf[0]);*/ ++ if (!ret) ++ memcpy(msg[1].buf, &ibuf[1], msg[1].len); ++ } ++i2c_error: ++ mutex_unlock(&d->i2c_mutex); ++ return (ret) ? ret : num; ++} ++ ++static u32 dvbsky_i2c_func(struct i2c_adapter *adapter) ++{ ++ return I2C_FUNC_I2C; ++} ++ ++static struct i2c_algorithm dvbsky_i2c_algo = { ++ .master_xfer = dvbsky_i2c_xfer, ++ .functionality = dvbsky_i2c_func, ++}; ++ ++#if IS_ENABLED(CONFIG_RC_CORE) ++static int dvbsky_rc_query(struct dvb_usb_device *d) ++{ ++ u32 code = 0xffff; ++ u8 obuf[2], ibuf[2], toggle; ++ int ret; ++ obuf[0] = 0x10; ++ ret = dvb_usbv2_generic_rw(d, obuf, 1, ibuf, 2); ++ if(ret == 0) ++ code = (ibuf[0] << 8) | ibuf[1]; ++ ++ if (code != 0xffff) { ++ dprintk("rc code: %x", code); ++ toggle = (code & 0x800) ? 1 : 0; ++ code &= 0x3f; ++ rc_keydown(d->rc_dev, code, toggle); ++ } ++ return 0; ++} ++ ++static int dvbsky_get_rc_config(struct dvb_usb_device *d, struct dvb_usb_rc *rc) ++{ ++ rc->allowed_protos = RC_BIT_RC5; ++ rc->query = dvbsky_rc_query; ++ rc->interval = 300; ++ return 0; ++} ++#else ++ #define dvbsky_get_rc_config NULL ++#endif ++ ++static int dvbsky_sync_ctrl(struct dvb_frontend *fe) ++{ ++ struct dvb_usb_device *d = fe_to_d(fe); ++ return dvbsky_stream_ctrl(d, 1); ++} ++ ++static int dvbsky_usb_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ struct dvb_usb_device *d = fe_to_d(fe); ++ u8 value; ++ ++ if (voltage == SEC_VOLTAGE_OFF) ++ value = 0; ++ else ++ value = 1; ++ return dvbsky_gpio_ctrl(d, 0x80, value); ++} ++ ++static int dvbsky_read_mac_addr(struct dvb_usb_adapter *adap, u8 mac[6]) ++{ ++ struct dvb_usb_device *d = adap_to_d(adap); ++ u8 obuf[] = { 0x1e, 0x00 }; ++ u8 ibuf[6] = { 0 }; ++ struct i2c_msg msg[] = { ++ { ++ .addr = 0x51, ++ .flags = 0, ++ .buf = obuf, ++ .len = 2, ++ }, { ++ .addr = 0x51, ++ .flags = I2C_M_RD, ++ .buf = ibuf, ++ .len = 6, ++ ++ } ++ }; ++ ++ if (i2c_transfer(&d->i2c_adap, msg, 2) == 2) ++ memcpy(mac, ibuf, 6); ++ ++ printk(KERN_INFO "dvbsky_usb MAC address=%pM\n", mac); ++ ++ return 0; ++} ++ ++static struct m88ds3103_config dvbsky_usb_ds3103_config = { ++ .demod_address = 0x68, ++ .ci_mode = 1, ++ .pin_ctrl = 0x83, ++ .ts_mode = 0, ++ .start_ctrl = dvbsky_sync_ctrl, ++ .set_voltage = dvbsky_usb_set_voltage, ++}; ++ ++static int dvbsky_s960_attach(struct dvb_usb_adapter *adap) ++{ ++ struct dvbsky_state *state = adap_to_priv(adap); ++ struct dvb_usb_device *d = adap_to_d(adap); ++ int ret = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ dvbsky_gpio_ctrl(d, 0x04, 1); ++ ++ dvbsky_gpio_ctrl(d, 0x83, 0); ++ msleep(50); ++ dvbsky_gpio_ctrl(d, 0x83, 1); ++ msleep(20); ++ ++ adap->fe[0] = dvb_attach(m88ds3103_attach, ++ &dvbsky_usb_ds3103_config, ++ &d->i2c_adap); ++ if (!adap->fe[0]) { ++ printk(KERN_ERR "dvbsky_s960_attach fail."); ++ ret = -ENODEV; ++ } ++ ++ state->has_ci = 0; ++ ++ return ret; ++} ++ ++static int dvbsky_identify_state(struct dvb_usb_device *d, const char **name) ++{ ++ return WARM; ++} ++ ++static int dvbsky_init(struct dvb_usb_device *d) ++{ ++ struct dvbsky_state *state = d_to_priv(d); ++ int ret; ++ ++ /* use default interface */ ++ ret = usb_set_interface(d->udev, 0, 0); ++ if (ret) ++ return ret; ++ ++ mutex_init(&state->stream_mutex); ++ ++ /* attach CI */ ++ if (state->has_ci) { ++ dvbsky_gpio_ctrl(d, 0xc0, 1); ++ msleep(100); ++ dvbsky_gpio_ctrl(d, 0xc0, 0); ++ msleep(50); ++ state->ci_attached = 0; ++ ret = dvbsky_ci_init(d); ++ if (ret) ++ return ret; ++ } ++ return 0; ++} ++ ++static void dvbsky_exit(struct dvb_usb_device *d) ++{ ++ return dvbsky_ci_release(d); ++} ++ ++/* DVB USB Driver stuff */ ++static struct dvb_usb_device_properties dvbsky_s960_props = { ++ .driver_name = KBUILD_MODNAME, ++ .owner = THIS_MODULE, ++ .adapter_nr = adapter_nr, ++ .size_of_priv = sizeof(struct dvbsky_state), ++ ++ .generic_bulk_ctrl_endpoint = 0x01, ++ .generic_bulk_ctrl_endpoint_response = 0x81, ++ ++ .i2c_algo = &dvbsky_i2c_algo, ++ .frontend_attach = dvbsky_s960_attach, ++ .init = dvbsky_init, ++ .get_rc_config = dvbsky_get_rc_config, ++ .streaming_ctrl = dvbsky_streaming_ctrl, ++ .identify_state = dvbsky_identify_state, ++ .exit = dvbsky_exit, ++ .read_mac_address = dvbsky_read_mac_addr, ++ ++ .num_adapters = 1, ++ .adapter = { ++ { ++ .stream = DVB_USB_STREAM_BULK(0x82, 8, 4096), ++ } ++ } ++}; ++ ++static const struct usb_device_id dvbsky_id_table[] = { ++ { DVB_USB_DEVICE(0x0572, 0x6831, ++ &dvbsky_s960_props, "DVBSky S960/S860", RC_MAP_DVBSKY) }, ++ { } ++}; ++MODULE_DEVICE_TABLE(usb, dvbsky_id_table); ++ ++static struct usb_driver dvbsky_usb_driver = { ++ .name = KBUILD_MODNAME, ++ .id_table = dvbsky_id_table, ++ .probe = dvb_usbv2_probe, ++ .disconnect = dvb_usbv2_disconnect, ++ .suspend = dvb_usbv2_suspend, ++ .resume = dvb_usbv2_resume, ++ .reset_resume = dvb_usbv2_reset_resume, ++ .no_dynamic_id = 1, ++ .soft_unbind = 1, ++}; ++ ++module_usb_driver(dvbsky_usb_driver); ++ ++MODULE_AUTHOR("Max nibble nibble.max@gmail.com"); ++MODULE_DESCRIPTION("Driver for DVBSky USB2.0"); ++MODULE_LICENSE("GPL"); +diff -urN a/drivers/media/usb/dvb-usb-v2/Kconfig b/drivers/media/usb/dvb-usb-v2/Kconfig +--- a/drivers/media/usb/dvb-usb-v2/Kconfig 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/usb/dvb-usb-v2/Kconfig 2013-05-03 17:45:35.000000000 +0800 +@@ -149,3 +149,10 @@ + help + Say Y here to support the Realtek RTL28xxU DVB USB receiver. + ++config DVB_USB_DVBSKY ++ tristate "DVBSky USB2.0 support" ++ depends on DVB_USB_V2 ++ select DVB_M88DS3103 if MEDIA_SUBDRV_AUTOSELECT ++ help ++ Say Y here to support the USB receivers from DVBSky. ++ +diff -urN a/drivers/media/usb/dvb-usb-v2/Makefile b/drivers/media/usb/dvb-usb-v2/Makefile +--- a/drivers/media/usb/dvb-usb-v2/Makefile 2013-04-29 08:36:01.000000000 +0800 ++++ b/drivers/media/usb/dvb-usb-v2/Makefile 2013-02-17 12:03:00.000000000 +0800 +@@ -43,6 +43,9 @@ + dvb-usb-rtl28xxu-objs := rtl28xxu.o + obj-$(CONFIG_DVB_USB_RTL28XXU) += dvb-usb-rtl28xxu.o + ++dvb-usb-dvbsky-objs := dvbsky.o ++obj-$(CONFIG_DVB_USB_DVBSKY) += dvb-usb-dvbsky.o ++ + ccflags-y += -I$(srctree)/drivers/media/dvb-core + ccflags-y += -I$(srctree)/drivers/media/dvb-frontends + ccflags-y += -I$(srctree)/drivers/media/tuners +diff -urN a/include/media/rc-map.h b/include/media/rc-map.h +--- a/include/media/rc-map.h 2013-04-29 08:36:01.000000000 +0800 ++++ b/include/media/rc-map.h 2013-05-03 17:02:46.000000000 +0800 +@@ -118,6 +118,7 @@ + #define RC_MAP_DM1105_NEC "rc-dm1105-nec" + #define RC_MAP_DNTV_LIVE_DVBT_PRO "rc-dntv-live-dvbt-pro" + #define RC_MAP_DNTV_LIVE_DVB_T "rc-dntv-live-dvb-t" ++#define RC_MAP_DVBSKY "rc-dvbsky" + #define RC_MAP_EMPTY "rc-empty" + #define RC_MAP_EM_TERRATEC "rc-em-terratec" + #define RC_MAP_ENCORE_ENLTV2 "rc-encore-enltv2" diff --git a/src/patches/mpage25-config.patch b/src/patches/mpage25-config.patch new file mode 100644 index 0000000..fefc547 --- /dev/null +++ b/src/patches/mpage25-config.patch @@ -0,0 +1,46 @@ +diff -up mpage-2.5.6/Makefile.config mpage-2.5.6/Makefile +--- mpage-2.5.6/Makefile.config 2004-05-30 21:38:31.000000000 +0200 ++++ mpage-2.5.6/Makefile 2009-03-27 11:11:14.652186064 +0100 +@@ -40,7 +40,7 @@ CC=gcc + # See glob.c for all possibilities + # + # PAGESIZE=Letter +-PAGESIZE=A4 ++PAGESIZE=Letter + + # + # Define your spooler type +@@ -50,7 +50,7 @@ PAGESIZE=A4 + SPOOL_TYPE=BSD_SPOOLER + + # PREFIX=e:/usr # OS/2 type +-PREFIX=/usr/local ++PREFIX=/usr + #PREFIX=/usr + BINDIR=$(PREFIX)/bin + LIBDIR=$(PREFIX)/share +@@ -73,7 +73,7 @@ SHEETMARGIN=18 + # + DEFAULT_DUPLEX=0 + +-DEFS = -DPAGE_DEF="${PAGESIZE}" -DLIBDIR="${LIBDIR}/mpage" -DDEFAULT_ENCODING=${ENCODING} -DDEFAULT_DUPLEX=${DEFAULT_DUPLEX} -DDEFAULTSMARGIN=${SHEETMARGIN} -DSPOOLER=${SPOOL_TYPE} # -DKANJI ++DEFS = -DPAGE_DEF="${PAGESIZE}" -DLIBDIR="${LIBDIR}/mpage" -DDEFAULT_ENCODING=${ENCODING} -DDEFAULT_DUPLEX=${DEFAULT_DUPLEX} -DDEFAULTSMARGIN=${SHEETMARGIN} -DSPOOLER=${SPOOL_TYPE} -DKANJI + + + ############################################################################ +@@ -107,7 +107,7 @@ O = .o + # If you are using gcc, you probably don't need to change anything here. + + # Linux: +-CFLAGS = -O2 -s $(DEFS) -Wall ++CFLAGS = $(RPM_OPT_FLAGS) $(DEFS) -Wall + + # AIX (xlC on aix 4): + #CFLAGS = -O2 -s $(DEFS) +@@ -183,5 +183,4 @@ install: + if [ ! -d $(MANDIR) ] ; then mkdir -p $(MANDIR) ; fi + cp mpage$(E) $(BINDIR) + cp mpage.1 $(MANDIR) +- -cp Encodings/* $(LIBDIR)/mpage +- -chmod 644 $(LIBDIR)/mpage/* ++ install -p -m 644 Encodings/* $(LIBDIR)/mpage diff --git a/src/patches/net-tools-1.60-kernel_headers-3.patch b/src/patches/net-tools-1.60-kernel_headers-3.patch new file mode 100644 index 0000000..89988f0 --- /dev/null +++ b/src/patches/net-tools-1.60-kernel_headers-3.patch @@ -0,0 +1,55 @@ +diff -Naur net-tools-1.60.org/hostname.c net-tools-1.60/hostname.c +--- net-tools-1.60.org/hostname.c 2001-04-08 19:04:23.000000000 +0200 ++++ net-tools-1.60/hostname.c 2013-08-26 11:56:50.131844273 +0200 +@@ -42,10 +42,16 @@ + #include "config.h" + #include "version.h" + #include "../intl.h" ++#include <linux/version.h> + + #if HAVE_AFDECnet ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0) + #include <netdnet/dn.h> + #endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) ++#include <linux/dn.h> ++#endif ++#endif + + char *Release = RELEASE, *Version = "hostname 1.100 (2001-04-14)"; + +diff -Naur net-tools-1.60.org/lib/tr.c net-tools-1.60/lib/tr.c +--- net-tools-1.60.org/lib/tr.c 2000-02-20 22:46:45.000000000 +0100 ++++ net-tools-1.60/lib/tr.c 2013-08-26 11:57:33.675175033 +0200 +@@ -20,7 +20,7 @@ + #include <sys/types.h> + #include <sys/socket.h> + #include <net/if_arp.h> +-#include <linux/if_tr.h> ++#include <netinet/if_tr.h> + #include <stdlib.h> + #include <stdio.h> + #include <errno.h> +diff -Naur net-tools-1.60.org/lib/x25_sr.c net-tools-1.60/lib/x25_sr.c +--- net-tools-1.60.org/lib/x25_sr.c 2000-05-20 15:38:10.000000000 +0200 ++++ net-tools-1.60/lib/x25_sr.c 2013-08-26 11:56:50.131844273 +0200 +@@ -22,6 +22,7 @@ + #include <sys/socket.h> + #include <sys/ioctl.h> + #include <linux/x25.h> ++#include <linux/version.h> + #include <ctype.h> + #include <errno.h> + #include <netdb.h> +@@ -77,7 +78,11 @@ + rt.sigdigits=sigdigits; + + /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) + memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address)); ++#else ++ memcpy(&rt.address, &sx25.sx25_addr, sizeof(struct x25_address)); ++#endif + + while (*args) { + if (!strcmp(*args,"device") || !strcmp(*args,"dev")) { diff --git a/src/patches/netfilter_layer7_2.22_kernel3.10-no_proc_interface.patch b/src/patches/netfilter_layer7_2.22_kernel3.10-no_proc_interface.patch new file mode 100644 index 0000000..5ffdd49 --- /dev/null +++ b/src/patches/netfilter_layer7_2.22_kernel3.10-no_proc_interface.patch @@ -0,0 +1,2166 @@ +diff -Naur linux-3.10.5.org/include/linux/netfilter/xt_layer7.h linux-3.10.5/include/linux/netfilter/xt_layer7.h +--- linux-3.10.5.org/include/linux/netfilter/xt_layer7.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/include/linux/netfilter/xt_layer7.h 2013-08-07 06:16:14.260806739 +0200 +@@ -0,0 +1,13 @@ ++#ifndef _XT_LAYER7_H ++#define _XT_LAYER7_H ++ ++#define MAX_PATTERN_LEN 8192 ++#define MAX_PROTOCOL_LEN 256 ++ ++struct xt_layer7_info { ++ char protocol[MAX_PROTOCOL_LEN]; ++ char pattern[MAX_PATTERN_LEN]; ++ u_int8_t invert; ++}; ++ ++#endif /* _XT_LAYER7_H */ +diff -Naur linux-3.10.5.org/include/net/netfilter/nf_conntrack.h linux-3.10.5/include/net/netfilter/nf_conntrack.h +--- linux-3.10.5.org/include/net/netfilter/nf_conntrack.h 2013-08-04 10:51:49.000000000 +0200 ++++ linux-3.10.5/include/net/netfilter/nf_conntrack.h 2013-08-07 06:16:14.280806062 +0200 +@@ -105,6 +105,22 @@ + struct net *ct_net; + #endif + ++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || \ ++ defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ struct { ++ /* ++ * e.g. "http". NULL before decision. "unknown" after decision ++ * if no match. ++ */ ++ char *app_proto; ++ /* ++ * application layer data so far. NULL after match decision. ++ */ ++ char *app_data; ++ unsigned int app_data_len; ++ } layer7; ++#endif ++ + /* Storage reserved for other modules, must be the last member */ + union nf_conntrack_proto proto; + }; +diff -Naur linux-3.10.5.org/net/netfilter/Kconfig linux-3.10.5/net/netfilter/Kconfig +--- linux-3.10.5.org/net/netfilter/Kconfig 2013-08-04 10:51:49.000000000 +0200 ++++ linux-3.10.5/net/netfilter/Kconfig 2013-08-07 06:16:14.310805048 +0200 +@@ -1205,6 +1205,26 @@ + + To compile it as a module, choose M here. If unsure, say N. + ++config NETFILTER_XT_MATCH_LAYER7 ++ tristate '"layer7" match support' ++ depends on NETFILTER_XTABLES ++ depends on IP_NF_CONNTRACK || NF_CONNTRACK ++ help ++ Say Y if you want to be able to classify connections (and their ++ packets) based on regular expression matching of their application ++ layer data. This is one way to classify applications such as ++ peer-to-peer filesharing systems that do not always use the same ++ port. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ ++config NETFILTER_XT_MATCH_LAYER7_DEBUG ++ bool 'Layer 7 debugging output' ++ depends on NETFILTER_XT_MATCH_LAYER7 ++ help ++ Say Y to get lots of debugging output. ++ ++ + config NETFILTER_XT_MATCH_STATISTIC + tristate '"statistic" match support' + depends on NETFILTER_ADVANCED +diff -Naur linux-3.10.5.org/net/netfilter/Makefile linux-3.10.5/net/netfilter/Makefile +--- linux-3.10.5.org/net/netfilter/Makefile 2013-08-04 10:51:49.000000000 +0200 ++++ linux-3.10.5/net/netfilter/Makefile 2013-08-07 06:16:14.320804710 +0200 +@@ -134,6 +134,7 @@ + obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o + obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o ++obj-$(CONFIG_NETFILTER_XT_MATCH_LAYER7) += xt_layer7.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STATISTIC) += xt_statistic.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STRING) += xt_string.o + obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS) += xt_tcpmss.o +diff -Naur linux-3.10.5.org/net/netfilter/nf_conntrack_core.c linux-3.10.5/net/netfilter/nf_conntrack_core.c +--- linux-3.10.5.org/net/netfilter/nf_conntrack_core.c 2013-08-04 10:51:49.000000000 +0200 ++++ linux-3.10.5/net/netfilter/nf_conntrack_core.c 2013-08-07 06:20:34.941991510 +0200 +@@ -1,3 +1,6 @@ ++ ++ ++ + /* Connection state tracking for netfilter. This is separated from, + but required by, the NAT layer; it can also be used by an iptables + extension. */ +@@ -224,6 +227,13 @@ + * too. */ + nf_ct_remove_expectations(ct); + ++ #if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ if(ct->layer7.app_proto) ++ kfree(ct->layer7.app_proto); ++ if(ct->layer7.app_data) ++ kfree(ct->layer7.app_data); ++ #endif ++ + /* We overload first tuple to link into unconfirmed or dying list.*/ + BUG_ON(hlist_nulls_unhashed(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode)); + hlist_nulls_del_rcu(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode); +diff -Naur linux-3.10.5.org/net/netfilter/nf_conntrack_standalone.c linux-3.10.5/net/netfilter/nf_conntrack_standalone.c +--- linux-3.10.5.org/net/netfilter/nf_conntrack_standalone.c 2013-08-04 10:51:49.000000000 +0200 ++++ linux-3.10.5/net/netfilter/nf_conntrack_standalone.c 2013-08-07 06:16:14.380802681 +0200 +@@ -240,6 +240,12 @@ + if (ct_show_delta_time(s, ct)) + goto release; + ++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ if(ct->layer7.app_proto && ++ seq_printf(s, "l7proto=%s ", ct->layer7.app_proto)) ++ return -ENOSPC; ++#endif ++ + if (seq_printf(s, "use=%u\n", atomic_read(&ct->ct_general.use))) + goto release; + +diff -Naur linux-3.10.5.org/net/netfilter/regexp/regexp.c linux-3.10.5/net/netfilter/regexp/regexp.c +--- linux-3.10.5.org/net/netfilter/regexp/regexp.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/net/netfilter/regexp/regexp.c 2013-08-07 06:16:14.410801666 +0200 +@@ -0,0 +1,1197 @@ ++/* ++ * regcomp and regexec -- regsub and regerror are elsewhere ++ * @(#)regexp.c 1.3 of 18 April 87 ++ * ++ * Copyright (c) 1986 by University of Toronto. ++ * Written by Henry Spencer. Not derived from licensed software. ++ * ++ * Permission is granted to anyone to use this software for any ++ * purpose on any computer system, and to redistribute it freely, ++ * subject to the following restrictions: ++ * ++ * 1. The author is not responsible for the consequences of use of ++ * this software, no matter how awful, even if they arise ++ * from defects in it. ++ * ++ * 2. The origin of this software must not be misrepresented, either ++ * by explicit claim or by omission. ++ * ++ * 3. Altered versions must be plainly marked as such, and must not ++ * be misrepresented as being the original software. ++ * ++ * Beware that some of this code is subtly aware of the way operator ++ * precedence is structured in regular expressions. Serious changes in ++ * regular-expression syntax might require a total rethink. ++ * ++ * This code was modified by Ethan Sommer to work within the kernel ++ * (it now uses kmalloc etc..) ++ * ++ * Modified slightly by Matthew Strait to use more modern C. ++ */ ++ ++#include "regexp.h" ++#include "regmagic.h" ++ ++/* added by ethan and matt. Lets it work in both kernel and user space. ++(So iptables can use it, for instance.) Yea, it goes both ways... */ ++#if __KERNEL__ ++ #define malloc(foo) kmalloc(foo,GFP_ATOMIC) ++#else ++ #define printk(format,args...) printf(format,##args) ++#endif ++ ++void regerror(char * s) ++{ ++ printk("<3>Regexp: %s\n", s); ++ /* NOTREACHED */ ++} ++ ++/* ++ * The "internal use only" fields in regexp.h are present to pass info from ++ * compile to execute that permits the execute phase to run lots faster on ++ * simple cases. They are: ++ * ++ * regstart char that must begin a match; '\0' if none obvious ++ * reganch is the match anchored (at beginning-of-line only)? ++ * regmust string (pointer into program) that match must include, or NULL ++ * regmlen length of regmust string ++ * ++ * Regstart and reganch permit very fast decisions on suitable starting points ++ * for a match, cutting down the work a lot. Regmust permits fast rejection ++ * of lines that cannot possibly match. The regmust tests are costly enough ++ * that regcomp() supplies a regmust only if the r.e. contains something ++ * potentially expensive (at present, the only such thing detected is * or + ++ * at the start of the r.e., which can involve a lot of backup). Regmlen is ++ * supplied because the test in regexec() needs it and regcomp() is computing ++ * it anyway. ++ */ ++ ++/* ++ * Structure for regexp "program". This is essentially a linear encoding ++ * of a nondeterministic finite-state machine (aka syntax charts or ++ * "railroad normal form" in parsing technology). Each node is an opcode ++ * plus a "next" pointer, possibly plus an operand. "Next" pointers of ++ * all nodes except BRANCH implement concatenation; a "next" pointer with ++ * a BRANCH on both ends of it is connecting two alternatives. (Here we ++ * have one of the subtle syntax dependencies: an individual BRANCH (as ++ * opposed to a collection of them) is never concatenated with anything ++ * because of operator precedence.) The operand of some types of node is ++ * a literal string; for others, it is a node leading into a sub-FSM. In ++ * particular, the operand of a BRANCH node is the first node of the branch. ++ * (NB this is *not* a tree structure: the tail of the branch connects ++ * to the thing following the set of BRANCHes.) The opcodes are: ++ */ ++ ++/* definition number opnd? meaning */ ++#define END 0 /* no End of program. */ ++#define BOL 1 /* no Match "" at beginning of line. */ ++#define EOL 2 /* no Match "" at end of line. */ ++#define ANY 3 /* no Match any one character. */ ++#define ANYOF 4 /* str Match any character in this string. */ ++#define ANYBUT 5 /* str Match any character not in this string. */ ++#define BRANCH 6 /* node Match this alternative, or the next... */ ++#define BACK 7 /* no Match "", "next" ptr points backward. */ ++#define EXACTLY 8 /* str Match this string. */ ++#define NOTHING 9 /* no Match empty string. */ ++#define STAR 10 /* node Match this (simple) thing 0 or more times. */ ++#define PLUS 11 /* node Match this (simple) thing 1 or more times. */ ++#define OPEN 20 /* no Mark this point in input as start of #n. */ ++ /* OPEN+1 is number 1, etc. */ ++#define CLOSE 30 /* no Analogous to OPEN. */ ++ ++/* ++ * Opcode notes: ++ * ++ * BRANCH The set of branches constituting a single choice are hooked ++ * together with their "next" pointers, since precedence prevents ++ * anything being concatenated to any individual branch. The ++ * "next" pointer of the last BRANCH in a choice points to the ++ * thing following the whole choice. This is also where the ++ * final "next" pointer of each individual branch points; each ++ * branch starts with the operand node of a BRANCH node. ++ * ++ * BACK Normal "next" pointers all implicitly point forward; BACK ++ * exists to make loop structures possible. ++ * ++ * STAR,PLUS '?', and complex '*' and '+', are implemented as circular ++ * BRANCH structures using BACK. Simple cases (one character ++ * per match) are implemented with STAR and PLUS for speed ++ * and to minimize recursive plunges. ++ * ++ * OPEN,CLOSE ...are numbered at compile time. ++ */ ++ ++/* ++ * A node is one char of opcode followed by two chars of "next" pointer. ++ * "Next" pointers are stored as two 8-bit pieces, high order first. The ++ * value is a positive offset from the opcode of the node containing it. ++ * An operand, if any, simply follows the node. (Note that much of the ++ * code generation knows about this implicit relationship.) ++ * ++ * Using two bytes for the "next" pointer is vast overkill for most things, ++ * but allows patterns to get big without disasters. ++ */ ++#define OP(p) (*(p)) ++#define NEXT(p) (((*((p)+1)&0377)<<8) + (*((p)+2)&0377)) ++#define OPERAND(p) ((p) + 3) ++ ++/* ++ * See regmagic.h for one further detail of program structure. ++ */ ++ ++ ++/* ++ * Utility definitions. ++ */ ++#ifndef CHARBITS ++#define UCHARAT(p) ((int)*(unsigned char *)(p)) ++#else ++#define UCHARAT(p) ((int)*(p)&CHARBITS) ++#endif ++ ++#define FAIL(m) { regerror(m); return(NULL); } ++#define ISMULT(c) ((c) == '*' || (c) == '+' || (c) == '?') ++#define META "^$.[()|?+*\" ++ ++/* ++ * Flags to be passed up and down. ++ */ ++#define HASWIDTH 01 /* Known never to match null string. */ ++#define SIMPLE 02 /* Simple enough to be STAR/PLUS operand. */ ++#define SPSTART 04 /* Starts with * or +. */ ++#define WORST 0 /* Worst case. */ ++ ++/* ++ * Global work variables for regcomp(). ++ */ ++struct match_globals { ++char *reginput; /* String-input pointer. */ ++char *regbol; /* Beginning of input, for ^ check. */ ++char **regstartp; /* Pointer to startp array. */ ++char **regendp; /* Ditto for endp. */ ++char *regparse; /* Input-scan pointer. */ ++int regnpar; /* () count. */ ++char regdummy; ++char *regcode; /* Code-emit pointer; ®dummy = don't. */ ++long regsize; /* Code size. */ ++}; ++ ++/* ++ * Forward declarations for regcomp()'s friends. ++ */ ++#ifndef STATIC ++#define STATIC static ++#endif ++STATIC char *reg(struct match_globals *g, int paren,int *flagp); ++STATIC char *regbranch(struct match_globals *g, int *flagp); ++STATIC char *regpiece(struct match_globals *g, int *flagp); ++STATIC char *regatom(struct match_globals *g, int *flagp); ++STATIC char *regnode(struct match_globals *g, char op); ++STATIC char *regnext(struct match_globals *g, char *p); ++STATIC void regc(struct match_globals *g, char b); ++STATIC void reginsert(struct match_globals *g, char op, char *opnd); ++STATIC void regtail(struct match_globals *g, char *p, char *val); ++STATIC void regoptail(struct match_globals *g, char *p, char *val); ++ ++ ++__kernel_size_t my_strcspn(const char *s1,const char *s2) ++{ ++ char *scan1; ++ char *scan2; ++ int count; ++ ++ count = 0; ++ for (scan1 = (char *)s1; *scan1 != '\0'; scan1++) { ++ for (scan2 = (char *)s2; *scan2 != '\0';) /* ++ moved down. */ ++ if (*scan1 == *scan2++) ++ return(count); ++ count++; ++ } ++ return(count); ++} ++ ++/* ++ - regcomp - compile a regular expression into internal code ++ * ++ * We can't allocate space until we know how big the compiled form will be, ++ * but we can't compile it (and thus know how big it is) until we've got a ++ * place to put the code. So we cheat: we compile it twice, once with code ++ * generation turned off and size counting turned on, and once "for real". ++ * This also means that we don't allocate space until we are sure that the ++ * thing really will compile successfully, and we never have to move the ++ * code and thus invalidate pointers into it. (Note that it has to be in ++ * one piece because free() must be able to free it all.) ++ * ++ * Beware that the optimization-preparation code in here knows about some ++ * of the structure of the compiled regexp. ++ */ ++regexp * ++regcomp(char *exp,int *patternsize) ++{ ++ register regexp *r; ++ register char *scan; ++ register char *longest; ++ register int len; ++ int flags; ++ struct match_globals g; ++ ++ /* commented out by ethan ++ extern char *malloc(); ++ */ ++ ++ if (exp == NULL) ++ FAIL("NULL argument"); ++ ++ /* First pass: determine size, legality. */ ++ g.regparse = exp; ++ g.regnpar = 1; ++ g.regsize = 0L; ++ g.regcode = &g.regdummy; ++ regc(&g, MAGIC); ++ if (reg(&g, 0, &flags) == NULL) ++ return(NULL); ++ ++ /* Small enough for pointer-storage convention? */ ++ if (g.regsize >= 32767L) /* Probably could be 65535L. */ ++ FAIL("regexp too big"); ++ ++ /* Allocate space. */ ++ *patternsize=sizeof(regexp) + (unsigned)g.regsize; ++ r = (regexp *)malloc(sizeof(regexp) + (unsigned)g.regsize); ++ if (r == NULL) ++ FAIL("out of space"); ++ ++ /* Second pass: emit code. */ ++ g.regparse = exp; ++ g.regnpar = 1; ++ g.regcode = r->program; ++ regc(&g, MAGIC); ++ if (reg(&g, 0, &flags) == NULL) ++ return(NULL); ++ ++ /* Dig out information for optimizations. */ ++ r->regstart = '\0'; /* Worst-case defaults. */ ++ r->reganch = 0; ++ r->regmust = NULL; ++ r->regmlen = 0; ++ scan = r->program+1; /* First BRANCH. */ ++ if (OP(regnext(&g, scan)) == END) { /* Only one top-level choice. */ ++ scan = OPERAND(scan); ++ ++ /* Starting-point info. */ ++ if (OP(scan) == EXACTLY) ++ r->regstart = *OPERAND(scan); ++ else if (OP(scan) == BOL) ++ r->reganch++; ++ ++ /* ++ * If there's something expensive in the r.e., find the ++ * longest literal string that must appear and make it the ++ * regmust. Resolve ties in favor of later strings, since ++ * the regstart check works with the beginning of the r.e. ++ * and avoiding duplication strengthens checking. Not a ++ * strong reason, but sufficient in the absence of others. ++ */ ++ if (flags&SPSTART) { ++ longest = NULL; ++ len = 0; ++ for (; scan != NULL; scan = regnext(&g, scan)) ++ if (OP(scan) == EXACTLY && strlen(OPERAND(scan)) >= len) { ++ longest = OPERAND(scan); ++ len = strlen(OPERAND(scan)); ++ } ++ r->regmust = longest; ++ r->regmlen = len; ++ } ++ } ++ ++ return(r); ++} ++ ++/* ++ - reg - regular expression, i.e. main body or parenthesized thing ++ * ++ * Caller must absorb opening parenthesis. ++ * ++ * Combining parenthesis handling with the base level of regular expression ++ * is a trifle forced, but the need to tie the tails of the branches to what ++ * follows makes it hard to avoid. ++ */ ++static char * ++reg(struct match_globals *g, int paren, int *flagp /* Parenthesized? */ ) ++{ ++ register char *ret; ++ register char *br; ++ register char *ender; ++ register int parno = 0; /* 0 makes gcc happy */ ++ int flags; ++ ++ *flagp = HASWIDTH; /* Tentatively. */ ++ ++ /* Make an OPEN node, if parenthesized. */ ++ if (paren) { ++ if (g->regnpar >= NSUBEXP) ++ FAIL("too many ()"); ++ parno = g->regnpar; ++ g->regnpar++; ++ ret = regnode(g, OPEN+parno); ++ } else ++ ret = NULL; ++ ++ /* Pick up the branches, linking them together. */ ++ br = regbranch(g, &flags); ++ if (br == NULL) ++ return(NULL); ++ if (ret != NULL) ++ regtail(g, ret, br); /* OPEN -> first. */ ++ else ++ ret = br; ++ if (!(flags&HASWIDTH)) ++ *flagp &= ~HASWIDTH; ++ *flagp |= flags&SPSTART; ++ while (*g->regparse == '|') { ++ g->regparse++; ++ br = regbranch(g, &flags); ++ if (br == NULL) ++ return(NULL); ++ regtail(g, ret, br); /* BRANCH -> BRANCH. */ ++ if (!(flags&HASWIDTH)) ++ *flagp &= ~HASWIDTH; ++ *flagp |= flags&SPSTART; ++ } ++ ++ /* Make a closing node, and hook it on the end. */ ++ ender = regnode(g, (paren) ? CLOSE+parno : END); ++ regtail(g, ret, ender); ++ ++ /* Hook the tails of the branches to the closing node. */ ++ for (br = ret; br != NULL; br = regnext(g, br)) ++ regoptail(g, br, ender); ++ ++ /* Check for proper termination. */ ++ if (paren && *g->regparse++ != ')') { ++ FAIL("unmatched ()"); ++ } else if (!paren && *g->regparse != '\0') { ++ if (*g->regparse == ')') { ++ FAIL("unmatched ()"); ++ } else ++ FAIL("junk on end"); /* "Can't happen". */ ++ /* NOTREACHED */ ++ } ++ ++ return(ret); ++} ++ ++/* ++ - regbranch - one alternative of an | operator ++ * ++ * Implements the concatenation operator. ++ */ ++static char * ++regbranch(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ register char *chain; ++ register char *latest; ++ int flags; ++ ++ *flagp = WORST; /* Tentatively. */ ++ ++ ret = regnode(g, BRANCH); ++ chain = NULL; ++ while (*g->regparse != '\0' && *g->regparse != '|' && *g->regparse != ')') { ++ latest = regpiece(g, &flags); ++ if (latest == NULL) ++ return(NULL); ++ *flagp |= flags&HASWIDTH; ++ if (chain == NULL) /* First piece. */ ++ *flagp |= flags&SPSTART; ++ else ++ regtail(g, chain, latest); ++ chain = latest; ++ } ++ if (chain == NULL) /* Loop ran zero times. */ ++ (void) regnode(g, NOTHING); ++ ++ return(ret); ++} ++ ++/* ++ - regpiece - something followed by possible [*+?] ++ * ++ * Note that the branching code sequences used for ? and the general cases ++ * of * and + are somewhat optimized: they use the same NOTHING node as ++ * both the endmarker for their branch list and the body of the last branch. ++ * It might seem that this node could be dispensed with entirely, but the ++ * endmarker role is not redundant. ++ */ ++static char * ++regpiece(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ register char op; ++ register char *next; ++ int flags; ++ ++ ret = regatom(g, &flags); ++ if (ret == NULL) ++ return(NULL); ++ ++ op = *g->regparse; ++ if (!ISMULT(op)) { ++ *flagp = flags; ++ return(ret); ++ } ++ ++ if (!(flags&HASWIDTH) && op != '?') ++ FAIL("*+ operand could be empty"); ++ *flagp = (op != '+') ? (WORST|SPSTART) : (WORST|HASWIDTH); ++ ++ if (op == '*' && (flags&SIMPLE)) ++ reginsert(g, STAR, ret); ++ else if (op == '*') { ++ /* Emit x* as (x&|), where & means "self". */ ++ reginsert(g, BRANCH, ret); /* Either x */ ++ regoptail(g, ret, regnode(g, BACK)); /* and loop */ ++ regoptail(g, ret, ret); /* back */ ++ regtail(g, ret, regnode(g, BRANCH)); /* or */ ++ regtail(g, ret, regnode(g, NOTHING)); /* null. */ ++ } else if (op == '+' && (flags&SIMPLE)) ++ reginsert(g, PLUS, ret); ++ else if (op == '+') { ++ /* Emit x+ as x(&|), where & means "self". */ ++ next = regnode(g, BRANCH); /* Either */ ++ regtail(g, ret, next); ++ regtail(g, regnode(g, BACK), ret); /* loop back */ ++ regtail(g, next, regnode(g, BRANCH)); /* or */ ++ regtail(g, ret, regnode(g, NOTHING)); /* null. */ ++ } else if (op == '?') { ++ /* Emit x? as (x|) */ ++ reginsert(g, BRANCH, ret); /* Either x */ ++ regtail(g, ret, regnode(g, BRANCH)); /* or */ ++ next = regnode(g, NOTHING); /* null. */ ++ regtail(g, ret, next); ++ regoptail(g, ret, next); ++ } ++ g->regparse++; ++ if (ISMULT(*g->regparse)) ++ FAIL("nested *?+"); ++ ++ return(ret); ++} ++ ++/* ++ - regatom - the lowest level ++ * ++ * Optimization: gobbles an entire sequence of ordinary characters so that ++ * it can turn them into a single node, which is smaller to store and ++ * faster to run. Backslashed characters are exceptions, each becoming a ++ * separate node; the code is simpler that way and it's not worth fixing. ++ */ ++static char * ++regatom(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ int flags; ++ ++ *flagp = WORST; /* Tentatively. */ ++ ++ switch (*g->regparse++) { ++ case '^': ++ ret = regnode(g, BOL); ++ break; ++ case '$': ++ ret = regnode(g, EOL); ++ break; ++ case '.': ++ ret = regnode(g, ANY); ++ *flagp |= HASWIDTH|SIMPLE; ++ break; ++ case '[': { ++ register int class; ++ register int classend; ++ ++ if (*g->regparse == '^') { /* Complement of range. */ ++ ret = regnode(g, ANYBUT); ++ g->regparse++; ++ } else ++ ret = regnode(g, ANYOF); ++ if (*g->regparse == ']' || *g->regparse == '-') ++ regc(g, *g->regparse++); ++ while (*g->regparse != '\0' && *g->regparse != ']') { ++ if (*g->regparse == '-') { ++ g->regparse++; ++ if (*g->regparse == ']' || *g->regparse == '\0') ++ regc(g, '-'); ++ else { ++ class = UCHARAT(g->regparse-2)+1; ++ classend = UCHARAT(g->regparse); ++ if (class > classend+1) ++ FAIL("invalid [] range"); ++ for (; class <= classend; class++) ++ regc(g, class); ++ g->regparse++; ++ } ++ } else ++ regc(g, *g->regparse++); ++ } ++ regc(g, '\0'); ++ if (*g->regparse != ']') ++ FAIL("unmatched []"); ++ g->regparse++; ++ *flagp |= HASWIDTH|SIMPLE; ++ } ++ break; ++ case '(': ++ ret = reg(g, 1, &flags); ++ if (ret == NULL) ++ return(NULL); ++ *flagp |= flags&(HASWIDTH|SPSTART); ++ break; ++ case '\0': ++ case '|': ++ case ')': ++ FAIL("internal urp"); /* Supposed to be caught earlier. */ ++ break; ++ case '?': ++ case '+': ++ case '*': ++ FAIL("?+* follows nothing"); ++ break; ++ case '\': ++ if (*g->regparse == '\0') ++ FAIL("trailing \"); ++ ret = regnode(g, EXACTLY); ++ regc(g, *g->regparse++); ++ regc(g, '\0'); ++ *flagp |= HASWIDTH|SIMPLE; ++ break; ++ default: { ++ register int len; ++ register char ender; ++ ++ g->regparse--; ++ len = my_strcspn((const char *)g->regparse, (const char *)META); ++ if (len <= 0) ++ FAIL("internal disaster"); ++ ender = *(g->regparse+len); ++ if (len > 1 && ISMULT(ender)) ++ len--; /* Back off clear of ?+* operand. */ ++ *flagp |= HASWIDTH; ++ if (len == 1) ++ *flagp |= SIMPLE; ++ ret = regnode(g, EXACTLY); ++ while (len > 0) { ++ regc(g, *g->regparse++); ++ len--; ++ } ++ regc(g, '\0'); ++ } ++ break; ++ } ++ ++ return(ret); ++} ++ ++/* ++ - regnode - emit a node ++ */ ++static char * /* Location. */ ++regnode(struct match_globals *g, char op) ++{ ++ register char *ret; ++ register char *ptr; ++ ++ ret = g->regcode; ++ if (ret == &g->regdummy) { ++ g->regsize += 3; ++ return(ret); ++ } ++ ++ ptr = ret; ++ *ptr++ = op; ++ *ptr++ = '\0'; /* Null "next" pointer. */ ++ *ptr++ = '\0'; ++ g->regcode = ptr; ++ ++ return(ret); ++} ++ ++/* ++ - regc - emit (if appropriate) a byte of code ++ */ ++static void ++regc(struct match_globals *g, char b) ++{ ++ if (g->regcode != &g->regdummy) ++ *g->regcode++ = b; ++ else ++ g->regsize++; ++} ++ ++/* ++ - reginsert - insert an operator in front of already-emitted operand ++ * ++ * Means relocating the operand. ++ */ ++static void ++reginsert(struct match_globals *g, char op, char* opnd) ++{ ++ register char *src; ++ register char *dst; ++ register char *place; ++ ++ if (g->regcode == &g->regdummy) { ++ g->regsize += 3; ++ return; ++ } ++ ++ src = g->regcode; ++ g->regcode += 3; ++ dst = g->regcode; ++ while (src > opnd) ++ *--dst = *--src; ++ ++ place = opnd; /* Op node, where operand used to be. */ ++ *place++ = op; ++ *place++ = '\0'; ++ *place++ = '\0'; ++} ++ ++/* ++ - regtail - set the next-pointer at the end of a node chain ++ */ ++static void ++regtail(struct match_globals *g, char *p, char *val) ++{ ++ register char *scan; ++ register char *temp; ++ register int offset; ++ ++ if (p == &g->regdummy) ++ return; ++ ++ /* Find last node. */ ++ scan = p; ++ for (;;) { ++ temp = regnext(g, scan); ++ if (temp == NULL) ++ break; ++ scan = temp; ++ } ++ ++ if (OP(scan) == BACK) ++ offset = scan - val; ++ else ++ offset = val - scan; ++ *(scan+1) = (offset>>8)&0377; ++ *(scan+2) = offset&0377; ++} ++ ++/* ++ - regoptail - regtail on operand of first argument; nop if operandless ++ */ ++static void ++regoptail(struct match_globals *g, char *p, char *val) ++{ ++ /* "Operandless" and "op != BRANCH" are synonymous in practice. */ ++ if (p == NULL || p == &g->regdummy || OP(p) != BRANCH) ++ return; ++ regtail(g, OPERAND(p), val); ++} ++ ++/* ++ * regexec and friends ++ */ ++ ++ ++/* ++ * Forwards. ++ */ ++STATIC int regtry(struct match_globals *g, regexp *prog, char *string); ++STATIC int regmatch(struct match_globals *g, char *prog); ++STATIC int regrepeat(struct match_globals *g, char *p); ++ ++#ifdef DEBUG ++int regnarrate = 0; ++void regdump(); ++STATIC char *regprop(char *op); ++#endif ++ ++/* ++ - regexec - match a regexp against a string ++ */ ++int ++regexec(regexp *prog, char *string) ++{ ++ register char *s; ++ struct match_globals g; ++ ++ /* Be paranoid... */ ++ if (prog == NULL || string == NULL) { ++ printk("<3>Regexp: NULL parameter\n"); ++ return(0); ++ } ++ ++ /* Check validity of program. */ ++ if (UCHARAT(prog->program) != MAGIC) { ++ printk("<3>Regexp: corrupted program\n"); ++ return(0); ++ } ++ ++ /* If there is a "must appear" string, look for it. */ ++ if (prog->regmust != NULL) { ++ s = string; ++ while ((s = strchr(s, prog->regmust[0])) != NULL) { ++ if (strncmp(s, prog->regmust, prog->regmlen) == 0) ++ break; /* Found it. */ ++ s++; ++ } ++ if (s == NULL) /* Not present. */ ++ return(0); ++ } ++ ++ /* Mark beginning of line for ^ . */ ++ g.regbol = string; ++ ++ /* Simplest case: anchored match need be tried only once. */ ++ if (prog->reganch) ++ return(regtry(&g, prog, string)); ++ ++ /* Messy cases: unanchored match. */ ++ s = string; ++ if (prog->regstart != '\0') ++ /* We know what char it must start with. */ ++ while ((s = strchr(s, prog->regstart)) != NULL) { ++ if (regtry(&g, prog, s)) ++ return(1); ++ s++; ++ } ++ else ++ /* We don't -- general case. */ ++ do { ++ if (regtry(&g, prog, s)) ++ return(1); ++ } while (*s++ != '\0'); ++ ++ /* Failure. */ ++ return(0); ++} ++ ++/* ++ - regtry - try match at specific point ++ */ ++static int /* 0 failure, 1 success */ ++regtry(struct match_globals *g, regexp *prog, char *string) ++{ ++ register int i; ++ register char **sp; ++ register char **ep; ++ ++ g->reginput = string; ++ g->regstartp = prog->startp; ++ g->regendp = prog->endp; ++ ++ sp = prog->startp; ++ ep = prog->endp; ++ for (i = NSUBEXP; i > 0; i--) { ++ *sp++ = NULL; ++ *ep++ = NULL; ++ } ++ if (regmatch(g, prog->program + 1)) { ++ prog->startp[0] = string; ++ prog->endp[0] = g->reginput; ++ return(1); ++ } else ++ return(0); ++} ++ ++/* ++ - regmatch - main matching routine ++ * ++ * Conceptually the strategy is simple: check to see whether the current ++ * node matches, call self recursively to see whether the rest matches, ++ * and then act accordingly. In practice we make some effort to avoid ++ * recursion, in particular by going through "ordinary" nodes (that don't ++ * need to know whether the rest of the match failed) by a loop instead of ++ * by recursion. ++ */ ++static int /* 0 failure, 1 success */ ++regmatch(struct match_globals *g, char *prog) ++{ ++ register char *scan = prog; /* Current node. */ ++ char *next; /* Next node. */ ++ ++#ifdef DEBUG ++ if (scan != NULL && regnarrate) ++ fprintf(stderr, "%s(\n", regprop(scan)); ++#endif ++ while (scan != NULL) { ++#ifdef DEBUG ++ if (regnarrate) ++ fprintf(stderr, "%s...\n", regprop(scan)); ++#endif ++ next = regnext(g, scan); ++ ++ switch (OP(scan)) { ++ case BOL: ++ if (g->reginput != g->regbol) ++ return(0); ++ break; ++ case EOL: ++ if (*g->reginput != '\0') ++ return(0); ++ break; ++ case ANY: ++ if (*g->reginput == '\0') ++ return(0); ++ g->reginput++; ++ break; ++ case EXACTLY: { ++ register int len; ++ register char *opnd; ++ ++ opnd = OPERAND(scan); ++ /* Inline the first character, for speed. */ ++ if (*opnd != *g->reginput) ++ return(0); ++ len = strlen(opnd); ++ if (len > 1 && strncmp(opnd, g->reginput, len) != 0) ++ return(0); ++ g->reginput += len; ++ } ++ break; ++ case ANYOF: ++ if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) == NULL) ++ return(0); ++ g->reginput++; ++ break; ++ case ANYBUT: ++ if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) != NULL) ++ return(0); ++ g->reginput++; ++ break; ++ case NOTHING: ++ case BACK: ++ break; ++ case OPEN+1: ++ case OPEN+2: ++ case OPEN+3: ++ case OPEN+4: ++ case OPEN+5: ++ case OPEN+6: ++ case OPEN+7: ++ case OPEN+8: ++ case OPEN+9: { ++ register int no; ++ register char *save; ++ ++ no = OP(scan) - OPEN; ++ save = g->reginput; ++ ++ if (regmatch(g, next)) { ++ /* ++ * Don't set startp if some later ++ * invocation of the same parentheses ++ * already has. ++ */ ++ if (g->regstartp[no] == NULL) ++ g->regstartp[no] = save; ++ return(1); ++ } else ++ return(0); ++ } ++ break; ++ case CLOSE+1: ++ case CLOSE+2: ++ case CLOSE+3: ++ case CLOSE+4: ++ case CLOSE+5: ++ case CLOSE+6: ++ case CLOSE+7: ++ case CLOSE+8: ++ case CLOSE+9: ++ { ++ register int no; ++ register char *save; ++ ++ no = OP(scan) - CLOSE; ++ save = g->reginput; ++ ++ if (regmatch(g, next)) { ++ /* ++ * Don't set endp if some later ++ * invocation of the same parentheses ++ * already has. ++ */ ++ if (g->regendp[no] == NULL) ++ g->regendp[no] = save; ++ return(1); ++ } else ++ return(0); ++ } ++ break; ++ case BRANCH: { ++ register char *save; ++ ++ if (OP(next) != BRANCH) /* No choice. */ ++ next = OPERAND(scan); /* Avoid recursion. */ ++ else { ++ do { ++ save = g->reginput; ++ if (regmatch(g, OPERAND(scan))) ++ return(1); ++ g->reginput = save; ++ scan = regnext(g, scan); ++ } while (scan != NULL && OP(scan) == BRANCH); ++ return(0); ++ /* NOTREACHED */ ++ } ++ } ++ break; ++ case STAR: ++ case PLUS: { ++ register char nextch; ++ register int no; ++ register char *save; ++ register int min; ++ ++ /* ++ * Lookahead to avoid useless match attempts ++ * when we know what character comes next. ++ */ ++ nextch = '\0'; ++ if (OP(next) == EXACTLY) ++ nextch = *OPERAND(next); ++ min = (OP(scan) == STAR) ? 0 : 1; ++ save = g->reginput; ++ no = regrepeat(g, OPERAND(scan)); ++ while (no >= min) { ++ /* If it could work, try it. */ ++ if (nextch == '\0' || *g->reginput == nextch) ++ if (regmatch(g, next)) ++ return(1); ++ /* Couldn't or didn't -- back up. */ ++ no--; ++ g->reginput = save + no; ++ } ++ return(0); ++ } ++ break; ++ case END: ++ return(1); /* Success! */ ++ break; ++ default: ++ printk("<3>Regexp: memory corruption\n"); ++ return(0); ++ break; ++ } ++ ++ scan = next; ++ } ++ ++ /* ++ * We get here only if there's trouble -- normally "case END" is ++ * the terminating point. ++ */ ++ printk("<3>Regexp: corrupted pointers\n"); ++ return(0); ++} ++ ++/* ++ - regrepeat - repeatedly match something simple, report how many ++ */ ++static int ++regrepeat(struct match_globals *g, char *p) ++{ ++ register int count = 0; ++ register char *scan; ++ register char *opnd; ++ ++ scan = g->reginput; ++ opnd = OPERAND(p); ++ switch (OP(p)) { ++ case ANY: ++ count = strlen(scan); ++ scan += count; ++ break; ++ case EXACTLY: ++ while (*opnd == *scan) { ++ count++; ++ scan++; ++ } ++ break; ++ case ANYOF: ++ while (*scan != '\0' && strchr(opnd, *scan) != NULL) { ++ count++; ++ scan++; ++ } ++ break; ++ case ANYBUT: ++ while (*scan != '\0' && strchr(opnd, *scan) == NULL) { ++ count++; ++ scan++; ++ } ++ break; ++ default: /* Oh dear. Called inappropriately. */ ++ printk("<3>Regexp: internal foulup\n"); ++ count = 0; /* Best compromise. */ ++ break; ++ } ++ g->reginput = scan; ++ ++ return(count); ++} ++ ++/* ++ - regnext - dig the "next" pointer out of a node ++ */ ++static char* ++regnext(struct match_globals *g, char *p) ++{ ++ register int offset; ++ ++ if (p == &g->regdummy) ++ return(NULL); ++ ++ offset = NEXT(p); ++ if (offset == 0) ++ return(NULL); ++ ++ if (OP(p) == BACK) ++ return(p-offset); ++ else ++ return(p+offset); ++} ++ ++#ifdef DEBUG ++ ++STATIC char *regprop(); ++ ++/* ++ - regdump - dump a regexp onto stdout in vaguely comprehensible form ++ */ ++void ++regdump(regexp *r) ++{ ++ register char *s; ++ register char op = EXACTLY; /* Arbitrary non-END op. */ ++ register char *next; ++ /* extern char *strchr(); */ ++ ++ ++ s = r->program + 1; ++ while (op != END) { /* While that wasn't END last time... */ ++ op = OP(s); ++ printf("%2d%s", s-r->program, regprop(s)); /* Where, what. */ ++ next = regnext(s); ++ if (next == NULL) /* Next ptr. */ ++ printf("(0)"); ++ else ++ printf("(%d)", (s-r->program)+(next-s)); ++ s += 3; ++ if (op == ANYOF || op == ANYBUT || op == EXACTLY) { ++ /* Literal string, where present. */ ++ while (*s != '\0') { ++ putchar(*s); ++ s++; ++ } ++ s++; ++ } ++ putchar('\n'); ++ } ++ ++ /* Header fields of interest. */ ++ if (r->regstart != '\0') ++ printf("start `%c' ", r->regstart); ++ if (r->reganch) ++ printf("anchored "); ++ if (r->regmust != NULL) ++ printf("must have "%s"", r->regmust); ++ printf("\n"); ++} ++ ++/* ++ - regprop - printable representation of opcode ++ */ ++static char * ++regprop(char *op) ++{ ++#define BUFLEN 50 ++ register char *p; ++ static char buf[BUFLEN]; ++ ++ strcpy(buf, ":"); ++ ++ switch (OP(op)) { ++ case BOL: ++ p = "BOL"; ++ break; ++ case EOL: ++ p = "EOL"; ++ break; ++ case ANY: ++ p = "ANY"; ++ break; ++ case ANYOF: ++ p = "ANYOF"; ++ break; ++ case ANYBUT: ++ p = "ANYBUT"; ++ break; ++ case BRANCH: ++ p = "BRANCH"; ++ break; ++ case EXACTLY: ++ p = "EXACTLY"; ++ break; ++ case NOTHING: ++ p = "NOTHING"; ++ break; ++ case BACK: ++ p = "BACK"; ++ break; ++ case END: ++ p = "END"; ++ break; ++ case OPEN+1: ++ case OPEN+2: ++ case OPEN+3: ++ case OPEN+4: ++ case OPEN+5: ++ case OPEN+6: ++ case OPEN+7: ++ case OPEN+8: ++ case OPEN+9: ++ snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "OPEN%d", OP(op)-OPEN); ++ p = NULL; ++ break; ++ case CLOSE+1: ++ case CLOSE+2: ++ case CLOSE+3: ++ case CLOSE+4: ++ case CLOSE+5: ++ case CLOSE+6: ++ case CLOSE+7: ++ case CLOSE+8: ++ case CLOSE+9: ++ snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "CLOSE%d", OP(op)-CLOSE); ++ p = NULL; ++ break; ++ case STAR: ++ p = "STAR"; ++ break; ++ case PLUS: ++ p = "PLUS"; ++ break; ++ default: ++ printk("<3>Regexp: corrupted opcode\n"); ++ break; ++ } ++ if (p != NULL) ++ strncat(buf, p, BUFLEN-strlen(buf)); ++ return(buf); ++} ++#endif ++ ++ +diff -Naur linux-3.10.5.org/net/netfilter/regexp/regexp.h linux-3.10.5/net/netfilter/regexp/regexp.h +--- linux-3.10.5.org/net/netfilter/regexp/regexp.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/net/netfilter/regexp/regexp.h 2013-08-07 06:16:14.430800990 +0200 +@@ -0,0 +1,41 @@ ++/* ++ * Definitions etc. for regexp(3) routines. ++ * ++ * Caveat: this is V8 regexp(3) [actually, a reimplementation thereof], ++ * not the System V one. ++ */ ++ ++#ifndef REGEXP_H ++#define REGEXP_H ++ ++ ++/* ++http://www.opensource.apple.com/darwinsource/10.3/expect-1/expect/expect.h , ++which contains a version of this library, says: ++ ++ * ++ * NSUBEXP must be at least 10, and no greater than 117 or the parser ++ * will not work properly. ++ * ++ ++However, it looks rather like this library is limited to 10. If you think ++otherwise, let us know. ++*/ ++ ++#define NSUBEXP 10 ++typedef struct regexp { ++ char *startp[NSUBEXP]; ++ char *endp[NSUBEXP]; ++ char regstart; /* Internal use only. */ ++ char reganch; /* Internal use only. */ ++ char *regmust; /* Internal use only. */ ++ int regmlen; /* Internal use only. */ ++ char program[1]; /* Unwarranted chumminess with compiler. */ ++} regexp; ++ ++regexp * regcomp(char *exp, int *patternsize); ++int regexec(regexp *prog, char *string); ++void regsub(regexp *prog, char *source, char *dest); ++void regerror(char *s); ++ ++#endif +diff -Naur linux-3.10.5.org/net/netfilter/regexp/regmagic.h linux-3.10.5/net/netfilter/regexp/regmagic.h +--- linux-3.10.5.org/net/netfilter/regexp/regmagic.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/net/netfilter/regexp/regmagic.h 2013-08-07 06:16:14.450800314 +0200 +@@ -0,0 +1,5 @@ ++/* ++ * The first byte of the regexp internal "program" is actually this magic ++ * number; the start node begins in the second byte. ++ */ ++#define MAGIC 0234 +diff -Naur linux-3.10.5.org/net/netfilter/regexp/regsub.c linux-3.10.5/net/netfilter/regexp/regsub.c +--- linux-3.10.5.org/net/netfilter/regexp/regsub.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/net/netfilter/regexp/regsub.c 2013-08-07 06:16:14.450800314 +0200 +@@ -0,0 +1,95 @@ ++/* ++ * regsub ++ * @(#)regsub.c 1.3 of 2 April 86 ++ * ++ * Copyright (c) 1986 by University of Toronto. ++ * Written by Henry Spencer. Not derived from licensed software. ++ * ++ * Permission is granted to anyone to use this software for any ++ * purpose on any computer system, and to redistribute it freely, ++ * subject to the following restrictions: ++ * ++ * 1. The author is not responsible for the consequences of use of ++ * this software, no matter how awful, even if they arise ++ * from defects in it. ++ * ++ * 2. The origin of this software must not be misrepresented, either ++ * by explicit claim or by omission. ++ * ++ * 3. Altered versions must be plainly marked as such, and must not ++ * be misrepresented as being the original software. ++ * ++ * ++ * This code was modified by Ethan Sommer to work within the kernel ++ * (it now uses kmalloc etc..) ++ * ++ */ ++#include "regexp.h" ++#include "regmagic.h" ++#include <linux/string.h> ++ ++ ++#ifndef CHARBITS ++#define UCHARAT(p) ((int)*(unsigned char *)(p)) ++#else ++#define UCHARAT(p) ((int)*(p)&CHARBITS) ++#endif ++ ++#if 0 ++//void regerror(char * s) ++//{ ++// printk("regexp(3): %s", s); ++// /* NOTREACHED */ ++//} ++#endif ++ ++/* ++ - regsub - perform substitutions after a regexp match ++ */ ++void ++regsub(regexp * prog, char * source, char * dest) ++{ ++ register char *src; ++ register char *dst; ++ register char c; ++ register int no; ++ register int len; ++ ++ /* Not necessary and gcc doesn't like it -MLS */ ++ /*extern char *strncpy();*/ ++ ++ if (prog == NULL || source == NULL || dest == NULL) { ++ regerror("NULL parm to regsub"); ++ return; ++ } ++ if (UCHARAT(prog->program) != MAGIC) { ++ regerror("damaged regexp fed to regsub"); ++ return; ++ } ++ ++ src = source; ++ dst = dest; ++ while ((c = *src++) != '\0') { ++ if (c == '&') ++ no = 0; ++ else if (c == '\' && '0' <= *src && *src <= '9') ++ no = *src++ - '0'; ++ else ++ no = -1; ++ ++ if (no < 0) { /* Ordinary character. */ ++ if (c == '\' && (*src == '\' || *src == '&')) ++ c = *src++; ++ *dst++ = c; ++ } else if (prog->startp[no] != NULL && prog->endp[no] != NULL) { ++ len = prog->endp[no] - prog->startp[no]; ++ (void) strncpy(dst, prog->startp[no], len); ++ dst += len; ++ if (len != 0 && *(dst-1) == '\0') { /* strncpy hit NUL. */ ++ regerror("damaged match string"); ++ return; ++ } ++ } ++ } ++ *dst++ = '\0'; ++} +diff -Naur linux-3.10.5.org/net/netfilter/xt_layer7.c linux-3.10.5/net/netfilter/xt_layer7.c +--- linux-3.10.5.org/net/netfilter/xt_layer7.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.10.5/net/netfilter/xt_layer7.c 2013-08-07 06:16:14.490798961 +0200 +@@ -0,0 +1,684 @@ ++/* ++ Kernel module to match application layer (OSI layer 7) data in connections. ++ ++ http://l7-filter.sf.net ++ ++ (C) 2003-2009 Matthew Strait and Ethan Sommer. ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU General Public License ++ as published by the Free Software Foundation; either version ++ 2 of the License, or (at your option) any later version. ++ http://www.gnu.org/licenses/gpl.txt ++ ++ Based on ipt_string.c (C) 2000 Emmanuel Roger winfield@freegates.be, ++ xt_helper.c (C) 2002 Harald Welte and cls_layer7.c (C) 2003 Matthew Strait, ++ Ethan Sommer, Justin Levandoski. ++*/ ++ ++#include <linux/spinlock.h> ++#include <linux/version.h> ++#include <net/ip.h> ++#include <net/tcp.h> ++#include <linux/module.h> ++#include <linux/skbuff.h> ++#include <linux/netfilter.h> ++#include <net/netfilter/nf_conntrack.h> ++#include <net/netfilter/nf_conntrack_core.h> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++#include <net/netfilter/nf_conntrack_extend.h> ++#include <net/netfilter/nf_conntrack_acct.h> ++#endif ++#include <linux/netfilter/x_tables.h> ++#include <linux/netfilter/xt_layer7.h> ++#include <linux/ctype.h> ++#include <linux/proc_fs.h> ++ ++#include "regexp/regexp.c" ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Matthew Strait quadong@users.sf.net, Ethan Sommer sommere@users.sf.net"); ++MODULE_DESCRIPTION("iptables application layer match module"); ++MODULE_ALIAS("ipt_layer7"); ++MODULE_VERSION("2.22ipfire"); ++ ++static int maxdatalen = 2048; // this is the default ++module_param(maxdatalen, int, 0444); ++MODULE_PARM_DESC(maxdatalen, "maximum bytes of data looked at by l7-filter"); ++#ifdef CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG ++ #define DPRINTK(format,args...) printk(format,##args) ++#else ++ #define DPRINTK(format,args...) ++#endif ++ ++/* Number of packets whose data we look at. ++This can be modified through /proc/net/layer7_numpackets */ ++static int num_packets = 10; ++ ++static struct pattern_cache { ++ char * regex_string; ++ regexp * pattern; ++ struct pattern_cache * next; ++} * first_pattern_cache = NULL; ++ ++DEFINE_SPINLOCK(l7_lock); ++ ++static int total_acct_packets(struct nf_conn *ct) ++{ ++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26) ++ BUG_ON(ct == NULL); ++ return (ct->counters[IP_CT_DIR_ORIGINAL].packets + ct->counters[IP_CT_DIR_REPLY].packets); ++#else ++ struct nf_conn_counter *acct; ++ ++ BUG_ON(ct == NULL); ++ acct = nf_conn_acct_find(ct); ++ if (!acct) ++ return 0; ++ return ( atomic64_read(&acct[IP_CT_DIR_ORIGINAL].packets) + atomic64_read(&acct[IP_CT_DIR_REPLY].packets) ); ++#endif ++} ++ ++#ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG ++/* Converts an unfriendly string into a friendly one by ++replacing unprintables with periods and all whitespace with " ". */ ++static char * friendly_print(unsigned char * s) ++{ ++ char * f = kmalloc(strlen(s) + 1, GFP_ATOMIC); ++ int i; ++ ++ if(!f) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "friendly_print, bailing.\n"); ++ return NULL; ++ } ++ ++ for(i = 0; i < strlen(s); i++){ ++ if(isprint(s[i]) && s[i] < 128) f[i] = s[i]; ++ else if(isspace(s[i])) f[i] = ' '; ++ else f[i] = '.'; ++ } ++ f[i] = '\0'; ++ return f; ++} ++ ++static char dec2hex(int i) ++{ ++ switch (i) { ++ case 0 ... 9: ++ return (i + '0'); ++ break; ++ case 10 ... 15: ++ return (i - 10 + 'a'); ++ break; ++ default: ++ if (net_ratelimit()) ++ printk("layer7: Problem in dec2hex\n"); ++ return '\0'; ++ } ++} ++ ++static char * hex_print(unsigned char * s) ++{ ++ char * g = kmalloc(strlen(s)*3 + 1, GFP_ATOMIC); ++ int i; ++ ++ if(!g) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in hex_print, " ++ "bailing.\n"); ++ return NULL; ++ } ++ ++ for(i = 0; i < strlen(s); i++) { ++ g[i*3 ] = dec2hex(s[i]/16); ++ g[i*3 + 1] = dec2hex(s[i]%16); ++ g[i*3 + 2] = ' '; ++ } ++ g[i*3] = '\0'; ++ ++ return g; ++} ++#endif // DEBUG ++ ++/* Use instead of regcomp. As we expect to be seeing the same regexps over and ++over again, it make sense to cache the results. */ ++static regexp * compile_and_cache(const char * regex_string, ++ const char * protocol) ++{ ++ struct pattern_cache * node = first_pattern_cache; ++ struct pattern_cache * last_pattern_cache = first_pattern_cache; ++ struct pattern_cache * tmp; ++ unsigned int len; ++ ++ while (node != NULL) { ++ if (!strcmp(node->regex_string, regex_string)) ++ return node->pattern; ++ ++ last_pattern_cache = node;/* points at the last non-NULL node */ ++ node = node->next; ++ } ++ ++ /* If we reach the end of the list, then we have not yet cached ++ the pattern for this regex. Let's do that now. ++ Be paranoid about running out of memory to avoid list corruption. */ ++ tmp = kmalloc(sizeof(struct pattern_cache), GFP_ATOMIC); ++ ++ if(!tmp) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "compile_and_cache, bailing.\n"); ++ return NULL; ++ } ++ ++ tmp->regex_string = kmalloc(strlen(regex_string) + 1, GFP_ATOMIC); ++ tmp->pattern = kmalloc(sizeof(struct regexp), GFP_ATOMIC); ++ tmp->next = NULL; ++ ++ if(!tmp->regex_string || !tmp->pattern) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "compile_and_cache, bailing.\n"); ++ kfree(tmp->regex_string); ++ kfree(tmp->pattern); ++ kfree(tmp); ++ return NULL; ++ } ++ ++ /* Ok. The new node is all ready now. */ ++ node = tmp; ++ ++ if(first_pattern_cache == NULL) /* list is empty */ ++ first_pattern_cache = node; /* make node the beginning */ ++ else ++ last_pattern_cache->next = node; /* attach node to the end */ ++ ++ /* copy the string and compile the regex */ ++ len = strlen(regex_string); ++ DPRINTK("layer7: about to compile this: "%s"\n", regex_string); ++ node->pattern = regcomp((char *)regex_string, &len); ++ if ( !node->pattern ) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: Error compiling regexp " ++ ""%s" (%s)\n", ++ regex_string, protocol); ++ /* pattern is now cached as NULL, so we won't try again. */ ++ } ++ ++ strcpy(node->regex_string, regex_string); ++ return node->pattern; ++} ++ ++static int can_handle(const struct sk_buff *skb) ++{ ++ if(!ip_hdr(skb)) /* not IP */ ++ return 0; ++ if(ip_hdr(skb)->protocol != IPPROTO_TCP && ++ ip_hdr(skb)->protocol != IPPROTO_UDP && ++ ip_hdr(skb)->protocol != IPPROTO_ICMP) ++ return 0; ++ return 1; ++} ++ ++/* Returns offset the into the skb->data that the application data starts */ ++static int app_data_offset(const struct sk_buff *skb) ++{ ++ /* In case we are ported somewhere (ebtables?) where ip_hdr(skb) ++ isn't set, this can be gotten from 4*(skb->data[0] & 0x0f) as well. */ ++ int ip_hl = 4*ip_hdr(skb)->ihl; ++ ++ if( ip_hdr(skb)->protocol == IPPROTO_TCP ) { ++ /* 12 == offset into TCP header for the header length field. ++ Can't get this with skb->h.th->doff because the tcphdr ++ struct doesn't get set when routing (this is confirmed to be ++ true in Netfilter as well as QoS.) */ ++ int tcp_hl = 4*(skb->data[ip_hl + 12] >> 4); ++ ++ return ip_hl + tcp_hl; ++ } else if( ip_hdr(skb)->protocol == IPPROTO_UDP ) { ++ return ip_hl + 8; /* UDP header is always 8 bytes */ ++ } else if( ip_hdr(skb)->protocol == IPPROTO_ICMP ) { ++ return ip_hl + 8; /* ICMP header is 8 bytes */ ++ } else { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: tried to handle unknown " ++ "protocol!\n"); ++ return ip_hl + 8; /* something reasonable */ ++ } ++} ++ ++/* handles whether there's a match when we aren't appending data anymore */ ++static int match_no_append(struct nf_conn * conntrack, ++ struct nf_conn * master_conntrack, ++ enum ip_conntrack_info ctinfo, ++ enum ip_conntrack_info master_ctinfo, ++ const struct xt_layer7_info * info) ++{ ++ /* If we're in here, throw the app data away */ ++ if(master_conntrack->layer7.app_data != NULL) { ++ ++ #ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG ++ if(!master_conntrack->layer7.app_proto) { ++ char * f = ++ friendly_print(master_conntrack->layer7.app_data); ++ char * g = ++ hex_print(master_conntrack->layer7.app_data); ++ DPRINTK("\nl7-filter gave up after %d bytes " ++ "(%d packets):\n%s\n", ++ strlen(f), total_acct_packets(master_conntrack), f); ++ kfree(f); ++ DPRINTK("In hex: %s\n", g); ++ kfree(g); ++ } ++ #endif ++ ++ kfree(master_conntrack->layer7.app_data); ++ master_conntrack->layer7.app_data = NULL; /* don't free again */ ++ } ++ ++ if(master_conntrack->layer7.app_proto){ ++ /* Here child connections set their .app_proto (for /proc) */ ++ if(!conntrack->layer7.app_proto) { ++ conntrack->layer7.app_proto = ++ kmalloc(strlen(master_conntrack->layer7.app_proto)+1, ++ GFP_ATOMIC); ++ if(!conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory " ++ "in match_no_append, " ++ "bailing.\n"); ++ return 1; ++ } ++ strcpy(conntrack->layer7.app_proto, ++ master_conntrack->layer7.app_proto); ++ } ++ ++ return (!strcmp(master_conntrack->layer7.app_proto, ++ info->protocol)); ++ } ++ else { ++ /* If not classified, set to "unknown" to distinguish from ++ connections that are still being tested. */ ++ master_conntrack->layer7.app_proto = ++ kmalloc(strlen("unknown")+1, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match_no_append, bailing.\n"); ++ return 1; ++ } ++ strcpy(master_conntrack->layer7.app_proto, "unknown"); ++ return 0; ++ } ++} ++ ++/* add the new app data to the conntrack. Return number of bytes added. */ ++static int add_data(struct nf_conn * master_conntrack, ++ char * app_data, int appdatalen) ++{ ++ int length = 0, i; ++ int oldlength = master_conntrack->layer7.app_data_len; ++ ++ /* This is a fix for a race condition by Deti Fliegl. However, I'm not ++ clear on whether the race condition exists or whether this really ++ fixes it. I might just be being dense... Anyway, if it's not really ++ a fix, all it does is waste a very small amount of time. */ ++ if(!master_conntrack->layer7.app_data) return 0; ++ ++ /* Strip nulls. Make everything lower case (our regex lib doesn't ++ do case insensitivity). Add it to the end of the current data. */ ++ for(i = 0; i < maxdatalen-oldlength-1 && ++ i < appdatalen; i++) { ++ if(app_data[i] != '\0') { ++ /* the kernel version of tolower mungs 'upper ascii' */ ++ master_conntrack->layer7.app_data[length+oldlength] = ++ isascii(app_data[i])? ++ tolower(app_data[i]) : app_data[i]; ++ length++; ++ } ++ } ++ ++ master_conntrack->layer7.app_data[length+oldlength] = '\0'; ++ master_conntrack->layer7.app_data_len = length + oldlength; ++ ++ return length; ++} ++ ++/* taken from drivers/video/modedb.c */ ++static int my_atoi(const char *s) ++{ ++ int val = 0; ++ ++ for (;; s++) { ++ switch (*s) { ++ case '0'...'9': ++ val = 10*val+(*s-'0'); ++ break; ++ default: ++ return val; ++ } ++ } ++} ++ ++/* write out num_packets to userland. */ ++static int layer7_read_proc(char* page, char ** start, off_t off, int count, ++ int* eof, void * data) ++{ ++ if(num_packets > 99 && net_ratelimit()) ++ printk(KERN_ERR "layer7: NOT REACHED. num_packets too big\n"); ++ ++ page[0] = num_packets/10 + '0'; ++ page[1] = num_packets%10 + '0'; ++ page[2] = '\n'; ++ page[3] = '\0'; ++ ++ *eof=1; ++ ++ return 3; ++} ++ ++/* Read in num_packets from userland */ ++static int layer7_write_proc(struct file* file, const char* buffer, ++ unsigned long count, void *data) ++{ ++ char * foo = kmalloc(count, GFP_ATOMIC); ++ ++ if(!foo){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory, bailing. " ++ "num_packets unchanged.\n"); ++ return count; ++ } ++ ++ if(copy_from_user(foo, buffer, count)) { ++ return -EFAULT; ++ } ++ ++ ++ num_packets = my_atoi(foo); ++ kfree (foo); ++ ++ /* This has an arbitrary limit to make the math easier. I'm lazy. ++ But anyway, 99 is a LOT! If you want more, you're doing it wrong! */ ++ if(num_packets > 99) { ++ printk(KERN_WARNING "layer7: num_packets can't be > 99.\n"); ++ num_packets = 99; ++ } else if(num_packets < 1) { ++ printk(KERN_WARNING "layer7: num_packets can't be < 1.\n"); ++ num_packets = 1; ++ } ++ ++ return count; ++} ++ ++static bool ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++match(const struct sk_buff *skbin, struct xt_action_param *par) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++match(const struct sk_buff *skbin, const struct xt_match_param *par) ++#else ++match(const struct sk_buff *skbin, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ bool *hotdrop) ++#endif ++{ ++ /* sidestep const without getting a compiler warning... */ ++ struct sk_buff * skb = (struct sk_buff *)skbin; ++ ++ const struct xt_layer7_info * info = ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++ par->matchinfo; ++ #else ++ matchinfo; ++ #endif ++ ++ enum ip_conntrack_info master_ctinfo, ctinfo; ++ struct nf_conn *master_conntrack, *conntrack; ++ unsigned char * app_data; ++ unsigned int pattern_result, appdatalen; ++ regexp * comppattern; ++ ++ /* Be paranoid/incompetent - lock the entire match function. */ ++ spin_lock_bh(&l7_lock); ++ ++ if(!can_handle(skb)){ ++ DPRINTK("layer7: This is some protocol I can't handle.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ /* Treat parent & all its children together as one connection, except ++ for the purpose of setting conntrack->layer7.app_proto in the actual ++ connection. This makes /proc/net/ip_conntrack more satisfying. */ ++ if(!(conntrack = nf_ct_get(skb, &ctinfo)) || ++ !(master_conntrack=nf_ct_get(skb,&master_ctinfo))){ ++ DPRINTK("layer7: couldn't get conntrack.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ /* Try to get a master conntrack (and its master etc) for FTP, etc. */ ++ while (master_ct(master_conntrack) != NULL) ++ master_conntrack = master_ct(master_conntrack); ++ ++ /* if we've classified it or seen too many packets */ ++ if(total_acct_packets(master_conntrack) > num_packets || ++ master_conntrack->layer7.app_proto) { ++ ++ pattern_result = match_no_append(conntrack, master_conntrack, ++ ctinfo, master_ctinfo, info); ++ ++ /* skb->cb[0] == seen. Don't do things twice if there are ++ multiple l7 rules. I'm not sure that using cb for this purpose ++ is correct, even though it says "put your private variables ++ there". But it doesn't look like it is being used for anything ++ else in the skbs that make it here. */ ++ skb->cb[0] = 1; /* marking it seen here's probably irrelevant */ ++ ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++ } ++ ++ if(skb_is_nonlinear(skb)){ ++ if(skb_linearize(skb) != 0){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: failed to linearize " ++ "packet, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ } ++ ++ /* now that the skb is linearized, it's safe to set these. */ ++ app_data = skb->data + app_data_offset(skb); ++ appdatalen = skb_tail_pointer(skb) - app_data; ++ ++ /* the return value gets checked later, when we're ready to use it */ ++ comppattern = compile_and_cache(info->pattern, info->protocol); ++ ++ /* On the first packet of a connection, allocate space for app data */ ++ if(total_acct_packets(master_conntrack) == 1 && !skb->cb[0] && ++ !master_conntrack->layer7.app_data){ ++ master_conntrack->layer7.app_data = ++ kmalloc(maxdatalen, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_data){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ master_conntrack->layer7.app_data[0] = '\0'; ++ } ++ ++ /* Can be here, but unallocated, if numpackets is increased near ++ the beginning of a connection */ ++ if(master_conntrack->layer7.app_data == NULL){ ++ spin_unlock_bh(&l7_lock); ++ return info->invert; /* unmatched */ ++ } ++ ++ if(!skb->cb[0]){ ++ int newbytes; ++ newbytes = add_data(master_conntrack, app_data, appdatalen); ++ ++ if(newbytes == 0) { /* didn't add any data */ ++ skb->cb[0] = 1; ++ /* Didn't match before, not going to match now */ ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ } ++ ++ /* If looking for "unknown", then never match. "Unknown" means that ++ we've given up; we're still trying with these packets. */ ++ if(!strcmp(info->protocol, "unknown")) { ++ pattern_result = 0; ++ /* If looking for "unset", then always match. "Unset" means that we ++ haven't yet classified the connection. */ ++ } else if(!strcmp(info->protocol, "unset")) { ++ pattern_result = 2; ++ DPRINTK("layer7: matched unset: not yet classified " ++ "(%d/%d packets)\n", ++ total_acct_packets(master_conntrack), num_packets); ++ /* If the regexp failed to compile, don't bother running it */ ++ } else if(comppattern && ++ regexec(comppattern, master_conntrack->layer7.app_data)){ ++ DPRINTK("layer7: matched %s\n", info->protocol); ++ pattern_result = 1; ++ } else pattern_result = 0; ++ ++ if(pattern_result == 1) { ++ master_conntrack->layer7.app_proto = ++ kmalloc(strlen(info->protocol)+1, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++ } ++ strcpy(master_conntrack->layer7.app_proto, info->protocol); ++ } else if(pattern_result > 1) { /* cleanup from "unset" */ ++ pattern_result = 1; ++ } ++ ++ /* mark the packet seen */ ++ skb->cb[0] = 1; ++ ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++} ++ ++// load nf_conntrack_ipv4 ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++static int ++#else ++static bool ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++check(const struct xt_mtchk_param *par) ++{ ++ if (nf_ct_l3proto_try_module_get(par->match->family) < 0) { ++ printk(KERN_WARNING "can't load conntrack support for " ++ "proto=%d\n", par->match->family); ++#else ++check(const char *tablename, const void *inf, ++ const struct xt_match *match, void *matchinfo, ++ unsigned int hook_mask) ++{ ++ if (nf_ct_l3proto_try_module_get(match->family) < 0) { ++ printk(KERN_WARNING "can't load conntrack support for " ++ "proto=%d\n", match->family); ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++ return -EINVAL; ++ } ++ return 0; ++#else ++ return 0; ++ } ++ return 1; ++#endif ++} ++ ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++ static void destroy(const struct xt_mtdtor_param *par) ++ { ++ nf_ct_l3proto_module_put(par->match->family); ++ } ++#else ++ static void destroy(const struct xt_match *match, void *matchinfo) ++ { ++ nf_ct_l3proto_module_put(match->family); ++ } ++#endif ++ ++static struct xt_match xt_layer7_match[] __read_mostly = { ++{ ++ .name = "layer7", ++ .family = AF_INET, ++ .checkentry = check, ++ .match = match, ++ .destroy = destroy, ++ .matchsize = sizeof(struct xt_layer7_info), ++ .me = THIS_MODULE ++} ++}; ++ ++static void layer7_cleanup_proc(void) ++{ ++// remove_proc_entry("layer7_numpackets", init_net.proc_net); ++} ++ ++/* register the proc file */ ++static void layer7_init_proc(void) ++{ ++ struct proc_dir_entry* entry; ++// entry = create_proc_entry("layer7_numpackets", 0644, init_net.proc_net); ++// entry->read_proc = layer7_read_proc; ++// entry->write_proc = layer7_write_proc; ++} ++ ++static int __init xt_layer7_init(void) ++{ ++ need_conntrack(); ++ ++ if (init_net.ct.sysctl_acct == 0) { ++ printk(KERN_WARNING "layer7: enabling nf_conntrack_acct\n"); ++ init_net.ct.sysctl_acct = 1; ++ } ++ ++ layer7_init_proc(); ++ if(maxdatalen < 1) { ++ printk(KERN_WARNING "layer7: maxdatalen can't be < 1, " ++ "using 1\n"); ++ maxdatalen = 1; ++ } ++ /* This is not a hard limit. It's just here to prevent people from ++ bringing their slow machines to a grinding halt. */ ++ else if(maxdatalen > 65536) { ++ printk(KERN_WARNING "layer7: maxdatalen can't be > 65536, " ++ "using 65536\n"); ++ maxdatalen = 65536; ++ } ++ return xt_register_matches(xt_layer7_match, ++ ARRAY_SIZE(xt_layer7_match)); ++} ++ ++static void __exit xt_layer7_fini(void) ++{ ++ layer7_cleanup_proc(); ++ xt_unregister_matches(xt_layer7_match, ARRAY_SIZE(xt_layer7_match)); ++} ++ ++module_init(xt_layer7_init); ++module_exit(xt_layer7_fini); diff --git a/src/patches/openssl-1.0.0-beta5-enginesdir.patch b/src/patches/openssl-1.0.0-beta5-enginesdir.patch new file mode 100644 index 0000000..d942d6e --- /dev/null +++ b/src/patches/openssl-1.0.0-beta5-enginesdir.patch @@ -0,0 +1,52 @@ +diff -up openssl-1.0.0-beta5/Configure.enginesdir openssl-1.0.0-beta5/Configure +--- openssl-1.0.0-beta5/Configure.enginesdir 2010-01-20 18:07:05.000000000 +0100 ++++ openssl-1.0.0-beta5/Configure 2010-01-20 18:10:48.000000000 +0100 +@@ -622,6 +622,7 @@ my $idx_multilib = $idx++; + my $prefix=""; + my $libdir=""; + my $openssldir=""; ++my $enginesdir=""; + my $exe_ext=""; + my $install_prefix= "$ENV{'INSTALL_PREFIX'}"; + my $cross_compile_prefix=""; +@@ -833,6 +834,10 @@ PROCESS_ARGS: + { + $openssldir=$1; + } ++ elsif (/^--enginesdir=(.*)$/) ++ { ++ $enginesdir=$1; ++ } + elsif (/^--install.prefix=(.*)$/) + { + $install_prefix=$1; +@@ -1053,7 +1058,7 @@ chop $prefix if $prefix =~ /./$/; + + $openssldir=$prefix . "/ssl" if $openssldir eq ""; + $openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^/|^[a-zA-Z]:[\/])/; +- ++$enginesdir="$prefix/lib/engines" if $enginesdir eq ""; + + print "IsMK1MF=$IsMK1MF\n"; + +@@ -1673,7 +1678,7 @@ while (<IN>) + } + elsif (/^#define\s+ENGINESDIR/) + { +- my $foo = "$prefix/$libdir/engines"; ++ my $foo = "$enginesdir"; + $foo =~ s/\/\\/g; + print OUT "#define ENGINESDIR "$foo"\n"; + } +diff -up openssl-1.0.0-beta5/engines/Makefile.enginesdir openssl-1.0.0-beta5/engines/Makefile +--- openssl-1.0.0-beta5/engines/Makefile.enginesdir 2010-01-16 21:06:09.000000000 +0100 ++++ openssl-1.0.0-beta5/engines/Makefile 2010-01-20 18:07:05.000000000 +0100 +@@ -124,7 +124,7 @@ install: + sfx=".so"; \ + cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ + fi; \ +- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ ++ chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ + done; \ + fi diff --git a/src/patches/openssl-1.0.1-beta2-build.patch b/src/patches/openssl-1.0.1-beta2-build.patch new file mode 100644 index 0000000..0a5cef1 --- /dev/null +++ b/src/patches/openssl-1.0.1-beta2-build.patch @@ -0,0 +1,109 @@ +diff -up openssl-1.0.1-beta2/Configure.rpmbuild openssl-1.0.1-beta2/Configure +--- openssl-1.0.1-beta2/Configure.rpmbuild 2012-01-05 01:07:34.000000000 +0100 ++++ openssl-1.0.1-beta2/Configure 2012-02-02 12:43:56.547409325 +0100 +@@ -343,23 +343,23 @@ my %table=( + #### + # *-generic* is endian-neutral target, but ./config is free to + # throw in -D[BL]_ENDIAN, whichever appropriate... +-"linux-generic32","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", +-"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-generic32","gcc:-DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", ++"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + # It's believed that majority of ARM toolchains predefine appropriate -march. + # If you compiler does not, do complement config command line with one! +-"linux-armv4", "gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-armv4", "gcc:-DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + #### IA-32 targets... + "linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", +-"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + "linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out", + #### +-"linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", +-"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR):::64", +-"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-generic64","gcc:-DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", ++"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64 $(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER):::64", ++"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + "linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", + "linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", +-"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR):::64", +-"linux64-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR):::64", ++"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64 $(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER):::64", ++"linux64-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64 $(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER):::64", + #### So called "highgprs" target for z/Architecture CPUs + # "Highgprs" is kernel feature first implemented in Linux 2.6.32, see + # /proc/cpuinfo. The idea is to preserve most significant bits of +@@ -373,16 +373,16 @@ my %table=( + # ldconfig and run-time linker to autodiscover. Unfortunately it + # doesn't work just yet, because of couple of bugs in glibc + # sysdeps/s390/dl-procinfo.c affecting ldconfig and ld.so.1... +-"linux32-s390x", "gcc:-m31 -Wa,-mzarch -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$s390x_asm;$asm=~s/bn-s390x.o/bn_asm.o/;$asm}.":31:dlfcn:linux-shared:-fPIC:-m31:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR):::/highgprs", ++"linux32-s390x", "gcc:-m31 -Wa,-mzarch -DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$s390x_asm;$asm=~s/bn-s390x.o/bn_asm.o/;$asm}.":31:dlfcn:linux-shared:-fPIC:-m31 $(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER):::/highgprs", + #### SPARC Linux setups + # Ray Miller ray.miller@computing-services.oxford.ac.uk has patiently + # assisted with debugging of following two configs. +-"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-sparcv8","gcc:-DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS) -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + # it's a real mess with -mcpu=ultrasparc option under Linux, but + # -Wa,-Av8plus should do the trick no matter what. +-"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-sparcv9","gcc:-DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS) -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + # GCC 3.1 is a requirement +-"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.$(SHLIB_MAJOR).$(SHLIB_MINOR):::64", ++"linux64-sparcv9","gcc:-DB_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER):::64", + #### Alpha Linux with GNU C and Compaq C setups + # Special notes: + # - linux-alpha+bwx-gcc is ment to be used from ./config only. If you +@@ -396,8 +396,8 @@ my %table=( + # + # appro@fy.chalmers.se + # +-"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", +-"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)", ++"linux-alpha-gcc","gcc:-DL_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", ++"linux-alpha+bwx-gcc","gcc:-DL_ENDIAN -DTERMIO -Wall $(RPM_OPT_FLAGS)::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC:$(RPM_OPT_FLAGS):.so.$(SHLIB_SONAMEVER)", + "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", + "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", + +@@ -1678,7 +1678,7 @@ while (<IN>) + elsif ($shared_extension ne "" && $shared_extension =~ /^.s([ol]).[^.]*.[^.]*$/) + { + my $sotmp = $1; +- s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp.$(SHLIB_MAJOR) .s$sotmp/; ++ s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp.$(SHLIB_SONAMEVER) .s$sotmp/; + } + elsif ($shared_extension ne "" && $shared_extension =~ /^.[^.]*.[^.]*.dylib$/) + { +diff -up openssl-1.0.1-beta2/Makefile.org.rpmbuild openssl-1.0.1-beta2/Makefile.org +--- openssl-1.0.1-beta2/Makefile.org.rpmbuild 2011-12-27 16:17:50.000000000 +0100 ++++ openssl-1.0.1-beta2/Makefile.org 2012-02-02 12:30:23.652495435 +0100 +@@ -10,6 +10,7 @@ SHLIB_VERSION_HISTORY= + SHLIB_MAJOR= + SHLIB_MINOR= + SHLIB_EXT= ++SHLIB_SONAMEVER=10 + PLATFORM=dist + OPTIONS= + CONFIGURE_ARGS= +@@ -333,10 +334,9 @@ clean-shared: + link-shared: + @ set -e; for i in $(SHLIBDIRS); do \ + $(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \ +- LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \ ++ LIBNAME=$$i LIBVERSION=$(SHLIB_SONAMEVER) \ + LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \ + symlink.$(SHLIB_TARGET); \ +- libs="$$libs -l$$i"; \ + done + + build-shared: do_$(SHLIB_TARGET) link-shared +@@ -347,7 +347,7 @@ do_$(SHLIB_TARGET): + libs="$(LIBKRB5) $$libs"; \ + fi; \ + $(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \ +- LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \ ++ LIBNAME=$$i LIBVERSION=$(SHLIB_SONAMEVER) \ + LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \ + LIBDEPS="$$libs $(EX_LIBS)" \ + link_a.$(SHLIB_TARGET); \ diff --git a/src/patches/openssl-1.0.1e-cryptodev.patch b/src/patches/openssl-1.0.1e-cryptodev.patch new file mode 100644 index 0000000..29b6f77 --- /dev/null +++ b/src/patches/openssl-1.0.1e-cryptodev.patch @@ -0,0 +1,712 @@ +Patch created by Michael Tremer michael.tremer@ipfire.org from + http://download.gna.org/cryptodev-linux/cryptodev-linux-1.6.tar.gz + +diff -Nur openssl-1.0.1e-vanilla/crypto/cryptodev.h openssl-1.0.1e/crypto/cryptodev.h +--- openssl-1.0.1e-vanilla/crypto/cryptodev.h 1970-01-01 00:00:00.000000000 +0000 ++++ openssl-1.0.1e/crypto/cryptodev.h 2013-12-25 14:27:20.907326820 +0000 +@@ -0,0 +1,292 @@ ++/* This is a source compatible implementation with the original API of ++ * cryptodev by Angelos D. Keromytis, found at openbsd cryptodev.h. ++ * Placed under public domain */ ++ ++#ifndef L_CRYPTODEV_H ++#define L_CRYPTODEV_H ++ ++#include <linux/types.h> ++#ifndef __KERNEL__ ++#define __user ++#endif ++ ++/* API extensions for linux */ ++#define CRYPTO_HMAC_MAX_KEY_LEN 512 ++#define CRYPTO_CIPHER_MAX_KEY_LEN 64 ++ ++/* All the supported algorithms ++ */ ++enum cryptodev_crypto_op_t { ++ CRYPTO_DES_CBC = 1, ++ CRYPTO_3DES_CBC = 2, ++ CRYPTO_BLF_CBC = 3, ++ CRYPTO_CAST_CBC = 4, ++ CRYPTO_SKIPJACK_CBC = 5, ++ CRYPTO_MD5_HMAC = 6, ++ CRYPTO_SHA1_HMAC = 7, ++ CRYPTO_RIPEMD160_HMAC = 8, ++ CRYPTO_MD5_KPDK = 9, ++ CRYPTO_SHA1_KPDK = 10, ++ CRYPTO_RIJNDAEL128_CBC = 11, ++ CRYPTO_AES_CBC = CRYPTO_RIJNDAEL128_CBC, ++ CRYPTO_ARC4 = 12, ++ CRYPTO_MD5 = 13, ++ CRYPTO_SHA1 = 14, ++ CRYPTO_DEFLATE_COMP = 15, ++ CRYPTO_NULL = 16, ++ CRYPTO_LZS_COMP = 17, ++ CRYPTO_SHA2_256_HMAC = 18, ++ CRYPTO_SHA2_384_HMAC = 19, ++ CRYPTO_SHA2_512_HMAC = 20, ++ CRYPTO_AES_CTR = 21, ++ CRYPTO_AES_XTS = 22, ++ CRYPTO_AES_ECB = 23, ++ CRYPTO_AES_GCM = 50, ++ ++ CRYPTO_CAMELLIA_CBC = 101, ++ CRYPTO_RIPEMD160, ++ CRYPTO_SHA2_224, ++ CRYPTO_SHA2_256, ++ CRYPTO_SHA2_384, ++ CRYPTO_SHA2_512, ++ CRYPTO_SHA2_224_HMAC, ++ CRYPTO_ALGORITHM_ALL, /* Keep updated - see below */ ++}; ++ ++#define CRYPTO_ALGORITHM_MAX (CRYPTO_ALGORITHM_ALL - 1) ++ ++/* Values for ciphers */ ++#define DES_BLOCK_LEN 8 ++#define DES3_BLOCK_LEN 8 ++#define RIJNDAEL128_BLOCK_LEN 16 ++#define AES_BLOCK_LEN RIJNDAEL128_BLOCK_LEN ++#define CAMELLIA_BLOCK_LEN 16 ++#define BLOWFISH_BLOCK_LEN 8 ++#define SKIPJACK_BLOCK_LEN 8 ++#define CAST128_BLOCK_LEN 8 ++ ++/* the maximum of the above */ ++#define EALG_MAX_BLOCK_LEN 16 ++ ++/* Values for hashes/MAC */ ++#define AALG_MAX_RESULT_LEN 64 ++ ++/* maximum length of verbose alg names (depends on CRYPTO_MAX_ALG_NAME) */ ++#define CRYPTODEV_MAX_ALG_NAME 64 ++ ++#define HASH_MAX_LEN 64 ++ ++/* input of CIOCGSESSION */ ++struct session_op { ++ /* Specify either cipher or mac ++ */ ++ __u32 cipher; /* cryptodev_crypto_op_t */ ++ __u32 mac; /* cryptodev_crypto_op_t */ ++ ++ __u32 keylen; ++ __u8 __user *key; ++ __u32 mackeylen; ++ __u8 __user *mackey; ++ ++ __u32 ses; /* session identifier */ ++}; ++ ++struct session_info_op { ++ __u32 ses; /* session identifier */ ++ ++ /* verbose names for the requested ciphers */ ++ struct alg_info { ++ char cra_name[CRYPTODEV_MAX_ALG_NAME]; ++ char cra_driver_name[CRYPTODEV_MAX_ALG_NAME]; ++ } cipher_info, hash_info; ++ ++ __u16 alignmask; /* alignment constraints */ ++ __u32 flags; /* SIOP_FLAGS_* */ ++}; ++ ++/* If this flag is set then this algorithm uses ++ * a driver only available in kernel (software drivers, ++ * or drivers based on instruction sets do not set this flag). ++ * ++ * If multiple algorithms are involved (as in AEAD case), then ++ * if one of them is kernel-driver-only this flag will be set. ++ */ ++#define SIOP_FLAG_KERNEL_DRIVER_ONLY 1 ++ ++#define COP_ENCRYPT 0 ++#define COP_DECRYPT 1 ++ ++/* input of CIOCCRYPT */ ++struct crypt_op { ++ __u32 ses; /* session identifier */ ++ __u16 op; /* COP_ENCRYPT or COP_DECRYPT */ ++ __u16 flags; /* see COP_FLAG_* */ ++ __u32 len; /* length of source data */ ++ __u8 __user *src; /* source data */ ++ __u8 __user *dst; /* pointer to output data */ ++ /* pointer to output data for hash/MAC operations */ ++ __u8 __user *mac; ++ /* initialization vector for encryption operations */ ++ __u8 __user *iv; ++}; ++ ++/* input of CIOCAUTHCRYPT */ ++struct crypt_auth_op { ++ __u32 ses; /* session identifier */ ++ __u16 op; /* COP_ENCRYPT or COP_DECRYPT */ ++ __u16 flags; /* see COP_FLAG_AEAD_* */ ++ __u32 len; /* length of source data */ ++ __u32 auth_len; /* length of auth data */ ++ __u8 __user *auth_src; /* authenticated-only data */ ++ ++ /* The current implementation is more efficient if data are ++ * encrypted in-place (src==dst). */ ++ __u8 __user *src; /* data to be encrypted and authenticated */ ++ __u8 __user *dst; /* pointer to output data. Must have ++ * space for tag. For TLS this should be at least ++ * len + tag_size + block_size for padding */ ++ ++ __u8 __user *tag; /* where the tag will be copied to. TLS mode ++ * doesn't use that as tag is copied to dst. ++ * SRTP mode copies tag there. */ ++ __u32 tag_len; /* the length of the tag. Use zero for digest size or max tag. */ ++ ++ /* initialization vector for encryption operations */ ++ __u8 __user *iv; ++ __u32 iv_len; ++}; ++ ++/* In plain AEAD mode the following are required: ++ * flags : 0 ++ * iv : the initialization vector (12 bytes) ++ * auth_len: the length of the data to be authenticated ++ * auth_src: the data to be authenticated ++ * len : length of data to be encrypted ++ * src : the data to be encrypted ++ * dst : space to hold encrypted data. It must have ++ * at least a size of len + tag_size. ++ * tag_size: the size of the desired authentication tag or zero to use ++ * the maximum tag output. ++ * ++ * Note tag isn't being used because the Linux AEAD interface ++ * copies the tag just after data. ++ */ ++ ++/* In TLS mode (used for CBC ciphers that required padding) ++ * the following are required: ++ * flags : COP_FLAG_AEAD_TLS_TYPE ++ * iv : the initialization vector ++ * auth_len: the length of the data to be authenticated only ++ * len : length of data to be encrypted ++ * auth_src: the data to be authenticated ++ * src : the data to be encrypted ++ * dst : space to hold encrypted data (preferably in-place). It must have ++ * at least a size of len + tag_size + blocksize. ++ * tag_size: the size of the desired authentication tag or zero to use ++ * the default mac output. ++ * ++ * Note that the padding used is the minimum padding. ++ */ ++ ++/* In SRTP mode the following are required: ++ * flags : COP_FLAG_AEAD_SRTP_TYPE ++ * iv : the initialization vector ++ * auth_len: the length of the data to be authenticated. This must ++ * include the SRTP header + SRTP payload (data to be encrypted) + rest ++ * ++ * len : length of data to be encrypted ++ * auth_src: pointer the data to be authenticated. Should point at the same buffer as src. ++ * src : pointer to the data to be encrypted. ++ * dst : This is mandatory to be the same as src (in-place only). ++ * tag_size: the size of the desired authentication tag or zero to use ++ * the default mac output. ++ * tag : Pointer to an address where the authentication tag will be copied. ++ */ ++ ++ ++/* struct crypt_op flags */ ++ ++#define COP_FLAG_NONE (0 << 0) /* totally no flag */ ++#define COP_FLAG_UPDATE (1 << 0) /* multi-update hash mode */ ++#define COP_FLAG_FINAL (1 << 1) /* multi-update final hash mode */ ++#define COP_FLAG_WRITE_IV (1 << 2) /* update the IV during operation */ ++#define COP_FLAG_NO_ZC (1 << 3) /* do not zero-copy */ ++#define COP_FLAG_AEAD_TLS_TYPE (1 << 4) /* authenticate and encrypt using the ++ * TLS protocol rules */ ++#define COP_FLAG_AEAD_SRTP_TYPE (1 << 5) /* authenticate and encrypt using the ++ * SRTP protocol rules */ ++#define COP_FLAG_RESET (1 << 6) /* multi-update reset the state. ++ * should be used in combination ++ * with COP_FLAG_UPDATE */ ++ ++ ++/* Stuff for bignum arithmetic and public key ++ * cryptography - not supported yet by linux ++ * cryptodev. ++ */ ++ ++#define CRYPTO_ALG_FLAG_SUPPORTED 1 ++#define CRYPTO_ALG_FLAG_RNG_ENABLE 2 ++#define CRYPTO_ALG_FLAG_DSA_SHA 4 ++ ++struct crparam { ++ __u8 *crp_p; ++ __u32 crp_nbits; ++}; ++ ++#define CRK_MAXPARAM 8 ++ ++/* input of CIOCKEY */ ++struct crypt_kop { ++ __u32 crk_op; /* cryptodev_crk_ot_t */ ++ __u32 crk_status; ++ __u16 crk_iparams; ++ __u16 crk_oparams; ++ __u32 crk_pad1; ++ struct crparam crk_param[CRK_MAXPARAM]; ++}; ++ ++enum cryptodev_crk_op_t { ++ CRK_MOD_EXP = 0, ++ CRK_MOD_EXP_CRT = 1, ++ CRK_DSA_SIGN = 2, ++ CRK_DSA_VERIFY = 3, ++ CRK_DH_COMPUTE_KEY = 4, ++ CRK_ALGORITHM_ALL ++}; ++ ++#define CRK_ALGORITHM_MAX (CRK_ALGORITHM_ALL-1) ++ ++/* features to be queried with CIOCASYMFEAT ioctl ++ */ ++#define CRF_MOD_EXP (1 << CRK_MOD_EXP) ++#define CRF_MOD_EXP_CRT (1 << CRK_MOD_EXP_CRT) ++#define CRF_DSA_SIGN (1 << CRK_DSA_SIGN) ++#define CRF_DSA_VERIFY (1 << CRK_DSA_VERIFY) ++#define CRF_DH_COMPUTE_KEY (1 << CRK_DH_COMPUTE_KEY) ++ ++ ++/* ioctl's. Compatible with old linux cryptodev.h ++ */ ++#define CRIOGET _IOWR('c', 101, __u32) ++#define CIOCGSESSION _IOWR('c', 102, struct session_op) ++#define CIOCFSESSION _IOW('c', 103, __u32) ++#define CIOCCRYPT _IOWR('c', 104, struct crypt_op) ++#define CIOCKEY _IOWR('c', 105, struct crypt_kop) ++#define CIOCASYMFEAT _IOR('c', 106, __u32) ++#define CIOCGSESSINFO _IOWR('c', 107, struct session_info_op) ++ ++/* to indicate that CRIOGET is not required in linux ++ */ ++#define CRIOGET_NOT_NEEDED 1 ++ ++/* additional ioctls for AEAD */ ++#define CIOCAUTHCRYPT _IOWR('c', 109, struct crypt_auth_op) ++ ++/* additional ioctls for asynchronous operation. ++ * These are conditionally enabled since version 1.6. ++ */ ++#define CIOCASYNCCRYPT _IOW('c', 110, struct crypt_op) ++#define CIOCASYNCFETCH _IOR('c', 111, struct crypt_op) ++ ++#endif /* L_CRYPTODEV_H */ +diff -Nur openssl-1.0.1e-vanilla/crypto/engine/eng_cryptodev.c openssl-1.0.1e/crypto/engine/eng_cryptodev.c +--- openssl-1.0.1e-vanilla/crypto/engine/eng_cryptodev.c 2013-02-11 15:26:04.000000000 +0000 ++++ openssl-1.0.1e/crypto/engine/eng_cryptodev.c 2013-12-25 14:27:06.968877039 +0000 +@@ -2,6 +2,7 @@ + * Copyright (c) 2002 Bob Beck beck@openbsd.org + * Copyright (c) 2002 Theo de Raadt + * Copyright (c) 2002 Markus Friedl ++ * Copyright (c) 2012 Nikos Mavrogiannopoulos + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without +@@ -74,8 +75,6 @@ + int d_fd; + + #ifdef USE_CRYPTODEV_DIGESTS +- char dummy_mac_key[HASH_MAX_LEN]; +- + unsigned char digest_res[HASH_MAX_LEN]; + char *mac_data; + int mac_len; +@@ -157,15 +156,21 @@ + static struct { + int id; + int nid; +- int keylen; ++ int digestlen; + } digests[] = { ++#if 0 ++ /* HMAC is not supported */ + { CRYPTO_MD5_HMAC, NID_hmacWithMD5, 16}, + { CRYPTO_SHA1_HMAC, NID_hmacWithSHA1, 20}, +- { CRYPTO_RIPEMD160_HMAC, NID_ripemd160, 16/*?*/}, +- { CRYPTO_MD5_KPDK, NID_undef, 0}, +- { CRYPTO_SHA1_KPDK, NID_undef, 0}, ++ { CRYPTO_SHA2_256_HMAC, NID_hmacWithSHA256, 32}, ++ { CRYPTO_SHA2_384_HMAC, NID_hmacWithSHA384, 48}, ++ { CRYPTO_SHA2_512_HMAC, NID_hmacWithSHA512, 64}, ++#endif + { CRYPTO_MD5, NID_md5, 16}, + { CRYPTO_SHA1, NID_sha1, 20}, ++ { CRYPTO_SHA2_256, NID_sha256, 32}, ++ { CRYPTO_SHA2_384, NID_sha384, 48}, ++ { CRYPTO_SHA2_512, NID_sha512, 64}, + { 0, NID_undef, 0}, + }; + #endif +@@ -243,13 +248,14 @@ + static int nids[CRYPTO_ALGORITHM_MAX]; + struct session_op sess; + int fd, i, count = 0; ++ unsigned char fake_key[CRYPTO_CIPHER_MAX_KEY_LEN]; + + if ((fd = get_dev_crypto()) < 0) { + *cnids = NULL; + return (0); + } + memset(&sess, 0, sizeof(sess)); +- sess.key = (caddr_t)"123456789abcdefghijklmno"; ++ sess.key = (void*)fake_key; + + for (i = 0; ciphers[i].id && count < CRYPTO_ALGORITHM_MAX; i++) { + if (ciphers[i].nid == NID_undef) +@@ -281,6 +287,7 @@ + get_cryptodev_digests(const int **cnids) + { + static int nids[CRYPTO_ALGORITHM_MAX]; ++ unsigned char fake_key[CRYPTO_CIPHER_MAX_KEY_LEN]; + struct session_op sess; + int fd, i, count = 0; + +@@ -289,12 +296,12 @@ + return (0); + } + memset(&sess, 0, sizeof(sess)); +- sess.mackey = (caddr_t)"123456789abcdefghijklmno"; ++ sess.mackey = fake_key; + for (i = 0; digests[i].id && count < CRYPTO_ALGORITHM_MAX; i++) { + if (digests[i].nid == NID_undef) + continue; + sess.mac = digests[i].id; +- sess.mackeylen = digests[i].keylen; ++ sess.mackeylen = 8; + sess.cipher = 0; + if (ioctl(fd, CIOCGSESSION, &sess) != -1 && + ioctl(fd, CIOCFSESSION, &sess.ses) != -1) +@@ -382,14 +389,14 @@ + cryp.ses = sess->ses; + cryp.flags = 0; + cryp.len = inl; +- cryp.src = (caddr_t) in; +- cryp.dst = (caddr_t) out; ++ cryp.src = (void*) in; ++ cryp.dst = (void*) out; + cryp.mac = 0; + + cryp.op = ctx->encrypt ? COP_ENCRYPT : COP_DECRYPT; + + if (ctx->cipher->iv_len) { +- cryp.iv = (caddr_t) ctx->iv; ++ cryp.iv = (void*) ctx->iv; + if (!ctx->encrypt) { + iiv = in + inl - ctx->cipher->iv_len; + memcpy(save_iv, iiv, ctx->cipher->iv_len); +@@ -440,7 +447,7 @@ + if ((state->d_fd = get_dev_crypto()) < 0) + return (0); + +- sess->key = (caddr_t)key; ++ sess->key = (void*)key; + sess->keylen = ctx->key_len; + sess->cipher = cipher; + +@@ -660,18 +667,6 @@ + } + + +-static int +-digest_key_length(int nid) +-{ +- int i; +- +- for (i = 0; digests[i].id; i++) +- if (digests[i].nid == nid) +- return digests[i].keylen; +- return (0); +-} +- +- + static int cryptodev_digest_init(EVP_MD_CTX *ctx) + { + struct dev_crypto_state *state = ctx->md_data; +@@ -682,7 +677,6 @@ + printf("cryptodev_digest_init: Can't get digest \n"); + return (0); + } +- + memset(state, 0, sizeof(struct dev_crypto_state)); + + if ((state->d_fd = get_dev_crypto()) < 0) { +@@ -690,8 +684,8 @@ + return (0); + } + +- sess->mackey = state->dummy_mac_key; +- sess->mackeylen = digest_key_length(ctx->digest->type); ++ sess->mackey = NULL; ++ sess->mackeylen = 0; + sess->mac = digest; + + if (ioctl(state->d_fd, CIOCGSESSION, sess) < 0) { +@@ -707,8 +701,8 @@ + static int cryptodev_digest_update(EVP_MD_CTX *ctx, const void *data, + size_t count) + { +- struct crypt_op cryp; + struct dev_crypto_state *state = ctx->md_data; ++ struct crypt_op cryp; + struct session_op *sess = &state->d_sess; + + if (!data || state->d_fd < 0) { +@@ -717,7 +711,7 @@ + } + + if (!count) { +- return (0); ++ return (1); + } + + if (!(ctx->flags & EVP_MD_CTX_FLAG_ONESHOT)) { +@@ -740,9 +734,9 @@ + cryp.ses = sess->ses; + cryp.flags = 0; + cryp.len = count; +- cryp.src = (caddr_t) data; ++ cryp.src = (void*) data; + cryp.dst = NULL; +- cryp.mac = (caddr_t) state->digest_res; ++ cryp.mac = (void*) state->digest_res; + if (ioctl(state->d_fd, CIOCCRYPT, &cryp) < 0) { + printf("cryptodev_digest_update: digest failed\n"); + return (0); +@@ -757,8 +751,6 @@ + struct dev_crypto_state *state = ctx->md_data; + struct session_op *sess = &state->d_sess; + +- int ret = 1; +- + if (!md || state->d_fd < 0) { + printf("cryptodev_digest_final: illegal input\n"); + return(0); +@@ -772,7 +764,7 @@ + cryp.len = state->mac_len; + cryp.src = state->mac_data; + cryp.dst = NULL; +- cryp.mac = (caddr_t)md; ++ cryp.mac = (void*)md; + if (ioctl(state->d_fd, CIOCCRYPT, &cryp) < 0) { + printf("cryptodev_digest_final: digest failed\n"); + return (0); +@@ -783,7 +775,7 @@ + + memcpy(md, state->digest_res, ctx->digest->md_size); + +- return (ret); ++ return 1; + } + + +@@ -835,8 +827,8 @@ + + digest = digest_nid_to_cryptodev(to->digest->type); + +- sess->mackey = dstate->dummy_mac_key; +- sess->mackeylen = digest_key_length(to->digest->type); ++ sess->mackey = NULL; ++ sess->mackeylen = 0; + sess->mac = digest; + + dstate->d_fd = get_dev_crypto(); +@@ -861,34 +853,117 @@ + } + + +-const EVP_MD cryptodev_sha1 = { ++static const EVP_MD cryptodev_sha1 = { + NID_sha1, +- NID_undef, ++ NID_sha1WithRSAEncryption, + SHA_DIGEST_LENGTH, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif + EVP_MD_FLAG_ONESHOT, + cryptodev_digest_init, + cryptodev_digest_update, + cryptodev_digest_final, + cryptodev_digest_copy, + cryptodev_digest_cleanup, +- EVP_PKEY_NULL_method, ++ EVP_PKEY_RSA_method, + SHA_CBLOCK, +- sizeof(struct dev_crypto_state), ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), ++}; ++ ++static const EVP_MD cryptodev_sha256 = { ++ NID_sha256, ++ NID_sha256WithRSAEncryption, ++ SHA256_DIGEST_LENGTH, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif ++ EVP_MD_FLAG_ONESHOT, ++ cryptodev_digest_init, ++ cryptodev_digest_update, ++ cryptodev_digest_final, ++ cryptodev_digest_copy, ++ cryptodev_digest_cleanup, ++ EVP_PKEY_RSA_method, ++ SHA256_CBLOCK, ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), ++}; ++static const EVP_MD cryptodev_sha224 = { ++ NID_sha224, ++ NID_sha224WithRSAEncryption, ++ SHA224_DIGEST_LENGTH, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif ++ EVP_MD_FLAG_ONESHOT, ++ cryptodev_digest_init, ++ cryptodev_digest_update, ++ cryptodev_digest_final, ++ cryptodev_digest_copy, ++ cryptodev_digest_cleanup, ++ EVP_PKEY_RSA_method, ++ SHA256_CBLOCK, ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), ++}; ++ ++static const EVP_MD cryptodev_sha384 = { ++ NID_sha384, ++ NID_sha384WithRSAEncryption, ++ SHA384_DIGEST_LENGTH, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif ++ EVP_MD_FLAG_ONESHOT, ++ cryptodev_digest_init, ++ cryptodev_digest_update, ++ cryptodev_digest_final, ++ cryptodev_digest_copy, ++ cryptodev_digest_cleanup, ++ EVP_PKEY_RSA_method, ++ SHA512_CBLOCK, ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), ++}; ++ ++static const EVP_MD cryptodev_sha512 = { ++ NID_sha512, ++ NID_sha512WithRSAEncryption, ++ SHA512_DIGEST_LENGTH, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif ++ EVP_MD_FLAG_ONESHOT, ++ cryptodev_digest_init, ++ cryptodev_digest_update, ++ cryptodev_digest_final, ++ cryptodev_digest_copy, ++ cryptodev_digest_cleanup, ++ EVP_PKEY_RSA_method, ++ SHA512_CBLOCK, ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), + }; + +-const EVP_MD cryptodev_md5 = { ++static const EVP_MD cryptodev_md5 = { + NID_md5, +- NID_undef, ++ NID_md5WithRSAEncryption, + 16 /* MD5_DIGEST_LENGTH */, ++#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT) ++ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE| ++ EVP_MD_FLAG_DIGALGID_ABSENT| ++#endif + EVP_MD_FLAG_ONESHOT, + cryptodev_digest_init, + cryptodev_digest_update, + cryptodev_digest_final, + cryptodev_digest_copy, + cryptodev_digest_cleanup, +- EVP_PKEY_NULL_method, ++ EVP_PKEY_RSA_method, + 64 /* MD5_CBLOCK */, +- sizeof(struct dev_crypto_state), ++ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state), + }; + + #endif /* USE_CRYPTODEV_DIGESTS */ +@@ -909,6 +984,18 @@ + case NID_sha1: + *digest = &cryptodev_sha1; + break; ++ case NID_sha224: ++ *digest = &cryptodev_sha224; ++ break; ++ case NID_sha256: ++ *digest = &cryptodev_sha256; ++ break; ++ case NID_sha384: ++ *digest = &cryptodev_sha384; ++ break; ++ case NID_sha512: ++ *digest = &cryptodev_sha512; ++ break; + default: + #endif /* USE_CRYPTODEV_DIGESTS */ + *digest = NULL; +@@ -940,7 +1027,7 @@ + return (1); + memset(b, 0, bytes); + +- crp->crp_p = (caddr_t) b; ++ crp->crp_p = (void*) b; + crp->crp_nbits = bits; + + for (i = 0, j = 0; i < a->top; i++) { +@@ -1193,7 +1280,7 @@ + kop.crk_op = CRK_DSA_SIGN; + + /* inputs: dgst dsa->p dsa->q dsa->g dsa->priv_key */ +- kop.crk_param[0].crp_p = (caddr_t)dgst; ++ kop.crk_param[0].crp_p = (void*)dgst; + kop.crk_param[0].crp_nbits = dlen * 8; + if (bn2crparam(dsa->p, &kop.crk_param[1])) + goto err; +@@ -1233,7 +1320,7 @@ + kop.crk_op = CRK_DSA_VERIFY; + + /* inputs: dgst dsa->p dsa->q dsa->g dsa->pub_key sig->r sig->s */ +- kop.crk_param[0].crp_p = (caddr_t)dgst; ++ kop.crk_param[0].crp_p = (void*)dgst; + kop.crk_param[0].crp_nbits = dlen * 8; + if (bn2crparam(dsa->p, &kop.crk_param[1])) + goto err; +@@ -1311,9 +1398,10 @@ + goto err; + kop.crk_iparams = 3; + +- kop.crk_param[3].crp_p = (caddr_t) key; +- kop.crk_param[3].crp_nbits = keylen * 8; ++ kop.crk_param[3].crp_p = (void*) key; ++ kop.crk_param[3].crp_nbits = keylen; + kop.crk_oparams = 1; ++ dhret = keylen/8; + + if (ioctl(fd, CIOCKEY, &kop) == -1) { + const DH_METHOD *meth = DH_OpenSSL(); +@@ -1385,7 +1473,7 @@ + put_dev_crypto(fd); + + if (!ENGINE_set_id(engine, "cryptodev") || +- !ENGINE_set_name(engine, "BSD cryptodev engine") || ++ !ENGINE_set_name(engine, "cryptodev engine") || + !ENGINE_set_ciphers(engine, cryptodev_engine_ciphers) || + !ENGINE_set_digests(engine, cryptodev_engine_digests) || + !ENGINE_set_ctrl_function(engine, cryptodev_ctrl) || diff --git a/src/patches/openssl-1.0.1e-fix_parallel_build-1.patch b/src/patches/openssl-1.0.1e-fix_parallel_build-1.patch new file mode 100644 index 0000000..855e4fe --- /dev/null +++ b/src/patches/openssl-1.0.1e-fix_parallel_build-1.patch @@ -0,0 +1,340 @@ +Submitted By: Armin K. <krejzi at email dot com> +Date: 2013-05-05 +Initial Package Version: 1.0.1e +Upstream Status: Unknown +Origin: https://github.com/Alexpux/Qt-builds/tree/master/patches/openssl +Description: Fixes build with make -jx, where x is greater than 1. + +--- a/crypto/Makefile 2013-02-11 16:26:04.000000000 +0100 ++++ b/crypto/Makefile 2013-05-05 20:06:34.872208113 +0200 +@@ -86,11 +86,11 @@ + @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi + + subdirs: +- @target=all; $(RECURSIVE_MAKE) ++ +@target=all; $(RECURSIVE_MAKE) + + files: + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO +- @target=files; $(RECURSIVE_MAKE) ++ +@target=files; $(RECURSIVE_MAKE) + + links: + @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER) +@@ -101,7 +101,7 @@ + # lib: $(LIB): are splitted to avoid end-less loop + lib: $(LIB) + @touch lib +-$(LIB): $(LIBOBJ) ++$(LIB): $(LIBOBJ) | subdirs + $(AR) $(LIB) $(LIBOBJ) + [ -z "$(FIPSLIBDIR)" ] || $(AR) $(LIB) $(FIPSLIBDIR)fipscanister.o + $(RANLIB) $(LIB) || echo Never mind. +@@ -112,7 +112,7 @@ + fi + + libs: +- @target=lib; $(RECURSIVE_MAKE) ++ +@target=lib; $(RECURSIVE_MAKE) + + install: + @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... +@@ -121,7 +121,7 @@ + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ + done; +- @target=install; $(RECURSIVE_MAKE) ++ +@target=install; $(RECURSIVE_MAKE) + + lint: + @target=lint; $(RECURSIVE_MAKE) +--- a/engines/Makefile 2013-02-11 16:26:04.000000000 +0100 ++++ b/engines/Makefile 2013-05-05 20:06:34.872208113 +0200 +@@ -72,7 +72,7 @@ + + all: lib subdirs + +-lib: $(LIBOBJ) ++lib: $(LIBOBJ) | subdirs + @if [ -n "$(SHARED_LIBS)" ]; then \ + set -e; \ + for l in $(LIBNAMES); do \ +@@ -89,7 +89,7 @@ + + subdirs: + echo $(EDIRS) +- @target=all; $(RECURSIVE_MAKE) ++ +@target=all; $(RECURSIVE_MAKE) + + files: + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO +@@ -128,7 +128,7 @@ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ + done; \ + fi +- @target=install; $(RECURSIVE_MAKE) ++ +@target=install; $(RECURSIVE_MAKE) + + tags: + ctags $(SRC) +--- a/Makefile.org 2013-02-11 16:26:04.000000000 +0100 ++++ b/Makefile.org 2013-05-05 20:06:34.862207917 +0200 +@@ -273,17 +273,17 @@ + build_libs: build_crypto build_ssl build_engines + + build_crypto: +- @dir=crypto; target=all; $(BUILD_ONE_CMD) +-build_ssl: +- @dir=ssl; target=all; $(BUILD_ONE_CMD) +-build_engines: +- @dir=engines; target=all; $(BUILD_ONE_CMD) +-build_apps: +- @dir=apps; target=all; $(BUILD_ONE_CMD) +-build_tests: +- @dir=test; target=all; $(BUILD_ONE_CMD) +-build_tools: +- @dir=tools; target=all; $(BUILD_ONE_CMD) ++ +@dir=crypto; target=all; $(BUILD_ONE_CMD) ++build_ssl: build_crypto ++ +@dir=ssl; target=all; $(BUILD_ONE_CMD) ++build_engines: build_crypto ++ +@dir=engines; target=all; $(BUILD_ONE_CMD) ++build_apps: build_libs ++ +@dir=apps; target=all; $(BUILD_ONE_CMD) ++build_tests: build_libs ++ +@dir=test; target=all; $(BUILD_ONE_CMD) ++build_tools: build_libs ++ +@dir=tools; target=all; $(BUILD_ONE_CMD) + + all_testapps: build_libs build_testapps + build_testapps: +@@ -537,9 +537,9 @@ + dist_pem_h: + (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + +-install: all install_docs install_sw ++install: install_docs install_sw + +-install_sw: ++install_dirs: + @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ + $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \ + $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \ +@@ -548,12 +548,19 @@ + $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ + $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ + $(INSTALL_PREFIX)$(OPENSSLDIR)/private ++ @$(PERL) $(TOP)/util/mkdir-p.pl \ ++ $(INSTALL_PREFIX)$(MANDIR)/man1 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man3 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man5 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man7 ++ ++install_sw: install_dirs + @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\ + do \ + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ + done; +- @set -e; target=install; $(RECURSIVE_BUILD_CMD) ++ +@set -e; target=install; $(RECURSIVE_BUILD_CMD) + @set -e; liblist="$(LIBS)"; for i in $$liblist ;\ + do \ + if [ -f "$$i" ]; then \ +@@ -633,12 +640,7 @@ + done; \ + done + +-install_docs: +- @$(PERL) $(TOP)/util/mkdir-p.pl \ +- $(INSTALL_PREFIX)$(MANDIR)/man1 \ +- $(INSTALL_PREFIX)$(MANDIR)/man3 \ +- $(INSTALL_PREFIX)$(MANDIR)/man5 \ +- $(INSTALL_PREFIX)$(MANDIR)/man7 ++install_docs: install_dirs + @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \ + here="`pwd`"; \ + filecase=; \ +--- a/Makefile.shared 2013-02-11 16:26:04.000000000 +0100 ++++ b/Makefile.shared 2013-05-05 20:06:34.872208113 +0200 +@@ -105,6 +105,7 @@ + SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ + LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ + LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ ++ [ -e $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX ] && exit 0; \ + LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ + $${SHAREDCMD} $${SHAREDFLAGS} \ + -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ +@@ -122,6 +123,7 @@ + done; \ + fi; \ + if [ -n "$$SHLIB_SOVER" ]; then \ ++ [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \ + ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \ + ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \ + fi; \ +--- a/test/Makefile 2013-02-11 16:26:04.000000000 +0100 ++++ b/test/Makefile 2013-05-05 20:06:34.872208113 +0200 +@@ -124,7 +124,7 @@ + tags: + ctags $(SRC) + +-tests: exe apps $(TESTS) ++tests: exe $(TESTS) + + apps: + @(cd ..; $(MAKE) DIRS=apps all) +@@ -365,109 +365,109 @@ + link_app.$${shlib_target} + + $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO) +- @target=$(RSATEST); $(BUILD_CMD) ++ +@target=$(RSATEST); $(BUILD_CMD) + + $(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO) +- @target=$(BNTEST); $(BUILD_CMD) ++ +@target=$(BNTEST); $(BUILD_CMD) + + $(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO) +- @target=$(ECTEST); $(BUILD_CMD) ++ +@target=$(ECTEST); $(BUILD_CMD) + + $(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO) +- @target=$(EXPTEST); $(BUILD_CMD) ++ +@target=$(EXPTEST); $(BUILD_CMD) + + $(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO) +- @target=$(IDEATEST); $(BUILD_CMD) ++ +@target=$(IDEATEST); $(BUILD_CMD) + + $(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO) +- @target=$(MD2TEST); $(BUILD_CMD) ++ +@target=$(MD2TEST); $(BUILD_CMD) + + $(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO) +- @target=$(SHATEST); $(BUILD_CMD) ++ +@target=$(SHATEST); $(BUILD_CMD) + + $(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO) +- @target=$(SHA1TEST); $(BUILD_CMD) ++ +@target=$(SHA1TEST); $(BUILD_CMD) + + $(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO) +- @target=$(SHA256TEST); $(BUILD_CMD) ++ +@target=$(SHA256TEST); $(BUILD_CMD) + + $(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO) +- @target=$(SHA512TEST); $(BUILD_CMD) ++ +@target=$(SHA512TEST); $(BUILD_CMD) + + $(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO) +- @target=$(RMDTEST); $(BUILD_CMD) ++ +@target=$(RMDTEST); $(BUILD_CMD) + + $(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO) +- @target=$(MDC2TEST); $(BUILD_CMD) ++ +@target=$(MDC2TEST); $(BUILD_CMD) + + $(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO) +- @target=$(MD4TEST); $(BUILD_CMD) ++ +@target=$(MD4TEST); $(BUILD_CMD) + + $(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO) +- @target=$(MD5TEST); $(BUILD_CMD) ++ +@target=$(MD5TEST); $(BUILD_CMD) + + $(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO) +- @target=$(HMACTEST); $(BUILD_CMD) ++ +@target=$(HMACTEST); $(BUILD_CMD) + + $(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO) +- @target=$(WPTEST); $(BUILD_CMD) ++ +@target=$(WPTEST); $(BUILD_CMD) + + $(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO) +- @target=$(RC2TEST); $(BUILD_CMD) ++ +@target=$(RC2TEST); $(BUILD_CMD) + + $(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO) +- @target=$(BFTEST); $(BUILD_CMD) ++ +@target=$(BFTEST); $(BUILD_CMD) + + $(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO) +- @target=$(CASTTEST); $(BUILD_CMD) ++ +@target=$(CASTTEST); $(BUILD_CMD) + + $(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO) +- @target=$(RC4TEST); $(BUILD_CMD) ++ +@target=$(RC4TEST); $(BUILD_CMD) + + $(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO) +- @target=$(RC5TEST); $(BUILD_CMD) ++ +@target=$(RC5TEST); $(BUILD_CMD) + + $(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO) +- @target=$(DESTEST); $(BUILD_CMD) ++ +@target=$(DESTEST); $(BUILD_CMD) + + $(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO) +- @target=$(RANDTEST); $(BUILD_CMD) ++ +@target=$(RANDTEST); $(BUILD_CMD) + + $(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO) +- @target=$(DHTEST); $(BUILD_CMD) ++ +@target=$(DHTEST); $(BUILD_CMD) + + $(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO) +- @target=$(DSATEST); $(BUILD_CMD) ++ +@target=$(DSATEST); $(BUILD_CMD) + + $(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO) +- @target=$(METHTEST); $(BUILD_CMD) ++ +@target=$(METHTEST); $(BUILD_CMD) + + $(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO) +- @target=$(SSLTEST); $(FIPS_BUILD_CMD) ++ +@target=$(SSLTEST); $(FIPS_BUILD_CMD) + + $(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO) +- @target=$(ENGINETEST); $(BUILD_CMD) ++ +@target=$(ENGINETEST); $(BUILD_CMD) + + $(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO) +- @target=$(EVPTEST); $(BUILD_CMD) ++ +@target=$(EVPTEST); $(BUILD_CMD) + + $(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO) +- @target=$(ECDSATEST); $(BUILD_CMD) ++ +@target=$(ECDSATEST); $(BUILD_CMD) + + $(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO) +- @target=$(ECDHTEST); $(BUILD_CMD) ++ +@target=$(ECDHTEST); $(BUILD_CMD) + + $(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO) +- @target=$(IGETEST); $(BUILD_CMD) ++ +@target=$(IGETEST); $(BUILD_CMD) + + $(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO) +- @target=$(JPAKETEST); $(BUILD_CMD) ++ +@target=$(JPAKETEST); $(BUILD_CMD) + + $(ASN1TEST)$(EXE_EXT): $(ASN1TEST).o $(DLIBCRYPTO) +- @target=$(ASN1TEST); $(BUILD_CMD) ++ +@target=$(ASN1TEST); $(BUILD_CMD) + + $(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO) +- @target=$(SRPTEST); $(BUILD_CMD) ++ +@target=$(SRPTEST); $(BUILD_CMD) + + #$(AESTEST).o: $(AESTEST).c + # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c +@@ -480,7 +480,7 @@ + # fi + + dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO) +- @target=dummytest; $(BUILD_CMD) ++ +@target=dummytest; $(BUILD_CMD) + + # DO NOT DELETE THIS LINE -- make depend depends on it. + diff --git a/src/patches/openssl-1.0.1e-weak-ciphers.patch b/src/patches/openssl-1.0.1e-weak-ciphers.patch new file mode 100644 index 0000000..8657345 --- /dev/null +++ b/src/patches/openssl-1.0.1e-weak-ciphers.patch @@ -0,0 +1,12 @@ +diff -up openssl-1.0.1e/ssl/ssl.h.weak-ciphers openssl-1.0.1e/ssl/ssl.h +--- openssl-1.0.1e/ssl/ssl.h.weak-ciphers 2013-12-18 15:50:40.881620314 +0100 ++++ openssl-1.0.1e/ssl/ssl.h 2013-12-18 14:25:25.596566704 +0100 +@@ -331,7 +331,7 @@ extern "C" { + /* The following cipher list is used by default. + * It also is substituted when an application-defined cipher list string + * starts with 'DEFAULT'. */ +-#define SSL_DEFAULT_CIPHER_LIST "ALL:!aNULL:!eNULL:!SSLv2" ++#define SSL_DEFAULT_CIPHER_LIST "ALL:!aNULL:!eNULL:!SSLv2:!EXPORT:!RC2:!DES" + /* As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always + * starts with a reasonable order, and all we have to do for DEFAULT is + * throwing out anonymous and unencrypted ciphersuites! diff --git a/src/patches/strongswan-4.5.3_ipfire.patch b/src/patches/strongswan-4.5.3_ipfire.patch deleted file mode 100644 index 2ba975b..0000000 --- a/src/patches/strongswan-4.5.3_ipfire.patch +++ /dev/null @@ -1,342 +0,0 @@ -diff -Naur strongswan-4.5.3.org/src/_updown/_updown.in strongswan-4.5.3/src/_updown/_updown.in ---- strongswan-4.5.3.org/src/_updown/_updown.in 2010-10-22 16:33:30.000000000 +0200 -+++ strongswan-4.5.3/src/_updown/_updown.in 2011-09-13 14:19:31.000000000 +0200 -@@ -183,6 +183,29 @@ - ;; - esac - -+function ip_encode() { -+ local IFS=. -+ -+ local int=0 -+ for field in $1; do -+ int=$(( $(( $int << 8 )) | $field )) -+ done -+ -+ echo $int -+} -+ -+function ip_in_subnet() { -+ local netmask -+ netmask=$(_netmask $2) -+ [ $(( $(ip_encode $1) & $netmask)) = $(( $(ip_encode ${2%/*}) & $netmask )) ] -+} -+ -+function _netmask() { -+ local vlsm -+ vlsm=${1#*/} -+ [ $vlsm -eq 0 ] && echo 0 || echo $(( -1 << $(( 32 - $vlsm )) )) -+} -+ - # utility functions for route manipulation - # Meddling with this stuff should not be necessary and requires great care. - uproute() { -@@ -387,12 +410,12 @@ - # connection to me, with (left/right)firewall=yes, coming up - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 - # - # log IPsec host connection setup - if [ $VPN_LOGGING ] -@@ -400,10 +423,10 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" -+ "host+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" - else - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" -+ "host+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" - fi - fi - ;; -@@ -411,12 +434,12 @@ - # connection to me, with (left/right)firewall=yes, going down - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 - # - # log IPsec host connection teardown - if [ $VPN_LOGGING ] -@@ -424,10 +447,10 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" -+ "host- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" - else - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" -+ "host- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" - fi - fi - ;; -@@ -437,10 +460,10 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] - then -- iptables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT -- iptables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 -+ iptables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - fi -@@ -449,12 +472,12 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 - fi - # - # log IPsec client connection setup -@@ -463,12 +486,51 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - else - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - fi - fi -+ -+ # -+ # Open Firewall for IPinIP + AH + ESP Traffic -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p IP \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p AH \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p ESP \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ if [ $VPN_LOGGING ] -+ then -+ logger -t $TAG -p $FAC_PRIO \ -+ "tunnel+ $PLUTO_PEER -- $PLUTO_ME" -+ fi -+ -+ # Add source nat so also the gateway can access the other nets -+ eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) -+ for _src in ${GREEN_ADDRESS} ${BLUE_ADDRESS} ${ORANGE_ADDRESS}; do -+ ip_in_subnet "${_src}" "${PLUTO_MY_CLIENT}" -+ if [ $? -eq 0 ]; then -+ src=${_src} -+ break -+ fi -+ done -+ -+ if [ -n "${src}" ]; then -+ iptables -t nat -A IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src -+ logger -t $TAG -p $FAC_PRIO \ -+ "snat+ $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" -+ else -+ logger -t $TAG -p $FAC_PRIO \ -+ "Cannot create NAT rule because no IP of the IPFire does match the subnet. $PLUTO_MY_CLIENT" -+ fi -+ -+ # Flush routing cache -+ ip route flush cache - ;; - down-client:iptables) - # connection to client subnet, with (left/right)firewall=yes, going down -@@ -476,11 +538,11 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] - then -- iptables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ -- $IPSEC_POLICY_OUT -j ACCEPT -- iptables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ $IPSEC_POLICY_OUT -j MARK --set-mark 50 -+ iptables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -@@ -490,14 +552,14 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ -- $IPSEC_POLICY_OUT -j ACCEPT -+ $IPSEC_POLICY_OUT -j MARK --set-mark 50 - fi - # - # log IPsec client connection teardown -@@ -506,12 +568,51 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - else - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - fi - fi -+ -+ # -+ # Close Firewall for IPinIP + AH + ESP Traffic -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p IP \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p AH \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p ESP \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ if [ $VPN_LOGGING ] -+ then -+ logger -t $TAG -p $FAC_PRIO \ -+ "tunnel- $PLUTO_PEER -- $PLUTO_ME" -+ fi -+ -+ # remove source nat -+ eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) -+ for _src in ${GREEN_ADDRESS} ${BLUE_ADDRESS} ${ORANGE_ADDRESS}; do -+ ip_in_subnet "${_src}" "${PLUTO_MY_CLIENT}" -+ if [ $? -eq 0 ]; then -+ src=${_src} -+ break -+ fi -+ done -+ -+ if [ -n "${src}" ]; then -+ iptables -t nat -D IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src -+ logger -t $TAG -p $FAC_PRIO \ -+ "snat- $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" -+ else -+ logger -t $TAG -p $FAC_PRIO \ -+ "Cannot remove NAT rule because no IP of the IPFire does match the subnet." -+ fi -+ -+ # Flush routing cache -+ ip route flush cache - ;; - # - # IPv6 -@@ -546,10 +647,10 @@ - # connection to me, with (left/right)firewall=yes, coming up - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT - # -@@ -570,10 +671,10 @@ - # connection to me, with (left/right)firewall=yes, going down - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT - # -@@ -596,10 +697,10 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] - then -- ip6tables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT -- ip6tables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - fi -@@ -608,10 +709,10 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT - fi -@@ -635,11 +736,11 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] - then -- ip6tables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ - $IPSEC_POLICY_OUT -j ACCEPT -- ip6tables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -@@ -649,11 +750,11 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ - $IPSEC_POLICY_OUT -j ACCEPT diff --git a/src/patches/strongswan-5.0.2_ipfire.patch b/src/patches/strongswan-5.0.2_ipfire.patch new file mode 100644 index 0000000..6606095 --- /dev/null +++ b/src/patches/strongswan-5.0.2_ipfire.patch @@ -0,0 +1,348 @@ +diff --git a/src/_updown/_updown.in b/src/_updown/_updown.in +index 3a40e21..d9f3ea0 100644 +--- a/src/_updown/_updown.in ++++ b/src/_updown/_updown.in +@@ -193,6 +193,29 @@ custom:*) # custom parameters (see above CAUTION comment) + ;; + esac + ++function ip_encode() { ++ local IFS=. ++ ++ local int=0 ++ for field in $1; do ++ int=$(( $(( $int << 8 )) | $field )) ++ done ++ ++ echo $int ++} ++ ++function ip_in_subnet() { ++ local netmask ++ netmask=$(_netmask $2) ++ [ $(( $(ip_encode $1) & $netmask)) = $(( $(ip_encode ${2%/*}) & $netmask )) ] ++} ++ ++function _netmask() { ++ local vlsm ++ vlsm=${1#*/} ++ [ $vlsm -eq 0 ] && echo 0 || echo $(( -1 << $(( 32 - $vlsm )) )) ++} ++ + # utility functions for route manipulation + # Meddling with this stuff should not be necessary and requires great care. + uproute() { +@@ -397,12 +420,12 @@ up-host:iptables) + # connection to me, with (left/right)firewall=yes, coming up + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 + # + # log IPsec host connection setup + if [ $VPN_LOGGING ] +@@ -410,10 +433,10 @@ up-host:iptables) + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" ++ "host+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" + else + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" ++ "host+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" + fi + fi + ;; +@@ -421,12 +444,12 @@ down-host:iptables) + # connection to me, with (left/right)firewall=yes, going down + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 + # + # log IPsec host connection teardown + if [ $VPN_LOGGING ] +@@ -434,10 +457,10 @@ down-host:iptables) + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" ++ "host- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" + else + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" ++ "host- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" + fi + fi + ;; +@@ -447,24 +470,24 @@ up-client:iptables) + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] + then +- iptables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT +- iptables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 ++ iptables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ +- -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT ++ -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j RETURN + fi + # + # a virtual IP requires an INPUT and OUTPUT rule on the host + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 + fi + # + # log IPsec client connection setup +@@ -473,12 +496,51 @@ up-client:iptables) + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + else + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + fi + fi ++ ++ # ++ # Open Firewall for IPinIP + AH + ESP Traffic ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p IP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p AH \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p ESP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ if [ $VPN_LOGGING ] ++ then ++ logger -t $TAG -p $FAC_PRIO \ ++ "tunnel+ $PLUTO_PEER -- $PLUTO_ME" ++ fi ++ ++ # Add source nat so also the gateway can access the other nets ++ eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) ++ for _src in ${GREEN_ADDRESS} ${BLUE_ADDRESS} ${ORANGE_ADDRESS}; do ++ ip_in_subnet "${_src}" "${PLUTO_MY_CLIENT}" ++ if [ $? -eq 0 ]; then ++ src=${_src} ++ break ++ fi ++ done ++ ++ if [ -n "${src}" ]; then ++ iptables -t nat -A IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src ++ logger -t $TAG -p $FAC_PRIO \ ++ "snat+ $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" ++ else ++ logger -t $TAG -p $FAC_PRIO \ ++ "Cannot create NAT rule because no IP of the IPFire does match the subnet. $PLUTO_MY_CLIENT" ++ fi ++ ++ # Flush routing cache ++ ip route flush cache + ;; + down-client:iptables) + # connection to client subnet, with (left/right)firewall=yes, going down +@@ -486,28 +548,28 @@ down-client:iptables) + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] + then +- iptables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ +- $IPSEC_POLICY_OUT -j ACCEPT +- iptables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ $IPSEC_POLICY_OUT -j MARK --set-mark 50 ++ iptables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ +- $IPSEC_POLICY_IN -j ACCEPT ++ $IPSEC_POLICY_IN -j RETURN + fi + # + # a virtual IP requires an INPUT and OUTPUT rule on the host + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ + $IPSEC_POLICY_IN -j ACCEPT +- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ +- $IPSEC_POLICY_OUT -j ACCEPT ++ $IPSEC_POLICY_OUT -j MARK --set-mark 50 + fi + # + # log IPsec client connection teardown +@@ -516,12 +578,51 @@ down-client:iptables) + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + else + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + fi + fi ++ ++ # ++ # Close Firewall for IPinIP + AH + ESP Traffic ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p IP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p AH \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p ESP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ if [ $VPN_LOGGING ] ++ then ++ logger -t $TAG -p $FAC_PRIO \ ++ "tunnel- $PLUTO_PEER -- $PLUTO_ME" ++ fi ++ ++ # remove source nat ++ eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) ++ for _src in ${GREEN_ADDRESS} ${BLUE_ADDRESS} ${ORANGE_ADDRESS}; do ++ ip_in_subnet "${_src}" "${PLUTO_MY_CLIENT}" ++ if [ $? -eq 0 ]; then ++ src=${_src} ++ break ++ fi ++ done ++ ++ if [ -n "${src}" ]; then ++ iptables -t nat -D IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src ++ logger -t $TAG -p $FAC_PRIO \ ++ "snat- $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" ++ else ++ logger -t $TAG -p $FAC_PRIO \ ++ "Cannot remove NAT rule because no IP of the IPFire does match the subnet." ++ fi ++ ++ # Flush routing cache ++ ip route flush cache + ;; + # + # IPv6 +@@ -556,10 +657,10 @@ up-host-v6:iptables) + # connection to me, with (left/right)firewall=yes, coming up + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT + # +@@ -580,10 +681,10 @@ down-host-v6:iptables) + # connection to me, with (left/right)firewall=yes, going down + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT + # +@@ -606,10 +707,10 @@ up-client-v6:iptables) + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] + then +- ip6tables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT +- ip6tables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT + fi +@@ -618,10 +719,10 @@ up-client-v6:iptables) + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT + fi +@@ -645,11 +746,11 @@ down-client-v6:iptables) + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] + then +- ip6tables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ + $IPSEC_POLICY_OUT -j ACCEPT +- ip6tables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ + $IPSEC_POLICY_IN -j ACCEPT +@@ -659,11 +760,11 @@ down-client-v6:iptables) + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ + $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ + $IPSEC_POLICY_OUT -j ACCEPT diff --git a/src/patches/udev-208_remove_systemd_log.patch b/src/patches/udev-208_remove_systemd_log.patch new file mode 100644 index 0000000..927de1e --- /dev/null +++ b/src/patches/udev-208_remove_systemd_log.patch @@ -0,0 +1,12 @@ +diff -Naur systemd-208.org/src/libudev/libudev-util.c systemd-208/src/libudev/libudev-util.c +--- systemd-208.org/src/libudev/libudev-util.c 2013-09-23 21:31:55.000000000 +0200 ++++ systemd-208/src/libudev/libudev-util.c 2013-11-19 23:18:10.326350131 +0100 +@@ -481,7 +481,7 @@ + if (fd < 0) + return -errno; + +- len = snprintf(text, sizeof(text), "<30>systemd-udevd[%u]: ", getpid()); ++ len = snprintf(text, sizeof(text), "udevd[%u]: ", getpid()); + + va_start(ap, fmt); + len += vsnprintf(text + len, sizeof(text) - len, fmt, ap); diff --git a/src/patches/util-linux-2.12r-cramfs-1.patch b/src/patches/util-linux-2.12r-cramfs-1.patch deleted file mode 100644 index b8366b3..0000000 --- a/src/patches/util-linux-2.12r-cramfs-1.patch +++ /dev/null @@ -1,93 +0,0 @@ -Submitted by: Jeremy Utley jeremy@linuxfromscratch.org -Date: 2004-12-25 -Initial Package Version: 2.12p (should apply to versions back to at least k) -Upstream Status: Not Submitted - Test Version -Origin: Alexander Patrakov, adapted from debian build of cramfs utilities -Description: Util-Linux fails in cramfs compilation due to changes in the -linux-libc-headers package 2.6.9 and after. This patch is a proper fix to the -problem, but may in fact not be accepted upstream. - - -diff -Naur util-linux-2.12p/disk-utils/fsck.cramfs.c util-linux-2.12p-new/disk-utils/fsck.cramfs.c ---- util-linux-2.12p/disk-utils/fsck.cramfs.c 2004-12-11 14:53:16.000000000 +0000 -+++ util-linux-2.12p-new/disk-utils/fsck.cramfs.c 2004-12-26 00:53:10.665199086 +0000 -@@ -76,16 +76,7 @@ - - #define PAD_SIZE 512 - --#include <asm/page.h> --#ifdef PAGE_SIZE --#define PAGE_CACHE_SIZE ((int) PAGE_SIZE) --#elif defined __ia64__ --#define PAGE_CACHE_SIZE (16384) --#elif defined __alpha__ --#define PAGE_CACHE_SIZE (8192) --#else --#define PAGE_CACHE_SIZE (4096) --#endif -+#define PAGE_CACHE_SIZE page_size - - /* Guarantee access to at least 8kB at a time */ - #define ROMBUFFER_BITS 13 -@@ -95,11 +86,13 @@ - static unsigned long read_buffer_block = ~0UL; - - /* Uncompressing data structures... */ --static char outbuffer[PAGE_CACHE_SIZE*2]; -+static char *outbuffer; - z_stream stream; - - #endif /* INCLUDE_FS_TESTS */ - -+static size_t page_size; -+ - /* Input status of 0 to print help and exit without an error. */ - static void usage(int status) - { -@@ -464,9 +457,17 @@ - int c; /* for getopt */ - int start = 0; - -+ page_size = sysconf(_SC_PAGESIZE); -+ - if (argc) - progname = argv[0]; - -+ outbuffer = malloc(page_size * 2); -+ if (!outbuffer) { -+ fprintf(stderr, _("failed to allocate outbuffer\n")); -+ exit(8); -+ } -+ - /* command line options */ - while ((c = getopt(argc, argv, "hx:v")) != EOF) { - switch (c) { -diff -Naur util-linux-2.12p/disk-utils/mkfs.cramfs.c util-linux-2.12p-new/disk-utils/mkfs.cramfs.c ---- util-linux-2.12p/disk-utils/mkfs.cramfs.c 2004-12-11 14:56:01.000000000 +0000 -+++ util-linux-2.12p-new/disk-utils/mkfs.cramfs.c 2004-12-26 00:53:10.666198928 +0000 -@@ -46,16 +46,8 @@ - static const char *progname = "mkcramfs"; - static int verbose = 0; - --#ifdef __ia64__ --#define PAGE_CACHE_SIZE (16384) --#elif defined __alpha__ --#define PAGE_CACHE_SIZE (8192) --#else --#define PAGE_CACHE_SIZE (4096) --#endif -- - /* The kernel assumes PAGE_CACHE_SIZE as block size. */ --static unsigned int blksize = PAGE_CACHE_SIZE; /* settable via -b option */ -+static unsigned int blksize; /* settable via -b option */ - static long total_blocks = 0, total_nodes = 1; /* pre-count the root node */ - static int image_length = 0; - -@@ -730,6 +722,7 @@ - u32 crc = crc32(0L, Z_NULL, 0); - int c; - -+ blksize = sysconf(_SC_PAGESIZE); - total_blocks = 0; - - if (argc) { diff --git a/src/patches/util-linux-2.12r-umount-no-special.patch b/src/patches/util-linux-2.12r-umount-no-special.patch deleted file mode 100644 index d79598f..0000000 --- a/src/patches/util-linux-2.12r-umount-no-special.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.12r.old/mount/umount.c -+++ util-linux-2.12r/mount/umount.c -@@ -31,7 +31,7 @@ - #include <arpa/inet.h> - #endif - --#if defined(MNT_FORCE) && !defined(__sparc__) && !defined(__arm__) -+#if defined(MNT_FORCE) - /* Interesting ... it seems libc knows about MNT_FORCE and presumably - about umount2 as well -- need not do anything */ - #else /* MNT_FORCE */ diff --git a/src/patches/util-linux-buildfix.patch b/src/patches/util-linux-buildfix.patch deleted file mode 100644 index 3d578e4..0000000 --- a/src/patches/util-linux-buildfix.patch +++ /dev/null @@ -1,272 +0,0 @@ -Submitted By: Dan Nicholson <dbn_dot_lists_at_gmail_dot_com> -Date: 2006-07-08 -Initial Package Version: 2.12r -Origin: Upstream -Upstream Status: Applied in util-linux-2.13-pre6.tar.bz2 -Description: Replaces uses of *llseek with lseek. Fixes an issue - compiling util-linux with kernel headers from linux-2.6.18-rc1 - headers_install. - -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/Makefile util-linux-2.12r/fdisk/Makefile ---- util-linux-2.12r.orig/fdisk/Makefile 2004-09-06 20:28:58.000000000 +0000 -+++ util-linux-2.12r/fdisk/Makefile 2006-07-08 15:40:57.140375072 +0000 -@@ -39,7 +39,7 @@ else - endif - endif - --cfdisk: cfdisk.o llseek.o disksize.o i386_sys_types.o $(LIB)/xstrncpy.o -+cfdisk: cfdisk.o disksize.o i386_sys_types.o $(LIB)/xstrncpy.o - ifeq "$(HAVE_SLANG)" "yes" - $(CC) $(LDFLAGS) $^ -o $@ $(LIBSLANG) - else -@@ -55,7 +55,7 @@ activate: sfdisk - rm -f activate - ln -s sfdisk activate - --fdisk: fdisk.o llseek.o disksize.o fdiskbsdlabel.o fdisksgilabel.o \ -+fdisk: fdisk.o disksize.o fdiskbsdlabel.o fdisksgilabel.o \ - fdisksunlabel.o fdiskaixlabel.o i386_sys_types.o partname.o - fdisk.o: fdisk.c fdisk.h - fdiskbsdlabel.o: fdiskbsdlabel.c fdisk.h fdiskbsdlabel.h -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/cfdisk.c util-linux-2.12r/fdisk/cfdisk.c ---- util-linux-2.12r.orig/fdisk/cfdisk.c 2005-09-09 21:44:57.000000000 +0000 -+++ util-linux-2.12r/fdisk/cfdisk.c 2006-07-08 15:40:23.458901045 +0000 -@@ -84,9 +84,6 @@ - #include "xstrncpy.h" - #include "common.h" - --extern long long ext2_llseek(unsigned int fd, long long offset, -- unsigned int origin); -- - #define VERSION UTIL_LINUX_VERSION - - #define DEFAULT_DEVICE "/dev/hda" -@@ -552,7 +549,7 @@ die_x(int ret) { - - static void - read_sector(char *buffer, long long sect_num) { -- if (ext2_llseek(fd, sect_num*SECTOR_SIZE, SEEK_SET) < 0) -+ if (lseek(fd, sect_num*SECTOR_SIZE, SEEK_SET) < 0) - fatal(_("Cannot seek on disk drive"), 2); - if (read(fd, buffer, SECTOR_SIZE) != SECTOR_SIZE) - fatal(_("Cannot read disk drive"), 2); -@@ -560,7 +557,7 @@ read_sector(char *buffer, long long sect - - static void - write_sector(char *buffer, long long sect_num) { -- if (ext2_llseek(fd, sect_num*SECTOR_SIZE, SEEK_SET) < 0) -+ if (lseek(fd, sect_num*SECTOR_SIZE, SEEK_SET) < 0) - fatal(_("Cannot seek on disk drive"), 2); - if (write(fd, buffer, SECTOR_SIZE) != SECTOR_SIZE) - fatal(_("Cannot write disk drive"), 2); -@@ -587,7 +584,7 @@ get_dos_label(int i) { - long long offset; - - offset = (p_info[i].first_sector + p_info[i].offset) * SECTOR_SIZE; -- if (ext2_llseek(fd, offset, SEEK_SET) == offset -+ if (lseek(fd, offset, SEEK_SET) == offset - && read(fd, §or, sizeof(sector)) == sizeof(sector)) { - dos_copy_to_info(p_info[i].ostype, OSTYPESZ, - sector+DOS_OSTYPE_OFFSET, DOS_OSTYPE_SZ); -@@ -672,7 +669,7 @@ get_linux_label(int i) { - - offset = (p_info[i].first_sector + p_info[i].offset) * SECTOR_SIZE - + 1024; -- if (ext2_llseek(fd, offset, SEEK_SET) == offset -+ if (lseek(fd, offset, SEEK_SET) == offset - && read(fd, &e2fsb, sizeof(e2fsb)) == sizeof(e2fsb) - && e2fsb.s_magic[0] + (e2fsb.s_magic[1]<<8) == EXT2_SUPER_MAGIC) { - label = e2fsb.s_volume_name; -@@ -688,7 +685,7 @@ get_linux_label(int i) { - } - - offset = (p_info[i].first_sector + p_info[i].offset) * SECTOR_SIZE + 0; -- if (ext2_llseek(fd, offset, SEEK_SET) == offset -+ if (lseek(fd, offset, SEEK_SET) == offset - && read(fd, &xfsb, sizeof(xfsb)) == sizeof(xfsb) - && !strncmp(xfsb.s_magic, XFS_SUPER_MAGIC, 4)) { - label = xfsb.s_fname; -@@ -702,7 +699,7 @@ get_linux_label(int i) { - /* jfs? */ - offset = (p_info[i].first_sector + p_info[i].offset) * SECTOR_SIZE - + JFS_SUPER1_OFF; -- if (ext2_llseek(fd, offset, SEEK_SET) == offset -+ if (lseek(fd, offset, SEEK_SET) == offset - && read(fd, &jfsb, sizeof(jfsb)) == sizeof(jfsb) - && !strncmp(jfsb.s_magic, JFS_MAGIC, strlen(JFS_MAGIC))) { - label = jfsb.s_label; -@@ -716,7 +713,7 @@ get_linux_label(int i) { - /* reiserfs? */ - offset = (p_info[i].first_sector + p_info[i].offset) * SECTOR_SIZE - + REISERFS_DISK_OFFSET_IN_BYTES; -- if (ext2_llseek(fd, offset, SEEK_SET) == offset -+ if (lseek(fd, offset, SEEK_SET) == offset - && read(fd, &reiserfsb, sizeof(reiserfsb)) == sizeof(reiserfsb) - && has_reiserfs_magic_string(&reiserfsb, &reiserfs_is_3_6)) { - if (reiserfs_is_3_6) { -@@ -1860,7 +1857,7 @@ write_part_table(void) { - - while (!done) { - mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X, -- _("Are you sure you want write the partition table " -+ _("Are you sure you want to write the partition table " - "to disk? (yes or no): ")); - len = get_string(response, LINE_LENGTH, NULL); - clear_warning(); -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/fdisk.c util-linux-2.12r/fdisk/fdisk.c ---- util-linux-2.12r.orig/fdisk/fdisk.c 2004-12-18 02:00:31.000000000 +0000 -+++ util-linux-2.12r/fdisk/fdisk.c 2006-07-08 15:40:23.461899841 +0000 -@@ -239,8 +239,8 @@ void fatal(enum failure why) { - - static void - seek_sector(int fd, unsigned int secno) { -- long long offset = (long long) secno * sector_size; -- if (ext2_llseek(fd, offset, SEEK_SET) == (long long) -1) -+ off_t offset = (off_t) secno * sector_size; -+ if (lseek(fd, offset, SEEK_SET) == (off_t) -1) - fatal(unable_to_seek); - } - -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/fdisk.h util-linux-2.12r/fdisk/fdisk.h ---- util-linux-2.12r.orig/fdisk/fdisk.h 2004-12-15 18:19:06.000000000 +0000 -+++ util-linux-2.12r/fdisk/fdisk.h 2006-07-08 15:40:23.462899439 +0000 -@@ -26,9 +26,6 @@ - #define cround(n) (display_in_cyl_units ? ((n)/units_per_sector)+1 : (n)) - #define scround(x) (((x)+units_per_sector-1)/units_per_sector) - --extern long long ext2_llseek(unsigned int fd, long long offset, -- unsigned int origin); -- - #if defined(__GNUC__) && (defined(__arm__) || defined(__alpha__)) - # define PACKED __attribute__ ((packed)) - #else -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/fdiskbsdlabel.c util-linux-2.12r/fdisk/fdiskbsdlabel.c ---- util-linux-2.12r.orig/fdisk/fdiskbsdlabel.c 2003-07-13 21:12:47.000000000 +0000 -+++ util-linux-2.12r/fdisk/fdiskbsdlabel.c 2006-07-08 15:40:23.463899038 +0000 -@@ -566,7 +566,7 @@ xbsd_write_bootstrap (void) - sector = get_start_sect(xbsd_part); - #endif - -- if (ext2_llseek (fd, (long long) sector * SECTOR_SIZE, SEEK_SET) == -1) -+ if (lseek (fd, (off_t) sector * SECTOR_SIZE, SEEK_SET) == -1) - fatal (unable_to_seek); - if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) - fatal (unable_to_write); -@@ -735,7 +735,7 @@ xbsd_readlabel (struct partition *p, str - sector = 0; - #endif - -- if (ext2_llseek (fd, (long long) sector * SECTOR_SIZE, SEEK_SET) == -1) -+ if (lseek (fd, (off_t) sector * SECTOR_SIZE, SEEK_SET) == -1) - fatal (unable_to_seek); - if (BSD_BBSIZE != read (fd, disklabelbuffer, BSD_BBSIZE)) - fatal (unable_to_read); -@@ -781,12 +781,12 @@ xbsd_writelabel (struct partition *p, st - - #if defined (__alpha__) && BSD_LABELSECTOR == 0 - alpha_bootblock_checksum (disklabelbuffer); -- if (ext2_llseek (fd, (long long) 0, SEEK_SET) == -1) -+ if (lseek (fd, (off_t) 0, SEEK_SET) == -1) - fatal (unable_to_seek); - if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) - fatal (unable_to_write); - #else -- if (ext2_llseek (fd, (long long) sector * SECTOR_SIZE + BSD_LABELOFFSET, -+ if (lseek (fd, (off_t) sector * SECTOR_SIZE + BSD_LABELOFFSET, - SEEK_SET) == -1) - fatal (unable_to_seek); - if (sizeof (struct xbsd_disklabel) != write (fd, d, sizeof (struct xbsd_disklabel))) -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/fdisksgilabel.c util-linux-2.12r/fdisk/fdisksgilabel.c ---- util-linux-2.12r.orig/fdisk/fdisksgilabel.c 2004-12-18 01:53:45.000000000 +0000 -+++ util-linux-2.12r/fdisk/fdisksgilabel.c 2006-07-08 15:40:23.464898637 +0000 -@@ -379,7 +379,7 @@ sgi_write_table(void) { - */ - sgiinfo *info = fill_sgiinfo(); - int infostartblock = SSWAP32(sgilabel->directory[0].vol_file_start); -- if (ext2_llseek(fd, (long long)infostartblock* -+ if (lseek(fd, (off_t) infostartblock* - SECTOR_SIZE, SEEK_SET) < 0) - fatal(unable_to_seek); - if (write(fd, info, SECTOR_SIZE) != SECTOR_SIZE) -diff -pur -x '*.rej' util-linux-2.12r.orig/fdisk/sfdisk.c util-linux-2.12r/fdisk/sfdisk.c ---- util-linux-2.12r.orig/fdisk/sfdisk.c 2005-01-04 22:31:57.000000000 +0000 -+++ util-linux-2.12r/fdisk/sfdisk.c 2006-07-08 15:40:23.467897432 +0000 -@@ -164,36 +164,17 @@ fatal(char *s, ...) { - /* - * sseek: seek to specified sector - return 0 on failure - * -- * For >4GB disks lseek needs a > 32bit arg, and we have to use llseek. -- * On the other hand, a 32 bit sector number is OK until 2TB. -- * The routines _llseek and sseek below are the only ones that -- * know about the loff_t type. -- * - * Note: we use 512-byte sectors here, irrespective of the hardware ss. - */ --#undef use_lseek --#if defined (__alpha__) || defined (__ia64__) || defined (__x86_64__) || defined (__s390x__) --#define use_lseek --#endif -- --#ifndef use_lseek --static __attribute__used --_syscall5(int, _llseek, unsigned int, fd, ulong, hi, ulong, lo, -- loff_t *, res, unsigned int, wh); --#endif - - static int - sseek(char *dev, unsigned int fd, unsigned long s) { -- loff_t in, out; -- in = ((loff_t) s << 9); -+ off_t in, out; -+ in = ((off_t) s << 9); - out = 1; - --#ifndef use_lseek -- if (_llseek (fd, in>>32, in & 0xffffffff, &out, SEEK_SET) != 0) { --#else - if ((out = lseek(fd, in, SEEK_SET)) != in) { --#endif -- perror("llseek"); -+ perror("lseek"); - error(_("seek error on %s - cannot seek to %lu\n"), dev, s); - return 0; - } -diff -pur -x '*.rej' util-linux-2.12r.orig/partx/partx.c util-linux-2.12r/partx/partx.c ---- util-linux-2.12r.orig/partx/partx.c 2004-08-23 20:13:27.000000000 +0000 -+++ util-linux-2.12r/partx/partx.c 2006-07-08 15:40:23.469896630 +0000 -@@ -330,34 +330,15 @@ xmalloc (size_t size) { - return t; - } - --/* -- * sseek: seek to specified sector -- */ --#if !defined (__alpha__) && !defined (__ia64__) && !defined (__s390x__) && !defined(__x86_64__) --#define NEED__llseek --#endif -- --#ifdef NEED__llseek --#include <linux/unistd.h> /* _syscall */ --static --_syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, -- long long *, res, uint, wh); --#endif -- - static int - sseek(int fd, unsigned int secnr) { - long long in, out; - in = ((long long) secnr << 9); - out = 1; - --#ifdef NEED__llseek -- if (_llseek (fd, in>>32, in & 0xffffffff, &out, SEEK_SET) != 0 -- || out != in) --#else - if ((out = lseek(fd, in, SEEK_SET)) != in) --#endif - { -- fprintf(stderr, "llseek error\n"); -+ fprintf(stderr, "lseek error\n"); - return -1; - } - return 0; diff --git a/src/patches/vim-7.2-fixes-4.patch b/src/patches/vim-7.2-fixes-4.patch deleted file mode 100644 index d6c1bfd..0000000 --- a/src/patches/vim-7.2-fixes-4.patch +++ /dev/null @@ -1,5414 +0,0 @@ -Submitted By: Matt Burgess <matthew_at_linuxfromscratch_dot_org> -Date: 2008-12-06 -Initial Package Version: 7.2 -Upstream Status: Already in upstream patch repo -Origin: Upstream -Description: This patch is upstream patch numbers 1 thru 65. - -diff -Naur vim72.orig/Filelist vim72/Filelist ---- vim72.orig/Filelist 2008-07-06 19:02:23.000000000 +0100 -+++ vim72/Filelist 2008-12-06 11:37:48.000000000 +0000 -@@ -285,6 +285,7 @@ - src/proto/os_win32.pro \ - src/proto/os_mswin.pro \ - src/testdir/Make_dos.mak \ -+ src/testdir/Make_ming.mak \ - src/testdir/dos.vim \ - src/uninstal.c \ - src/vim.def \ -diff -Naur vim72.orig/runtime/doc/cmdline.txt vim72/runtime/doc/cmdline.txt ---- vim72.orig/runtime/doc/cmdline.txt 2008-08-09 15:22:59.000000000 +0100 -+++ vim72/runtime/doc/cmdline.txt 2008-12-06 11:37:49.000000000 +0000 -@@ -1,4 +1,4 @@ --*cmdline.txt* For Vim version 7.2. Last change: 2008 Jul 29 -+*cmdline.txt* For Vim version 7.2. Last change: 2008 Sep 18 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -157,6 +157,11 @@ - (doesn't work at the expression prompt; some - things such as changing the buffer or current - window are not allowed to avoid side effects) -+ When the result is a |List| the items are used -+ as lines. They can have line breaks inside -+ too. -+ When the result is a Float it's automatically -+ converted to a String. - See |registers| about registers. {not in Vi} - Implementation detail: When using the |expression| register - and invoking setcmdpos(), this sets the position before -@@ -730,19 +735,29 @@ - In Ex commands, at places where a file name can be used, the following - characters have a special meaning. These can also be used in the expression - function expand() |expand()|. -- % is replaced with the current file name *:_%* -- # is replaced with the alternate file name *:_#* -+ % Is replaced with the current file name. *:_%* *c_%* -+ # Is replaced with the alternate file name. *:_#* *c_#* - #n (where n is a number) is replaced with the file name of -- buffer n. "#0" is the same as "#" -- ## is replaced with all names in the argument list *:_##* -+ buffer n. "#0" is the same as "#". -+ ## Is replaced with all names in the argument list *:_##* *c_##* - concatenated, separated by spaces. Each space in a name - is preceded with a backslash. --Note that these give the file name as it was typed. If an absolute path is --needed (when using the file name from a different directory), you need to add --":p". See |filename-modifiers|. -+ #<n (where n is a number > 0) is replaced with old *:_#<* *c_#<* -+ file name n. See |:oldfiles| or |v:oldfiles| to get the -+ number. *E809* -+ {only when compiled with the +eval and +viminfo features} -+ -+Note that these, except "#<n", give the file name as it was typed. If an -+absolute path is needed (when using the file name from a different directory), -+you need to add ":p". See |filename-modifiers|. -+ -+The "#<n" item returns an absolute path, but it will start with "~/" for files -+below your home directory. -+ - Note that backslashes are inserted before spaces, so that the command will - correctly interpret the file name. But this doesn't happen for shell --commands. For those you probably have to use quotes: > -+commands. For those you probably have to use quotes (this fails for files -+that contain a quote and wildcards): > - :!ls "%" - :r !spell "%" - -diff -Naur vim72.orig/runtime/doc/eval.txt vim72/runtime/doc/eval.txt ---- vim72.orig/runtime/doc/eval.txt 2008-08-09 15:22:59.000000000 +0100 -+++ vim72/runtime/doc/eval.txt 2008-12-06 11:37:50.000000000 +0000 -@@ -1,4 +1,4 @@ --*eval.txt* For Vim version 7.2. Last change: 2008 Aug 09 -+*eval.txt* For Vim version 7.2. Last change: 2008 Nov 27 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -1484,6 +1484,17 @@ - This is the screen column number, like with |virtcol()|. The - value is zero when there was no mouse button click. - -+ *v:oldfiles* *oldfiles-variable* -+v:oldfiles List of file names that is loaded from the |viminfo| file on -+ startup. These are the files that Vim remembers marks for. -+ The length of the List is limited by the ' argument of the -+ 'viminfo' option (default is 100). -+ Also see |:oldfiles| and |c_#<|. -+ The List can be modified, but this has no effect on what is -+ stored in the |viminfo| file later. If you use values other -+ than String this will cause trouble. -+ {only when compiled with the +viminfo feature} -+ - *v:operator* *operator-variable* - v:operator The last operator given in Normal mode. This is a single - character except for commands starting with <g> or <z>, -@@ -1695,7 +1706,7 @@ - exists( {expr}) Number TRUE if {expr} exists - extend({expr1}, {expr2} [, {expr3}]) - List/Dict insert items of {expr2} into {expr1} --expand( {expr}) String expand special keywords in {expr} -+expand( {expr} [, {flag}]) String expand special keywords in {expr} - feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer - filereadable( {file}) Number TRUE if {file} is a readable file - filewritable( {file}) Number TRUE if {file} is a writable file -@@ -1747,8 +1758,9 @@ - getwinposx() Number X coord in pixels of GUI Vim window - getwinposy() Number Y coord in pixels of GUI Vim window - getwinvar( {nr}, {varname}) any variable {varname} in window {nr} --glob( {expr}) String expand file wildcards in {expr} --globpath( {path}, {expr}) String do glob({expr}) for all dirs in {path} -+glob( {expr} [, {flag}]) String expand file wildcards in {expr} -+globpath( {path}, {expr} [, {flag}]) -+ String do glob({expr}) for all dirs in {path} - has( {feature}) Number TRUE if feature {feature} supported - has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} - haslocaldir() Number TRUE if current window executed |:lcd| -@@ -3275,14 +3287,16 @@ - :let list_is_on = getwinvar(2, '&list') - :echo "myvar = " . getwinvar(1, 'myvar') - < -- *glob()* --glob({expr}) Expand the file wildcards in {expr}. See |wildcards| for the -+glob({expr} [, {flag}]) *glob()* -+ Expand the file wildcards in {expr}. See |wildcards| for the - use of special characters. - The result is a String. - When there are several matches, they are separated by <NL> - characters. -- The 'wildignore' option applies: Names matching one of the -- patterns in 'wildignore' will be skipped. -+ Unless the optional {flag} argument is given and is non-zero, -+ the 'suffixes' and 'wildignore' options apply: Names matching -+ one of the patterns in 'wildignore' will be skipped and -+ 'suffixes' affect the ordering of matches. - If the expansion fails, the result is an empty string. - A name for a non-existing file is not included. - -@@ -3296,20 +3310,22 @@ - See |expand()| for expanding special Vim variables. See - |system()| for getting the raw output of an external command. - --globpath({path}, {expr}) *globpath()* -+globpath({path}, {expr} [, {flag}]) *globpath()* - Perform glob() on all directories in {path} and concatenate - the results. Example: > - :echo globpath(&rtp, "syntax/c.vim") - < {path} is a comma-separated list of directory names. Each - directory name is prepended to {expr} and expanded like with -- glob(). A path separator is inserted when needed. -+ |glob()|. A path separator is inserted when needed. - To add a comma inside a directory name escape it with a - backslash. Note that on MS-Windows a directory may have a - trailing backslash, remove it if you put a comma after it. - If the expansion fails for one of the directories, there is no - error message. -- The 'wildignore' option applies: Names matching one of the -- patterns in 'wildignore' will be skipped. -+ Unless the optional {flag} argument is given and is non-zero, -+ the 'suffixes' and 'wildignore' options apply: Names matching -+ one of the patterns in 'wildignore' will be skipped and -+ 'suffixes' affect the ordering of matches. - - The "**" item can be used to search in a directory tree. - For example, to find all "README.txt" files in the directories -@@ -5332,10 +5348,12 @@ - "fg" foreground color (GUI: color name used to set - the color, cterm: color number as a string, - term: empty string) -- "bg" background color (like "fg") -+ "bg" background color (as with "fg") -+ "sp" special color (as with "fg") |highlight-guisp| - "fg#" like "fg", but for the GUI and the GUI is - running the name in "#RRGGBB" form - "bg#" like "fg#" for "bg" -+ "sp#" like "fg#" for "sp" - "bold" "1" if bold - "italic" "1" if italic - "reverse" "1" if reverse -diff -Naur vim72.orig/runtime/doc/options.txt vim72/runtime/doc/options.txt ---- vim72.orig/runtime/doc/options.txt 2008-08-09 15:22:59.000000000 +0100 -+++ vim72/runtime/doc/options.txt 2008-12-06 11:37:50.000000000 +0000 -@@ -1,4 +1,4 @@ --*options.txt* For Vim version 7.2. Last change: 2008 Aug 06 -+*options.txt* For Vim version 7.2. Last change: 2008 Nov 25 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -7472,7 +7472,9 @@ - {not available when compiled without the |+wildignore| - feature} - A list of file patterns. A file that matches with one of these -- patterns is ignored when completing file or directory names. -+ patterns is ignored when completing file or directory names, and -+ influences the result of |expand()|, |glob()| and |globpath()| unless -+ a flag is passed to disable this. - The pattern is used like with |:autocmd|, see |autocmd-patterns|. - Also see 'suffixes'. - Example: > -diff -Naur vim72.orig/runtime/doc/os_vms.txt vim72/runtime/doc/os_vms.txt ---- vim72.orig/runtime/doc/os_vms.txt 2008-08-09 15:23:00.000000000 +0100 -+++ vim72/runtime/doc/os_vms.txt 2008-12-06 11:37:48.000000000 +0000 -@@ -1,4 +1,4 @@ --*os_vms.txt* For Vim version 7.2. Last change: 2006 Nov 18 -+*os_vms.txt* For Vim version 7.2. Last change: 2008 Aug 19 - - - VIM REFERENCE MANUAL -@@ -312,7 +312,7 @@ - - 8. Useful notes *vms-notes* - --8.1 backspace/delete -+8.1 Backspace/delete - 8.2 Filters - 8.3 VMS file version numbers - 8.4 Directory conversion -@@ -326,8 +326,10 @@ - 8.12 diff-mode - 8.13 Allow '$' in C keywords - 8.14 VIMTUTOR for beginners -+8.15 Slow start in console mode issue -+8.16 Common VIM directory - different architectures - --8.1 backspace/delete -+8.1 Backspace/delete - - There are backspace/delete key inconsistencies with VMS. - :fixdel doesn't do the trick, but the solution is: > -@@ -663,12 +665,130 @@ - - (Thomas.R.Wyant III, Vim 6.1) - -+8.14 Slow start in console mode issue -+ -+As GUI/GTK Vim works equally well in console mode, many administartors -+deploy those executables system wide. -+Unfortunately, on a remote slow connections GUI/GTK executables behave rather -+slow when user wants to run Vim just in the console mode - because of X environment detection timeout. -+ -+Luckily, there is a simple solution for that. Administrators need to deploy -+both GUI/GTK build and just console build executables, like below: > -+ -+ |- vim72 -+ |----- doc -+ |----- syntax -+ vimrc (system rc files) -+ gvimrc -+ gvim.exe (the remaned GUI or GTK built vim.exe) -+ vim.exe (the console only executable) -+ -+Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: > -+ -+ $ define/nolog VIM RF10:[UTIL.VIM72] ! where you VIM directory is -+ $ vi*m :== mcr VIM:VIM.EXE -+ $ gvi*m :== mcr VIM:GVIM.EXE -+ $ ! or you can try to spawn with -+ $ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40 -+ -+ -+Like this, users that do not have X environment and want to use Vim just in -+console mode can avoid performance problems. -+ -+(Zoltan Arpadffy, Vim 7.2) -+ -+8.15 Common VIM directory - different architectures -+ -+In a cluster that contains nodes with different architectures like below: -+ -+$show cluster -+View of Cluster from system ID 11655 node: TOR 18-AUG-2008 11:58:31 -++---------------------------------+ -+Š SYSTEMS Š MEMBERS Š -++-----------------------+---------Š -+Š NODE Š SOFTWARE Š STATUS Š -++--------+--------------+---------Š -+Š TOR Š VMS V7.3-2 Š MEMBER Š -+Š TITAN2 Š VMS V8.3 Š MEMBER Š -+Š ODIN Š VMS V7.3-2 Š MEMBER Š -++---------------------------------+ -+ -+It is convinient to have a common VIM directory but execute different -+executables. -+There are more solutions for this problem: -+ -+solution 1. all executables in the same directory with different names -+This is easily done with the following script that can be added -+to the login.com or sylogin.com: > -+ -+ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" -+ $ then -+ $ say "VAX platform" -+ $ vi*m:== mcr vim:VIM.EXE_VAX -+ $ endif -+ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" -+ $ then -+ $ say "ALPHA platform" -+ $ vi*m :== mcr vim:VIM.EXE_AXP -+ $ endif -+ $ if f$getsyi("ARCH_NAME") .eqs. "IA64" -+ $ then -+ $ say "IA64 platform" -+ $ vi*m :== mcr vim:VIM.EXE_IA64 -+ $ endif -+ -+solution 2. different directories: > -+ -+ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" -+ $ then -+ $ say "VAX platform" -+ $ define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables -+ $ endif -+ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" -+ $ then -+ $ say "ALPHA platform" -+ $ define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables -+ $ endif -+ $ if f$getsyi("ARCH_NAME") .eqs. "IA64" -+ $ then -+ $ say "IA64 platform" -+ $ define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables -+ $ endif -+ $! VIMRUNTIME must be defined in order to find runtime files -+ $ define/nolog VIMRUNTIME RF10:[UTIL.VIM72] -+ -+A good examle for this approach is the [GNU]gnu_tools.com script from GNU_TOOLS.ZIP -+package downloadable from http://www.polarhome.com/vim/ -+ -+(Zoltan Arpadffy, Vim 7.2) -+ - ============================================================================== - - 9. VMS related changes *vms-changes* - --Version 7 -+Recent changes -+- The following plugins are included into VMS runtime: -+ genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3, -+ bufexplorer 7.1.7, taglist 4.5 -+- minor changes in vimrc (just in VMS runtime) -+- make_vms.mms - HUGE model is the default -+- [TESTDIR]make_vms.mms include as many tests possible -+- modify test30 and test54 for VMS -+- enable FLOAT feature in VMS port -+- os_vms.txt updated -+ -+Version 7.2 (2008 Aug 9) -+- VCF files write corrected -+- CTAGS 5.7 included -+- corrected make_vms.mms (on VAX gave syntax error) -+ -+Version 7.1 (2007 Jun 15) -+- create TAGS file from menu -+ -+Version 7 (2006 May 8) - - Improved low level char input (affects just console mode) -+- Fixed plugin bug -+- CTAGS 5.6 included - - Version 6.4 (2005 Oct 15) - - GTKLIB and Vim build on IA64 -@@ -806,6 +926,7 @@ - - OpenVMS documentation and executables are maintained by: - Zoltan Arpadffy arpadffy@polarhome.com -+OpenVMS Vim page: http://www.polarhome.com/vim/ - - This document uses parts and remarks from earlier authors and contributors - of OS_VMS.TXT: -diff -Naur vim72.orig/runtime/doc/spell.txt vim72/runtime/doc/spell.txt ---- vim72.orig/runtime/doc/spell.txt 2008-08-09 15:23:00.000000000 +0100 -+++ vim72/runtime/doc/spell.txt 2008-12-06 11:37:50.000000000 +0000 -@@ -1,4 +1,4 @@ --*spell.txt* For Vim version 7.2. Last change: 2008 Jun 21 -+*spell.txt* For Vim version 7.2. Last change: 2008 Nov 30 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -831,8 +831,11 @@ - - # comment line ~ - --With some items it's also possible to put a comment after it, but this isn't --supported in general. -+Items with a fixed number of arguments can be followed by a comment. But only -+if none of the arguments can contain white space. The comment must start with -+a "#" character. Example: -+ -+ KEEPCASE = # fix case for words with this flag ~ - - - ENCODING *spell-SET* -@@ -965,6 +968,9 @@ - - Note: When using utf-8 only characters up to 65000 may be used for flags. - -+Note: even when using "num" or "long" the number of flags available to -+compounding and prefixes is limited to about 250. -+ - - AFFIXES - *spell-PFX* *spell-SFX* -@@ -1178,6 +1184,9 @@ - The flag also applies to the word with affixes, thus this can be used to mark - a whole bunch of related words as bad. - -+ *spell-FORBIDDENWORD* -+FORBIDDENWORD can be used just like BAD. For compatibility with Hunspell. -+ - *spell-NEEDAFFIX* - The NEEDAFFIX flag is used to require that a word is used with an affix. The - word itself is not a good word (unless there is an empty affix). Example: -@@ -1268,6 +1277,10 @@ - - NEEDCOMPOUND & ~ - -+ *spell-ONLYINCOMPOUND* -+The ONLYINCOMPOUND does exactly the same as NEEDCOMPOUND. Supported for -+compatiblity with Hunspell. -+ - *spell-COMPOUNDMIN* - The minimal character length of a word used for compounding is specified with - COMPOUNDMIN. Example: -@@ -1328,6 +1341,20 @@ - rules. Can also be used for an affix to count the affix as a compounding - word. - -+ *spell-CHECKCOMPOUNDPATTERN* -+CHECKCOMPOUNDPATTERN is used to define patterns that, when matching at the -+position where two words are compounded together forbids the compound. -+For example: -+ CHECKCOMPOUNDPATTERN o e ~ -+ -+This forbids compounding if the first word ends in "o" and the second word -+starts with "e". -+ -+The arguments must be plain text, no patterns are actually supported, despite -+the item name. Case is always ignored. -+ -+The Hunspell feature to use three arguments and flags is not supported. -+ - *spell-SYLLABLE* - The SYLLABLE item defines characters or character sequences that are used to - count the number of syllables in a word. Example: -@@ -1496,6 +1523,10 @@ - ACCENT (Hunspell) *spell-ACCENT* - Use MAP instead. |spell-MAP| - -+BREAK (Hunspell) *spell-BREAK* -+ Define break points. Unclear how it works exactly. -+ Not supported. -+ - CHECKCOMPOUNDCASE (Hunspell) *spell-CHECKCOMPOUNDCASE* - Disallow uppercase letters at compound word boundaries. - Not supported. -@@ -1512,9 +1543,6 @@ - Forbid three identical characters when compounding. Not - supported. - --CHECKCOMPOUNDPATTERN (Hunspell) *spell-CHECKCOMPOUNDPATTERN* -- Forbid compounding when patterns match. Not supported. -- - COMPLEXPREFIXES (Hunspell) *spell-COMPLEXPREFIXES* - Enables using two prefixes. Not supported. - -@@ -1536,13 +1564,18 @@ - COMPOUNDMIDDLE (Hunspell) *spell-COMPOUNDMIDDLE* - Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| - -+COMPOUNDRULES (Hunspell) *spell-COMPOUNDRULES* -+ Number of COMPOUNDRULE lines following. Ignored, but the -+ argument must be a number. -+ - COMPOUNDSYLLABLE (Hunspell) *spell-COMPOUNDSYLLABLE* - Use SYLLABLE and COMPOUNDSYLMAX instead. |spell-SYLLABLE| - |spell-COMPOUNDSYLMAX| - --FORBIDDENWORD (Hunspell) *spell-FORBIDDENWORD* -- Use BAD instead. |spell-BAD| -- -+KEY (Hunspell) *spell-KEY* -+ Define characters that are close together on the keyboard. -+ Used to give better suggestions. Not supported. -+ - LANG (Hunspell) *spell-LANG* - This specifies language-specific behavior. This actually - moves part of the language knowledge into the program, -@@ -1553,10 +1586,7 @@ - Only needed for morphological analysis. - - MAXNGRAMSUGS (Hunspell) *spell-MAXNGRAMSUGS* -- Not supported. -- --ONLYINCOMPOUND (Hunspell) *spell-ONLYINCOMPOUND* -- Use NEEDCOMPOUND instead. |spell-NEEDCOMPOUND| -+ Set number of n-gram suggestions. Not supported. - - PSEUDOROOT (Hunspell) *spell-PSEUDOROOT* - Use NEEDAFFIX instead. |spell-NEEDAFFIX| -diff -Naur vim72.orig/runtime/doc/starting.txt vim72/runtime/doc/starting.txt ---- vim72.orig/runtime/doc/starting.txt 2008-08-09 15:23:00.000000000 +0100 -+++ vim72/runtime/doc/starting.txt 2008-12-06 11:37:49.000000000 +0000 -@@ -1,4 +1,4 @@ --*starting.txt* For Vim version 7.2. Last change: 2008 Jun 21 -+*starting.txt* For Vim version 7.2. Last change: 2008 Nov 09 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -1337,8 +1337,9 @@ - *viminfo-read* - When Vim is started and the 'viminfo' option is non-empty, the contents of - the viminfo file are read and the info can be used in the appropriate places. --The marks are not read in at startup (but file marks are). See --|initialization| for how to set the 'viminfo' option upon startup. -+The |v:oldfiles| variable is filled. The marks are not read in at startup -+(but file marks are). See |initialization| for how to set the 'viminfo' -+option upon startup. - - *viminfo-write* - When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo -@@ -1372,6 +1373,8 @@ - that start with any string given with the "r" flag in 'viminfo'. This can be - used to avoid saving marks for files on removable media (for MS-DOS you would - use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:"). -+The |v:oldfiles| variable is filled with the file names that the viminfo file -+has marks for. - - *viminfo-file-marks* - Uppercase marks ('A to 'Z) are stored when writing the viminfo file. The -@@ -1463,8 +1466,8 @@ - *:rv* *:rviminfo* *E195* - :rv[iminfo][!] [file] Read from viminfo file [file] (default: see above). - If [!] is given, then any information that is -- already set (registers, marks, etc.) will be -- overwritten. {not in Vi} -+ already set (registers, marks, |v:oldfiles|, etc.) -+ will be overwritten {not in Vi} - - *:wv* *:wviminfo* *E137* *E138* *E574* - :wv[iminfo][!] [file] Write to viminfo file [file] (default: see above). -@@ -1479,4 +1482,20 @@ - the .viminfo file. - {not in Vi} - -+ *:ol* *:oldfiles* -+:ol[dfiles] List the files that have marks stored in the viminfo -+ file. This list is read on startup and only changes -+ afterwards with ":rviminfo!". Also see |v:oldfiles|. -+ The number can be used with |c_#<|. -+ {not in Vi, only when compiled with the +eval feature} -+ -+:bro[wse] ol[dfiles][!] -+ List file names as with |:oldfiles|, and then prompt -+ for a number. When the number is valid that file from -+ the list is edited. -+ If you get the |press-enter| prompt you can press "q" -+ and still get the prompt to enter a file number. -+ Use ! to abondon a modified buffer. |abandon| -+ {not when compiled with tiny or small features} -+ - vim:tw=78:ts=8:ft=help:norl: -diff -Naur vim72.orig/runtime/doc/usr_21.txt vim72/runtime/doc/usr_21.txt ---- vim72.orig/runtime/doc/usr_21.txt 2008-08-09 15:23:01.000000000 +0100 -+++ vim72/runtime/doc/usr_21.txt 2008-12-06 11:37:49.000000000 +0000 -@@ -1,4 +1,4 @@ --*usr_21.txt* For Vim version 7.2. Last change: 2007 May 01 -+*usr_21.txt* For Vim version 7.2. Last change: 2008 Nov 09 - - VIM USER MANUAL - by Bram Moolenaar - -@@ -153,7 +153,7 @@ - to be lost. Each item can be remembered only once. - - --GETTING BACK TO WHERE YOU WERE -+GETTING BACK TO WHERE YOU STOPPED VIM - - You are halfway editing a file and it's time to leave for holidays. You exit - Vim and go enjoy yourselves, forgetting all about your work. After a couple -@@ -168,6 +168,48 @@ - The |:marks| command is useful to find out where '0 to '9 will take you. - - -+GETTING BACK TO SOME FILE -+ -+If you want to go back to a file that you edited recently, but not when -+exiting Vim, there is a slightly more complicated way. You can see a list of -+files by typing the command: > -+ -+ :oldfiles -+< 1: ~/.viminfo ~ -+ 2: ~/text/resume.txt ~ -+ 3: /tmp/draft ~ -+ -+Now you would like to edit the second file, which is in the list preceded by -+"2:". You type: > -+ -+ :e #<2 -+ -+Instead of ":e" you can use any command that has a file name argument, the -+"#<2" item works in the same place as "%" (current file name) and "#" -+(alternate file name). So you can also split the window to edit the third -+file: > -+ -+ :split #<3 -+ -+That #<123 thing is a bit complicated when you just want to edit a file. -+Fortunately there is a simpler way: > -+ -+ :browse oldfiles -+< 1: ~/.viminfo ~ -+ 2: ~/text/resume.txt ~ -+ 3: /tmp/draft ~ -+ -- More -- -+ -+You get the same list of files as with |:oldfiles|. If you want to edit -+"resume.txt" first press "q" to stop the listing. You will get a prompt: -+ -+ Type number and <Enter> (empty cancels): ~ -+ -+Type "2" and press <Enter> to edit the second file. -+ -+More info at |:oldfiles|, |v:oldfiles| and |c_#<|. -+ -+ - MOVE INFO FROM ONE VIM TO ANOTHER - - You can use the ":wviminfo" and ":rviminfo" commands to save and restore the -diff -Naur vim72.orig/runtime/scripts.vim vim72/runtime/scripts.vim ---- vim72.orig/runtime/scripts.vim 2008-08-08 23:27:21.000000000 +0100 -+++ vim72/runtime/scripts.vim 2008-12-06 11:37:48.000000000 +0000 -@@ -234,6 +234,10 @@ - elseif s:line1 =~ '<DTD\s+XHTML\s' - set ft=xhtml - -+ " HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN") -+ elseif s:line1 =~? '\<DOCTYPE\s\+html\>' -+ set ft=html -+ - " PDF - elseif s:line1 =~ '^%PDF-' - set ft=pdf -diff -Naur vim72.orig/src/auto/configure vim72/src/auto/configure ---- vim72.orig/src/auto/configure 2008-07-24 13:40:36.000000000 +0100 -+++ vim72/src/auto/configure 2008-12-06 11:37:50.000000000 +0000 -@@ -16819,21 +16819,29 @@ - LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" - fi - --{ $as_echo "$as_me:$LINENO: checking for GCC 3 or later" >&5 --$as_echo_n "checking for GCC 3 or later... " >&6; } - DEPEND_CFLAGS_FILTER= - if test "$GCC" = yes; then -+ { $as_echo "$as_me:$LINENO: checking for GCC 3 or later" >&5 -+$as_echo_n "checking for GCC 3 or later... " >&6; } - gccmajor=`echo "$gccversion" | sed -e 's/^([1-9])..*$/\1/g'` - if test "$gccmajor" -gt "2"; then - DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'" -- fi --fi --if test "$DEPEND_CFLAGS_FILTER" = ""; then -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } --else -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ fi -+ { $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5 -+$as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; } -+ if test "$gccmajor" -gt "3"; then -+ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1" -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 - $as_echo "yes" >&6; } -+ else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+ fi - fi - - -diff -Naur vim72.orig/src/buffer.c vim72/src/buffer.c ---- vim72.orig/src/buffer.c 2008-08-06 12:00:48.000000000 +0100 -+++ vim72/src/buffer.c 2008-12-06 11:37:50.000000000 +0000 -@@ -33,7 +33,7 @@ - static char_u *fname_match __ARGS((regprog_T *prog, char_u *name)); - #endif - static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options)); --static wininfo_T *find_wininfo __ARGS((buf_T *buf)); -+static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer)); - #ifdef UNIX - static buf_T *buflist_findname_stat __ARGS((char_u *ffname, struct stat *st)); - static int otherfile_buf __ARGS((buf_T *buf, char_u *ffname, struct stat *stp)); -@@ -647,6 +647,9 @@ - vim_free(buf->b_start_fenc); - buf->b_start_fenc = NULL; - #endif -+#ifdef FEAT_SPELL -+ ga_clear(&buf->b_langp); -+#endif - } - - /* -@@ -1090,7 +1093,7 @@ - #endif - setpcmark(); - retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, -- forceit ? ECMD_FORCEIT : 0); -+ forceit ? ECMD_FORCEIT : 0, curwin); - - /* - * do_ecmd() may create a new buffer, then we have to delete -@@ -1237,7 +1240,7 @@ - * "buf" if one exists */ - if ((swb_flags & SWB_USEOPEN) && buf_jump_open_win(buf)) - return OK; -- /* If 'switchbuf' contians "usetab": jump to first window in any tab -+ /* If 'switchbuf' contains "usetab": jump to first window in any tab - * page containing "buf" if one exists */ - if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf)) - return OK; -@@ -1313,7 +1316,7 @@ - setpcmark(); - if (!cmdmod.keepalt) - curwin->w_alt_fnum = curbuf->b_fnum; /* remember alternate file */ -- buflist_altfpos(); /* remember curpos */ -+ buflist_altfpos(curwin); /* remember curpos */ - - #ifdef FEAT_VISUAL - /* Don't restart Select mode after switching to another buffer. */ -@@ -1351,11 +1354,12 @@ - } - } - #ifdef FEAT_AUTOCMD -+ /* An autocommand may have deleted "buf", already entered it (e.g., when -+ * it did ":bunload") or aborted the script processing! */ - # ifdef FEAT_EVAL -- /* An autocommand may have deleted buf or aborted the script processing! */ -- if (buf_valid(buf) && !aborting()) -+ if (buf_valid(buf) && buf != curbuf && !aborting()) - # else -- if (buf_valid(buf)) /* an autocommand may have deleted buf! */ -+ if (buf_valid(buf) && buf != curbuf) - # endif - #endif - enter_buffer(buf); -@@ -1397,6 +1401,9 @@ - curwin->w_cursor.coladd = 0; - #endif - curwin->w_set_curswant = TRUE; -+#ifdef FEAT_AUTOCMD -+ curwin->w_topline_was_set = FALSE; -+#endif - - /* Make sure the buffer is loaded. */ - if (curbuf->b_ml.ml_mfp == NULL) /* need to load the file */ -@@ -1436,7 +1443,8 @@ - maketitle(); - #endif - #ifdef FEAT_AUTOCMD -- if (curwin->w_topline == 1) /* when autocmds didn't change it */ -+ /* when autocmds didn't change it */ -+ if (curwin->w_topline == 1 && !curwin->w_topline_was_set) - #endif - scroll_cursor_halfway(FALSE); /* redisplay at correct position */ - -@@ -2400,22 +2408,70 @@ - return; - } - -+#ifdef FEAT_DIFF -+static int wininfo_other_tab_diff __ARGS((wininfo_T *wip)); -+ -+/* -+ * Return TRUE when "wip" has 'diff' set and the diff is only for another tab -+ * page. That's because a diff is local to a tab page. -+ */ -+ static int -+wininfo_other_tab_diff(wip) -+ wininfo_T *wip; -+{ -+ win_T *wp; -+ -+ if (wip->wi_opt.wo_diff) -+ { -+ for (wp = firstwin; wp != NULL; wp = wp->w_next) -+ /* return FALSE when it's a window in the current tab page, thus -+ * the buffer was in diff mode here */ -+ if (wip->wi_win == wp) -+ return FALSE; -+ return TRUE; -+ } -+ return FALSE; -+} -+#endif -+ - /* - * Find info for the current window in buffer "buf". - * If not found, return the info for the most recently used window. -+ * When "skip_diff_buffer" is TRUE avoid windows with 'diff' set that is in -+ * another tab page. - * Returns NULL when there isn't any info. - */ -+/*ARGSUSED*/ - static wininfo_T * --find_wininfo(buf) -+find_wininfo(buf, skip_diff_buffer) - buf_T *buf; -+ int skip_diff_buffer; - { - wininfo_T *wip; - - for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next) -- if (wip->wi_win == curwin) -+ if (wip->wi_win == curwin -+#ifdef FEAT_DIFF -+ && (!skip_diff_buffer || !wininfo_other_tab_diff(wip)) -+#endif -+ ) - break; -- if (wip == NULL) /* if no fpos for curwin, use the first in the list */ -- wip = buf->b_wininfo; -+ -+ /* If no wininfo for curwin, use the first in the list (that doesn't have -+ * 'diff' set and is in another tab page). */ -+ if (wip == NULL) -+ { -+#ifdef FEAT_DIFF -+ if (skip_diff_buffer) -+ { -+ for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next) -+ if (!wininfo_other_tab_diff(wip)) -+ break; -+ } -+ else -+#endif -+ wip = buf->b_wininfo; -+ } - return wip; - } - -@@ -2436,7 +2492,7 @@ - clearFolding(curwin); - #endif - -- wip = find_wininfo(buf); -+ wip = find_wininfo(buf, TRUE); - if (wip != NULL && wip->wi_optset) - { - copy_winopt(&wip->wi_opt, &curwin->w_onebuf_opt); -@@ -2468,7 +2524,7 @@ - wininfo_T *wip; - static pos_T no_position = {1, 0}; - -- wip = find_wininfo(buf); -+ wip = find_wininfo(buf, FALSE); - if (wip != NULL) - return &(wip->wi_fpos); - else -@@ -2789,14 +2845,14 @@ - #endif - - /* -- * Set alternate cursor position for current window. -+ * Set alternate cursor position for the current buffer and window "win". - * Also save the local window option values. - */ - void --buflist_altfpos() -+buflist_altfpos(win) -+ win_T *win; - { -- buflist_setfpos(curbuf, curwin, curwin->w_cursor.lnum, -- curwin->w_cursor.col, TRUE); -+ buflist_setfpos(curbuf, win, win->w_cursor.lnum, win->w_cursor.col, TRUE); - } - - /* -@@ -3963,7 +4019,7 @@ - width = vim_strsize(out); - if (maxwidth > 0 && width > maxwidth) - { -- /* Result is too long, must trunctate somewhere. */ -+ /* Result is too long, must truncate somewhere. */ - l = 0; - if (itemcnt == 0) - s = out; -@@ -4488,7 +4544,7 @@ - ECMD_ONE, - ((P_HID(curwin->w_buffer) - || bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0) -- + ECMD_OLDBUF); -+ + ECMD_OLDBUF, curwin); - #ifdef FEAT_AUTOCMD - if (use_firstwin) - ++autocmd_no_leave; -@@ -5062,7 +5118,7 @@ - { - if (buf->b_sfname != NULL) - return (char *)buf->b_sfname; -- return "[Scratch]"; -+ return _("[Scratch]"); - } - #endif - if (buf->b_fname == NULL) -diff -Naur vim72.orig/src/configure.in vim72/src/configure.in ---- vim72.orig/src/configure.in 2008-07-24 13:40:26.000000000 +0100 -+++ vim72/src/configure.in 2008-12-06 11:37:50.000000000 +0000 -@@ -3152,18 +3152,25 @@ - dnl But only when making dependencies, cproto and lint don't take "-isystem". - dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow - dnl the number before the version number. --AC_MSG_CHECKING(for GCC 3 or later) - DEPEND_CFLAGS_FILTER= - if test "$GCC" = yes; then -+ AC_MSG_CHECKING(for GCC 3 or later) - gccmajor=`echo "$gccversion" | sed -e 's/^([[1-9]])..*$/\1/g'` - if test "$gccmajor" -gt "2"; then - DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'" -+ AC_MSG_RESULT(yes) -+ else -+ AC_MSG_RESULT(no) -+ fi -+ dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is -+ dnl declared as char x[1] but actually longer. Introduced in gcc 4.0. -+ AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1) -+ if test "$gccmajor" -gt "3"; then -+ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1" -+ AC_MSG_RESULT(yes) -+ else -+ AC_MSG_RESULT(no) - fi --fi --if test "$DEPEND_CFLAGS_FILTER" = ""; then -- AC_MSG_RESULT(no) --else -- AC_MSG_RESULT(yes) - fi - AC_SUBST(DEPEND_CFLAGS_FILTER) - -diff -Naur vim72.orig/src/diff.c vim72/src/diff.c ---- vim72.orig/src/diff.c 2008-03-05 11:16:56.000000000 +0000 -+++ vim72/src/diff.c 2008-12-06 11:37:50.000000000 +0000 -@@ -73,6 +73,8 @@ - { - tp->tp_diffbuf[i] = NULL; - tp->tp_diff_invalid = TRUE; -+ if (tp == curtab) -+ diff_redraw(TRUE); - } - } - } -@@ -102,6 +104,7 @@ - { - curtab->tp_diffbuf[i] = NULL; - curtab->tp_diff_invalid = TRUE; -+ diff_redraw(TRUE); - } - } - } -@@ -131,6 +134,7 @@ - { - curtab->tp_diffbuf[i] = buf; - curtab->tp_diff_invalid = TRUE; -+ diff_redraw(TRUE); - return; - } - -@@ -661,6 +665,7 @@ - char_u *tmp_diff; - FILE *fd; - int ok; -+ int io_error = FALSE; - - /* Delete all diffblocks. */ - diff_clear(curtab); -@@ -697,18 +702,26 @@ - { - ok = FALSE; - fd = mch_fopen((char *)tmp_orig, "w"); -- if (fd != NULL) -+ if (fd == NULL) -+ io_error = TRUE; -+ else - { -- fwrite("line1\n", (size_t)6, (size_t)1, fd); -+ if (fwrite("line1\n", (size_t)6, (size_t)1, fd) != 1) -+ io_error = TRUE; - fclose(fd); - fd = mch_fopen((char *)tmp_new, "w"); -- if (fd != NULL) -+ if (fd == NULL) -+ io_error = TRUE; -+ else - { -- fwrite("line2\n", (size_t)6, (size_t)1, fd); -+ if (fwrite("line2\n", (size_t)6, (size_t)1, fd) != 1) -+ io_error = TRUE; - fclose(fd); - diff_file(tmp_orig, tmp_new, tmp_diff); - fd = mch_fopen((char *)tmp_diff, "r"); -- if (fd != NULL) -+ if (fd == NULL) -+ io_error = TRUE; -+ else - { - char_u linebuf[LBUFLEN]; - -@@ -761,6 +774,8 @@ - } - if (!ok) - { -+ if (io_error) -+ EMSG(_("E810: Cannot read or write temp files")); - EMSG(_("E97: Cannot create diffs")); - diff_a_works = MAYBE; - #if defined(MSWIN) || defined(MSDOS) -@@ -925,10 +940,10 @@ - { - # ifdef TEMPDIRNAMES - if (vim_tempdir != NULL) -- mch_chdir((char *)vim_tempdir); -+ ignored = mch_chdir((char *)vim_tempdir); - else - # endif -- mch_chdir("/tmp"); -+ ignored = mch_chdir("/tmp"); - shorten_fnames(TRUE); - } - #endif -diff -Naur vim72.orig/src/eval.c vim72/src/eval.c ---- vim72.orig/src/eval.c 2008-08-07 20:37:22.000000000 +0100 -+++ vim72/src/eval.c 2008-12-06 11:37:50.000000000 +0000 -@@ -348,6 +348,7 @@ - {VV_NAME("mouse_col", VAR_NUMBER), 0}, - {VV_NAME("operator", VAR_STRING), VV_RO}, - {VV_NAME("searchforward", VAR_NUMBER), 0}, -+ {VV_NAME("oldfiles", VAR_LIST), 0}, - }; - - /* shorthand */ -@@ -355,6 +356,7 @@ - #define vv_nr vv_di.di_tv.vval.v_number - #define vv_float vv_di.di_tv.vval.v_float - #define vv_str vv_di.di_tv.vval.v_string -+#define vv_list vv_di.di_tv.vval.v_list - #define vv_tv vv_di.di_tv - - /* -@@ -426,7 +428,6 @@ - static long list_idx_of_item __ARGS((list_T *l, listitem_T *item)); - static void list_append __ARGS((list_T *l, listitem_T *item)); - static int list_append_tv __ARGS((list_T *l, typval_T *tv)); --static int list_append_string __ARGS((list_T *l, char_u *str, int len)); - static int list_append_number __ARGS((list_T *l, varnumber_T n)); - static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item)); - static int list_extend __ARGS((list_T *l1, list_T *l2, listitem_T *bef)); -@@ -845,11 +846,17 @@ - p = &vimvars[i]; - if (p->vv_di.di_tv.v_type == VAR_STRING) - { -- vim_free(p->vv_di.di_tv.vval.v_string); -- p->vv_di.di_tv.vval.v_string = NULL; -+ vim_free(p->vv_str); -+ p->vv_str = NULL; -+ } -+ else if (p->vv_di.di_tv.v_type == VAR_LIST) -+ { -+ list_unref(p->vv_list); -+ p->vv_list = NULL; - } - } - hash_clear(&vimvarht); -+ hash_init(&vimvarht); /* garbage_collect() will access it */ - hash_clear(&compat_hashtab); - - /* script-local variables */ -@@ -1256,23 +1263,26 @@ - - /* - * Top level evaluation function, returning a string. -+ * When "convert" is TRUE convert a List into a sequence of lines and convert -+ * a Float to a String. - * Return pointer to allocated memory, or NULL for failure. - */ - char_u * --eval_to_string(arg, nextcmd, dolist) -+eval_to_string(arg, nextcmd, convert) - char_u *arg; - char_u **nextcmd; -- int dolist; /* turn List into sequence of lines */ -+ int convert; - { - typval_T tv; - char_u *retval; - garray_T ga; -+ char_u numbuf[NUMBUFLEN]; - - if (eval0(arg, &tv, nextcmd, TRUE) == FAIL) - retval = NULL; - else - { -- if (dolist && tv.v_type == VAR_LIST) -+ if (convert && tv.v_type == VAR_LIST) - { - ga_init2(&ga, (int)sizeof(char), 80); - if (tv.vval.v_list != NULL) -@@ -1280,6 +1290,13 @@ - ga_append(&ga, NUL); - retval = (char_u *)ga.ga_data; - } -+#ifdef FEAT_FLOAT -+ else if (convert && tv.v_type == VAR_FLOAT) -+ { -+ vim_snprintf((char *)numbuf, NUMBUFLEN, "%g", tv.vval.v_float); -+ retval = vim_strsave(numbuf); -+ } -+#endif - else - retval = vim_strsave(get_tv_string(&tv)); - clear_tv(&tv); -@@ -3277,7 +3294,7 @@ - - if (*startarg != '(') - { -- EMSG2(_("E107: Missing braces: %s"), eap->arg); -+ EMSG2(_("E107: Missing parentheses: %s"), eap->arg); - goto end; - } - -@@ -3657,8 +3674,8 @@ - } - - /* -- * Return TRUE if typeval "tv" is locked: Either tha value is locked itself or -- * it refers to a List or Dictionary that is locked. -+ * Return TRUE if typeval "tv" is locked: Either that value is locked itself -+ * or it refers to a List or Dictionary that is locked. - */ - static int - tv_islocked(tv) -@@ -6047,6 +6064,25 @@ - } - - /* -+ * Get list item "l[idx - 1]" as a string. Returns NULL for failure. -+ */ -+ char_u * -+list_find_str(l, idx) -+ list_T *l; -+ long idx; -+{ -+ listitem_T *li; -+ -+ li = list_find(l, idx - 1); -+ if (li == NULL) -+ { -+ EMSGN(_(e_listidx), idx); -+ return NULL; -+ } -+ return get_tv_string(&li->li_tv); -+} -+ -+/* - * Locate "item" list "l" and return its index. - * Returns -1 when "item" is not in the list. - */ -@@ -6137,7 +6173,7 @@ - * When "len" >= 0 use "str[len]". - * Returns FAIL when out of memory. - */ -- static int -+ int - list_append_string(l, str, len) - list_T *l; - char_u *str; -@@ -6497,6 +6533,9 @@ - set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID); - } - -+ /* v: vars */ -+ set_ref_in_ht(&vimvarht, copyID); -+ - /* - * 2. Go through the list of dicts and free items without the copyID. - */ -@@ -6587,7 +6626,7 @@ - { - case VAR_DICT: - dd = tv->vval.v_dict; -- if (dd->dv_copyID != copyID) -+ if (dd != NULL && dd->dv_copyID != copyID) - { - /* Didn't see this dict yet. */ - dd->dv_copyID = copyID; -@@ -6597,7 +6636,7 @@ - - case VAR_LIST: - ll = tv->vval.v_list; -- if (ll->lv_copyID != copyID) -+ if (ll != NULL && ll->lv_copyID != copyID) - { - /* Didn't see this list yet. */ - ll->lv_copyID = copyID; -@@ -7525,8 +7564,8 @@ - {"getwinposx", 0, 0, f_getwinposx}, - {"getwinposy", 0, 0, f_getwinposy}, - {"getwinvar", 2, 2, f_getwinvar}, -- {"glob", 1, 1, f_glob}, -- {"globpath", 2, 2, f_globpath}, -+ {"glob", 1, 2, f_glob}, -+ {"globpath", 2, 3, f_globpath}, - {"has", 1, 1, f_has}, - {"has_key", 2, 2, f_has_key}, - {"haslocaldir", 0, 0, f_haslocaldir}, -@@ -9518,7 +9557,7 @@ - else - { - /* When the optional second argument is non-zero, don't remove matches -- * for 'suffixes' and 'wildignore' */ -+ * for 'wildignore' and don't put matches for 'suffixes' at the end. */ - if (argvars[1].v_type != VAR_UNKNOWN - && get_tv_number_chk(&argvars[1], &error)) - flags |= WILD_KEEP_ALL; -@@ -10300,7 +10339,8 @@ - s = get_tv_string(&argvars[0]); - if (s == NULL || *s == NUL || VIM_ISDIGIT(*s)) - EMSG2(_(e_invarg2), s); -- else if (!function_exists(s)) -+ /* Don't check an autoload name for existence here. */ -+ else if (vim_strchr(s, AUTOLOAD_CHAR) == NULL && !function_exists(s)) - EMSG2(_("E700: Unknown function: %s"), s); - else - { -@@ -10602,7 +10642,7 @@ - # ifdef FEAT_WINDOWS - win_T *wp; - # endif -- int n = 1; -+ int winnr = 1; - - if (row >= 0 && col >= 0) - { -@@ -10612,9 +10652,9 @@ - (void)mouse_comp_pos(win, &row, &col, &lnum); - # ifdef FEAT_WINDOWS - for (wp = firstwin; wp != win; wp = wp->w_next) -- ++n; -+ ++winnr; - # endif -- vimvars[VV_MOUSE_WIN].vv_nr = n; -+ vimvars[VV_MOUSE_WIN].vv_nr = winnr; - vimvars[VV_MOUSE_LNUM].vv_nr = lnum; - vimvars[VV_MOUSE_COL].vv_nr = col + 1; - } -@@ -11284,13 +11324,25 @@ - typval_T *argvars; - typval_T *rettv; - { -+ int flags = WILD_SILENT|WILD_USE_NL; - expand_T xpc; -+ int error = FALSE; - -- ExpandInit(&xpc); -- xpc.xp_context = EXPAND_FILES; -+ /* When the optional second argument is non-zero, don't remove matches -+ * for 'wildignore' and don't put matches for 'suffixes' at the end. */ -+ if (argvars[1].v_type != VAR_UNKNOWN -+ && get_tv_number_chk(&argvars[1], &error)) -+ flags |= WILD_KEEP_ALL; - rettv->v_type = VAR_STRING; -- rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), -- NULL, WILD_USE_NL|WILD_SILENT, WILD_ALL); -+ if (!error) -+ { -+ ExpandInit(&xpc); -+ xpc.xp_context = EXPAND_FILES; -+ rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), -+ NULL, flags, WILD_ALL); -+ } -+ else -+ rettv->vval.v_string = NULL; - } - - /* -@@ -11301,14 +11353,22 @@ - typval_T *argvars; - typval_T *rettv; - { -+ int flags = 0; - char_u buf1[NUMBUFLEN]; - char_u *file = get_tv_string_buf_chk(&argvars[1], buf1); -+ int error = FALSE; - -+ /* When the optional second argument is non-zero, don't remove matches -+ * for 'wildignore' and don't put matches for 'suffixes' at the end. */ -+ if (argvars[2].v_type != VAR_UNKNOWN -+ && get_tv_number_chk(&argvars[2], &error)) -+ flags |= WILD_KEEP_ALL; - rettv->v_type = VAR_STRING; -- if (file == NULL) -+ if (file == NULL || error) - rettv->vval.v_string = NULL; - else -- rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file); -+ rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file, -+ flags); - } - - /* -@@ -15838,10 +15898,9 @@ - if (res == FAIL) - res = ITEM_COMPARE_FAIL; - else -- /* return value has wrong type */ - res = get_tv_number_chk(&rettv, &item_compare_func_err); - if (item_compare_func_err) -- res = ITEM_COMPARE_FAIL; -+ res = ITEM_COMPARE_FAIL; /* return value has wrong type */ - clear_tv(&rettv); - return res; - } -@@ -16590,8 +16649,11 @@ - p = highlight_has_attr(id, HL_INVERSE, modec); - break; - -- case 's': /* standout */ -- p = highlight_has_attr(id, HL_STANDOUT, modec); -+ case 's': -+ if (TOLOWER_ASC(what[1]) == 'p') /* sp[#] */ -+ p = highlight_color(id, what, modec); -+ else /* standout */ -+ p = highlight_has_attr(id, HL_STANDOUT, modec); - break; - - case 'u': -@@ -16658,7 +16720,7 @@ - col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */ - - if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count -- && col >= 0 && col < (long)STRLEN(ml_get(lnum)) -+ && col >= 0 && (col == 0 || col < (long)STRLEN(ml_get(lnum))) - && rettv_list_alloc(rettv) != FAIL) - { - (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE); -@@ -18097,14 +18159,28 @@ - } - - /* -- * Set v:count, v:count1 and v:prevcount. -+ * Get List v: variable value. Caller must take care of reference count when -+ * needed. -+ */ -+ list_T * -+get_vim_var_list(idx) -+ int idx; -+{ -+ return vimvars[idx].vv_list; -+} -+ -+/* -+ * Set v:count to "count" and v:count1 to "count1". -+ * When "set_prevcount" is TRUE first set v:prevcount from v:count. - */ - void --set_vcount(count, count1) -+set_vcount(count, count1, set_prevcount) - long count; - long count1; -+ int set_prevcount; - { -- vimvars[VV_PREVCOUNT].vv_nr = vimvars[VV_COUNT].vv_nr; -+ if (set_prevcount) -+ vimvars[VV_PREVCOUNT].vv_nr = vimvars[VV_COUNT].vv_nr; - vimvars[VV_COUNT].vv_nr = count; - vimvars[VV_COUNT1].vv_nr = count1; - } -@@ -18132,6 +18208,20 @@ - } - - /* -+ * Set List v: variable to "val". -+ */ -+ void -+set_vim_var_list(idx, val) -+ int idx; -+ list_T *val; -+{ -+ list_unref(vimvars[idx].vv_list); -+ vimvars[idx].vv_list = val; -+ if (val != NULL) -+ ++val->lv_refcount; -+} -+ -+/* - * Set v:register if needed. - */ - void -@@ -20590,6 +20680,9 @@ - int st_len = 0; - - todo = (int)func_hashtab.ht_used; -+ if (todo == 0) -+ return; /* nothing to dump */ -+ - sorttab = (ufunc_T **)alloc((unsigned)(sizeof(ufunc_T) * todo)); - - for (hi = func_hashtab.ht_array; todo > 0; ++hi) -@@ -20638,6 +20731,8 @@ - prof_self_cmp); - prof_sort_list(fd, sorttab, st_len, "SELF", TRUE); - } -+ -+ vim_free(sorttab); - } - - static void -@@ -21082,8 +21177,11 @@ - init_var_dict(&fc.l_avars, &fc.l_avars_var); - add_nr_var(&fc.l_avars, &fc.fixvar[fixvar_idx++].var, "0", - (varnumber_T)(argcount - fp->uf_args.ga_len)); -+ /* Use "name" to avoid a warning from some compiler that checks the -+ * destination size. */ - v = &fc.fixvar[fixvar_idx++].var; -- STRCPY(v->di_key, "000"); -+ name = v->di_key; -+ STRCPY(name, "000"); - v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX; - hash_add(&fc.l_avars.dv_hashtab, DI2HIKEY(v)); - v->di_tv.v_type = VAR_LIST; -@@ -21204,7 +21302,7 @@ - if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL)) - func_do_profile(fp); - if (fp->uf_profiling -- || (fc.caller != NULL && &fc.caller->func->uf_profiling)) -+ || (fc.caller != NULL && fc.caller->func->uf_profiling)) - { - ++fp->uf_tm_count; - profile_start(&call_start); -@@ -21235,13 +21333,13 @@ - - #ifdef FEAT_PROFILE - if (do_profiling == PROF_YES && (fp->uf_profiling -- || (fc.caller != NULL && &fc.caller->func->uf_profiling))) -+ || (fc.caller != NULL && fc.caller->func->uf_profiling))) - { - profile_end(&call_start); - profile_sub_wait(&wait_start, &call_start); - profile_add(&fp->uf_tm_total, &call_start); - profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children); -- if (fc.caller != NULL && &fc.caller->func->uf_profiling) -+ if (fc.caller != NULL && fc.caller->func->uf_profiling) - { - profile_add(&fc.caller->func->uf_tm_children, &call_start); - profile_add(&fc.caller->func->uf_tml_children, &call_start); -@@ -21886,6 +21984,62 @@ - } - } - -+/* -+ * List v:oldfiles in a nice way. -+ */ -+/*ARGSUSED*/ -+ void -+ex_oldfiles(eap) -+ exarg_T *eap; -+{ -+ list_T *l = vimvars[VV_OLDFILES].vv_list; -+ listitem_T *li; -+ int nr = 0; -+ -+ if (l == NULL) -+ msg((char_u *)_("No old files")); -+ else -+ { -+ msg_start(); -+ msg_scroll = TRUE; -+ for (li = l->lv_first; li != NULL && !got_int; li = li->li_next) -+ { -+ msg_outnum((long)++nr); -+ MSG_PUTS(": "); -+ msg_outtrans(get_tv_string(&li->li_tv)); -+ msg_putchar('\n'); -+ out_flush(); /* output one line at a time */ -+ ui_breakcheck(); -+ } -+ /* Assume "got_int" was set to truncate the listing. */ -+ got_int = FALSE; -+ -+#ifdef FEAT_BROWSE_CMD -+ if (cmdmod.browse) -+ { -+ quit_more = FALSE; -+ nr = prompt_for_number(FALSE); -+ msg_starthere(); -+ if (nr > 0) -+ { -+ char_u *p = list_find_str(get_vim_var_list(VV_OLDFILES), -+ (long)nr); -+ -+ if (p != NULL) -+ { -+ p = expand_env_save(p); -+ eap->arg = p; -+ eap->cmdidx = CMD_edit; -+ cmdmod.browse = FALSE; -+ do_exedit(eap, NULL); -+ vim_free(p); -+ } -+ } -+ } -+#endif -+ } -+} -+ - #endif /* FEAT_EVAL */ - - -diff -Naur vim72.orig/src/ex_cmds2.c vim72/src/ex_cmds2.c ---- vim72.orig/src/ex_cmds2.c 2008-07-13 17:18:22.000000000 +0100 -+++ vim72/src/ex_cmds2.c 2008-12-06 11:37:49.000000000 +0000 -@@ -2132,8 +2132,8 @@ - * argument index. */ - if (do_ecmd(0, alist_name(&ARGLIST[curwin->w_arg_idx]), NULL, - eap, ECMD_LAST, -- (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0) + -- (eap->forceit ? ECMD_FORCEIT : 0)) == FAIL) -+ (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0) -+ + (eap->forceit ? ECMD_FORCEIT : 0), curwin) == FAIL) - curwin->w_arg_idx = old_arg_idx; - /* like Vi: set the mark where the cursor is in the file. */ - else if (eap->cmdidx != CMD_argdo) -@@ -3145,8 +3145,8 @@ - verbose_leave(); - } - #ifdef STARTUPTIME -- vim_snprintf(IObuff, IOSIZE, "sourcing %s", fname); -- time_msg(IObuff, &tv_start); -+ vim_snprintf((char *)IObuff, IOSIZE, "sourcing %s", fname); -+ time_msg((char *)IObuff, &tv_start); - time_pop(&tv_rel); - #endif - -diff -Naur vim72.orig/src/ex_cmds.c vim72/src/ex_cmds.c ---- vim72.orig/src/ex_cmds.c 2008-08-04 20:15:00.000000000 +0100 -+++ vim72/src/ex_cmds.c 2008-12-06 11:37:50.000000000 +0000 -@@ -24,7 +24,7 @@ - static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out)); - #ifdef FEAT_VIMINFO - static char_u *viminfo_filename __ARGS((char_u *)); --static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int want_info, int want_marks, int force_read)); -+static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int flags)); - static int viminfo_encoding __ARGS((vir_T *virp)); - static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing)); - #endif -@@ -1676,14 +1676,12 @@ - - /* - * read_viminfo() -- Read the viminfo file. Registers etc. which are already -- * set are not over-written unless force is TRUE. -- webb -+ * set are not over-written unless "flags" includes VIF_FORCEIT. -- webb - */ - int --read_viminfo(file, want_info, want_marks, forceit) -- char_u *file; -- int want_info; -- int want_marks; -- int forceit; -+read_viminfo(file, flags) -+ char_u *file; /* file name or NULL to use default name */ -+ int flags; /* VIF_WANT_INFO et al. */ - { - FILE *fp; - char_u *fname; -@@ -1691,7 +1689,7 @@ - if (no_viminfo()) - return FAIL; - -- fname = viminfo_filename(file); /* may set to default if NULL */ -+ fname = viminfo_filename(file); /* get file name in allocated buffer */ - if (fname == NULL) - return FAIL; - fp = mch_fopen((char *)fname, READBIN); -@@ -1701,8 +1699,9 @@ - verbose_enter(); - smsg((char_u *)_("Reading viminfo file "%s"%s%s%s"), - fname, -- want_info ? _(" info") : "", -- want_marks ? _(" marks") : "", -+ (flags & VIF_WANT_INFO) ? _(" info") : "", -+ (flags & VIF_WANT_MARKS) ? _(" marks") : "", -+ (flags & VIF_GET_OLDFILES) ? _(" oldfiles") : "", - fp == NULL ? _(" FAILED") : ""); - verbose_leave(); - } -@@ -1712,10 +1711,9 @@ - return FAIL; - - viminfo_errcnt = 0; -- do_viminfo(fp, NULL, want_info, want_marks, forceit); -+ do_viminfo(fp, NULL, flags); - - fclose(fp); -- - return OK; - } - -@@ -1943,7 +1941,7 @@ - * root. - */ - if (fp_out != NULL) -- (void)fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid); -+ ignored = fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid); - #endif - } - } -@@ -1968,7 +1966,7 @@ - } - - viminfo_errcnt = 0; -- do_viminfo(fp_in, fp_out, !forceit, !forceit, FALSE); -+ do_viminfo(fp_in, fp_out, forceit ? 0 : (VIF_WANT_INFO | VIF_WANT_MARKS)); - - fclose(fp_out); /* errors are ignored !? */ - if (fp_in != NULL) -@@ -2041,12 +2039,10 @@ - * do_viminfo() -- Should only be called from read_viminfo() & write_viminfo(). - */ - static void --do_viminfo(fp_in, fp_out, want_info, want_marks, force_read) -+do_viminfo(fp_in, fp_out, flags) - FILE *fp_in; - FILE *fp_out; -- int want_info; -- int want_marks; -- int force_read; -+ int flags; - { - int count = 0; - int eof = FALSE; -@@ -2061,8 +2057,9 @@ - - if (fp_in != NULL) - { -- if (want_info) -- eof = read_viminfo_up_to_marks(&vir, force_read, fp_out != NULL); -+ if (flags & VIF_WANT_INFO) -+ eof = read_viminfo_up_to_marks(&vir, -+ flags & VIF_FORCEIT, fp_out != NULL); - else - /* Skip info, find start of marks */ - while (!(eof = viminfo_readline(&vir)) -@@ -2092,8 +2089,9 @@ - write_viminfo_bufferlist(fp_out); - count = write_viminfo_marks(fp_out); - } -- if (fp_in != NULL && want_marks) -- copy_viminfo_marks(&vir, fp_out, count, eof); -+ if (fp_in != NULL -+ && (flags & (VIF_WANT_MARKS | VIF_GET_OLDFILES | VIF_FORCEIT))) -+ copy_viminfo_marks(&vir, fp_out, count, eof, flags); - - vim_free(vir.vir_line); - #ifdef FEAT_MBYTE -@@ -3054,7 +3052,8 @@ - retval = 0; /* it's in the same file */ - } - else if (do_ecmd(fnum, ffname, sfname, NULL, lnum, -- (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0)) == OK) -+ (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0), -+ curwin) == OK) - retval = -1; /* opened another file */ - else - retval = 1; /* error encountered */ -@@ -3087,17 +3086,21 @@ - * ECMD_OLDBUF: use existing buffer if it exists - * ECMD_FORCEIT: ! used for Ex command - * ECMD_ADDBUF: don't edit, just add to buffer list -+ * oldwin: Should be "curwin" when editing a new buffer in the current -+ * window, NULL when splitting the window first. When not NULL info -+ * of the previous buffer for "oldwin" is stored. - * - * return FAIL for failure, OK otherwise - */ - int --do_ecmd(fnum, ffname, sfname, eap, newlnum, flags) -+do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin) - int fnum; - char_u *ffname; - char_u *sfname; - exarg_T *eap; /* can be NULL! */ - linenr_T newlnum; - int flags; -+ win_T *oldwin; - { - int other_file; /* TRUE if editing another file */ - int oldbuf; /* TRUE if using existing buffer */ -@@ -3269,7 +3272,8 @@ - { - if (!cmdmod.keepalt) - curwin->w_alt_fnum = curbuf->b_fnum; -- buflist_altfpos(); -+ if (oldwin != NULL) -+ buflist_altfpos(oldwin); - } - - if (fnum) -@@ -3373,7 +3377,7 @@ - - /* close the link to the current buffer */ - u_sync(FALSE); -- close_buffer(curwin, curbuf, -+ close_buffer(oldwin, curbuf, - (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD); - - #ifdef FEAT_AUTOCMD -@@ -5059,6 +5063,7 @@ - - if (did_sub) - ++sub_nlines; -+ vim_free(new_start); /* for when substitute was cancelled */ - vim_free(sub_firstline); /* free the copy of the original line */ - sub_firstline = NULL; - } -@@ -5610,7 +5615,13 @@ - */ - alt_fnum = curbuf->b_fnum; - (void)do_ecmd(0, NULL, NULL, NULL, ECMD_LASTL, -- ECMD_HIDE + ECMD_SET_HELP); -+ ECMD_HIDE + ECMD_SET_HELP, -+#ifdef FEAT_WINDOWS -+ NULL /* buffer is still open, don't store info */ -+#else -+ curwin -+#endif -+ ); - if (!cmdmod.keepalt) - curwin->w_alt_fnum = alt_fnum; - empty_fnum = curbuf->b_fnum; -diff -Naur vim72.orig/src/ex_cmds.h vim72/src/ex_cmds.h ---- vim72.orig/src/ex_cmds.h 2008-06-21 19:47:57.000000000 +0100 -+++ vim72/src/ex_cmds.h 2008-12-06 11:37:49.000000000 +0000 -@@ -278,7 +278,7 @@ - EX(CMD_crewind, "crewind", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cscope, "cscope", do_cscope, -- EXTRA|NOTRLCOM|SBOXOK|XFILE), -+ EXTRA|NOTRLCOM|XFILE), - EX(CMD_cstag, "cstag", do_cstag, - BANG|TRLBAR|WORD1), - EX(CMD_cunmap, "cunmap", ex_unmap, -@@ -506,7 +506,7 @@ - EX(CMD_lclose, "lclose", ex_cclose, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_lcscope, "lcscope", do_cscope, -- EXTRA|NOTRLCOM|SBOXOK|XFILE), -+ EXTRA|NOTRLCOM|XFILE), - EX(CMD_left, "left", ex_align, - TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), - EX(CMD_leftabove, "leftabove", ex_wrongmodifier, -@@ -635,6 +635,8 @@ - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_noremap, "noremap", ex_map, - BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), -+EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier, -+ NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate, -@@ -651,6 +653,8 @@ - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_open, "open", ex_open, - RANGE|EXTRA), -+EX(CMD_oldfiles, "oldfiles", ex_oldfiles, -+ BANG|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_omap, "omap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_omapclear, "omapclear", ex_mapclear, -@@ -802,7 +806,7 @@ - EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding, - WORD1|TRLBAR|CMDWIN), - EX(CMD_scscope, "scscope", do_scscope, -- EXTRA|NOTRLCOM|SBOXOK), -+ EXTRA|NOTRLCOM), - EX(CMD_set, "set", ex_set, - TRLBAR|EXTRA|CMDWIN|SBOXOK), - EX(CMD_setfiletype, "setfiletype", ex_setfiletype, -diff -Naur vim72.orig/src/ex_docmd.c vim72/src/ex_docmd.c ---- vim72.orig/src/ex_docmd.c 2008-07-26 12:51:05.000000000 +0100 -+++ vim72/src/ex_docmd.c 2008-12-06 11:37:50.000000000 +0000 -@@ -364,6 +364,7 @@ - # define ex_function ex_ni - # define ex_delfunction ex_ni - # define ex_return ex_ni -+# define ex_oldfiles ex_ni - #endif - static char_u *arg_all __ARGS((void)); - #ifdef FEAT_SESSION -@@ -1770,7 +1771,7 @@ - } - if (checkforcmd(&ea.cmd, "browse", 3)) - { --#ifdef FEAT_BROWSE -+#ifdef FEAT_BROWSE_CMD - cmdmod.browse = TRUE; - #endif - continue; -@@ -2978,6 +2979,7 @@ - {"keepmarks", 3, FALSE}, - {"leftabove", 5, FALSE}, - {"lockmarks", 3, FALSE}, -+ {"noautocmd", 3, FALSE}, - {"rightbelow", 6, FALSE}, - {"sandbox", 3, FALSE}, - {"silent", 3, FALSE}, -@@ -3608,6 +3610,7 @@ - return set_context_in_autocmd(xp, arg, FALSE); - - case CMD_doautocmd: -+ case CMD_doautoall: - return set_context_in_autocmd(xp, arg, TRUE); - #endif - case CMD_set: -@@ -7485,7 +7488,8 @@ - /* ":new" or ":tabnew" without argument: edit an new empty buffer */ - setpcmark(); - (void)do_ecmd(0, NULL, NULL, eap, ECMD_ONE, -- ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0)); -+ ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0), -+ old_curwin == NULL ? curwin : NULL); - } - else if ((eap->cmdidx != CMD_split - #ifdef FEAT_VERTSPLIT -@@ -7522,7 +7526,7 @@ - #ifdef FEAT_LISTCMDS - + (eap->cmdidx == CMD_badd ? ECMD_ADDBUF : 0 ) - #endif -- ) == FAIL) -+ , old_curwin == NULL ? curwin : NULL) == FAIL) - { - /* Editing the file failed. If the window was split, close it. */ - #ifdef FEAT_WINDOWS -@@ -8749,8 +8753,8 @@ - else if (*dirnow != NUL - && (ssop_flags & SSOP_CURDIR) && globaldir != NULL) - { -- (void)mch_chdir((char *)globaldir); -- shorten_fnames(TRUE); -+ if (mch_chdir((char *)globaldir) == OK) -+ shorten_fnames(TRUE); - } - - failed |= (makeopens(fd, dirnow) == FAIL); -@@ -9506,24 +9510,50 @@ - break; - } - s = src + 1; -+ if (*s == '<') /* "#<99" uses v:oldfiles */ -+ ++s; - i = (int)getdigits(&s); - *usedlen = (int)(s - src); /* length of what we expand */ - -- buf = buflist_findnr(i); -- if (buf == NULL) -+ if (src[1] == '<') - { -- *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'"); -+ if (*usedlen < 2) -+ { -+ /* Should we give an error message for #<text? */ -+ *usedlen = 1; -+ return NULL; -+ } -+#ifdef FEAT_EVAL -+ result = list_find_str(get_vim_var_list(VV_OLDFILES), -+ (long)i); -+ if (result == NULL) -+ { -+ *errormsg = (char_u *)""; -+ return NULL; -+ } -+#else -+ *errormsg = (char_u *)_("E809: #< is not available without the +eval feature"); - return NULL; -+#endif - } -- if (lnump != NULL) -- *lnump = ECMD_LAST; -- if (buf->b_fname == NULL) -+ else - { -- result = (char_u *)""; -- valid = 0; /* Must have ":p:h" to be valid */ -+ buf = buflist_findnr(i); -+ if (buf == NULL) -+ { -+ *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'"); -+ return NULL; -+ } -+ if (lnump != NULL) -+ *lnump = ECMD_LAST; -+ if (buf->b_fname == NULL) -+ { -+ result = (char_u *)""; -+ valid = 0; /* Must have ":p:h" to be valid */ -+ } -+ else -+ result = buf->b_fname; - } -- else -- result = buf->b_fname; - break; - - #ifdef FEAT_SEARCHPATH -@@ -9541,6 +9571,15 @@ - #ifdef FEAT_AUTOCMD - case SPEC_AFILE: /* file name for autocommand */ - result = autocmd_fname; -+ if (result != NULL && !autocmd_fname_full) -+ { -+ /* Still need to turn the fname into a full path. It is -+ * postponed to avoid a delay when <afile> is not used. */ -+ autocmd_fname_full = TRUE; -+ result = FullName_save(autocmd_fname, FALSE); -+ vim_free(autocmd_fname); -+ autocmd_fname = result; -+ } - if (result == NULL) - { - *errormsg = (char_u *)_("E495: no autocommand file name to substitute for "<afile>""); -@@ -10689,7 +10728,8 @@ - p_viminfo = (char_u *)"'100"; - if (eap->cmdidx == CMD_rviminfo) - { -- if (read_viminfo(eap->arg, TRUE, TRUE, eap->forceit) == FAIL) -+ if (read_viminfo(eap->arg, VIF_WANT_INFO | VIF_WANT_MARKS -+ | (eap->forceit ? VIF_FORCEIT : 0)) == FAIL) - EMSG(_("E195: Cannot open viminfo file for reading")); - } - else -diff -Naur vim72.orig/src/ex_getln.c vim72/src/ex_getln.c ---- vim72.orig/src/ex_getln.c 2008-08-08 10:31:33.000000000 +0100 -+++ vim72/src/ex_getln.c 2008-12-06 11:37:50.000000000 +0000 -@@ -31,6 +31,8 @@ - int cmdattr; /* attributes for prompt */ - int overstrike; /* Typing mode on the command line. Shared by - getcmdline() and put_on_cmdline(). */ -+ expand_T *xpc; /* struct being used for expansion, xp_pattern -+ may point into cmdbuff */ - int xp_context; /* type of expansion */ - # ifdef FEAT_EVAL - char_u *xp_arg; /* user-defined expansion arg */ -@@ -38,7 +40,11 @@ - # endif - }; - --static struct cmdline_info ccline; /* current cmdline_info */ -+/* The current cmdline_info. It is initialized in getcmdline() and after that -+ * used by other functions. When invoking getcmdline() recursively it needs -+ * to be saved with save_cmdline() and restored with restore_cmdline(). -+ * TODO: make it local to getcmdline() and pass it around. */ -+static struct cmdline_info ccline; - - static int cmd_showtail; /* Only show path tail in lists ? */ - -@@ -238,6 +244,7 @@ - } - - ExpandInit(&xpc); -+ ccline.xpc = &xpc; - - #ifdef FEAT_RIGHTLEFT - if (curwin->w_p_rl && *curwin->w_p_rlc == 's' -@@ -408,9 +415,10 @@ - #endif - - /* -- * <S-Tab> works like CTRL-P (unless 'wc' is <S-Tab>). -+ * When there are matching completions to select <S-Tab> works like -+ * CTRL-P (unless 'wc' is <S-Tab>). - */ -- if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles != -1) -+ if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles > 0) - c = Ctrl_P; - - #ifdef FEAT_WILDMENU -@@ -1513,6 +1521,7 @@ - int old_firstc; - - vim_free(ccline.cmdbuff); -+ xpc.xp_context = EXPAND_NOTHING; - if (hiscnt == hislen) - p = lookfor; /* back to the old one */ - else -@@ -1839,6 +1848,7 @@ - #endif - - ExpandCleanup(&xpc); -+ ccline.xpc = NULL; - - #ifdef FEAT_SEARCH_EXTRA - if (did_incsearch) -@@ -2508,6 +2518,20 @@ - } - mch_memmove(ccline.cmdbuff, p, (size_t)ccline.cmdlen + 1); - vim_free(p); -+ -+ if (ccline.xpc != NULL -+ && ccline.xpc->xp_pattern != NULL -+ && ccline.xpc->xp_context != EXPAND_NOTHING -+ && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL) -+ { -+ int i = (int)(ccline.xpc->xp_pattern - p); -+ -+ /* If xp_pattern points inside the old cmdbuff it needs to be adjusted -+ * to point into the newly allocated memory. */ -+ if (i >= 0 && i <= ccline.cmdlen) -+ ccline.xpc->xp_pattern = ccline.cmdbuff + i; -+ } -+ - return OK; - } - -@@ -2875,6 +2899,7 @@ - prev_ccline = ccline; - ccline.cmdbuff = NULL; - ccline.cmdprompt = NULL; -+ ccline.xpc = NULL; - } - - /* -@@ -3582,6 +3607,7 @@ - ExpandInit(xp) - expand_T *xp; - { -+ xp->xp_pattern = NULL; - xp->xp_backslash = XP_BS_NONE; - #ifndef BACKSLASH_IN_FILENAME - xp->xp_shell = FALSE; -@@ -4871,7 +4897,7 @@ - if (s == NULL) - return FAIL; - sprintf((char *)s, "%s/%s*.vim", dirname, pat); -- all = globpath(p_rtp, s); -+ all = globpath(p_rtp, s, 0); - vim_free(s); - if (all == NULL) - return FAIL; -@@ -4912,9 +4938,10 @@ - * newlines. Returns NULL for an error or no matches. - */ - char_u * --globpath(path, file) -+globpath(path, file, expand_options) - char_u *path; - char_u *file; -+ int expand_options; - { - expand_T xpc; - char_u *buf; -@@ -4943,10 +4970,10 @@ - { - add_pathsep(buf); - STRCAT(buf, file); -- if (ExpandFromContext(&xpc, buf, &num_p, &p, WILD_SILENT) != FAIL -- && num_p > 0) -+ if (ExpandFromContext(&xpc, buf, &num_p, &p, -+ WILD_SILENT|expand_options) != FAIL && num_p > 0) - { -- ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT); -+ ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT|expand_options); - for (len = 0, i = 0; i < num_p; ++i) - len += (int)STRLEN(p[i]) + 1; - -@@ -6025,7 +6052,7 @@ - cmdwin_type = '-'; - - /* Create the command-line buffer empty. */ -- (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE); -+ (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL); - (void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE); - set_option_value((char_u *)"bt", 0L, (char_u *)"nofile", OPT_LOCAL); - set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); -diff -Naur vim72.orig/src/feature.h vim72/src/feature.h ---- vim72.orig/src/feature.h 2008-08-06 12:00:39.000000000 +0100 -+++ vim72/src/feature.h 2008-12-06 11:37:49.000000000 +0000 -@@ -767,9 +767,13 @@ - - /* - * +browse ":browse" command. -+ * or just the ":browse" command modifier - */ --#if defined(FEAT_NORMAL) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)) --# define FEAT_BROWSE -+#if defined(FEAT_NORMAL) -+# define FEAT_BROWSE_CMD -+# if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) -+# define FEAT_BROWSE -+# endif - #endif - - /* -diff -Naur vim72.orig/src/fileio.c vim72/src/fileio.c ---- vim72.orig/src/fileio.c 2008-08-06 12:01:03.000000000 +0100 -+++ vim72/src/fileio.c 2008-12-06 11:37:50.000000000 +0000 -@@ -932,7 +932,10 @@ - else - { - if (eap != NULL && eap->force_ff != 0) -+ { - fileformat = get_fileformat_force(curbuf, eap); -+ try_unix = try_dos = try_mac = FALSE; -+ } - else if (curbuf->b_p_bin) - fileformat = EOL_UNIX; /* binary: use Unix format */ - else if (*p_ffs == NUL) -@@ -2211,7 +2214,7 @@ - { - /* Use stderr for stdin, makes shell commands work. */ - close(0); -- dup(2); -+ ignored = dup(2); - } - #endif - -@@ -2341,11 +2344,6 @@ - STRCAT(IObuff, _("[CR missing]")); - c = TRUE; - } -- if (ff_error == EOL_MAC) -- { -- STRCAT(IObuff, _("[NL found]")); -- c = TRUE; -- } - if (split) - { - STRCAT(IObuff, _("[long lines split]")); -@@ -2711,7 +2709,7 @@ - { - if (!curbuf->b_marks_read && get_viminfo_parameter(''') > 0 - && curbuf->b_ffname != NULL) -- read_viminfo(NULL, FALSE, TRUE, FALSE); -+ read_viminfo(NULL, VIF_WANT_MARKS); - - /* Always set b_marks_read; needed when 'viminfo' is changed to include - * the ' parameter after opening a buffer. */ -@@ -3451,7 +3449,7 @@ - { - # ifdef UNIX - # ifdef HAVE_FCHOWN -- fchown(fd, st_old.st_uid, st_old.st_gid); -+ ignored = fchown(fd, st_old.st_uid, st_old.st_gid); - # endif - if (mch_stat((char *)IObuff, &st) < 0 - || st.st_uid != st_old.st_uid -@@ -4367,7 +4365,7 @@ - || st.st_uid != st_old.st_uid - || st.st_gid != st_old.st_gid) - { -- fchown(fd, st_old.st_uid, st_old.st_gid); -+ ignored = fchown(fd, st_old.st_uid, st_old.st_gid); - if (perm >= 0) /* set permission again, may have changed */ - (void)mch_setperm(wfname, perm); - } -@@ -5550,9 +5548,10 @@ - name = "ucs-4le"; /* FF FE 00 00 */ - len = 4; - } -- else if (flags == FIO_ALL || flags == (FIO_UCS2 | FIO_ENDIAN_L)) -+ else if (flags == (FIO_UCS2 | FIO_ENDIAN_L)) - name = "ucs-2le"; /* FF FE */ -- else if (flags == (FIO_UTF16 | FIO_ENDIAN_L)) -+ else if (flags == FIO_ALL || flags == (FIO_UTF16 | FIO_ENDIAN_L)) -+ /* utf-16le is preferred, it also works for ucs-2le text */ - name = "utf-16le"; /* FF FE */ - } - else if (p[0] == 0xfe && p[1] == 0xff -@@ -6031,9 +6030,9 @@ - { - tbuf[FGETS_SIZE - 2] = NUL; - #ifdef USE_CR -- fgets_cr((char *)tbuf, FGETS_SIZE, fp); -+ ignoredp = fgets_cr((char *)tbuf, FGETS_SIZE, fp); - #else -- fgets((char *)tbuf, FGETS_SIZE, fp); -+ ignoredp = fgets((char *)tbuf, FGETS_SIZE, fp); - #endif - } while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n'); - } -@@ -8523,6 +8522,7 @@ - char_u *save_sourcing_name; - linenr_T save_sourcing_lnum; - char_u *save_autocmd_fname; -+ int save_autocmd_fname_full; - int save_autocmd_bufnr; - char_u *save_autocmd_match; - int save_autocmd_busy; -@@ -8601,6 +8601,7 @@ - * Save the autocmd_* variables and info about the current buffer. - */ - save_autocmd_fname = autocmd_fname; -+ save_autocmd_fname_full = autocmd_fname_full; - save_autocmd_bufnr = autocmd_bufnr; - save_autocmd_match = autocmd_match; - save_autocmd_busy = autocmd_busy; -@@ -8618,14 +8619,15 @@ - if (fname != NULL && *fname != NUL) - autocmd_fname = fname; - else if (buf != NULL) -- autocmd_fname = buf->b_fname; -+ autocmd_fname = buf->b_ffname; - else - autocmd_fname = NULL; - } - else - autocmd_fname = fname_io; - if (autocmd_fname != NULL) -- autocmd_fname = FullName_save(autocmd_fname, FALSE); -+ autocmd_fname = vim_strsave(autocmd_fname); -+ autocmd_fname_full = FALSE; /* call FullName_save() later */ - - /* - * Set the buffer number to be used for <abuf>. -@@ -8810,6 +8812,7 @@ - sourcing_lnum = save_sourcing_lnum; - vim_free(autocmd_fname); - autocmd_fname = save_autocmd_fname; -+ autocmd_fname_full = save_autocmd_fname_full; - autocmd_bufnr = save_autocmd_bufnr; - autocmd_match = save_autocmd_match; - #ifdef FEAT_EVAL -@@ -8918,7 +8921,7 @@ - { - apc->curpat = NULL; - -- /* only use a pattern when it has not been removed, has commands and -+ /* Only use a pattern when it has not been removed, has commands and - * the group matches. For buffer-local autocommands only check the - * buffer number. */ - if (ap->pat != NULL && ap->cmds != NULL -@@ -9104,7 +9107,7 @@ - set_context_in_autocmd(xp, arg, doautocmd) - expand_T *xp; - char_u *arg; -- int doautocmd; /* TRUE for :doautocmd, FALSE for :autocmd */ -+ int doautocmd; /* TRUE for :doauto*, FALSE for :autocmd */ - { - char_u *p; - int group; -diff -Naur vim72.orig/src/fold.c vim72/src/fold.c ---- vim72.orig/src/fold.c 2008-08-06 12:01:12.000000000 +0100 -+++ vim72/src/fold.c 2008-12-06 11:37:50.000000000 +0000 -@@ -48,7 +48,7 @@ - static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp)); - static int foldLevelWin __ARGS((win_T *wp, linenr_T lnum)); - static void checkupdate __ARGS((win_T *wp)); --static void setFoldRepeat __ARGS((linenr_T lnum, long count, int open)); -+static void setFoldRepeat __ARGS((linenr_T lnum, long count, int do_open)); - static linenr_T setManualFold __ARGS((linenr_T lnum, int opening, int recurse, int *donep)); - static linenr_T setManualFoldWin __ARGS((win_T *wp, linenr_T lnum, int opening, int recurse, int *donep)); - static void foldOpenNested __ARGS((fold_T *fpr)); -@@ -1241,10 +1241,10 @@ - * Repeat "count" times. - */ - static void --setFoldRepeat(lnum, count, open) -+setFoldRepeat(lnum, count, do_open) - linenr_T lnum; - long count; -- int open; -+ int do_open; - { - int done; - long n; -@@ -1252,7 +1252,7 @@ - for (n = 0; n < count; ++n) - { - done = DONE_NOTHING; -- (void)setManualFold(lnum, open, FALSE, &done); -+ (void)setManualFold(lnum, do_open, FALSE, &done); - if (!(done & DONE_ACTION)) - { - /* Only give an error message when no fold could be opened. */ -diff -Naur vim72.orig/src/getchar.c vim72/src/getchar.c ---- vim72.orig/src/getchar.c 2008-07-22 17:57:48.000000000 +0100 -+++ vim72/src/getchar.c 2008-12-06 11:37:50.000000000 +0000 -@@ -4702,7 +4702,7 @@ - return FAIL; - if (mp->m_noremap != REMAP_YES && fprintf(fd, "nore") < 0) - return FAIL; -- if (fprintf(fd, cmd) < 0) -+ if (fputs(cmd, fd) < 0) - return FAIL; - if (buf != NULL && fputs(" <buffer>", fd) < 0) - return FAIL; -@@ -4801,7 +4801,7 @@ - } - if (IS_SPECIAL(c) || modifiers) /* special key */ - { -- if (fprintf(fd, (char *)get_special_key_name(c, modifiers)) < 0) -+ if (fputs((char *)get_special_key_name(c, modifiers), fd) < 0) - return FAIL; - continue; - } -diff -Naur vim72.orig/src/globals.h vim72/src/globals.h ---- vim72.orig/src/globals.h 2008-07-26 12:53:29.000000000 +0100 -+++ vim72/src/globals.h 2008-12-06 11:37:50.000000000 +0000 -@@ -1022,6 +1022,7 @@ - #endif - #ifdef FEAT_AUTOCMD - EXTERN char_u *autocmd_fname INIT(= NULL); /* fname for <afile> on cmdline */ -+EXTERN int autocmd_fname_full; /* autocmd_fname is full path */ - EXTERN int autocmd_bufnr INIT(= 0); /* fnum for <abuf> on cmdline */ - EXTERN char_u *autocmd_match INIT(= NULL); /* name for <amatch> on cmdline */ - EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ -@@ -1548,6 +1549,14 @@ - EXTERN time_t starttime; - - /* -+ * Some compilers warn for not using a return value, but in some situations we -+ * can't do anything useful with the value. Assign to this variable to avoid -+ * the warning. -+ */ -+EXTERN int ignored; -+EXTERN char *ignoredp; -+ -+/* - * Optional Farsi support. Include it here, so EXTERN and INIT are defined. - */ - #ifdef FEAT_FKMAP -diff -Naur vim72.orig/src/gui_at_sb.c vim72/src/gui_at_sb.c ---- vim72.orig/src/gui_at_sb.c 2004-06-07 15:32:25.000000000 +0100 -+++ vim72/src/gui_at_sb.c 2008-12-06 11:37:50.000000000 +0000 -@@ -1078,6 +1078,12 @@ - Cardinal *num_params; /* unused */ - { - ScrollbarWidget sbw = (ScrollbarWidget)w; -+ /* Use a union to avoid a warning for the weird conversion from float to -+ * XtPointer. Comes from Xaw/Scrollbar.c. */ -+ union { -+ XtPointer xtp; -+ float xtf; -+ } xtpf; - - if (LookAhead(w, event)) - return; -@@ -1085,7 +1091,8 @@ - /* thumbProc is not pretty, but is necessary for backwards - compatibility on those architectures for which it work{s,ed}; - the intent is to pass a (truncated) float by value. */ -- XtCallCallbacks(w, XtNthumbProc, *(XtPointer*)&sbw->scrollbar.top); -+ xtpf.xtf = sbw->scrollbar.top; -+ XtCallCallbacks(w, XtNthumbProc, xtpf.xtp); - XtCallCallbacks(w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top); - } - -diff -Naur vim72.orig/src/gui.c vim72/src/gui.c ---- vim72.orig/src/gui.c 2008-07-27 20:32:14.000000000 +0100 -+++ vim72/src/gui.c 2008-12-06 11:37:50.000000000 +0000 -@@ -139,7 +139,7 @@ - /* The read returns when the child closes the pipe (or when - * the child dies for some reason). */ - close(pipefd[1]); -- (void)read(pipefd[0], &dummy, (size_t)1); -+ ignored = (int)read(pipefd[0], &dummy, (size_t)1); - close(pipefd[0]); - } - -@@ -3241,7 +3241,7 @@ - i = Rows; - gui_update_tabline(); - Rows = i; -- need_set_size = RESIZE_VERT; -+ need_set_size |= RESIZE_VERT; - if (using_tabline) - fix_size = TRUE; - if (!gui_use_tabline()) -@@ -3275,9 +3275,9 @@ - if (gui.which_scrollbars[i] != prev_which_scrollbars[i]) - { - if (i == SBAR_BOTTOM) -- need_set_size = RESIZE_VERT; -+ need_set_size |= RESIZE_VERT; - else -- need_set_size = RESIZE_HOR; -+ need_set_size |= RESIZE_HOR; - if (gui.which_scrollbars[i]) - fix_size = TRUE; - } -@@ -3297,7 +3297,7 @@ - gui_mch_enable_menu(gui.menu_is_active); - Rows = i; - prev_menu_is_active = gui.menu_is_active; -- need_set_size = RESIZE_VERT; -+ need_set_size |= RESIZE_VERT; - if (gui.menu_is_active) - fix_size = TRUE; - } -@@ -3308,7 +3308,7 @@ - { - gui_mch_show_toolbar(using_toolbar); - prev_toolbar = using_toolbar; -- need_set_size = RESIZE_VERT; -+ need_set_size |= RESIZE_VERT; - if (using_toolbar) - fix_size = TRUE; - } -@@ -3318,7 +3318,7 @@ - { - gui_mch_enable_footer(using_footer); - prev_footer = using_footer; -- need_set_size = RESIZE_VERT; -+ need_set_size |= RESIZE_VERT; - if (using_footer) - fix_size = TRUE; - } -@@ -3330,10 +3330,11 @@ - prev_tearoff = using_tearoff; - } - #endif -- if (need_set_size) -+ if (need_set_size != 0) - { - #ifdef FEAT_GUI_GTK -- long c = Columns; -+ long prev_Columns = Columns; -+ long prev_Rows = Rows; - #endif - /* Adjust the size of the window to make the text area keep the - * same size and to avoid that part of our window is off-screen -@@ -3349,11 +3350,14 @@ - * If you remove this, please test this command for resizing - * effects (with optional left scrollbar): ":vsp|q|vsp|q|vsp|q". - * Don't do this while starting up though. -- * And don't change Rows, it may have be reduced intentionally -- * when adding menu/toolbar/tabline. */ -- if (!gui.starting) -+ * Don't change Rows when adding menu/toolbar/tabline. -+ * Don't change Columns when adding vertical toolbar. */ -+ if (!gui.starting && need_set_size != (RESIZE_VERT | RESIZE_HOR)) - (void)char_avail(); -- Columns = c; -+ if ((need_set_size & RESIZE_VERT) == 0) -+ Rows = prev_Rows; -+ if ((need_set_size & RESIZE_HOR) == 0) -+ Columns = prev_Columns; - #endif - } - #ifdef FEAT_WINDOWS -diff -Naur vim72.orig/src/gui_gtk_x11.c vim72/src/gui_gtk_x11.c ---- vim72.orig/src/gui_gtk_x11.c 2008-07-04 11:46:24.000000000 +0100 -+++ vim72/src/gui_gtk_x11.c 2008-12-06 11:37:50.000000000 +0000 -@@ -4070,14 +4070,14 @@ - - if (mask & (XValue | YValue)) - { -- int w, h; -- gui_mch_get_screen_dimensions(&w, &h); -- h += p_ghr + get_menu_tool_height(); -- w += get_menu_tool_width(); -+ int ww, hh; -+ gui_mch_get_screen_dimensions(&ww, &hh); -+ hh += p_ghr + get_menu_tool_height(); -+ ww += get_menu_tool_width(); - if (mask & XNegative) -- x += w - pixel_width; -+ x += ww - pixel_width; - if (mask & YNegative) -- y += h - pixel_height; -+ y += hh - pixel_height; - #ifdef HAVE_GTK2 - gtk_window_move(GTK_WINDOW(gui.mainwin), x, y); - #else -diff -Naur vim72.orig/src/gui_x11.c vim72/src/gui_x11.c ---- vim72.orig/src/gui_x11.c 2008-06-08 16:13:45.000000000 +0100 -+++ vim72/src/gui_x11.c 2008-12-06 11:37:49.000000000 +0000 -@@ -2450,7 +2450,7 @@ - *colorPtr = colortable[closest]; - } - -- free(colortable); -+ vim_free(colortable); - return OK; - } - -diff -Naur vim72.orig/src/gui_xmdlg.c vim72/src/gui_xmdlg.c ---- vim72.orig/src/gui_xmdlg.c 2008-06-21 17:05:32.000000000 +0100 -+++ vim72/src/gui_xmdlg.c 2008-12-06 11:37:50.000000000 +0000 -@@ -369,10 +369,10 @@ - char buf[TEMP_BUF_SIZE]; - XmString items[MAX_ENTRIES_IN_LIST]; - int i; -- int index; -+ int idx; - -- for (index = (int)ENCODING; index < (int)NONE; ++index) -- count[index] = 0; -+ for (idx = (int)ENCODING; idx < (int)NONE; ++idx) -+ count[idx] = 0; - - /* First we insert the wild char into every single list. */ - if (fix != ENCODING) -@@ -503,14 +503,14 @@ - /* - * Now loop trough the remaining lists and set them up. - */ -- for (index = (int)NAME; index < (int)NONE; ++index) -+ for (idx = (int)NAME; idx < (int)NONE; ++idx) - { - Widget w; - -- if (fix == (enum ListSpecifier)index) -+ if (fix == (enum ListSpecifier)idx) - continue; - -- switch ((enum ListSpecifier)index) -+ switch ((enum ListSpecifier)idx) - { - case NAME: - w = data->list[NAME]; -@@ -525,21 +525,21 @@ - w = (Widget)0; /* for lint */ - } - -- for (i = 0; i < count[index]; ++i) -+ for (i = 0; i < count[idx]; ++i) - { -- items[i] = XmStringCreateLocalized(list[index][i]); -- XtFree(list[index][i]); -+ items[i] = XmStringCreateLocalized(list[idx][i]); -+ XtFree(list[idx][i]); - } - XmListDeleteAllItems(w); -- XmListAddItems(w, items, count[index], 1); -- if (data->sel[index]) -+ XmListAddItems(w, items, count[idx], 1); -+ if (data->sel[idx]) - { - XmStringFree(items[0]); -- items[0] = XmStringCreateLocalized(data->sel[index]); -+ items[0] = XmStringCreateLocalized(data->sel[idx]); - XmListSelectItem(w, items[0], False); - XmListSetBottomItem(w, items[0]); - } -- for (i = 0; i < count[index]; ++i) -+ for (i = 0; i < count[idx]; ++i) - XmStringFree(items[i]); - } - } -@@ -695,14 +695,14 @@ - int n; - XmString str; - Arg args[4]; -- char *msg = _("no specific match"); -+ char *nomatch_msg = _("no specific match"); - - n = 0; -- str = XmStringCreateLocalized(msg); -+ str = XmStringCreateLocalized(nomatch_msg); - XtSetArg(args[n], XmNlabelString, str); ++n; - XtSetValues(data->sample, args, n); - apply_fontlist(data->sample); -- XmTextSetString(data->name, msg); -+ XmTextSetString(data->name, nomatch_msg); - XmStringFree(str); - - return False; -@@ -886,21 +886,21 @@ - { - int i; - int max; -- int index = 0; -+ int idx = 0; - int size; -- char str[128]; -+ char buf[128]; - - for (i = 0, max = 0; i < data->num; i++) - { -- get_part(fn(data, i), 7, str); -- size = atoi(str); -+ get_part(fn(data, i), 7, buf); -+ size = atoi(buf); - if ((size > max) && (size < MAX_DISPLAY_SIZE)) - { -- index = i; -+ idx = i; - max = size; - } - } -- strcpy(big_font, fn(data, index)); -+ strcpy(big_font, fn(data, idx)); - } - data->old = XLoadQueryFont(XtDisplay(parent), big_font); - data->old_list = gui_motif_create_fontlist(data->old); -@@ -1217,28 +1217,28 @@ - - if (i != 0) - { -- char name[TEMP_BUF_SIZE]; -- char style[TEMP_BUF_SIZE]; -- char size[TEMP_BUF_SIZE]; -- char encoding[TEMP_BUF_SIZE]; -+ char namebuf[TEMP_BUF_SIZE]; -+ char stylebuf[TEMP_BUF_SIZE]; -+ char sizebuf[TEMP_BUF_SIZE]; -+ char encodingbuf[TEMP_BUF_SIZE]; - char *found; - - found = names[0]; - -- name_part(found, name); -- style_part(found, style); -- size_part(found, size, data->in_pixels); -- encoding_part(found, encoding); -- -- if (strlen(name) > 0 -- && strlen(style) > 0 -- && strlen(size) > 0 -- && strlen(encoding) > 0) -+ name_part(found, namebuf); -+ style_part(found, stylebuf); -+ size_part(found, sizebuf, data->in_pixels); -+ encoding_part(found, encodingbuf); -+ -+ if (strlen(namebuf) > 0 -+ && strlen(stylebuf) > 0 -+ && strlen(sizebuf) > 0 -+ && strlen(encodingbuf) > 0) - { -- data->sel[NAME] = XtNewString(name); -- data->sel[STYLE] = XtNewString(style); -- data->sel[SIZE] = XtNewString(size); -- data->sel[ENCODING] = XtNewString(encoding); -+ data->sel[NAME] = XtNewString(namebuf); -+ data->sel[STYLE] = XtNewString(stylebuf); -+ data->sel[SIZE] = XtNewString(sizebuf); -+ data->sel[ENCODING] = XtNewString(encodingbuf); - data->font_name = XtNewString(names[0]); - display_sample(data); - XmTextSetString(data->name, data->font_name); -diff -Naur vim72.orig/src/gui_xmebw.c vim72/src/gui_xmebw.c ---- vim72.orig/src/gui_xmebw.c 2007-09-06 11:57:51.000000000 +0100 -+++ vim72/src/gui_xmebw.c 2008-12-06 11:37:50.000000000 +0000 -@@ -1256,7 +1256,7 @@ - } - else - { -- int adjust = 0; -+ adjust = 0; - - #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - /* -@@ -1268,12 +1268,11 @@ - { - case XmEXTERNAL_HIGHLIGHT: - adjust = (eb->primitive.highlight_thickness - -- (eb->pushbutton.default_button_shadow_thickness ? -- Xm3D_ENHANCE_PIXEL : 0)); -+ (eb->pushbutton.default_button_shadow_thickness -+ ? Xm3D_ENHANCE_PIXEL : 0)); - break; - - case XmINTERNAL_HIGHLIGHT: -- adjust = 0; - break; - - default: -diff -Naur vim72.orig/src/if_cscope.c vim72/src/if_cscope.c ---- vim72.orig/src/if_cscope.c 2008-06-24 17:32:34.000000000 +0100 -+++ vim72/src/if_cscope.c 2008-12-06 11:37:48.000000000 +0000 -@@ -74,7 +74,7 @@ - { "add", cs_add, - N_("Add a new database"), "add file|dir [pre-path] [flags]", 0 }, - { "find", cs_find, -- N_("Query for a pattern"), FIND_USAGE, 1 }, -+ N_("Query for a pattern"), "find c|d|e|f|g|i|s|t name", 1 }, - { "help", cs_help, - N_("Show this message"), "help", 0 }, - { "kill", cs_kill, -@@ -1180,7 +1180,16 @@ - (void)smsg((char_u *)_("%-5s: %-30s (Usage: %s)"), - cmdp->name, _(cmdp->help), cmdp->usage); - if (strcmp(cmdp->name, "find") == 0) -- MSG_PUTS(FIND_HELP); -+ MSG_PUTS(_("\n" -+ " c: Find functions calling this function\n" -+ " d: Find functions called by this function\n" -+ " e: Find this egrep pattern\n" -+ " f: Find this file\n" -+ " g: Find this definition\n" -+ " i: Find files #including this file\n" -+ " s: Find this C symbol\n" -+ " t: Find assignments to\n")); -+ - cmdp++; - } - -diff -Naur vim72.orig/src/if_cscope.h vim72/src/if_cscope.h ---- vim72.orig/src/if_cscope.h 2007-09-02 15:51:08.000000000 +0100 -+++ vim72/src/if_cscope.h 2008-12-06 11:37:48.000000000 +0000 -@@ -42,17 +42,6 @@ - * f 7name Find this file - * i 8name Find files #including this file - */ --#define FIND_USAGE "find c|d|e|f|g|i|s|t name" --#define FIND_HELP "\n\ -- c: Find functions calling this function\n\ -- d: Find functions called by this function\n\ -- e: Find this egrep pattern\n\ -- f: Find this file\n\ -- g: Find this definition\n\ -- i: Find files #including this file\n\ -- s: Find this C symbol\n\ -- t: Find assignments to\n" -- - - typedef struct { - char * name; -diff -Naur vim72.orig/src/if_perl.xs vim72/src/if_perl.xs ---- vim72.orig/src/if_perl.xs 2008-07-17 21:55:09.000000000 +0100 -+++ vim72/src/if_perl.xs 2008-12-06 11:37:50.000000000 +0000 -@@ -136,6 +136,9 @@ - # define Perl_newXS_flags dll_Perl_newXS_flags - #endif - # define Perl_sv_free dll_Perl_sv_free -+# if (PERL_REVISION == 5) && (PERL_VERSION >= 10) -+# define Perl_sv_free2 dll_Perl_sv_free2 -+# endif - # define Perl_sv_isa dll_Perl_sv_isa - # define Perl_sv_magic dll_Perl_sv_magic - # define Perl_sv_setiv dll_Perl_sv_setiv -@@ -163,7 +166,7 @@ - # define Perl_Isv_yes_ptr dll_Perl_Isv_yes_ptr - # define boot_DynaLoader dll_boot_DynaLoader - --# define Perl_sys_init3 dll_Perl_sys_init3 -+# define Perl_sys_init dll_Perl_sys_init - # define Perl_sys_term dll_Perl_sys_term - # define Perl_ISv_ptr dll_Perl_ISv_ptr - # define Perl_Istack_max_ptr dll_Perl_Istack_max_ptr -@@ -268,7 +271,8 @@ - static void (*boot_DynaLoader)_((pTHX_ CV*)); - - #if (PERL_REVISION == 5) && (PERL_VERSION >= 10) --static void (*Perl_sys_init3)(int* argc, char*** argv, char*** env); -+static void (*Perl_sv_free2)(pTHX_ SV*); -+static void (*Perl_sys_init)(int* argc, char*** argv); - static void (*Perl_sys_term)(void); - static SV** (*Perl_ISv_ptr)(register PerlInterpreter*); - static SV*** (*Perl_Istack_max_ptr)(register PerlInterpreter*); -@@ -367,7 +371,8 @@ - {"Perl_TXpv_ptr", (PERL_PROC*)&Perl_TXpv_ptr}, - {"Perl_Tna_ptr", (PERL_PROC*)&Perl_Tna_ptr}, - #else -- {"Perl_sys_init3", (PERL_PROC*)&Perl_sys_init3}, -+ {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2}, -+ {"Perl_sys_init", (PERL_PROC*)&Perl_sys_init}, - {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term}, - {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr}, - {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr}, -@@ -455,7 +460,7 @@ - static char *argv[] = { "", "-e", "" }; - - #if (PERL_REVISION == 5) && (PERL_VERSION >= 10) -- Perl_sys_init3(&argc, (char***)&argv, NULL); -+ Perl_sys_init(&argc, (char***)&argv); - #endif - perl_interp = perl_alloc(); - perl_construct(perl_interp); -diff -Naur vim72.orig/src/if_python.c vim72/src/if_python.c ---- vim72.orig/src/if_python.c 2008-07-17 22:09:32.000000000 +0100 -+++ vim72/src/if_python.c 2008-12-06 11:37:50.000000000 +0000 -@@ -531,6 +531,12 @@ - if (PythonMod_Init()) - goto fail; - -+ /* Remove the element from sys.path that was added because of our -+ * argv[0] value in PythonMod_Init(). Previously we used an empty -+ * string, but dependinding on the OS we then get an empty entry or -+ * the current directory in sys.path. */ -+ PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)"); -+ - /* the first python thread is vim's, release the lock */ - Python_SaveThread(); - -@@ -2345,7 +2351,8 @@ - { - PyObject *mod; - PyObject *dict; -- static char *(argv[2]) = {"", NULL}; -+ /* The special value is removed from sys.path in Python_Init(). */ -+ static char *(argv[2]) = {"/must>not&exist/foo", NULL}; - - /* Fixups... */ - BufferType.ob_type = &PyType_Type; -diff -Naur vim72.orig/src/if_xcmdsrv.c vim72/src/if_xcmdsrv.c ---- vim72.orig/src/if_xcmdsrv.c 2008-07-18 14:05:03.000000000 +0100 -+++ vim72/src/if_xcmdsrv.c 2008-12-06 11:37:49.000000000 +0000 -@@ -736,7 +736,7 @@ - + serverReply.ga_len; - e.id = w; - ga_init2(&e.strings, 1, 100); -- memcpy(p, &e, sizeof(e)); -+ mch_memmove(p, &e, sizeof(e)); - serverReply.ga_len++; - } - } -@@ -1018,7 +1018,7 @@ - p++; - count = numItems - (p - regProp); - if (count > 0) -- memcpy(entry, p, count); -+ mch_memmove(entry, p, count); - XChangeProperty(dpy, RootWindow(dpy, 0), registryProperty, XA_STRING, - 8, PropModeReplace, regProp, - (int)(numItems - (p - entry))); -@@ -1072,7 +1072,7 @@ - p++; - lastHalf = numItems - (p - regProp); - if (lastHalf > 0) -- memcpy(entry, p, lastHalf); -+ mch_memmove(entry, p, lastHalf); - numItems = (entry - regProp) + lastHalf; - p = entry; - continue; -diff -Naur vim72.orig/src/main.c vim72/src/main.c ---- vim72.orig/src/main.c 2008-07-24 09:40:56.000000000 +0100 -+++ vim72/src/main.c 2008-12-06 11:37:50.000000000 +0000 -@@ -645,11 +645,12 @@ - - #ifdef FEAT_VIMINFO - /* -- * Read in registers, history etc, but not marks, from the viminfo file -+ * Read in registers, history etc, but not marks, from the viminfo file. -+ * This is where v:oldfiles gets filled. - */ - if (*p_viminfo != NUL) - { -- read_viminfo(NULL, TRUE, FALSE, FALSE); -+ read_viminfo(NULL, VIF_WANT_INFO | VIF_GET_OLDFILES); - TIME_MSG("reading viminfo"); - } - #endif -@@ -1457,7 +1458,8 @@ - ++initstr; - } - -- if (TOLOWER_ASC(initstr[0]) == 'g' || initstr[0] == 'k') -+ /* "gvim" starts the GUI. Also accept "Gvim" for MS-Windows. */ -+ if (TOLOWER_ASC(initstr[0]) == 'g') - { - main_start_gui(); - #ifdef FEAT_GUI -@@ -1508,7 +1510,8 @@ - early_arg_scan(parmp) - mparm_T *parmp; - { --#if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER) -+#if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER) \ -+ || !defined(FEAT_NETBEANS_INTG) - int argc = parmp->argc; - char **argv = parmp->argv; - int i; -@@ -1580,6 +1583,14 @@ - else if (STRICMP(argv[i], "--echo-wid") == 0) - echo_wid_arg = TRUE; - # endif -+# ifndef FEAT_NETBEANS_INTG -+ else if (strncmp(argv[i], "-nb", (size_t)3) == 0) -+ { -+ mch_errmsg(_("'-nb' cannot be used: not enabled at compile time\n")); -+ mch_exit(2); -+ } -+# endif -+ - } - #endif - } -@@ -2361,7 +2372,7 @@ - * Is there any other system that cannot do this? - */ - close(0); -- dup(2); -+ ignored = dup(2); - #endif - } - -@@ -2586,7 +2597,7 @@ - # endif - (void)do_ecmd(0, arg_idx < GARGCOUNT - ? alist_name(&GARGLIST[arg_idx]) : NULL, -- NULL, NULL, ECMD_LASTL, ECMD_HIDE); -+ NULL, NULL, ECMD_LASTL, ECMD_HIDE, curwin); - # ifdef HAS_SWAP_EXISTS_ACTION - if (swap_exists_did_quit) - { -diff -Naur vim72.orig/src/mark.c vim72/src/mark.c ---- vim72.orig/src/mark.c 2008-08-08 23:06:49.000000000 +0100 -+++ vim72/src/mark.c 2008-12-06 11:37:49.000000000 +0000 -@@ -1627,15 +1627,17 @@ - - /* - * Handle marks in the viminfo file: -- * fp_out == NULL read marks for current buffer only -- * fp_out != NULL copy marks for buffers not in buffer list -+ * fp_out != NULL: copy marks for buffers not in buffer list -+ * fp_out == NULL && (flags & VIF_WANT_MARKS): read marks for curbuf only -+ * fp_out == NULL && (flags & VIF_GET_OLDFILES | VIF_FORCEIT): fill v:oldfiles - */ - void --copy_viminfo_marks(virp, fp_out, count, eof) -+copy_viminfo_marks(virp, fp_out, count, eof, flags) - vir_T *virp; - FILE *fp_out; - int count; - int eof; -+ int flags; - { - char_u *line = virp->vir_line; - buf_T *buf; -@@ -1647,10 +1649,23 @@ - char_u *p; - char_u *name_buf; - pos_T pos; -+#ifdef FEAT_EVAL -+ list_T *list = NULL; -+#endif - - if ((name_buf = alloc(LSIZE)) == NULL) - return; - *name_buf = NUL; -+ -+#ifdef FEAT_EVAL -+ if (fp_out == NULL && (flags & (VIF_GET_OLDFILES | VIF_FORCEIT))) -+ { -+ list = list_alloc(); -+ if (list != NULL) -+ set_vim_var_list(VV_OLDFILES, list); -+ } -+#endif -+ - num_marked_files = get_viminfo_parameter('''); - while (!eof && (count < num_marked_files || fp_out == NULL)) - { -@@ -1681,6 +1696,11 @@ - p++; - *p = NUL; - -+#ifdef FEAT_EVAL -+ if (list != NULL) -+ list_append_string(list, str, -1); -+#endif -+ - /* - * If fp_out == NULL, load marks for current buffer. - * If fp_out != NULL, copy marks for buffers not in buflist. -@@ -1688,7 +1708,7 @@ - load_marks = copy_marks_out = FALSE; - if (fp_out == NULL) - { -- if (curbuf->b_ffname != NULL) -+ if ((flags & VIF_WANT_MARKS) && curbuf->b_ffname != NULL) - { - if (*name_buf == NUL) /* only need to do this once */ - home_replace(NULL, curbuf->b_ffname, name_buf, LSIZE, TRUE); -diff -Naur vim72.orig/src/mbyte.c vim72/src/mbyte.c ---- vim72.orig/src/mbyte.c 2008-07-14 13:38:05.000000000 +0100 -+++ vim72/src/mbyte.c 2008-12-06 11:37:50.000000000 +0000 -@@ -717,7 +717,7 @@ - * where mblen() returns 0 for invalid character. - * Therefore, following condition includes 0. - */ -- (void)mblen(NULL, 0); /* First reset the state. */ -+ ignored = mblen(NULL, 0); /* First reset the state. */ - if (mblen(buf, (size_t)1) <= 0) - n = 2; - else -@@ -2540,7 +2540,6 @@ - return (int)(p - q); - } - --#if defined(FEAT_EVAL) || defined(PROTO) - /* - * Copy a character from "*fp" to "*tp" and advance the pointers. - */ -@@ -2555,7 +2554,6 @@ - *tp += l; - *fp += l; - } --#endif - - /* - * Return the offset from "p" to the first byte of a character. When "p" is -@@ -3133,7 +3131,7 @@ - else - s = p + 1; - } -- for (i = 0; s[i] != NUL && s + i < buf + sizeof(buf) - 1; ++i) -+ for (i = 0; s[i] != NUL && i < sizeof(buf) - 1; ++i) - { - if (s[i] == '_' || s[i] == '-') - buf[i] = '-'; -@@ -5280,7 +5278,7 @@ - - /*ARGSUSED*/ - static void --preedit_start_cbproc(XIC xic, XPointer client_data, XPointer call_data) -+preedit_start_cbproc(XIC thexic, XPointer client_data, XPointer call_data) - { - #ifdef XIM_DEBUG - xim_log("xim_decide_input_style()\n"); -@@ -5314,7 +5312,7 @@ - - /*ARGSUSED*/ - static void --preedit_draw_cbproc(XIC xic, XPointer client_data, XPointer call_data) -+preedit_draw_cbproc(XIC thexic, XPointer client_data, XPointer call_data) - { - XIMPreeditDrawCallbackStruct *draw_data; - XIMText *text; -@@ -5386,7 +5384,7 @@ - draw_feedback = (char *)alloc(draw_data->chg_first - + text->length); - else -- draw_feedback = realloc(draw_feedback, -+ draw_feedback = vim_realloc(draw_feedback, - draw_data->chg_first + text->length); - if (draw_feedback != NULL) - { -@@ -5455,7 +5453,7 @@ - - /*ARGSUSED*/ - static void --preedit_caret_cbproc(XIC xic, XPointer client_data, XPointer call_data) -+preedit_caret_cbproc(XIC thexic, XPointer client_data, XPointer call_data) - { - #ifdef XIM_DEBUG - xim_log("preedit_caret_cbproc()\n"); -@@ -5464,7 +5462,7 @@ - - /*ARGSUSED*/ - static void --preedit_done_cbproc(XIC xic, XPointer client_data, XPointer call_data) -+preedit_done_cbproc(XIC thexic, XPointer client_data, XPointer call_data) - { - #ifdef XIM_DEBUG - xim_log("preedit_done_cbproc()\n"); -@@ -6103,7 +6101,7 @@ - - /* 1. codepage/UTF-8 -> ucs-2. */ - if (vcp->vc_cpfrom == 0) -- tmp_len = utf8_to_ucs2(ptr, len, NULL, NULL); -+ tmp_len = utf8_to_utf16(ptr, len, NULL, NULL); - else - tmp_len = MultiByteToWideChar(vcp->vc_cpfrom, 0, - ptr, len, 0, 0); -@@ -6111,13 +6109,13 @@ - if (tmp == NULL) - break; - if (vcp->vc_cpfrom == 0) -- utf8_to_ucs2(ptr, len, tmp, unconvlenp); -+ utf8_to_utf16(ptr, len, tmp, unconvlenp); - else - MultiByteToWideChar(vcp->vc_cpfrom, 0, ptr, len, tmp, tmp_len); - - /* 2. ucs-2 -> codepage/UTF-8. */ - if (vcp->vc_cpto == 0) -- retlen = ucs2_to_utf8(tmp, tmp_len, NULL); -+ retlen = utf16_to_utf8(tmp, tmp_len, NULL); - else - retlen = WideCharToMultiByte(vcp->vc_cpto, 0, - tmp, tmp_len, 0, 0, 0, 0); -@@ -6125,7 +6123,7 @@ - if (retval != NULL) - { - if (vcp->vc_cpto == 0) -- ucs2_to_utf8(tmp, tmp_len, retval); -+ utf16_to_utf8(tmp, tmp_len, retval); - else - WideCharToMultiByte(vcp->vc_cpto, 0, - tmp, tmp_len, retval, retlen, 0, 0); -diff -Naur vim72.orig/src/menu.c vim72/src/menu.c ---- vim72.orig/src/menu.c 2008-06-21 20:53:43.000000000 +0100 -+++ vim72/src/menu.c 2008-12-06 11:37:48.000000000 +0000 -@@ -1120,6 +1120,7 @@ - parent = menu; - menu = menu->children; - } -+ vim_free(path_name); - - /* Now we have found the matching menu, and we list the mappings */ - /* Highlight title */ -diff -Naur vim72.orig/src/message.c vim72/src/message.c ---- vim72.orig/src/message.c 2008-07-09 19:24:55.000000000 +0100 -+++ vim72/src/message.c 2008-12-06 11:37:50.000000000 +0000 -@@ -4585,61 +4585,62 @@ - if (remove_trailing_zeroes) - { - int i; -- char *p; -+ char *tp; - - /* Using %g or %G: remove superfluous zeroes. */ - if (fmt_spec == 'f') -- p = tmp + str_arg_l - 1; -+ tp = tmp + str_arg_l - 1; - else - { -- p = (char *)vim_strchr((char_u *)tmp, -+ tp = (char *)vim_strchr((char_u *)tmp, - fmt_spec == 'e' ? 'e' : 'E'); -- if (p != NULL) -+ if (tp != NULL) - { - /* Remove superfluous '+' and leading - * zeroes from the exponent. */ -- if (p[1] == '+') -+ if (tp[1] == '+') - { - /* Change "1.0e+07" to "1.0e07" */ -- STRMOVE(p + 1, p + 2); -+ STRMOVE(tp + 1, tp + 2); - --str_arg_l; - } -- i = (p[1] == '-') ? 2 : 1; -- while (p[i] == '0') -+ i = (tp[1] == '-') ? 2 : 1; -+ while (tp[i] == '0') - { - /* Change "1.0e07" to "1.0e7" */ -- STRMOVE(p + i, p + i + 1); -+ STRMOVE(tp + i, tp + i + 1); - --str_arg_l; - } -- --p; -+ --tp; - } - } - -- if (p != NULL && !precision_specified) -+ if (tp != NULL && !precision_specified) - /* Remove trailing zeroes, but keep the one - * just after a dot. */ -- while (p > tmp + 2 && *p == '0' && p[-1] != '.') -+ while (tp > tmp + 2 && *tp == '0' -+ && tp[-1] != '.') - { -- STRMOVE(p, p + 1); -- --p; -+ STRMOVE(tp, tp + 1); -+ --tp; - --str_arg_l; - } - } - else - { -- char *p; -+ char *tp; - - /* Be consistent: some printf("%e") use 1.0e+12 - * and some 1.0e+012. Remove one zero in the last - * case. */ -- p = (char *)vim_strchr((char_u *)tmp, -+ tp = (char *)vim_strchr((char_u *)tmp, - fmt_spec == 'e' ? 'e' : 'E'); -- if (p != NULL && (p[1] == '+' || p[1] == '-') -- && p[2] == '0' -- && vim_isdigit(p[3]) -- && vim_isdigit(p[4])) -+ if (tp != NULL && (tp[1] == '+' || tp[1] == '-') -+ && tp[2] == '0' -+ && vim_isdigit(tp[3]) -+ && vim_isdigit(tp[4])) - { -- STRMOVE(p + 2, p + 3); -+ STRMOVE(tp + 2, tp + 3); - --str_arg_l; - } - } -diff -Naur vim72.orig/src/misc1.c vim72/src/misc1.c ---- vim72.orig/src/misc1.c 2008-07-12 20:20:53.000000000 +0100 -+++ vim72/src/misc1.c 2008-12-06 11:37:50.000000000 +0000 -@@ -3245,9 +3245,9 @@ - - /* When using ":silent" assume that <CR> was entered. */ - if (mouse_used != NULL) -- MSG_PUTS(_("Type number or click with mouse (<Enter> cancels): ")); -+ MSG_PUTS(_("Type number and <Enter> or click with mouse (empty cancels): ")); - else -- MSG_PUTS(_("Choice number (<Enter> cancels): ")); -+ MSG_PUTS(_("Type number and <Enter> (empty cancels): ")); - - /* Set the state such that text can be selected/copied/pasted and we still - * get mouse events. */ -@@ -8728,7 +8728,7 @@ - /* The active codepage differs from 'encoding'. Attempt using the - * wide function. If it fails because it is not implemented fall back - * to the non-wide version (for Windows 98) */ -- wn = enc_to_ucs2(buf, NULL); -+ wn = enc_to_utf16(buf, NULL); - if (wn != NULL) - { - hFind = FindFirstFileW(wn, &wfb); -@@ -8756,7 +8756,7 @@ - #ifdef WIN3264 - # ifdef FEAT_MBYTE - if (wn != NULL) -- p = ucs2_to_enc(wfb.cFileName, NULL); /* p is allocated here */ -+ p = utf16_to_enc(wfb.cFileName, NULL); /* p is allocated here */ - else - # endif - p = (char_u *)fb.cFileName; -@@ -8830,7 +8830,7 @@ - if (wn != NULL) - { - vim_free(wn); -- wn = enc_to_ucs2(buf, NULL); -+ wn = enc_to_utf16(buf, NULL); - if (wn != NULL) - hFind = FindFirstFileW(wn, &wfb); - } -diff -Naur vim72.orig/src/misc2.c vim72/src/misc2.c ---- vim72.orig/src/misc2.c 2008-07-23 20:12:56.000000000 +0100 -+++ vim72/src/misc2.c 2008-12-06 11:37:49.000000000 +0000 -@@ -873,7 +873,7 @@ - /* 3. check for available memory: call mch_avail_mem() */ - if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing) - { -- vim_free((char *)p); /* System is low... no go! */ -+ free((char *)p); /* System is low... no go! */ - p = NULL; - } - else -@@ -1257,7 +1257,6 @@ - return escaped_string; - } - --#if !defined(BACKSLASH_IN_FILENAME) || defined(FEAT_EVAL) || defined(PROTO) - /* - * Return TRUE when 'shell' has "csh" in the tail. - */ -@@ -1266,9 +1265,7 @@ - { - return (strstr((char *)gettail(p_sh), "csh") != NULL); - } --#endif - --#if defined(FEAT_EVAL) || defined(PROTO) - /* - * Escape "string" for use as a shell argument with system(). - * This uses single quotes, except when we know we need to use double qoutes -@@ -1391,7 +1388,6 @@ - - return escaped_string; - } --#endif - - /* - * Like vim_strsave(), but make all characters uppercase. -diff -Naur vim72.orig/src/move.c vim72/src/move.c ---- vim72.orig/src/move.c 2008-07-12 17:26:47.000000000 +0100 -+++ vim72/src/move.c 2008-12-06 11:37:49.000000000 +0000 -@@ -280,18 +280,20 @@ - - if (curwin->w_botline <= curbuf->b_ml.ml_line_count) - { -- if (curwin->w_cursor.lnum < curwin->w_botline -- && ((long)curwin->w_cursor.lnum -+ if (curwin->w_cursor.lnum < curwin->w_botline) -+ { -+ if (((long)curwin->w_cursor.lnum - >= (long)curwin->w_botline - p_so - #ifdef FEAT_FOLDING - || hasAnyFolding(curwin) - #endif - )) -- { -+ { - lineoff_T loff; - -- /* Cursor is above botline, check if there are 'scrolloff' -- * window lines below the cursor. If not, need to scroll. */ -+ /* Cursor is (a few lines) above botline, check if there are -+ * 'scrolloff' window lines below the cursor. If not, need to -+ * scroll. */ - n = curwin->w_empty_rows; - loff.lnum = curwin->w_cursor.lnum; - #ifdef FEAT_FOLDING -@@ -317,6 +319,10 @@ - if (n >= p_so) - /* sufficient context, no need to scroll */ - check_botline = FALSE; -+ } -+ else -+ /* sufficient context, no need to scroll */ -+ check_botline = FALSE; - } - if (check_botline) - { -@@ -509,6 +515,9 @@ - /* Approximate the value of w_botline */ - wp->w_botline += lnum - wp->w_topline; - wp->w_topline = lnum; -+#ifdef FEAT_AUTOCMD -+ wp->w_topline_was_set = TRUE; -+#endif - #ifdef FEAT_DIFF - wp->w_topfill = 0; - #endif -diff -Naur vim72.orig/src/netbeans.c vim72/src/netbeans.c ---- vim72.orig/src/netbeans.c 2008-07-13 17:19:54.000000000 +0100 -+++ vim72/src/netbeans.c 2008-12-06 11:37:50.000000000 +0000 -@@ -1043,7 +1043,7 @@ - nbdebug(("EVT: %s", buf)); - /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */ - if (sd >= 0) -- sock_write(sd, buf, (int)STRLEN(buf)); /* ignore errors */ -+ ignored = sock_write(sd, buf, (int)STRLEN(buf)); - } - } - -@@ -1795,7 +1795,7 @@ - buf->displayname = NULL; - - netbeansReadFile = 0; /* don't try to open disk file */ -- do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF); -+ do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF, curwin); - netbeansReadFile = 1; - buf->bufp = curbuf; - maketitle(); -@@ -1960,7 +1960,7 @@ - - netbeansReadFile = 0; /* don't try to open disk file */ - do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE, -- ECMD_HIDE + ECMD_OLDBUF); -+ ECMD_HIDE + ECMD_OLDBUF, curwin); - netbeansReadFile = 1; - buf->bufp = curbuf; - maketitle(); -@@ -1979,7 +1979,7 @@ - vim_free(buf->displayname); - buf->displayname = nb_unquote(args, NULL); - do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE, -- ECMD_HIDE + ECMD_OLDBUF); -+ ECMD_HIDE + ECMD_OLDBUF, curwin); - buf->bufp = curbuf; - buf->initDone = TRUE; - doupdate = 1; -@@ -2277,9 +2277,6 @@ - int serNum; - int localTypeNum; - int typeNum; --# ifdef NBDEBUG -- int len; --# endif - pos_T *pos; - - if (buf == NULL || buf->bufp == NULL) -@@ -2303,13 +2300,10 @@ - pos = get_off_or_lnum(buf->bufp, &args); - - cp = (char *)args; --# ifdef NBDEBUG -- len = --# endif -- strtol(cp, &cp, 10); -+ ignored = (int)strtol(cp, &cp, 10); - args = (char_u *)cp; - # ifdef NBDEBUG -- if (len != -1) -+ if (ignored != -1) - { - nbdebug((" partial line annotation -- Not Yet Implemented!\n")); - } -diff -Naur vim72.orig/src/normal.c vim72/src/normal.c ---- vim72.orig/src/normal.c 2008-07-31 21:03:08.000000000 +0100 -+++ vim72/src/normal.c 2008-12-06 11:37:50.000000000 +0000 -@@ -183,6 +183,8 @@ - static void nv_cursorhold __ARGS((cmdarg_T *cap)); - #endif - -+static char *e_noident = N_("E349: No identifier under cursor"); -+ - /* - * Function to be called for a Normal or Visual mode command. - * The argument is a cmdarg_T. -@@ -578,6 +580,9 @@ - static int old_mapped_len = 0; - #endif - int idx; -+#ifdef FEAT_EVAL -+ int set_prevcount = FALSE; -+#endif - - vim_memset(&ca, 0, sizeof(ca)); /* also resets ca.retval */ - ca.oap = oap; -@@ -613,7 +618,12 @@ - /* When not finishing an operator and no register name typed, reset the - * count. */ - if (!finish_op && !oap->regname) -+ { - ca.opcount = 0; -+#ifdef FEAT_EVAL -+ set_prevcount = TRUE; -+#endif -+ } - - #ifdef FEAT_AUTOCMD - /* Restore counts from before receiving K_CURSORHOLD. This means after -@@ -717,7 +727,15 @@ - * command, so that v:count can be used in an expression mapping - * right after the count. */ - if (toplevel && stuff_empty()) -- set_vcount(ca.count0, ca.count0 == 0 ? 1 : ca.count0); -+ { -+ long count = ca.count0; -+ -+ /* multiply with ca.opcount the same way as below */ -+ if (ca.opcount != 0) -+ count = ca.opcount * (count == 0 ? 1 : count); -+ set_vcount(count, count == 0 ? 1 : count, set_prevcount); -+ set_prevcount = FALSE; /* only set v:prevcount once */ -+ } - #endif - if (ctrl_w) - { -@@ -804,7 +822,7 @@ - * Only set v:count when called from main() and not a stuffed command. - */ - if (toplevel && stuff_empty()) -- set_vcount(ca.count0, ca.count1); -+ set_vcount(ca.count0, ca.count1, set_prevcount); - #endif - - /* -@@ -1132,7 +1150,8 @@ - out_flush(); - #endif - #ifdef FEAT_AUTOCMD -- did_cursorhold = FALSE; -+ if (ca.cmdchar != K_IGNORE) -+ did_cursorhold = FALSE; - #endif - - State = NORMAL; -@@ -3509,7 +3528,7 @@ - if (find_type & FIND_STRING) - EMSG(_("E348: No string under cursor")); - else -- EMSG(_("E349: No identifier under cursor")); -+ EMSG(_(e_noident)); - return 0; - } - ptr += col; -@@ -5469,6 +5488,20 @@ - STRCPY(buf, "he! "); - else - { -+ /* An external command will probably use an argument starting -+ * with "-" as an option. To avoid trouble we skip the "-". */ -+ while (*ptr == '-' && n > 0) -+ { -+ ++ptr; -+ --n; -+ } -+ if (n == 0) -+ { -+ EMSG(_(e_noident)); /* found dashes only */ -+ vim_free(buf); -+ return; -+ } -+ - /* When a count is given, turn it into a range. Is this - * really what we want? */ - isman = (STRCMP(kp, "man") == 0); -@@ -5511,37 +5544,59 @@ - /* - * Now grab the chars in the identifier - */ -- if (cmdchar == '*') -- aux_ptr = (char_u *)(p_magic ? "/.*~[^$\" : "/^$\"); -- else if (cmdchar == '#') -- aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\" : "/?^$\"); -- else if (cmdchar == 'K' && !kp_help) -- aux_ptr = (char_u *)" \t\"|!"; -- else -- /* Don't escape spaces and Tabs in a tag with a backslash */ -- aux_ptr = (char_u *)"\|""; -- -- p = buf + STRLEN(buf); -- while (n-- > 0) -- { -- /* put a backslash before \ and some others */ -- if (vim_strchr(aux_ptr, *ptr) != NULL) -- *p++ = '\'; --#ifdef FEAT_MBYTE -- /* When current byte is a part of multibyte character, copy all bytes -- * of that character. */ -- if (has_mbyte) -+ if (cmdchar == 'K' && !kp_help) -+ { -+ /* Escape the argument properly for a shell command */ -+ ptr = vim_strnsave(ptr, n); -+ p = vim_strsave_shellescape(ptr, TRUE); -+ vim_free(ptr); -+ if (p == NULL) - { -- int i; -- int len = (*mb_ptr2len)(ptr) - 1; -- -- for (i = 0; i < len && n >= 1; ++i, --n) -- *p++ = *ptr++; -+ vim_free(buf); -+ return; - } -+ buf = (char_u *)vim_realloc(buf, STRLEN(buf) + STRLEN(p) + 1); -+ if (buf == NULL) -+ { -+ vim_free(buf); -+ vim_free(p); -+ return; -+ } -+ STRCAT(buf, p); -+ vim_free(p); -+ } -+ else -+ { -+ if (cmdchar == '*') -+ aux_ptr = (char_u *)(p_magic ? "/.*~[^$\" : "/^$\"); -+ else if (cmdchar == '#') -+ aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\" : "/?^$\"); -+ else -+ /* Don't escape spaces and Tabs in a tag with a backslash */ -+ aux_ptr = (char_u *)"\|"\n*?["; -+ -+ p = buf + STRLEN(buf); -+ while (n-- > 0) -+ { -+ /* put a backslash before \ and some others */ -+ if (vim_strchr(aux_ptr, *ptr) != NULL) -+ *p++ = '\'; -+#ifdef FEAT_MBYTE -+ /* When current byte is a part of multibyte character, copy all -+ * bytes of that character. */ -+ if (has_mbyte) -+ { -+ int i; -+ int len = (*mb_ptr2len)(ptr) - 1; -+ -+ for (i = 0; i < len && n >= 1; ++i, --n) -+ *p++ = *ptr++; -+ } - #endif -- *p++ = *ptr++; -+ *p++ = *ptr++; -+ } -+ *p = NUL; - } -- *p = NUL; - - /* - * Execute the command. -@@ -6011,7 +6066,7 @@ - autowrite(curbuf, FALSE); - setpcmark(); - (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST, -- P_HID(curbuf) ? ECMD_HIDE : 0); -+ P_HID(curbuf) ? ECMD_HIDE : 0, curwin); - if (cap->nchar == 'F' && lnum >= 0) - { - curwin->w_cursor.lnum = lnum; -diff -Naur vim72.orig/src/ops.c vim72/src/ops.c ---- vim72.orig/src/ops.c 2008-06-21 21:08:59.000000000 +0100 -+++ vim72/src/ops.c 2008-12-06 11:37:50.000000000 +0000 -@@ -2209,12 +2209,15 @@ - { - for (; pos.lnum <= oap->end.lnum; ++pos.lnum) - { -+ int one_change; -+ - block_prep(oap, &bd, pos.lnum, FALSE); - pos.col = bd.textcol; -- did_change = swapchars(oap->op_type, &pos, bd.textlen); -+ one_change = swapchars(oap->op_type, &pos, bd.textlen); -+ did_change |= one_change; - - # ifdef FEAT_NETBEANS_INTG -- if (usingNetbeans && did_change) -+ if (usingNetbeans && one_change) - { - char_u *ptr = ml_get_buf(curbuf, pos.lnum, FALSE); - -diff -Naur vim72.orig/src/option.c vim72/src/option.c ---- vim72.orig/src/option.c 2008-07-18 14:05:33.000000000 +0100 -+++ vim72/src/option.c 2008-12-06 11:37:50.000000000 +0000 -@@ -2593,13 +2593,13 @@ - #ifdef FEAT_VIMINFO - (char_u *)&p_viminfo, PV_NONE, - #if defined(MSDOS) || defined(MSWIN) || defined(OS2) -- {(char_u *)"", (char_u *)"'20,<50,s10,h,rA:,rB:"} -+ {(char_u *)"", (char_u *)"'100,<50,s10,h,rA:,rB:"} - #else - # ifdef AMIGA - {(char_u *)"", -- (char_u *)"'20,<50,s10,h,rdf0:,rdf1:,rdf2:"} -+ (char_u *)"'100,<50,s10,h,rdf0:,rdf1:,rdf2:"} - # else -- {(char_u *)"", (char_u *)"'20,<50,s10,h"} -+ {(char_u *)"", (char_u *)"'100,<50,s10,h"} - # endif - #endif - #else -@@ -7974,6 +7974,11 @@ - else /* curwin->w_p_scr > curwin->w_height */ - curwin->w_p_scr = curwin->w_height; - } -+ if (p_hi < 0) -+ { -+ errmsg = e_positive; -+ p_hi = 0; -+ } - if (p_report < 0) - { - errmsg = e_positive; -@@ -8227,13 +8232,13 @@ - { - if (number == 0 && string != NULL) - { -- int index; -+ int idx; - - /* Either we are given a string or we are setting option - * to zero. */ -- for (index = 0; string[index] == '0'; ++index) -+ for (idx = 0; string[idx] == '0'; ++idx) - ; -- if (string[index] != NUL || index == 0) -+ if (string[idx] != NUL || idx == 0) - { - /* There's another character after zeros or the string - * is empty. In both cases, we are trying to set a -diff -Naur vim72.orig/src/os_unix.c vim72/src/os_unix.c ---- vim72.orig/src/os_unix.c 2008-08-06 12:01:40.000000000 +0100 -+++ vim72/src/os_unix.c 2008-12-06 11:37:50.000000000 +0000 -@@ -315,12 +315,15 @@ - {-1, "Unknown!", FALSE} - }; - -+/* -+ * Write s[len] to the screen. -+ */ - void - mch_write(s, len) - char_u *s; - int len; - { -- write(1, (char *)s, len); -+ ignored = (int)write(1, (char *)s, len); - if (p_wd) /* Unix is too fast, slow down a bit more */ - RealWaitForChar(read_cmd_fd, p_wd, NULL); - } -@@ -2905,7 +2908,7 @@ - * Ignore any errors. - */ - #if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK) -- signal_stack = malloc(SIGSTKSZ); -+ signal_stack = (char *)alloc(SIGSTKSZ); - init_signal_stack(); - #endif - } -@@ -2936,7 +2939,8 @@ - } - # endif - # endif --# ifdef FEAT_X11 -+ /* Don't close the display for GTK 1, it is done in exit(). */ -+# if defined(FEAT_X11) && (!defined(FEAT_GUI_GTK) || defined(HAVE_GTK2)) - if (x11_display != NULL - # ifdef FEAT_XCLIPBOARD - && x11_display != xterm_dpy -@@ -3926,9 +3930,9 @@ - */ - if (fd >= 0) - { -- dup(fd); /* To replace stdin (file descriptor 0) */ -- dup(fd); /* To replace stdout (file descriptor 1) */ -- dup(fd); /* To replace stderr (file descriptor 2) */ -+ ignored = dup(fd); /* To replace stdin (fd 0) */ -+ ignored = dup(fd); /* To replace stdout (fd 1) */ -+ ignored = dup(fd); /* To replace stderr (fd 2) */ - - /* Don't need this now that we've duplicated it */ - close(fd); -@@ -3996,13 +4000,13 @@ - - /* set up stdin/stdout/stderr for the child */ - close(0); -- dup(pty_slave_fd); -+ ignored = dup(pty_slave_fd); - close(1); -- dup(pty_slave_fd); -+ ignored = dup(pty_slave_fd); - if (gui.in_use) - { - close(2); -- dup(pty_slave_fd); -+ ignored = dup(pty_slave_fd); - } - - close(pty_slave_fd); /* has been dupped, close it now */ -@@ -4013,13 +4017,13 @@ - /* set up stdin for the child */ - close(fd_toshell[1]); - close(0); -- dup(fd_toshell[0]); -+ ignored = dup(fd_toshell[0]); - close(fd_toshell[0]); - - /* set up stdout for the child */ - close(fd_fromshell[0]); - close(1); -- dup(fd_fromshell[1]); -+ ignored = dup(fd_fromshell[1]); - close(fd_fromshell[1]); - - # ifdef FEAT_GUI -@@ -4027,7 +4031,7 @@ - { - /* set up stderr for the child */ - close(2); -- dup(1); -+ ignored = dup(1); - } - # endif - } -@@ -4158,7 +4162,8 @@ - && (lnum != - curbuf->b_ml.ml_line_count - || curbuf->b_p_eol))) -- write(toshell_fd, "\n", (size_t)1); -+ ignored = write(toshell_fd, "\n", -+ (size_t)1); - ++lnum; - if (lnum > curbuf->b_op_end.lnum) - { -@@ -6814,7 +6819,8 @@ - if (xsmp_icefd != -1) - { - SmcCloseConnection(xsmp.smcconn, 0, NULL); -- vim_free(xsmp.clientid); -+ if (xsmp.clientid != NULL) -+ free(xsmp.clientid); - xsmp.clientid = NULL; - xsmp_icefd = -1; - } -diff -Naur vim72.orig/src/popupmnu.c vim72/src/popupmnu.c ---- vim72.orig/src/popupmnu.c 2008-07-12 17:28:18.000000000 +0100 -+++ vim72/src/popupmnu.c 2008-12-06 11:37:49.000000000 +0000 -@@ -573,7 +573,7 @@ - { - /* Don't want to sync undo in the current buffer. */ - ++no_u_sync; -- res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0); -+ res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0, NULL); - --no_u_sync; - if (res == OK) - { -diff -Naur vim72.orig/src/proto/buffer.pro vim72/src/proto/buffer.pro ---- vim72.orig/src/proto/buffer.pro 2008-08-09 15:31:21.000000000 +0100 -+++ vim72/src/proto/buffer.pro 2008-12-06 11:37:49.000000000 +0000 -@@ -33,7 +33,7 @@ - char_u *getaltfname __ARGS((int errmsg)); - int buflist_add __ARGS((char_u *fname, int flags)); - void buflist_slash_adjust __ARGS((void)); --void buflist_altfpos __ARGS((void)); -+void buflist_altfpos __ARGS((win_T *win)); - int otherfile __ARGS((char_u *ffname)); - void buf_setino __ARGS((buf_T *buf)); - void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate)); -diff -Naur vim72.orig/src/proto/eval.pro vim72/src/proto/eval.pro ---- vim72.orig/src/proto/eval.pro 2008-08-09 15:31:25.000000000 +0100 -+++ vim72/src/proto/eval.pro 2008-12-06 11:37:50.000000000 +0000 -@@ -17,7 +17,7 @@ - int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip)); - char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip)); - int skip_expr __ARGS((char_u **pp)); --char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int dolist)); -+char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int convert)); - char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox)); - int eval_to_number __ARGS((char_u *expr)); - list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr)); -@@ -46,7 +46,9 @@ - void list_unref __ARGS((list_T *l)); - void list_free __ARGS((list_T *l, int recurse)); - dictitem_T *dict_lookup __ARGS((hashitem_T *hi)); -+char_u *list_find_str __ARGS((list_T *l, long idx)); - int list_append_dict __ARGS((list_T *list, dict_T *dict)); -+int list_append_string __ARGS((list_T *l, char_u *str, int len)); - int garbage_collect __ARGS((void)); - dict_T *dict_alloc __ARGS((void)); - int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str)); -@@ -58,8 +60,10 @@ - void set_vim_var_nr __ARGS((int idx, long val)); - long get_vim_var_nr __ARGS((int idx)); - char_u *get_vim_var_str __ARGS((int idx)); --void set_vcount __ARGS((long count, long count1)); -+list_T *get_vim_var_list __ARGS((int idx)); -+void set_vcount __ARGS((long count, long count1, int set_prevcount)); - void set_vim_var_string __ARGS((int idx, char_u *val, int len)); -+void set_vim_var_list __ARGS((int idx, list_T *val)); - void set_reg_var __ARGS((int c)); - char_u *v_exception __ARGS((char_u *oldval)); - char_u *v_throwpoint __ARGS((char_u *oldval)); -@@ -94,6 +98,7 @@ - void write_viminfo_varlist __ARGS((FILE *fp)); - int store_session_globals __ARGS((FILE *fd)); - void last_set_msg __ARGS((scid_T scriptID)); -+void ex_oldfiles __ARGS((exarg_T *eap)); - int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen)); - char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags)); - /* vim: set ft=c : */ -diff -Naur vim72.orig/src/proto/ex_cmds.pro vim72/src/proto/ex_cmds.pro ---- vim72.orig/src/proto/ex_cmds.pro 2008-08-09 15:31:25.000000000 +0100 -+++ vim72/src/proto/ex_cmds.pro 2008-12-06 11:37:49.000000000 +0000 -@@ -11,7 +11,7 @@ - char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp)); - void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname)); - int viminfo_error __ARGS((char *errnum, char *message, char_u *line)); --int read_viminfo __ARGS((char_u *file, int want_info, int want_marks, int forceit)); -+int read_viminfo __ARGS((char_u *file, int flags)); - void write_viminfo __ARGS((char_u *file, int forceit)); - int viminfo_readline __ARGS((vir_T *virp)); - char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert)); -@@ -27,7 +27,7 @@ - void do_wqall __ARGS((exarg_T *eap)); - int not_writing __ARGS((void)); - int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit)); --int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags)); -+int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags, win_T *oldwin)); - void ex_append __ARGS((exarg_T *eap)); - void ex_change __ARGS((exarg_T *eap)); - void ex_z __ARGS((exarg_T *eap)); -diff -Naur vim72.orig/src/proto/ex_getln.pro vim72/src/proto/ex_getln.pro ---- vim72.orig/src/proto/ex_getln.pro 2008-08-09 15:31:28.000000000 +0100 -+++ vim72/src/proto/ex_getln.pro 2008-12-06 11:37:50.000000000 +0000 -@@ -31,7 +31,7 @@ - void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col)); - int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches)); - int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int)))); --char_u *globpath __ARGS((char_u *path, char_u *file)); -+char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options)); - void init_history __ARGS((void)); - int get_histtype __ARGS((char_u *name)); - void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep)); -diff -Naur vim72.orig/src/proto/mark.pro vim72/src/proto/mark.pro ---- vim72.orig/src/proto/mark.pro 2008-08-09 15:31:36.000000000 +0100 -+++ vim72/src/proto/mark.pro 2008-12-06 11:37:49.000000000 +0000 -@@ -26,5 +26,5 @@ - void write_viminfo_filemarks __ARGS((FILE *fp)); - int removable __ARGS((char_u *name)); - int write_viminfo_marks __ARGS((FILE *fp_out)); --void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof)); -+void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof, int flags)); - /* vim: set ft=c : */ -diff -Naur vim72.orig/src/pty.c vim72/src/pty.c ---- vim72.orig/src/pty.c 2008-06-21 19:52:58.000000000 +0100 -+++ vim72/src/pty.c 2008-12-06 11:37:48.000000000 +0000 -@@ -270,9 +270,10 @@ - } - #endif - --#if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux) -+#if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux) && !defined(MACOS_X) - --/* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! */ -+/* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! -+ * Same for Mac OS X Leopard. */ - #define PTY_DONE - int - OpenPTY(ttyn) -diff -Naur vim72.orig/src/quickfix.c vim72/src/quickfix.c ---- vim72.orig/src/quickfix.c 2008-07-18 13:53:02.000000000 +0100 -+++ vim72/src/quickfix.c 2008-12-06 11:37:49.000000000 +0000 -@@ -1420,6 +1420,7 @@ - win_T *win; - win_T *altwin; - #endif -+ win_T *oldwin = curwin; - int print_message = TRUE; - int len; - #ifdef FEAT_FOLDING -@@ -1744,7 +1745,8 @@ - } - else - ok = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1, -- ECMD_HIDE + ECMD_SET_HELP); -+ ECMD_HIDE + ECMD_SET_HELP, -+ oldwin == curwin ? curwin : NULL); - } - else - ok = buflist_getfile(qf_ptr->qf_fnum, -@@ -2267,6 +2269,7 @@ - win_T *win; - tabpage_T *prevtab = curtab; - buf_T *qf_buf; -+ win_T *oldwin = curwin; - - if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) - { -@@ -2326,14 +2329,16 @@ - win->w_llist->qf_refcount++; - } - -+ if (oldwin != curwin) -+ oldwin = NULL; /* don't store info when in another window */ - if (qf_buf != NULL) - /* Use the existing quickfix buffer */ - (void)do_ecmd(qf_buf->b_fnum, NULL, NULL, NULL, ECMD_ONE, -- ECMD_HIDE + ECMD_OLDBUF); -+ ECMD_HIDE + ECMD_OLDBUF, oldwin); - else - { - /* Create a new quickfix buffer */ -- (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE); -+ (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, oldwin); - /* switch off 'swapfile' */ - set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); - set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix", -diff -Naur vim72.orig/src/screen.c vim72/src/screen.c ---- vim72.orig/src/screen.c 2008-07-24 15:45:07.000000000 +0100 -+++ vim72/src/screen.c 2008-12-06 11:37:48.000000000 +0000 -@@ -2439,9 +2439,17 @@ - - #ifdef FEAT_SYN_HL - /* Show 'cursorcolumn' in the fold line. */ -- if (wp->w_p_cuc && (int)wp->w_virtcol + txtcol < W_WIDTH(wp)) -- ScreenAttrs[off + wp->w_virtcol + txtcol] = hl_combine_attr( -- ScreenAttrs[off + wp->w_virtcol + txtcol], hl_attr(HLF_CUC)); -+ if (wp->w_p_cuc) -+ { -+ txtcol += wp->w_virtcol; -+ if (wp->w_p_wrap) -+ txtcol -= wp->w_skipcol; -+ else -+ txtcol -= wp->w_leftcol; -+ if (txtcol >= 0 && txtcol < W_WIDTH(wp)) -+ ScreenAttrs[off + txtcol] = hl_combine_attr( -+ ScreenAttrs[off + txtcol], hl_attr(HLF_CUC)); -+ } - #endif - - SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp), -diff -Naur vim72.orig/src/spell.c vim72/src/spell.c ---- vim72.orig/src/spell.c 2008-07-12 20:20:55.000000000 +0100 -+++ vim72/src/spell.c 2008-12-06 11:37:50.000000000 +0000 -@@ -77,7 +77,7 @@ - - /* - * Do the opposite: based on a maximum end score and a known sound score, -- * compute the the maximum word score that can be used. -+ * compute the maximum word score that can be used. - */ - #define MAXSCORE(word_score, sound_score) ((4 * word_score - sound_score) / 3) - -@@ -469,6 +469,7 @@ - garray_T sl_comppat; /* CHECKCOMPOUNDPATTERN items */ - regprog_T *sl_compprog; /* COMPOUNDRULE turned into a regexp progrm - * (NULL when no compounding) */ -+ char_u *sl_comprules; /* all COMPOUNDRULE concatenated (or NULL) */ - char_u *sl_compstartflags; /* flags for first compound word */ - char_u *sl_compallflags; /* all flags for compound words */ - char_u sl_nobreak; /* When TRUE: no spaces between words */ -@@ -625,7 +626,7 @@ - /* TRUE if a word appears in the list of banned words. */ - #define WAS_BANNED(su, word) (!HASHITEM_EMPTY(hash_find(&su->su_banned, word))) - --/* Number of suggestions kept when cleaning up. we need to keep more than -+/* Number of suggestions kept when cleaning up. We need to keep more than - * what is displayed, because when rescore_suggestions() is called the score - * may change and wrong suggestions may be removed later. */ - #define SUG_CLEAN_COUNT(su) ((su)->su_maxcount < 130 ? 150 : (su)->su_maxcount + 20) -@@ -839,7 +840,10 @@ - static void slang_clear __ARGS((slang_T *lp)); - static void slang_clear_sug __ARGS((slang_T *lp)); - static void find_word __ARGS((matchinf_T *mip, int mode)); -+static int match_checkcompoundpattern __ARGS((char_u *ptr, int wlen, garray_T *gap)); - static int can_compound __ARGS((slang_T *slang, char_u *word, char_u *flags)); -+static int can_be_compound __ARGS((trystate_T *sp, slang_T *slang, char_u *compflags, int flag)); -+static int match_compoundrule __ARGS((slang_T *slang, char_u *compflags)); - static int valid_word_prefix __ARGS((int totprefcnt, int arridx, int flags, char_u *word, slang_T *slang, int cond_req)); - static void find_prefix __ARGS((matchinf_T *mip, int mode)); - static int fold_more __ARGS((matchinf_T *mip)); -@@ -1519,6 +1523,11 @@ - ((unsigned)flags >> 24))) - continue; - -+ /* If there is a match with a CHECKCOMPOUNDPATTERN rule -+ * discard the compound word. */ -+ if (match_checkcompoundpattern(ptr, wlen, &slang->sl_comppat)) -+ continue; -+ - if (mode == FIND_COMPOUND) - { - int capflags; -@@ -1577,6 +1586,11 @@ - if (!can_compound(slang, fword, mip->mi_compflags)) - continue; - } -+ else if (slang->sl_comprules != NULL -+ && !match_compoundrule(slang, mip->mi_compflags)) -+ /* The compound flags collected so far do not match any -+ * COMPOUNDRULE, discard the compounded word. */ -+ continue; - } - - /* Check NEEDCOMPOUND: can't use word without compounding. */ -@@ -1727,6 +1741,39 @@ - } - - /* -+ * Return TRUE if there is a match between the word ptr[wlen] and -+ * CHECKCOMPOUNDPATTERN rules, assuming that we will concatenate with another -+ * word. -+ * A match means that the first part of CHECKCOMPOUNDPATTERN matches at the -+ * end of ptr[wlen] and the second part matches after it. -+ */ -+ static int -+match_checkcompoundpattern(ptr, wlen, gap) -+ char_u *ptr; -+ int wlen; -+ garray_T *gap; /* &sl_comppat */ -+{ -+ int i; -+ char_u *p; -+ int len; -+ -+ for (i = 0; i + 1 < gap->ga_len; i += 2) -+ { -+ p = ((char_u **)gap->ga_data)[i + 1]; -+ if (STRNCMP(ptr + wlen, p, STRLEN(p)) == 0) -+ { -+ /* Second part matches at start of following compound word, now -+ * check if first part matches at end of previous word. */ -+ p = ((char_u **)gap->ga_data)[i]; -+ len = STRLEN(p); -+ if (len <= wlen && STRNCMP(ptr + wlen - len, p, len) == 0) -+ return TRUE; -+ } -+ } -+ return FALSE; -+} -+ -+/* - * Return TRUE if "flags" is a valid sequence of compound flags and "word" - * does not have too many syllables. - */ -@@ -1773,6 +1820,98 @@ - } - - /* -+ * Return TRUE when the sequence of flags in "compflags" plus "flag" can -+ * possibly form a valid compounded word. This also checks the COMPOUNDRULE -+ * lines if they don't contain wildcards. -+ */ -+ static int -+can_be_compound(sp, slang, compflags, flag) -+ trystate_T *sp; -+ slang_T *slang; -+ char_u *compflags; -+ int flag; -+{ -+ /* If the flag doesn't appear in sl_compstartflags or sl_compallflags -+ * then it can't possibly compound. */ -+ if (!byte_in_str(sp->ts_complen == sp->ts_compsplit -+ ? slang->sl_compstartflags : slang->sl_compallflags, flag)) -+ return FALSE; -+ -+ /* If there are no wildcards, we can check if the flags collected so far -+ * possibly can form a match with COMPOUNDRULE patterns. This only -+ * makes sense when we have two or more words. */ -+ if (slang->sl_comprules != NULL && sp->ts_complen > sp->ts_compsplit) -+ { -+ int v; -+ -+ compflags[sp->ts_complen] = flag; -+ compflags[sp->ts_complen + 1] = NUL; -+ v = match_compoundrule(slang, compflags + sp->ts_compsplit); -+ compflags[sp->ts_complen] = NUL; -+ return v; -+ } -+ -+ return TRUE; -+} -+ -+ -+/* -+ * Return TRUE if the compound flags in compflags[] match the start of any -+ * compound rule. This is used to stop trying a compound if the flags -+ * collected so far can't possibly match any compound rule. -+ * Caller must check that slang->sl_comprules is not NULL. -+ */ -+ static int -+match_compoundrule(slang, compflags) -+ slang_T *slang; -+ char_u *compflags; -+{ -+ char_u *p; -+ int i; -+ int c; -+ -+ /* loop over all the COMPOUNDRULE entries */ -+ for (p = slang->sl_comprules; *p != NUL; ++p) -+ { -+ /* loop over the flags in the compound word we have made, match -+ * them against the current rule entry */ -+ for (i = 0; ; ++i) -+ { -+ c = compflags[i]; -+ if (c == NUL) -+ /* found a rule that matches for the flags we have so far */ -+ return TRUE; -+ if (*p == '/' || *p == NUL) -+ break; /* end of rule, it's too short */ -+ if (*p == '[') -+ { -+ int match = FALSE; -+ -+ /* compare against all the flags in [] */ -+ ++p; -+ while (*p != ']' && *p != NUL) -+ if (*p++ == c) -+ match = TRUE; -+ if (!match) -+ break; /* none matches */ -+ } -+ else if (*p != c) -+ break; /* flag of word doesn't match flag in pattern */ -+ ++p; -+ } -+ -+ /* Skip to the next "/", where the next pattern starts. */ -+ p = vim_strchr(p, '/'); -+ if (p == NULL) -+ break; -+ } -+ -+ /* Checked all the rules and none of them match the flags, so there -+ * can't possibly be a compound starting with these flags. */ -+ return FALSE; -+} -+ -+/* - * Return non-zero if the prefix indicated by "arridx" matches with the prefix - * ID in "flags" for the word "word". - * The WF_RAREPFX flag is included in the return value for a rare prefix. -@@ -2513,9 +2652,11 @@ - lp->sl_midword = NULL; - - vim_free(lp->sl_compprog); -+ vim_free(lp->sl_comprules); - vim_free(lp->sl_compstartflags); - vim_free(lp->sl_compallflags); - lp->sl_compprog = NULL; -+ lp->sl_comprules = NULL; - lp->sl_compstartflags = NULL; - lp->sl_compallflags = NULL; - -@@ -3460,6 +3601,7 @@ - char_u *pp; - char_u *cp; - char_u *ap; -+ char_u *crp; - int cnt; - garray_T *gap; - -@@ -3545,6 +3687,12 @@ - slang->sl_compallflags = ap; - *ap = NUL; - -+ /* And a list of all patterns in their original form, for checking whether -+ * compounding may work in match_compoundrule(). This is freed when we -+ * encounter a wildcard, the check doesn't work then. */ -+ crp = alloc(todo + 1); -+ slang->sl_comprules = crp; -+ - pp = pat; - *pp++ = '^'; - *pp++ = '\'; -@@ -3587,6 +3735,20 @@ - atstart = 0; - } - } -+ -+ /* Copy flag to "sl_comprules", unless we run into a wildcard. */ -+ if (crp != NULL) -+ { -+ if (c == '+' || c == '*') -+ { -+ vim_free(slang->sl_comprules); -+ slang->sl_comprules = NULL; -+ crp = NULL; -+ } -+ else -+ *crp++ = c; -+ } -+ - if (c == '/') /* slash separates two items */ - { - *pp++ = '\'; -@@ -3611,6 +3773,9 @@ - *pp++ = '$'; - *pp = NUL; - -+ if (crp != NULL) -+ *crp = NUL; -+ - slang->sl_compprog = vim_regcomp(pat, RE_MAGIC + RE_STRING + RE_STRICT); - vim_free(pat); - if (slang->sl_compprog == NULL) -@@ -4915,6 +5080,7 @@ - } spellinfo_T; - - static afffile_T *spell_read_aff __ARGS((spellinfo_T *spin, char_u *fname)); -+static int is_aff_rule __ARGS((char_u **items, int itemcnt, char *rulename, int mincount)); - static void aff_process_flags __ARGS((afffile_T *affile, affentry_T *entry)); - static int spell_info_item __ARGS((char_u *s)); - static unsigned affitem2flag __ARGS((int flagtype, char_u *item, char_u *fname, int lnum)); -@@ -4950,7 +5116,7 @@ - static void put_sugtime __ARGS((spellinfo_T *spin, FILE *fd)); - static int write_vim_spell __ARGS((spellinfo_T *spin, char_u *fname)); - static void clear_node __ARGS((wordnode_T *node)); --static int put_node __ARGS((FILE *fd, wordnode_T *node, int index, int regionmask, int prefixtree)); -+static int put_node __ARGS((FILE *fd, wordnode_T *node, int idx, int regionmask, int prefixtree)); - static void spell_make_sugfile __ARGS((spellinfo_T *spin, char_u *wfname)); - static int sug_filltree __ARGS((spellinfo_T *spin, slang_T *slang)); - static int sug_maketable __ARGS((spellinfo_T *spin)); -@@ -5223,8 +5389,7 @@ - /* Handle non-empty lines. */ - if (itemcnt > 0) - { -- if (STRCMP(items[0], "SET") == 0 && itemcnt == 2 -- && aff->af_enc == NULL) -+ if (is_aff_rule(items, itemcnt, "SET", 2) && aff->af_enc == NULL) - { - #ifdef FEAT_MBYTE - /* Setup for conversion from "ENC" to 'encoding'. */ -@@ -5239,7 +5404,7 @@ - smsg((char_u *)_("Conversion in %s not supported"), fname); - #endif - } -- else if (STRCMP(items[0], "FLAG") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "FLAG", 2) - && aff->af_flagtype == AFT_CHAR) - { - if (STRCMP(items[1], "long") == 0) -@@ -5284,69 +5449,71 @@ - spin->si_info = p; - } - } -- else if (STRCMP(items[0], "MIDWORD") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "MIDWORD", 2) - && midword == NULL) - { - midword = getroom_save(spin, items[1]); - } -- else if (STRCMP(items[0], "TRY") == 0 && itemcnt == 2) -+ else if (is_aff_rule(items, itemcnt, "TRY", 2)) - { - /* ignored, we look in the tree for what chars may appear */ - } - /* TODO: remove "RAR" later */ -- else if ((STRCMP(items[0], "RAR") == 0 -- || STRCMP(items[0], "RARE") == 0) && itemcnt == 2 -- && aff->af_rare == 0) -+ else if ((is_aff_rule(items, itemcnt, "RAR", 2) -+ || is_aff_rule(items, itemcnt, "RARE", 2)) -+ && aff->af_rare == 0) - { - aff->af_rare = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } - /* TODO: remove "KEP" later */ -- else if ((STRCMP(items[0], "KEP") == 0 -- || STRCMP(items[0], "KEEPCASE") == 0) && itemcnt == 2 -+ else if ((is_aff_rule(items, itemcnt, "KEP", 2) -+ || is_aff_rule(items, itemcnt, "KEEPCASE", 2)) - && aff->af_keepcase == 0) - { - aff->af_keepcase = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "BAD") == 0 && itemcnt == 2 -- && aff->af_bad == 0) -+ else if ((is_aff_rule(items, itemcnt, "BAD", 2) -+ || is_aff_rule(items, itemcnt, "FORBIDDENWORD", 2)) -+ && aff->af_bad == 0) - { - aff->af_bad = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "NEEDAFFIX") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "NEEDAFFIX", 2) - && aff->af_needaffix == 0) - { - aff->af_needaffix = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "CIRCUMFIX") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "CIRCUMFIX", 2) - && aff->af_circumfix == 0) - { - aff->af_circumfix = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "NOSUGGEST") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "NOSUGGEST", 2) - && aff->af_nosuggest == 0) - { - aff->af_nosuggest = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "NEEDCOMPOUND") == 0 && itemcnt == 2 -+ else if ((is_aff_rule(items, itemcnt, "NEEDCOMPOUND", 2) -+ || is_aff_rule(items, itemcnt, "ONLYINCOMPOUND", 2)) - && aff->af_needcomp == 0) - { - aff->af_needcomp = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "COMPOUNDROOT") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDROOT", 2) - && aff->af_comproot == 0) - { - aff->af_comproot = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); - } -- else if (STRCMP(items[0], "COMPOUNDFORBIDFLAG") == 0 -- && itemcnt == 2 && aff->af_compforbid == 0) -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDFORBIDFLAG", 2) -+ && aff->af_compforbid == 0) - { - aff->af_compforbid = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); -@@ -5354,8 +5521,8 @@ - smsg((char_u *)_("Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %d"), - fname, lnum); - } -- else if (STRCMP(items[0], "COMPOUNDPERMITFLAG") == 0 -- && itemcnt == 2 && aff->af_comppermit == 0) -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDPERMITFLAG", 2) -+ && aff->af_comppermit == 0) - { - aff->af_comppermit = affitem2flag(aff->af_flagtype, items[1], - fname, lnum); -@@ -5363,7 +5530,7 @@ - smsg((char_u *)_("Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %d"), - fname, lnum); - } -- else if (STRCMP(items[0], "COMPOUNDFLAG") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDFLAG", 2) - && compflags == NULL) - { - /* Turn flag "c" into COMPOUNDRULE compatible string "c+", -@@ -5376,7 +5543,15 @@ - compflags = p; - } - } -- else if (STRCMP(items[0], "COMPOUNDRULE") == 0 && itemcnt == 2) -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDRULES", 2)) -+ { -+ /* We don't use the count, but do check that it's a number and -+ * not COMPOUNDRULE mistyped. */ -+ if (atoi((char *)items[1]) == 0) -+ smsg((char_u *)_("Wrong COMPOUNDRULES value in %s line %d: %s"), -+ fname, lnum, items[1]); -+ } -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2)) - { - /* Concatenate this string to previously defined ones, using a - * slash to separate them. */ -@@ -5395,7 +5570,7 @@ - compflags = p; - } - } -- else if (STRCMP(items[0], "COMPOUNDWORDMAX") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2) - && compmax == 0) - { - compmax = atoi((char *)items[1]); -@@ -5403,7 +5578,7 @@ - smsg((char_u *)_("Wrong COMPOUNDWORDMAX value in %s line %d: %s"), - fname, lnum, items[1]); - } -- else if (STRCMP(items[0], "COMPOUNDMIN") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDMIN", 2) - && compminlen == 0) - { - compminlen = atoi((char *)items[1]); -@@ -5411,7 +5586,7 @@ - smsg((char_u *)_("Wrong COMPOUNDMIN value in %s line %d: %s"), - fname, lnum, items[1]); - } -- else if (STRCMP(items[0], "COMPOUNDSYLMAX") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "COMPOUNDSYLMAX", 2) - && compsylmax == 0) - { - compsylmax = atoi((char *)items[1]); -@@ -5419,32 +5594,29 @@ - smsg((char_u *)_("Wrong COMPOUNDSYLMAX value in %s line %d: %s"), - fname, lnum, items[1]); - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDDUP") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDDUP", 1)) - { - compoptions |= COMP_CHECKDUP; - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDREP") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDREP", 1)) - { - compoptions |= COMP_CHECKREP; - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDCASE") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDCASE", 1)) - { - compoptions |= COMP_CHECKCASE; - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDTRIPLE") == 0 -- && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDTRIPLE", 1)) - { - compoptions |= COMP_CHECKTRIPLE; - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0 -- && itemcnt == 2) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 2)) - { - if (atoi((char *)items[1]) == 0) - smsg((char_u *)_("Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"), - fname, lnum, items[1]); - } -- else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0 -- && itemcnt == 3) -+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 3)) - { - garray_T *gap = &spin->si_comppat; - int i; -@@ -5463,24 +5635,24 @@ - = getroom_save(spin, items[2]); - } - } -- else if (STRCMP(items[0], "SYLLABLE") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "SYLLABLE", 2) - && syllable == NULL) - { - syllable = getroom_save(spin, items[1]); - } -- else if (STRCMP(items[0], "NOBREAK") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "NOBREAK", 1)) - { - spin->si_nobreak = TRUE; - } -- else if (STRCMP(items[0], "NOSPLITSUGS") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "NOSPLITSUGS", 1)) - { - spin->si_nosplitsugs = TRUE; - } -- else if (STRCMP(items[0], "NOSUGFILE") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "NOSUGFILE", 1)) - { - spin->si_nosugfile = TRUE; - } -- else if (STRCMP(items[0], "PFXPOSTPONE") == 0 && itemcnt == 1) -+ else if (is_aff_rule(items, itemcnt, "PFXPOSTPONE", 1)) - { - aff->af_pfxpostpone = TRUE; - } -@@ -5771,24 +5943,20 @@ - } - } - } -- else if (STRCMP(items[0], "FOL") == 0 && itemcnt == 2 -- && fol == NULL) -+ else if (is_aff_rule(items, itemcnt, "FOL", 2) && fol == NULL) - { - fol = vim_strsave(items[1]); - } -- else if (STRCMP(items[0], "LOW") == 0 && itemcnt == 2 -- && low == NULL) -+ else if (is_aff_rule(items, itemcnt, "LOW", 2) && low == NULL) - { - low = vim_strsave(items[1]); - } -- else if (STRCMP(items[0], "UPP") == 0 && itemcnt == 2 -- && upp == NULL) -+ else if (is_aff_rule(items, itemcnt, "UPP", 2) && upp == NULL) - { - upp = vim_strsave(items[1]); - } -- else if ((STRCMP(items[0], "REP") == 0 -- || STRCMP(items[0], "REPSAL") == 0) -- && itemcnt == 2) -+ else if (is_aff_rule(items, itemcnt, "REP", 2) -+ || is_aff_rule(items, itemcnt, "REPSAL", 2)) - { - /* Ignore REP/REPSAL count */; - if (!isdigit(*items[1])) -@@ -5819,7 +5987,7 @@ - : &spin->si_rep, items[1], items[2]); - } - } -- else if (STRCMP(items[0], "MAP") == 0 && itemcnt == 2) -+ else if (is_aff_rule(items, itemcnt, "MAP", 2)) - { - /* MAP item or count */ - if (!found_map) -@@ -5856,9 +6024,8 @@ - ga_append(&spin->si_map, '/'); - } - } -- /* Accept "SAL from to" and "SAL from to # comment". */ -- else if (STRCMP(items[0], "SAL") == 0 -- && (itemcnt == 3 || (itemcnt > 3 && items[3][0] == '#'))) -+ /* Accept "SAL from to" and "SAL from to #comment". */ -+ else if (is_aff_rule(items, itemcnt, "SAL", 3)) - { - if (do_sal) - { -@@ -5877,12 +6044,12 @@ - : items[2]); - } - } -- else if (STRCMP(items[0], "SOFOFROM") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "SOFOFROM", 2) - && sofofrom == NULL) - { - sofofrom = getroom_save(spin, items[1]); - } -- else if (STRCMP(items[0], "SOFOTO") == 0 && itemcnt == 2 -+ else if (is_aff_rule(items, itemcnt, "SOFOTO", 2) - && sofoto == NULL) - { - sofoto = getroom_save(spin, items[1]); -@@ -5980,7 +6147,7 @@ - else if (spin->si_newprefID == 0 || spin->si_newprefID == 127) - MSG(_("Too many compound flags")); - else -- MSG(_("Too many posponed prefixes and/or compound flags")); -+ MSG(_("Too many postponed prefixes and/or compound flags")); - } - - if (syllable != NULL) -@@ -6017,6 +6184,22 @@ - } - - /* -+ * Return TRUE when items[0] equals "rulename", there are "mincount" items or -+ * a comment is following after item "mincount". -+ */ -+ static int -+is_aff_rule(items, itemcnt, rulename, mincount) -+ char_u **items; -+ int itemcnt; -+ char *rulename; -+ int mincount; -+{ -+ return (STRCMP(items[0], rulename) == 0 -+ && (itemcnt == mincount -+ || (itemcnt > mincount && items[mincount][0] == '#'))); -+} -+ -+/* - * For affix "entry" move COMPOUNDFORBIDFLAG and COMPOUNDPERMITFLAG from - * ae_flags to ae_comppermit and ae_compforbid. - */ -@@ -7926,6 +8109,8 @@ - char_u *p; - int rr; - int retval = OK; -+ size_t fwv = 1; /* collect return value of fwrite() to avoid -+ warnings from picky compiler */ - - fd = mch_fopen((char *)fname, "w"); - if (fd == NULL) -@@ -7936,11 +8121,11 @@ - - /* <HEADER>: <fileID> <versionnr> */ - /* <fileID> */ -- if (fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd) != 1) -- { -- EMSG(_(e_write)); -- retval = FAIL; -- } -+ fwv &= fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd); -+ if (fwv != (size_t)1) -+ /* Catch first write error, don't try writing more. */ -+ goto theend; -+ - putc(VIMSPELLVERSION, fd); /* <versionnr> */ - - /* -@@ -7955,7 +8140,7 @@ - - i = (int)STRLEN(spin->si_info); - put_bytes(fd, (long_u)i, 4); /* <sectionlen> */ -- fwrite(spin->si_info, (size_t)i, (size_t)1, fd); /* <infotext> */ -+ fwv &= fwrite(spin->si_info, (size_t)i, (size_t)1, fd); /* <infotext> */ - } - - /* SN_REGION: <regionname> ... -@@ -7966,7 +8151,7 @@ - putc(SNF_REQUIRED, fd); /* <sectionflags> */ - l = spin->si_region_count * 2; - put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ -- fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd); -+ fwv &= fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd); - /* <regionname> ... */ - regionmask = (1 << spin->si_region_count) - 1; - } -@@ -8016,7 +8201,7 @@ - } - - put_bytes(fd, (long_u)l, 2); /* <folcharslen> */ -- fwrite(folchars, (size_t)l, (size_t)1, fd); /* <folchars> */ -+ fwv &= fwrite(folchars, (size_t)l, (size_t)1, fd); /* <folchars> */ - } - - /* SN_MIDWORD: <midword> */ -@@ -8027,7 +8212,8 @@ - - i = (int)STRLEN(spin->si_midword); - put_bytes(fd, (long_u)i, 4); /* <sectionlen> */ -- fwrite(spin->si_midword, (size_t)i, (size_t)1, fd); /* <midword> */ -+ fwv &= fwrite(spin->si_midword, (size_t)i, (size_t)1, fd); -+ /* <midword> */ - } - - /* SN_PREFCOND: <prefcondcnt> <prefcond> ... */ -@@ -8113,7 +8299,8 @@ - p = rr == 1 ? ftp->ft_from : ftp->ft_to; - l = (int)STRLEN(p); - putc(l, fd); -- fwrite(p, l, (size_t)1, fd); -+ if (l > 0) -+ fwv &= fwrite(p, l, (size_t)1, fd); - } - } - -@@ -8131,11 +8318,11 @@ - /* <sectionlen> */ - - put_bytes(fd, (long_u)l, 2); /* <sofofromlen> */ -- fwrite(spin->si_sofofr, l, (size_t)1, fd); /* <sofofrom> */ -+ fwv &= fwrite(spin->si_sofofr, l, (size_t)1, fd); /* <sofofrom> */ - - l = (int)STRLEN(spin->si_sofoto); - put_bytes(fd, (long_u)l, 2); /* <sofotolen> */ -- fwrite(spin->si_sofoto, l, (size_t)1, fd); /* <sofoto> */ -+ fwv &= fwrite(spin->si_sofoto, l, (size_t)1, fd); /* <sofoto> */ - } - - /* SN_WORDS: <word> ... -@@ -8160,7 +8347,7 @@ - l = (int)STRLEN(hi->hi_key) + 1; - len += l; - if (round == 2) /* <word> */ -- fwrite(hi->hi_key, (size_t)l, (size_t)1, fd); -+ fwv &= fwrite(hi->hi_key, (size_t)l, (size_t)1, fd); - --todo; - } - if (round == 1) -@@ -8176,7 +8363,7 @@ - putc(0, fd); /* <sectionflags> */ - l = spin->si_map.ga_len; - put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ -- fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd); -+ fwv &= fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd); - /* <mapstr> */ - } - -@@ -8232,10 +8419,11 @@ - { - p = ((char_u **)(spin->si_comppat.ga_data))[i]; - putc((int)STRLEN(p), fd); /* <comppatlen> */ -- fwrite(p, (size_t)STRLEN(p), (size_t)1, fd);/* <comppattext> */ -+ fwv &= fwrite(p, (size_t)STRLEN(p), (size_t)1, fd); -+ /* <comppattext> */ - } - /* <compflags> */ -- fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags), -+ fwv &= fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags), - (size_t)1, fd); - } - -@@ -8259,7 +8447,8 @@ - - l = (int)STRLEN(spin->si_syllable); - put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ -- fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd); /* <syllable> */ -+ fwv &= fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd); -+ /* <syllable> */ - } - - /* end of <SECTIONS> */ -@@ -8295,13 +8484,18 @@ - (void)put_node(fd, tree, 0, regionmask, round == 3); - } - -- /* Write another byte to check for errors. */ -+ /* Write another byte to check for errors (file system full). */ - if (putc(0, fd) == EOF) - retval = FAIL; -- -+theend: - if (fclose(fd) == EOF) - retval = FAIL; - -+ if (fwv != (size_t)1) -+ retval = FAIL; -+ if (retval == FAIL) -+ EMSG(_(e_write)); -+ - return retval; - } - -@@ -9890,6 +10084,7 @@ - char_u *p; - int len; - int totlen; -+ size_t x = 1; /* collect return value of fwrite() */ - - if (fd != NULL) - put_bytes(fd, (long_u)gap->ga_len, 2); /* <prefcondcnt> */ -@@ -9906,7 +10101,7 @@ - if (fd != NULL) - { - fputc(len, fd); -- fwrite(p, (size_t)len, (size_t)1, fd); -+ x &= fwrite(p, (size_t)len, (size_t)1, fd); - } - totlen += len; - } -@@ -11480,15 +11675,24 @@ - vim_strncpy(preword + sp->ts_prewordlen, - tword + sp->ts_splitoff, - sp->ts_twordlen - sp->ts_splitoff); -- p = preword; -- while (*skiptowhite(p) != NUL) -- p = skipwhite(skiptowhite(p)); -- if (fword_ends && !can_compound(slang, p, -- compflags + sp->ts_compsplit)) -- /* Compound is not allowed. But it may still be -- * possible if we add another (short) word. */ -+ -+ /* Verify CHECKCOMPOUNDPATTERN rules. */ -+ if (match_checkcompoundpattern(preword, sp->ts_prewordlen, -+ &slang->sl_comppat)) - compound_ok = FALSE; - -+ if (compound_ok) -+ { -+ p = preword; -+ while (*skiptowhite(p) != NUL) -+ p = skipwhite(skiptowhite(p)); -+ if (fword_ends && !can_compound(slang, p, -+ compflags + sp->ts_compsplit)) -+ /* Compound is not allowed. But it may still be -+ * possible if we add another (short) word. */ -+ compound_ok = FALSE; -+ } -+ - /* Get pointer to last char of previous word. */ - p = preword + sp->ts_prewordlen; - mb_ptr_back(preword, p); -@@ -11685,10 +11889,9 @@ - && (slang->sl_compsylmax < MAXWLEN - || sp->ts_complen + 1 - sp->ts_compsplit - < slang->sl_compmax) -- && (byte_in_str(sp->ts_complen == sp->ts_compsplit -- ? slang->sl_compstartflags -- : slang->sl_compallflags, -- ((unsigned)flags >> 24)))) -+ && (can_be_compound(sp, slang, -+ compflags, ((unsigned)flags >> 24)))) -+ - { - try_compound = TRUE; - compflags[sp->ts_complen] = ((unsigned)flags >> 24); -diff -Naur vim72.orig/src/structs.h vim72/src/structs.h ---- vim72.orig/src/structs.h 2008-07-30 21:02:50.000000000 +0100 -+++ vim72/src/structs.h 2008-12-06 11:37:49.000000000 +0000 -@@ -459,7 +459,7 @@ - typedef struct - { - int hide; /* TRUE when ":hide" was used */ --# ifdef FEAT_BROWSE -+# ifdef FEAT_BROWSE_CMD - int browse; /* TRUE to invoke file dialog */ - # endif - # ifdef FEAT_WINDOWS -@@ -1784,10 +1784,15 @@ - #endif - - /* -- * The next three specify the offsets for displaying the buffer: -+ * "w_topline", "w_leftcol" and "w_skipcol" specify the offsets for -+ * displaying the buffer. - */ - linenr_T w_topline; /* buffer line number of the line at the - top of the window */ -+#ifdef FEAT_AUTOCMD -+ char w_topline_was_set; /* flag set to TRUE when topline is set, -+ e.g. by winrestview() */ -+#endif - #ifdef FEAT_DIFF - int w_topfill; /* number of filler lines above w_topline */ - int w_old_topfill; /* w_topfill at last redraw */ -diff -Naur vim72.orig/src/testdir/Makefile vim72/src/testdir/Makefile ---- vim72.orig/src/testdir/Makefile 2008-06-19 21:29:46.000000000 +0100 -+++ vim72/src/testdir/Makefile 2008-12-06 11:37:48.000000000 +0000 -@@ -26,15 +26,17 @@ - - .SUFFIXES: .in .out - --nongui: nolog $(SCRIPTS) -- @echo -- @cat test.log -- @echo ALL DONE -+nongui: nolog $(SCRIPTS) report -+ -+gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) report - --gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) -+report: - @echo -- @cat test.log -- @echo ALL DONE -+ @echo 'Test results:' -+ @/bin/sh -c "if test -f test.log; \ -+ then cat test.log; echo TEST FAILURE; exit 1; \ -+ else echo ALL DONE; \ -+ fi" - - $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) - -@@ -71,4 +73,4 @@ - test60.out: test60.vim - - nolog: -- -echo Test results: >test.log -+ -rm -f test.log -diff -Naur vim72.orig/src/testdir/Make_ming.mak vim72/src/testdir/Make_ming.mak ---- vim72.orig/src/testdir/Make_ming.mak 1970-01-01 01:00:00.000000000 +0100 -+++ vim72/src/testdir/Make_ming.mak 2008-12-06 11:37:48.000000000 +0000 -@@ -0,0 +1,91 @@ -+# Makefile to run tests for Vim, on Dos-like machines -+# with sh.exe or zsh.exe in the path or not. -+# -+# Author: Bill McCarthy -+# -+# Note that test54 has been removed until it is fixed. -+# -+# Requires a set of Unix tools: echo, diff, etc. -+ -+ifneq (sh.exe, $(SHELL)) -+DEL = rm -f -+MV = mv -+CP = cp -+DIRSLASH = / -+else -+DEL = del -+MV = rename -+CP = copy -+DIRSLASH = \ -+endif -+ -+VIMPROG = ..$(DIRSLASH)vim -+ -+# Omitted: -+# test2 "\tmp" doesn't work. -+# test10 'errorformat' is different -+# test12 can't unlink a swap file -+# test25 uses symbolic link -+# test27 can't edit file with "*" in file name -+# test31 16 bit version runs out of memory... -+ -+SCRIPTS16 = test1.out test19.out test20.out test22.out \ -+ test23.out test24.out test28.out test29.out \ -+ test35.out test36.out test43.out \ -+ test44.out test45.out test46.out test47.out \ -+ test48.out test51.out test53.out \ -+ test55.out test56.out test57.out test58.out test59.out \ -+ test60.out test61.out test62.out test63.out test64.out -+ -+# Had to remove test54 which doesn't work yet. -+# test54.out -+ -+SCRIPTS = test3.out test4.out test5.out test6.out test7.out \ -+ test8.out test9.out test11.out test13.out test14.out \ -+ test15.out test17.out test18.out test21.out test26.out \ -+ test30.out test31.out test32.out test33.out test34.out \ -+ test37.out test38.out test39.out test40.out test41.out \ -+ test42.out test52.out test65.out -+ -+SCRIPTS32 = test50.out -+ -+SCRIPTS_GUI = test16.out -+ -+.SUFFIXES: .in .out -+ -+vimall: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS32) -+ echo ALL DONE -+ -+nongui: fixff $(SCRIPTS16) $(SCRIPTS) -+ echo ALL DONE -+ -+small: -+ echo ALL DONE -+ -+gui: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) -+ echo ALL DONE -+ -+win32: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) -+ echo ALL DONE -+ -+fixff: -+ -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok -+ -+clean: -+ -$(DEL) *.out -+ -$(DEL) test.ok -+ -$(DEL) small.vim -+ -$(DEL) tiny.vim -+ -$(DEL) mbyte.vim -+ -$(DEL) X* -+ -$(DEL) viminfo -+ -+.in.out: -+ $(CP) $*.ok test.ok -+ $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in -+ diff test.out $*.ok -+ -$(DEL) $*.out -+ $(MV) test.out $*.out -+ -$(DEL) X* -+ -$(DEL) test.ok -+ -$(DEL) viminfo -diff -Naur vim72.orig/src/testdir/test30.in vim72/src/testdir/test30.in ---- vim72.orig/src/testdir/test30.in 2008-06-25 22:33:01.000000000 +0100 -+++ vim72/src/testdir/test30.in 2008-12-06 11:37:48.000000000 +0000 -@@ -24,10 +24,17 @@ - :set nobin eol - :bwipe XXUnix XXDos XXMac - :" create mixed format files --:!cat XXUnix XXDos >XXUxDs --:!cat XXUnix XXMac >XXUxMac --:!cat XXDos XXMac >XXDosMac --:!cat XXUnix XXDos XXMac >XXUxDsMc -+:if has("vms") -+: !copy XXUnix,XXDos XXUxDs. -+: !copy XXUnix,XXMac XXUxMac. -+: !copy XXDos,XXMac XXDosMac. -+: !copy XXUnix,XXDos,XXMac XXUxDsMc. -+:else -+: !cat XXUnix XXDos >XXUxDs -+: !cat XXUnix XXMac >XXUxMac -+: !cat XXDos XXMac >XXDosMac -+: !cat XXUnix XXDos XXMac >XXUxDsMc -+:endif - :" - :" try reading and writing with 'fileformats' empty - :set fileformat=unix -diff -Naur vim72.orig/src/testdir/test42.ok vim72/src/testdir/test42.ok ---- vim72.orig/src/testdir/test42.ok 2008-02-20 12:27:37.000000000 +0000 -+++ vim72/src/testdir/test42.ok 2008-12-06 11:37:49.000000000 +0000 -@@ -20,7 +20,7 @@ - ucs-2 - - -- fileencoding=ucs-2le -+ fileencoding=utf-16le - bomb - ucs-2le - -diff -Naur vim72.orig/src/testdir/test54.in vim72/src/testdir/test54.in ---- vim72.orig/src/testdir/test54.in 2005-01-01 11:21:16.000000000 +0000 -+++ vim72/src/testdir/test54.in 2008-12-06 11:37:48.000000000 +0000 -@@ -3,8 +3,13 @@ - STARTTEST - :so small.vim - :e xx --:!rm -f test.out --:au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out -+:if has("vms") -+: !del test.out.* -+: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out -+:else -+: !rm -f test.out -+: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out -+:endif - :e somefile " here, autocommand for xx shall write test.out - : " but autocommand shall not apply to buffer named <buffer> - :bwipe xx " here, autocommand shall be auto-deleted -diff -Naur vim72.orig/src/ui.c vim72/src/ui.c ---- vim72.orig/src/ui.c 2008-07-14 19:14:56.000000000 +0100 -+++ vim72/src/ui.c 2008-12-06 11:37:50.000000000 +0000 -@@ -1820,7 +1820,7 @@ - #ifdef HAVE_DUP - /* Use stderr for stdin, also works for shell commands. */ - close(0); -- dup(2); -+ ignored = dup(2); - #else - read_cmd_fd = 2; /* read from stderr instead of stdin */ - #endif -@@ -2020,7 +2020,7 @@ - - if (value == NULL || *length == 0) - { -- clip_free_selection(cbd); /* ??? [what's the query?] */ -+ clip_free_selection(cbd); /* nothing received, clear register */ - *(int *)success = FALSE; - return; - } -@@ -2076,7 +2076,7 @@ - text_prop.value = (unsigned char *)value; - text_prop.encoding = *type; - text_prop.format = *format; -- text_prop.nitems = STRLEN(value); -+ text_prop.nitems = len; - status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop, - &text_list, &n_text); - if (status != Success || n_text < 1) -@@ -2110,6 +2110,8 @@ - int i; - int nbytes = 0; - char_u *buffer; -+ time_t start_time; -+ int timed_out = FALSE; - - for (i = - #ifdef FEAT_MBYTE -@@ -2129,6 +2131,7 @@ - case 3: type = text_atom; break; - default: type = XA_STRING; - } -+ success = MAYBE; - XtGetSelectionValue(myShell, cbd->sel_atom, type, - clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime); - -@@ -2141,27 +2144,48 @@ - * characters, then they will appear before the one that requested the - * paste! Don't worry, we will catch up with any other events later. - */ -- for (;;) -+ start_time = time(NULL); -+ while (success == MAYBE) - { -- if (XCheckTypedEvent(dpy, SelectionNotify, &event)) -- break; -- if (XCheckTypedEvent(dpy, SelectionRequest, &event)) -- /* We may get a SelectionRequest here and if we don't handle -- * it we hang. KDE klipper does this, for example. */ -+ if (XCheckTypedEvent(dpy, SelectionNotify, &event) -+ || XCheckTypedEvent(dpy, SelectionRequest, &event) -+ || XCheckTypedEvent(dpy, PropertyNotify, &event)) -+ { -+ /* This is where clip_x11_request_selection_cb() should be -+ * called. It may actually happen a bit later, so we loop -+ * until "success" changes. -+ * We may get a SelectionRequest here and if we don't handle -+ * it we hang. KDE klipper does this, for example. -+ * We need to handle a PropertyNotify for large selections. */ - XtDispatchEvent(&event); -+ continue; -+ } -+ -+ /* Time out after 2 to 3 seconds to avoid that we hang when the -+ * other process doesn't respond. Note that the SelectionNotify -+ * event may still come later when the selection owner comes back -+ * to life and the text gets inserted unexpectedly. Don't know -+ * why that happens or how to avoid that :-(. */ -+ if (time(NULL) > start_time + 2) -+ { -+ timed_out = TRUE; -+ break; -+ } - - /* Do we need this? Probably not. */ - XSync(dpy, False); - -- /* Bernhard Walle solved a slow paste response in an X terminal by -- * adding: usleep(10000); here. */ -+ /* Wait for 1 msec to avoid that we eat up all CPU time. */ -+ ui_delay(1L, TRUE); - } - -- /* this is where clip_x11_request_selection_cb() is actually called */ -- XtDispatchEvent(&event); -- -- if (success) -+ if (success == TRUE) - return; -+ -+ /* don't do a retry with another type after timing out, otherwise we -+ * hang for 15 seconds. */ -+ if (timed_out) -+ break; - } - - /* Final fallback position - use the X CUT_BUFFER0 store */ -diff -Naur vim72.orig/src/version.c vim72/src/version.c ---- vim72.orig/src/version.c 2008-08-09 15:24:52.000000000 +0100 -+++ vim72/src/version.c 2008-12-06 11:37:50.000000000 +0000 -@@ -677,9 +677,152 @@ - static int included_patches[] = - { /* Add new patch number below this line */ - /**/ -+ 65, -+/**/ -+ 64, -+/**/ -+ 63, -+/**/ -+ 62, -+/**/ -+ 61, -+/**/ -+ 60, -+/**/ -+ 59, -+/**/ -+ 58, -+/**/ -+ 57, -+/**/ -+ 56, -+/**/ -+ 55, -+/**/ -+ 54, -+/**/ -+ 53, -+/**/ -+ 52, -+/**/ -+ 51, -+/**/ -+ 50, -+/**/ -+ 49, -+/**/ -+ 48, -+/**/ -+ 47, -+/**/ -+ 46, -+/**/ -+ 45, -+/**/ -+ 44, -+/**/ -+ 43, -+/**/ -+ 42, -+/**/ -+ 41, -+/**/ -+ 40, -+/**/ -+ 39, -+/**/ -+ 38, -+/**/ -+ 37, -+/**/ -+ 36, -+/**/ -+ 35, -+/**/ -+ 34, -+/**/ -+ 33, -+/**/ -+ 32, -+/**/ -+ 31, -+/**/ -+ 30, -+/**/ -+ 29, -+/**/ -+ 28, -+/**/ -+ 27, -+/**/ -+ 26, -+/**/ -+ 25, -+/**/ -+ 24, -+/**/ -+ 23, -+/**/ -+ 22, -+/**/ -+ 21, -+/**/ -+ 20, -+/**/ -+ 19, -+/**/ -+ 18, -+/**/ -+ 17, -+/**/ -+ 16, -+/**/ -+ 15, -+/**/ -+ 14, -+/**/ -+ 13, -+/**/ -+ 12, -+/**/ -+ 11, -+/**/ -+ 10, -+/**/ -+ 9, -+/**/ -+ 8, -+/**/ -+ 7, -+/**/ -+ 6, -+/**/ -+ 5, -+/**/ -+ 4, -+/**/ -+ 3, -+/**/ -+ 2, -+/**/ -+ 1, -+/**/ - 0 - }; - -+/* -+ * Place to put a short description when adding a feature with a patch. -+ * Keep it short, e.g.,: "relative numbers", "persistent undo". -+ * Also add a comment marker to separate the lines. -+ * See the official Vim patches for the diff format: It must use a context of -+ * one line only. Use "diff -C2". -+ */ -+static char *(extra_patches[]) = -+{ /* Add your patch description below this line */ -+/**/ -+ NULL -+}; -+ - int - highest_patch() - { -@@ -786,7 +929,7 @@ - MSG_PUTS(_("\nRISC OS version")); - #endif - #ifdef VMS -- MSG_PUTS("\nOpenVMS version"); -+ MSG_PUTS(_("\nOpenVMS version")); - # ifdef HAVE_PATHDEF - if (*compiled_arch != NUL) - { -@@ -825,6 +968,19 @@ - } - } - -+ /* Print the list of extra patch descriptions if there is at least one. */ -+ if (extra_patches[0] != NULL) -+ { -+ MSG_PUTS(_("\nExtra patches: ")); -+ s = ""; -+ for (i = 0; extra_patches[i] != NULL; ++i) -+ { -+ MSG_PUTS(s); -+ s = ", "; -+ MSG_PUTS(extra_patches[i]); -+ } -+ } -+ - #ifdef MODIFIED_BY - MSG_PUTS("\n"); - MSG_PUTS(_("Modified by ")); -diff -Naur vim72.orig/src/vim.h vim72/src/vim.h ---- vim72.orig/src/vim.h 2008-08-09 17:03:38.000000000 +0100 -+++ vim72/src/vim.h 2008-12-06 11:37:50.000000000 +0000 -@@ -341,8 +341,14 @@ - #ifdef BACKSLASH_IN_FILENAME - # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`%#'"|!<") - #else --# define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<") --# define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<>();&") -+# ifdef VMS -+ /* VMS allows a lot of characters in the file name */ -+# define PATH_ESC_CHARS ((char_u *)" \t\n*?{`\%#'"|!") -+# define SHELL_ESC_CHARS ((char_u *)" \t\n*?{`\%#'|!()&") -+# else -+# define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<") -+# define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\%#'"|!<>();&") -+# endif - #endif - - #define NUMBUFLEN 30 /* length of a buffer to store a number in ASCII */ -@@ -370,7 +376,7 @@ - * Define __w64 as an empty token for everything but MSVC 7.x or later. - */ - # if !defined(_MSC_VER) || (_MSC_VER < 1300) --# define __w64 -+# define __w64 - # endif - typedef unsigned long __w64 long_u; - typedef long __w64 long_i; -@@ -1728,7 +1734,8 @@ - #define VV_MOUSE_COL 51 - #define VV_OP 52 - #define VV_SEARCHFORWARD 53 --#define VV_LEN 54 /* number of v: vars */ -+#define VV_OLDFILES 54 -+#define VV_LEN 55 /* number of v: vars */ - - #ifdef FEAT_CLIPBOARD - -@@ -1979,6 +1986,9 @@ - # endif - #endif - -+#ifndef FEAT_NETBEANS_INTG -+# undef NBDEBUG -+#endif - #ifdef NBDEBUG /* Netbeans debugging. */ - # include "nbdebug.h" - #else -@@ -2054,4 +2064,10 @@ - #define DOSO_VIMRC 1 /* loading vimrc file */ - #define DOSO_GVIMRC 2 /* loading gvimrc file */ - -+/* flags for read_viminfo() and children */ -+#define VIF_WANT_INFO 1 /* load non-mark info */ -+#define VIF_WANT_MARKS 2 /* load file marks */ -+#define VIF_FORCEIT 4 /* overwrite info already read */ -+#define VIF_GET_OLDFILES 8 /* load v:oldfiles */ -+ - #endif /* VIM__H */ -diff -Naur vim72.orig/src/window.c vim72/src/window.c ---- vim72.orig/src/window.c 2008-08-06 12:00:30.000000000 +0100 -+++ vim72/src/window.c 2008-12-06 11:37:50.000000000 +0000 -@@ -531,7 +531,8 @@ - # ifdef FEAT_SCROLLBIND - curwin->w_p_scb = FALSE; - # endif -- (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, ECMD_HIDE); -+ (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, -+ ECMD_HIDE, NULL); - if (nchar == 'F' && lnum >= 0) - { - curwin->w_cursor.lnum = lnum; -@@ -4028,14 +4029,14 @@ - if (mch_dirname(cwd, MAXPATHL) == OK) - globaldir = vim_strsave(cwd); - } -- mch_chdir((char *)curwin->w_localdir); -- shorten_fnames(TRUE); -+ if (mch_chdir((char *)curwin->w_localdir) == 0) -+ shorten_fnames(TRUE); - } - else if (globaldir != NULL) - { - /* Window doesn't have a local directory and we are not in the global - * directory: Change to the global directory. */ -- mch_chdir((char *)globaldir); -+ ignored = mch_chdir((char *)globaldir); - vim_free(globaldir); - globaldir = NULL; - shorten_fnames(TRUE); -diff -Naur vim72.orig/src/workshop.c vim72/src/workshop.c ---- vim72.orig/src/workshop.c 2008-06-21 19:53:26.000000000 +0100 -+++ vim72/src/workshop.c 2008-12-06 11:37:50.000000000 +0000 -@@ -1121,8 +1121,12 @@ - ? (char *)curbuf->b_sfname : "<None>"); - #endif - -- strcpy(ffname, (char *) curbuf->b_ffname); -- *filename = ffname; /* copy so nobody can change b_ffname */ -+ if (curbuf->b_ffname == NULL) -+ ffname[0] = NUL; -+ else -+ /* copy so nobody can change b_ffname */ -+ strcpy(ffname, (char *) curbuf->b_ffname); -+ *filename = ffname; - *curLine = curwin->w_cursor.lnum; - *curCol = curwin->w_cursor.col; - diff --git a/src/patches/vim-7.2-mandir-1.patch b/src/patches/vim-7.2-mandir-1.patch deleted file mode 100644 index 4038442..0000000 --- a/src/patches/vim-7.2-mandir-1.patch +++ /dev/null @@ -1,82 +0,0 @@ -Submitted By: Alexander E. Patrakov -Date: 2006-05-27 -Initial Package Version: 7.0 -Upstream status: LFS specific -Description: Adjusts installation of manual pages to meet Man-DB expectations. - - Additional change to explicitly install the man pages into - /usr/share/man instead of /usr/man by Ag Hatzim. - ---- vim70/src/Makefile.orig 2006-05-27 12:49:31.767959808 +0300 -+++ vim70/src/Makefile 2006-05-27 12:49:55.778309680 +0300 -@@ -867,7 +867,7 @@ - # Uncomment the next line to install Vim in "/usr/bin" - #BINDIR = /usr/bin - # Uncomment the next line to install Vim manuals in "/usr/share/man/man1" --#MANDIR = /usr/share/man -+MANDIR = /usr/share/man - # Uncomment the next line to install Vim help files in "/usr/share/vim" - #DATADIR = /usr/share - -@@ -1325,7 +1325,7 @@ - DEST_MAN_PL = $(DEST_MAN_TOP)/pl$(MAN1DIR) - DEST_MAN_PL_I = $(DEST_MAN_TOP)/pl.ISO8859-2$(MAN1DIR) - DEST_MAN_PL_U = $(DEST_MAN_TOP)/pl.UTF-8$(MAN1DIR) --DEST_MAN_RU = $(DEST_MAN_TOP)/ru.KOI8-R$(MAN1DIR) -+DEST_MAN_RU = $(DEST_MAN_TOP)/ru$(MAN1DIR) - DEST_MAN_RU_U = $(DEST_MAN_TOP)/ru.UTF-8$(MAN1DIR) - - # BASIC_SRC: files that are always used -@@ -1905,52 +1905,24 @@ - # install the language specific files for tools, if they were unpacked - install-tool-languages: - -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh xxd $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh xxd $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS) - - # install the language specific files, if they were unpacked - install-languages: languages $(DEST_LANG) $(DEST_KMAP) - -$(SHELL) ./installman.sh install $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh install $(DEST_MAN_IT) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh install $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installman.sh install $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS) -- -$(SHELL) ./installman.sh install $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_FR) $(INSTALLMLARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_FR_I) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_FR_U) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_IT) $(INSTALLMLARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_IT_I) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_IT_U) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_PL) $(INSTALLMLARGS) - -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_PL_I) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_PL_U) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ - $(DEST_MAN_RU) $(INSTALLMLARGS) -- -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ -- $(DEST_MAN_RU_U) $(INSTALLMLARGS) - if test -n "$(MAKEMO)" -a -f $(PODIR)/Makefile; then \ - cd $(PODIR); $(MAKE) prefix=$(DESTDIR)$(prefix) LOCALEDIR=$(DEST_LANG) \ - INSTALL_DATA=$(INSTALL_DATA) FILEMOD=$(FILEMOD) install; \ diff --git a/src/patches/wget-1.14-texi2pod-1.patch b/src/patches/wget-1.14-texi2pod-1.patch new file mode 100644 index 0000000..700242b --- /dev/null +++ b/src/patches/wget-1.14-texi2pod-1.patch @@ -0,0 +1,32 @@ +Submitted By: Ken Moffat <ken at linuxfromscratch dot org> +Date: 2013-06-18 +Initial Package Version: 1.14 +Upstream Status: Submitted +Origin: Arch +Description: Build with perl-5.18. + +http://lists.gnu.org/archive/html/bug-wget/2013-06/msg00046.html + +From 2ed1707b5d8be66feb80cccfe8e11e719b52b99a Mon Sep 17 00:00:00 2001 +From: Dave Reisner dreisner@archlinux.org +Date: Mon, 17 Jun 2013 23:31:46 +0530 +Subject: [PATCH] Fix error in texi2pod intriduced with Perl 5.18 + +--- + +diff --git a/doc/texi2pod.pl b/doc/texi2pod.pl +index 86c4b18..9db6de1 100755 +--- a/doc/texi2pod.pl ++++ b/doc/texi2pod.pl +@@ -291,7 +291,7 @@ while(<$inf>) { + if (defined $1) { + my $thing = $1; + if ($ic =~ /@asis/) { +- $_ = "\n=item $thing\n"; ++ $_ = "\n=item C<$thing>\n"; + } else { + # Entity escapes prevent munging by the <> processing below. + $_ = "\n=item $ic<$thing>\n"; +-- +1.8.3.1 + diff --git a/src/scripts/convert-ovpn b/src/scripts/convert-ovpn new file mode 100755 index 0000000..58921a5 --- /dev/null +++ b/src/scripts/convert-ovpn @@ -0,0 +1,60 @@ +#!/usr/bin/perl + +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 Alexander Marx amarx@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +# # +# This script converts old openvpn ccd files with underscore # +# to files with spaces to make them working with openvpn 2.3 again # +# STEP1: read ovpnconfig and verify cert names # +# STEP2: if neccessary convert ccd file # +# # +############################################################################### + +require '/var/ipfire/general-functions.pl'; + +my %configovpn=(); +my $ccdpath="/var/ipfire/ovpn/ccd/"; +my $ovpnconfig="/var/ipfire/ovpn/ovpnconfig"; + +&General::readhasharray ($ovpnconfig,%configovpn); + +&check_config(); + +sub check_config { + print "Converting CCD files...\n"; + chdir($ccdpath); + + foreach my $key (sort keys %configovpn){ + # Skip everything else but roadwarrior connections. + next if ($configovpn{$key}[3] ne 'host'); + + # Skip all connections with no space in the CN name. + next if ($configovpn{$key}[2] !~ " "); + + my $ccdname = $configovpn{$key}[2]; + $ccdname =~ tr/ /_/; + + # Rename the CCD file if one with the old format exists. + if (-e "$ccdname") { + print " Renaming $ccdname -> $configovpn{$key}[2]...\n"; + rename($ccdname, $configovpn{$key}[2]); + } + } +} diff --git a/src/scripts/setddns.pl b/src/scripts/setddns.pl index f943ac8..12c0f1d 100644 --- a/src/scripts/setddns.pl +++ b/src/scripts/setddns.pl @@ -637,7 +637,42 @@ if ($ip ne $ipcache) { } else { &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure (could not connect to server)"); } - } else { + } + elsif ($settings{'SERVICE'} eq 'udmedia.de') { + # use proxy ? + my %proxysettings; + &General::readhash("${General::swroot}/proxy/settings", %proxysettings); + if ($_=$proxysettings{'UPSTREAM_PROXY'}) { + my ($peer, $peerport) = (/^(?:[a-zA-Z ]+://)?(?:[A-Za-z0-9_.-]*?(?::[A-Za-z0-9_.-]*?)?@)?([a-zA-Z0-9._-]*?)(?::([0-9]{1,5}))?(?:/.*?)?$/); + Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} ); + } + + if ($settings{'HOSTNAME'} eq '') { + $settings{'HOSTDOMAIN'} = $settings{'DOMAIN'}; + } else { + $settings{'HOSTDOMAIN'} = "$settings{'HOSTNAME'}.$settings{'DOMAIN'}"; + } + + my ($out, $response) = Net::SSLeay::get_https( 'www.udmedia.de', + 443, + "/nic/update?myip=$ip&username=$settings{'HOSTDOMAIN'}&password=$settings{'PASSWORD'}", + Net::SSLeay::make_headers('User-Agent' => 'IPFire', + 'Authorization' => 'Basic ' . encode_base64("$settings{'LOGIN'}:$settings{'PASSWORD'}")) ); + + # Valid response are 'ok' 'nochange' + if ($response =~ m%HTTP/1.. 200 OK%) { + if ( $out !~ m/^(ok|nochg)/ ) { + $out =~ s/\n/ /g; + &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure ($out)"); + } else { + &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : success"); + $success++; + } + } else { + &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure (could not connect to server, check your credentials---$out-$response--)"); + } + } + else { if ($settings{'WILDCARDS'} eq 'on') { $settings{'WILDCARDS'} = '-w'; } else { diff --git a/tools/langdiff.pl b/tools/langdiff.pl new file mode 100755 index 0000000..6ce313d --- /dev/null +++ b/tools/langdiff.pl @@ -0,0 +1,57 @@ +#!/usr/bin/perl + +my @one=(); +my @two=(); + +my $file1; +my $file2; +my $cnt=0; +my $numArgs = $#ARGV + 1; +if ($numArgs !=2 ){ + print"Usage: langdiff.pl <languagefile1 - incomplete> <languagefile2 - complete>\n"; + exit; +}else{ + $file1=$ARGV[0]; + $file2=$ARGV[1]; +} + +open(FILE1, $file1) or die 'Unable to open file $file1.'; +my @one = <FILE1>; +close(FILE1); +undef ($one[0]); +undef ($one[1]); +undef ($one[2]); +undef ($one[3]); +undef ($one[$#one-1]); +undef ($one[$#one-2]); +open(FILE2, $file2) or die 'Unable to open file $file2.'; +my @two = <FILE2>; +close(FILE2); +undef ($two[0]); +undef ($two[1]); +undef ($two[2]); +undef ($two[3]); +undef ($two[$#two-1]); +undef ($two[$#two-2]); +open(FILE3, ">language-diff.txt") or die 'Unable to open config file.'; + +foreach my $line (@two){ + my ($a,$b) = split ("=>",$line); + if(!&is_in_array($a)){ + $cnt++; + print FILE3 "$a => $b"; + } +} + +sub is_in_array{ + my $val = shift; + + foreach my $line1 (@one){ + my ($c,$d) = split ("=>",$line1); + return 1 if ($val eq $c); + } + return 0; +} + + +print"$cnt lines from $file2 are not existent in $file1. Please check language-diff.txt for details.\n\n"; diff --git a/tools/make-functions b/tools/make-functions index 7bacec1..48fc6d4 100644 --- a/tools/make-functions +++ b/tools/make-functions @@ -222,25 +222,25 @@ if [ 'x86_64' = $MACHINE -o 'i686' = $MACHINE -o 'i586' = $MACHINE ]; then MACHINE=i586 CROSSTARGET=${MACHINE}-cross-linux-gnu BUILDTARGET=i586-pc-linux-gnu - CFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer" - CXXFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer" - C2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer" - CXX2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer" + CFLAGS_ARCH="${GLOBAL_CFLAGS} -march=i586 -fomit-frame-pointer" elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE -o 'armv6l' = $MACHINE -o 'armv7l' = $MACHINE ]; then echo "`date -u '+%b %e %T'`: Machine is ARM (or equivalent)" >> $LOGFILE MACHINE=armv5tel MACHINE_TYPE=arm CROSSTARGET=${MACHINE}-cross-linux-gnueabi BUILDTARGET=${MACHINE}-unknown-linux-gnueabi - CFLAGS="-O2 -march=armv5te -mfloat-abi=soft -fomit-frame-pointer -pipe" - CXXFLAGS="$CFLAGS" - C2FLAGS="$CFLAGS" - CXX2FLAGS="$CXXFLAGS" + CFLAGS_ARCH="-march=armv5te -mfloat-abi=soft -fomit-frame-pointer" else echo "`date -u '+%b %e %T'`: Can't determine your architecture - $MACHINE" exit 1 fi
+CFLAGS="-O2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fPIC" +CFLAGS="${CFLAGS} -fstack-protector-all --param=ssp-buffer-size=4 ${CFLAGS_ARCH}" +CXXFLAGS="${CFLAGS}" +C2FLAGS="${CFLAGS}" +CXX2FLAGS="${CXXFLAGS}" + # Define immediately stdumount() { umount $BASEDIR/build/sys 2>/dev/null; @@ -414,7 +414,8 @@ lfsmake2() { chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w$ ' \ PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ - VERSION=$VERSION \ + VERSION=$VERSION PAKFIRE_CORE="${PAKFIRE_CORE}" \ + SYSTEM_RELEASE="${SYSTEM_RELEASE}" \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ @@ -453,6 +454,7 @@ ipfiremake() { CORE=$CORE \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ + SYSTEM_RELEASE="$SYSTEM_RELEASE" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \ CCACHE_COMPILERCHECK="none" \ @@ -521,6 +523,7 @@ installmake() { TERM=$TERM PS1='\u:\w$ ' \ PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \ VERSION=$VERSION \ + SYSTEM_RELEASE="${SYSTEM_RELEASE}" \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="-Os" CXXFLAGS="-Os" \
hooks/post-receive -- IPFire 2.x development tree